From 589c7a92b276c31c56217b7bb31524bbd982d5ce Mon Sep 17 00:00:00 2001 From: lg <999544862qq.com> Date: 星期三, 11 九月 2024 11:09:42 +0800 Subject: [PATCH] 报表 --- /dev/null | 42 ---- DevApp/Gs.DevApp/DevFrm/Sys/EasyRpt.resx | 178 +++++++++++++++++++ DevApp/Gs.DevApp/DevFrm/Rpt/RptPreview.Designer.cs | 9 DevApp/Gs.DevApp/DevFrm/Rpt/RptPreview.cs | 87 +++++++++ DevApp/Gs.DevApp/DevFrm/Rpt/RptPreview.resx | 0 DevApp/Gs.DevApp/DevFrm/Sys/EasyRpt.Designer.cs | 101 +++++++++++ DevApp/Gs.DevApp/DevFrm/Sys/EasyRpt.cs | 95 ++++++++++ 7 files changed, 467 insertions(+), 45 deletions(-) diff --git a/DevApp/Gs.DevApp/DevFrm/Rpt/RptUser.Designer.cs b/DevApp/Gs.DevApp/DevFrm/Rpt/RptPreview.Designer.cs similarity index 88% rename from DevApp/Gs.DevApp/DevFrm/Rpt/RptUser.Designer.cs rename to DevApp/Gs.DevApp/DevFrm/Rpt/RptPreview.Designer.cs index d69534b..2f4545f 100644 --- a/DevApp/Gs.DevApp/DevFrm/Rpt/RptUser.Designer.cs +++ b/DevApp/Gs.DevApp/DevFrm/Rpt/RptPreview.Designer.cs @@ -1,7 +1,7 @@ 锘� namespace Gs.DevApp.DevFrm.Rpt { - partial class RptUser + partial class RptPreview { /// <summary> /// Required designer variable. @@ -41,7 +41,7 @@ this.previewControl1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.previewControl1.Name = "previewControl1"; this.previewControl1.PageOffset = new System.Drawing.Point(10, 10); - this.previewControl1.Size = new System.Drawing.Size(564, 543); + this.previewControl1.Size = new System.Drawing.Size(712, 543); this.previewControl1.TabIndex = 0; this.previewControl1.UIStyle = FastReport.Utils.UIStyle.Office2007Black; // @@ -49,10 +49,13 @@ // this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 18F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(564, 543); + this.ClientSize = new System.Drawing.Size(712, 543); this.Controls.Add(this.previewControl1); + this.MinimizeBox = false; this.Name = "RptUser"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "RptUser"; + this.WindowState = System.Windows.Forms.FormWindowState.Maximized; this.ResumeLayout(false); } diff --git a/DevApp/Gs.DevApp/DevFrm/Rpt/RptPreview.cs b/DevApp/Gs.DevApp/DevFrm/Rpt/RptPreview.cs new file mode 100644 index 0000000..5beb15b --- /dev/null +++ b/DevApp/Gs.DevApp/DevFrm/Rpt/RptPreview.cs @@ -0,0 +1,87 @@ +锘� +using DevExpress.XtraEditors; +using Gs.DevApp.Entity; +using Gs.DevApp.ToolBox; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using DevExpress.XtraBars.Navigation; +using DevExpress.XtraTab; +using System; +using System.Collections.Generic; +using System.Data; +using System.Drawing; +using System.Reflection; +using System.Windows.Forms; +using Gs.DevApp.ToolBox; +using Newtonsoft.Json; +using Gs.DevApp.Entity; +using Newtonsoft.Json.Linq; +using System.IO; + +namespace Gs.DevApp.DevFrm.Rpt +{ + public partial class RptPreview : DevExpress.XtraEditors.XtraForm + { + private string _reportType; + public RptPreview(string reportType) + { + _reportType = reportType; + InitializeComponent(); + getPageList(); + } + + /// <summary> + /// 璇诲彇鎶ヨ〃鏁版嵁鍒楄〃 + /// </summary> + private void getPageList() + { + var _obj = new + { + reportType = _reportType, + sortName = "a.userName", + sortOrder = "asc", + keyWhere = "" + }; + try + { + string strJson = UtilityHelper.HttpPost("", "Report/GetReportList", JsonConvert.SerializeObject(_obj)); + JObject _job = JObject.Parse(strJson); + string rtnCode = _job["rtnCode"].ToString(); + if (int.Parse(rtnCode) > 0) + { + JArray array = new JArray(); + foreach (var a in _job["rtnData"]["list"]) + { + array.Add(a); + } + DataTable dt = JsonConvert.DeserializeObject<DataTable>(array.ToString()); + DataSet ds = new DataSet(); + dt.TableName = "Table1"; + ds.Tables.Add(dt); + FastReport.Report report = new FastReport.Report(); + byte[] buffer = (byte[])_job["rtnData"]["reportData"]; + using (MemoryStream Stream = new MemoryStream(buffer)) + { + report.Load(Stream); + } + report.RegisterData(ds); + report.Preview = previewControl1; + report.Prepare(); + report.ShowPrepared(); + } + } + catch (Exception ex) + { + ToolBox.MsgHelper.Warning("鎻愮ず锛�" + ex.Message); + } + } + } +} \ No newline at end of file diff --git a/DevApp/Gs.DevApp/DevFrm/Rpt/RptUser.resx b/DevApp/Gs.DevApp/DevFrm/Rpt/RptPreview.resx similarity index 100% rename from DevApp/Gs.DevApp/DevFrm/Rpt/RptUser.resx rename to DevApp/Gs.DevApp/DevFrm/Rpt/RptPreview.resx diff --git a/DevApp/Gs.DevApp/DevFrm/Rpt/RptUser.cs b/DevApp/Gs.DevApp/DevFrm/Rpt/RptUser.cs deleted file mode 100644 index a38b43a..0000000 --- a/DevApp/Gs.DevApp/DevFrm/Rpt/RptUser.cs +++ /dev/null @@ -1,42 +0,0 @@ -锘縰sing DevExpress.XtraEditors; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace Gs.DevApp.DevFrm.Rpt -{ - public partial class RptUser : DevExpress.XtraEditors.XtraForm - { - public RptUser() - { - InitializeComponent(); - DataSet ds = new DataSet(); - DataTable table1 = new DataTable(); - table1.TableName = "Table1"; // 涓�瀹氳璁剧疆琛ㄥ悕绉� - ds.Tables.Add(table1); - // 娣诲姞琛ㄤ腑鐨勫垪 - table1.Columns.Add("濮撳悕", typeof(string)); - table1.Columns.Add("瀵嗙爜", typeof(string)); - // 浠绘剰娣诲姞涓�浜涙暟鎹� - for (int i = 0, maxI = 100; i < maxI; i++) - { - DataRow row = table1.NewRow(); - row["濮撳悕"] = "鎴戞槸" + i.ToString(); - row["瀵嗙爜"] = i.ToString(); - table1.Rows.Add(row); - } - FastReport.Report report = new FastReport.Report(); - report.Load("templeEasyCode/Untitled.frx");//bin/debug涓� - report.RegisterData(ds);//蹇呴』瑁� dataset 鏁版嵁闆�,濡傛灉瑁呭叆datatable鏁版嵁琛�,瑕佸姞鍙傛暟琛ㄥ悕,鎵�浠ュ姞闆嗘柟渚� - report.Preview = previewControl1; - report.Prepare(); - report.ShowPrepared(); - } - } -} \ No newline at end of file diff --git a/DevApp/Gs.DevApp/DevFrm/Sys/EasyRpt.Designer.cs b/DevApp/Gs.DevApp/DevFrm/Sys/EasyRpt.Designer.cs new file mode 100644 index 0000000..f167a2a --- /dev/null +++ b/DevApp/Gs.DevApp/DevFrm/Sys/EasyRpt.Designer.cs @@ -0,0 +1,101 @@ +锘� +namespace Gs.DevApp.DevFrm.Sys +{ + partial class EasyRpt + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EasyRpt)); + FastReport.Design.DesignerSettings designerSettings1 = new FastReport.Design.DesignerSettings(); + FastReport.Design.DesignerRestrictions designerRestrictions1 = new FastReport.Design.DesignerRestrictions(); + FastReport.Export.Email.EmailSettings emailSettings1 = new FastReport.Export.Email.EmailSettings(); + FastReport.PreviewSettings previewSettings1 = new FastReport.PreviewSettings(); + FastReport.ReportSettings reportSettings1 = new FastReport.ReportSettings(); + this.designerControl1 = new FastReport.Design.StandardDesigner.DesignerControl(); + this.panel2 = new System.Windows.Forms.Panel(); + this.environmentSettings1 = new FastReport.EnvironmentSettings(); + ((System.ComponentModel.ISupportInitialize)(this.designerControl1)).BeginInit(); + this.SuspendLayout(); + // + // designerControl1 + // + this.designerControl1.AskSave = true; + this.designerControl1.LayoutState = resources.GetString("designerControl1.LayoutState"); + this.designerControl1.Location = new System.Drawing.Point(0, 0); + this.designerControl1.Name = "designerControl1"; + this.designerControl1.TabIndex = 0; + this.designerControl1.UIStyle = FastReport.Utils.UIStyle.Office2007Black; + // + // panel2 + // + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(0, 0); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(893, 578); + this.panel2.TabIndex = 1; + // + // environmentSettings1 + // + designerSettings1.ApplicationConnection = null; + designerSettings1.DefaultFont = new System.Drawing.Font("瀹嬩綋", 9F); + designerSettings1.Icon = ((System.Drawing.Icon)(resources.GetObject("designerSettings1.Icon"))); + designerSettings1.Restrictions = designerRestrictions1; + designerSettings1.Text = ""; + this.environmentSettings1.DesignerSettings = designerSettings1; + emailSettings1.Address = ""; + emailSettings1.Host = ""; + emailSettings1.MessageTemplate = ""; + emailSettings1.Name = ""; + emailSettings1.Password = ""; + emailSettings1.UserName = ""; + this.environmentSettings1.EmailSettings = emailSettings1; + previewSettings1.Icon = ((System.Drawing.Icon)(resources.GetObject("previewSettings1.Icon"))); + previewSettings1.Text = ""; + this.environmentSettings1.PreviewSettings = previewSettings1; + this.environmentSettings1.ReportSettings = reportSettings1; + this.environmentSettings1.UIStyle = FastReport.Utils.UIStyle.Office2007Black; + // + // EasyRpt + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 18F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(893, 578); + this.Controls.Add(this.panel2); + this.Name = "EasyRpt"; + this.Text = "EasyRpt"; + ((System.ComponentModel.ISupportInitialize)(this.designerControl1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private FastReport.Design.StandardDesigner.DesignerControl designerControl1; + private System.Windows.Forms.Panel panel2; + private FastReport.EnvironmentSettings environmentSettings1; + } +} \ No newline at end of file diff --git a/DevApp/Gs.DevApp/DevFrm/Sys/EasyRpt.cs b/DevApp/Gs.DevApp/DevFrm/Sys/EasyRpt.cs new file mode 100644 index 0000000..b8d5811 --- /dev/null +++ b/DevApp/Gs.DevApp/DevFrm/Sys/EasyRpt.cs @@ -0,0 +1,95 @@ +锘縰sing DevExpress.XtraEditors; +using FastReport; +using Gs.DevApp.Entity; +using Gs.DevApp.ToolBox; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Data.SqlClient; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Gs.DevApp.DevFrm.Sys +{ + public partial class EasyRpt : DevExpress.XtraEditors.XtraForm + { + private string _reportType; + public EasyRpt(string reportType) + { + _reportType = reportType; + InitializeComponent(); + Report report = new Report(); + DataTable RptRow = new DataTable(); + var _obj = new + { + reportType = _reportType, + }; + try + { + string strJson = UtilityHelper.HttpPost("", "Report/GetTemplate", JsonConvert.SerializeObject(_obj)); + ReturnModel<dynamic> _rtn = ToolBox.UtilityHelper.GetDataByJson(strJson); + if (_rtn.rtnCode > 0) + { + dynamic dy = _rtn.rtnData; + byte[] buffer = (byte[])dy.reportData; + using (MemoryStream Stream = new MemoryStream(buffer)) + { + report.Load(Stream); + } + } + else + ToolBox.MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnMsg); + } + catch (Exception ex) + { + ToolBox.MsgHelper.Warning("鎻愮ず锛�" + ex.Message); + } + designerControl1.Report = report; + designerControl1.RefreshLayout(); + panel2.Controls.Add(designerControl1); + designerControl1.Dock = DockStyle.Fill; + designerControl1.UIStateChanged += designerControl1_UIStateChanged; + environmentSettings1.CustomSaveReport += EnvironmentSettings1_CustomSaveReport; + environmentSettings1.CustomSaveDialog += EnvironmentSettings1_CustomSaveDialog; + } + private void EnvironmentSettings1_CustomSaveDialog(object sender, FastReport.Design.OpenSaveDialogEventArgs e) + { + } + private void EnvironmentSettings1_CustomSaveReport(object sender, FastReport.Design.OpenSaveReportEventArgs e) + { + MemoryStream ms = new MemoryStream(); + designerControl1.Report.Save(ms); + byte[] dddd = ms.ToArray(); + var _obj = new + { + rptType = _reportType, + rptData = dddd, + }; + try + { + string strJson = UtilityHelper.HttpPost("", "Report/EdtTemplate", JsonConvert.SerializeObject(_obj)); + ReturnModel<dynamic> _rtn = ToolBox.UtilityHelper.GetDataByJson(strJson); + ToolBox.MsgHelper.Warning("鎻愮ず锛�" + _rtn.rtnData.outMsg); + } + catch (Exception ex) + { + ToolBox.MsgHelper.Warning("鎻愮ず锛�" + ex.Message); + } + ms.Dispose(); + designerControl1.Report.Dispose(); + } + // 璁捐鍣╱i鏀瑰彉浜嬩欢 + private void designerControl1_UIStateChanged(object sender, EventArgs e) + { + // btnSave.Enabled = designerControl1.cmdSave.Enabled; + // btnUndo.Enabled = designerControl1.cmdUndo.Enabled; + // btnRedo.Enabled = designerControl1.cmdRedo.Enabled; + } + } +} \ No newline at end of file diff --git a/DevApp/Gs.DevApp/DevFrm/Sys/EasyRpt.resx b/DevApp/Gs.DevApp/DevFrm/Sys/EasyRpt.resx new file mode 100644 index 0000000..1657235 --- /dev/null +++ b/DevApp/Gs.DevApp/DevFrm/Sys/EasyRpt.resx @@ -0,0 +1,178 @@ +锘�<?xml version="1.0" encoding="utf-8"?> +<root> + <!-- + Microsoft ResX Schema + + Version 2.0 + + The primary goals of this format is to allow a simple XML format + that is mostly human readable. The generation and parsing of the + various data types are done through the TypeConverter classes + associated with the data types. + + Example: + + ... ado.net/XML headers & schema ... + <resheader name="resmimetype">text/microsoft-resx</resheader> + <resheader name="version">2.0</resheader> + <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> + <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> + <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> + <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> + <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> + <value>[base64 mime encoded serialized .NET Framework object]</value> + </data> + <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> + <comment>This is a comment</comment> + </data> + + There are any number of "resheader" rows that contain simple + name/value pairs. + + Each data row contains a name, and value. The row also contains a + type or mimetype. Type corresponds to a .NET class that support + text/value conversion through the TypeConverter architecture. + Classes that don't support this are serialized and stored with the + mimetype set. + + The mimetype is used for serialized objects, and tells the + ResXResourceReader how to depersist the object. This is currently not + extensible. For a given mimetype the value must be set accordingly: + + Note - application/x-microsoft.net.object.binary.base64 is the format + that the ResXResourceWriter will generate, however the reader can + read any of the formats listed below. + + mimetype: application/x-microsoft.net.object.binary.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.soap.base64 + value : The object must be serialized with + : System.Runtime.Serialization.Formatters.Soap.SoapFormatter + : and then encoded with base64 encoding. + + mimetype: application/x-microsoft.net.object.bytearray.base64 + value : The object must be serialized into a byte array + : using a System.ComponentModel.TypeConverter + : and then encoded with base64 encoding. + --> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="metadata"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" /> + </xsd:sequence> + <xsd:attribute name="name" use="required" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="assembly"> + <xsd:complexType> + <xsd:attribute name="alias" type="xsd:string" /> + <xsd:attribute name="name" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> + <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> + <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> + <xsd:attribute ref="xml:space" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="resmimetype"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="version"> + <value>2.0</value> + </resheader> + <resheader name="reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <metadata name="designerControl1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>17, 17</value> + </metadata> + <data name="designerControl1.LayoutState" xml:space="preserve"> + <value>锘�<?xml version="1.0" encoding="utf-8"?><Config><Designer><DockNew Text="&lt;dotnetbarlayout version=&quot;6&quot; zorder=&quot;3,4,1,2&quot;&gt;&lt;docksite size=&quot;0&quot; dockingside=&quot;Top&quot; originaldocksitesize=&quot;0&quot; /&gt;&lt;docksite size=&quot;0&quot; dockingside=&quot;Bottom&quot; originaldocksitesize=&quot;0&quot;&gt;&lt;dockcontainer orientation=&quot;1&quot; w=&quot;0&quot; h=&quot;0&quot;&gt;&lt;barcontainer w=&quot;0&quot; h=&quot;95&quot;&gt;&lt;bar name=&quot;MessagesWindowBar&quot; dockline=&quot;0&quot; layout=&quot;2&quot; dockoffset=&quot;0&quot; state=&quot;2&quot; dockside=&quot;4&quot; visible=&quot;false&quot;&gt;&lt;items&gt;&lt;item name=&quot;MessagesWindow&quot; origBar=&quot;&quot; origPos=&quot;-1&quot; pos=&quot;0&quot; visible=&quot;false&quot; /&gt;&lt;/items&gt;&lt;/bar&gt;&lt;/barcontainer&gt;&lt;/dockcontainer&gt;&lt;/docksite&gt;&lt;docksite size=&quot;0&quot; dockingside=&quot;Left&quot; originaldocksitesize=&quot;0&quot; /&gt;&lt;docksite size=&quot;250&quot; dockingside=&quot;Right&quot; originaldocksitesize=&quot;0&quot;&gt;&lt;dockcontainer orientation=&quot;1&quot; w=&quot;0&quot; h=&quot;0&quot;&gt;&lt;barcontainer w=&quot;247&quot; h=&quot;182&quot;&gt;&lt;bar name=&quot;DictionaryWindowBar&quot; dockline=&quot;0&quot; layout=&quot;2&quot; dockoffset=&quot;0&quot; state=&quot;2&quot; dockside=&quot;2&quot; visible=&quot;true&quot; seldocktab=&quot;0&quot;&gt;&lt;items&gt;&lt;item name=&quot;DictionaryWindow&quot; origBar=&quot;&quot; origPos=&quot;-1&quot; pos=&quot;0&quot; /&gt;&lt;item name=&quot;ReportTreeWindow&quot; origBar=&quot;&quot; origPos=&quot;-1&quot; pos=&quot;1&quot; /&gt;&lt;/items&gt;&lt;/bar&gt;&lt;/barcontainer&gt;&lt;barcontainer w=&quot;247&quot; h=&quot;-86&quot;&gt;&lt;bar name=&quot;PropertiesWindowBar&quot; dockline=&quot;0&quot; layout=&quot;2&quot; dockoffset=&quot;64&quot; state=&quot;2&quot; dockside=&quot;2&quot; visible=&quot;true&quot;&gt;&lt;items&gt;&lt;item name=&quot;PropertiesWindow&quot; origBar=&quot;&quot; origPos=&quot;-1&quot; pos=&quot;0&quot; /&gt;&lt;/items&gt;&lt;/bar&gt;&lt;/barcontainer&gt;&lt;/dockcontainer&gt;&lt;/docksite&gt;&lt;bars&gt;&lt;bar name=&quot;StandardToolbar&quot; dockline=&quot;0&quot; layout=&quot;0&quot; dockoffset=&quot;0&quot; state=&quot;2&quot; dockside=&quot;3&quot; visible=&quot;true&quot; /&gt;&lt;bar name=&quot;TextToolbar&quot; dockline=&quot;1&quot; layout=&quot;0&quot; dockoffset=&quot;0&quot; state=&quot;2&quot; dockside=&quot;3&quot; visible=&quot;true&quot; /&gt;&lt;bar name=&quot;BorderToolbar&quot; dockline=&quot;1&quot; layout=&quot;0&quot; dockoffset=&quot;152&quot; state=&quot;2&quot; dockside=&quot;3&quot; visible=&quot;true&quot; /&gt;&lt;bar name=&quot;StyleToolbar&quot; dockline=&quot;2&quot; layout=&quot;0&quot; dockoffset=&quot;0&quot; state=&quot;2&quot; dockside=&quot;3&quot; visible=&quot;false&quot; /&gt;&lt;bar name=&quot;LayoutToolbar&quot; dockline=&quot;2&quot; layout=&quot;0&quot; dockoffset=&quot;0&quot; state=&quot;2&quot; dockside=&quot;3&quot; visible=&quot;false&quot; /&gt;&lt;bar name=&quot;ObjectsToolbar&quot; dockline=&quot;0&quot; layout=&quot;0&quot; dockoffset=&quot;0&quot; state=&quot;2&quot; dockside=&quot;1&quot; visible=&quot;true&quot; /&gt;&lt;/bars&gt;&lt;/dotnetbarlayout&gt;"/></Designer></Config></value> + </data> + <metadata name="environmentSettings1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>202, 17</value> + </metadata> + <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> + <data name="designerSettings1.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAABAAEAEBAAAAAAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAA + AAA4ODhhODg45zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4 + OOc4ODhhODg456B3J//CjCH/wowh/8KMIf/CjCH/wowh/8KMIf/CjCH/wowh/8KMIf/CjCH/wowh/8KM + If+gdyf/ODg45zg4OP/CjCH/wowh/8KMIf/CjCH/wowh/8KMIf/CjCH/wowh/8KMIf/CjSL/zqNO/9Ot + Yf/CjCH/wowh/zg4OP84ODj/wowh/8KMIf/AiyH/uYUg/72IIP/CjCH/wowh/8KMIf/DjST/3sGH//78 + +v/7+PL/yZk7/8KMIf84ODj/ODg4/8KMIf/CjCH/JhwG/wAAAP8GBAH/tIIf/8KMIf/DjSP/4MWQ//78 + +v/8+vX/27t8/8KMIf/CjCH/ODg4/zg4OP/CjCH/wowh/xQOBP8AAAD/AAAA/6x/Jf/DjiT/4smW//79 + +v/7+fP/17Rv/8KMIf/CjCH/wowh/zg4OP84ODj/wowh/8KMIf8UDgT/AAAA/wAAAP+ugy7//v38//// + /////////fz5/+rWsP/JmDn/wowh/8KMIf84ODj/ODg4/8KMIf/CjCH/FA4E/wAAAP8AAAD/TzsS/3le + Kf9/Yyz/zbOA//379///////7t/C/8KMIf/CjCH/ODg4/zk5Of/DjiX/yJc2/zYxKP8uLi7/NjY2/zs7 + O/87Ozv/Ozs7/4p6Wv/48eT///////v48v/LnUH/x5Qx/0FBQf+vr6//1a9l/9WvZf9cWFH/Tk5O/05O + Tv97b1b/koFe/5iFYf/Vw57//fv4///////06db/1a9l/9WvZf+vr6//mJiY/9WvZf/Vr2X/XFhR/05O + Tv9OTk7/x6lu///+/v////////////7+/f/17Nr/27x9/9WvZf/Vr2X/mJiY/4GBgf/Vr2X/1a9l/11Y + Uf9OTk7/Tk5O/4J1Wf+fjGf/n4xn/6GOZ//Srmn/1a9l/9WvZf/Vr2X/1a9l/4GBgf9ra2v/1a9l/9Wv + Zf+Yg1v/WVZQ/05OTv9OTk7/Tk5O/05OTv9SUU//waFi/9WvZf/Vr2X/1a9l/9WvZf9ra2v/SUlJ/9Wv + Zf/Vr2X/1a9l/9WvZf/Vr2X/1a9l/9WvZf/Vr2X/1a9l/9WvZf/Vr2X/1a9l/9WvZf/Vr2X/SUlJ/zg4 + OOeukVr/1a9l/9WvZf/Vr2X/1a9l/9WvZf/Vr2X/1a9l/9WvZf/Vr2X/1a9l/9WvZf/Vr2X/rpFa/zg4 + OOc4ODhhODg45zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4 + OOc4ODhhAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//w== +</value> + </data> + <data name="previewSettings1.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAABAAEAEBAAAAAAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAA + AAA4ODhhODg45zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4 + OOc4ODhhODg456B3J//CjCH/wowh/8KMIf/CjCH/wowh/8KMIf/CjCH/wowh/8KMIf/CjCH/wowh/8KM + If+gdyf/ODg45zg4OP/CjCH/wowh/8KMIf/CjCH/wowh/8KMIf/CjCH/wowh/8KMIf/CjSL/zqNO/9Ot + Yf/CjCH/wowh/zg4OP84ODj/wowh/8KMIf/AiyH/uYUg/72IIP/CjCH/wowh/8KMIf/DjST/3sGH//78 + +v/7+PL/yZk7/8KMIf84ODj/ODg4/8KMIf/CjCH/JhwG/wAAAP8GBAH/tIIf/8KMIf/DjSP/4MWQ//78 + +v/8+vX/27t8/8KMIf/CjCH/ODg4/zg4OP/CjCH/wowh/xQOBP8AAAD/AAAA/6x/Jf/DjiT/4smW//79 + +v/7+fP/17Rv/8KMIf/CjCH/wowh/zg4OP84ODj/wowh/8KMIf8UDgT/AAAA/wAAAP+ugy7//v38//// + /////////fz5/+rWsP/JmDn/wowh/8KMIf84ODj/ODg4/8KMIf/CjCH/FA4E/wAAAP8AAAD/TzsS/3le + Kf9/Yyz/zbOA//379///////7t/C/8KMIf/CjCH/ODg4/zk5Of/DjiX/yJc2/zYxKP8uLi7/NjY2/zs7 + O/87Ozv/Ozs7/4p6Wv/48eT///////v48v/LnUH/x5Qx/0FBQf+vr6//1a9l/9WvZf9cWFH/Tk5O/05O + Tv97b1b/koFe/5iFYf/Vw57//fv4///////06db/1a9l/9WvZf+vr6//mJiY/9WvZf/Vr2X/XFhR/05O + Tv9OTk7/x6lu///+/v////////////7+/f/17Nr/27x9/9WvZf/Vr2X/mJiY/4GBgf/Vr2X/1a9l/11Y + Uf9OTk7/Tk5O/4J1Wf+fjGf/n4xn/6GOZ//Srmn/1a9l/9WvZf/Vr2X/1a9l/4GBgf9ra2v/1a9l/9Wv + Zf+Yg1v/WVZQ/05OTv9OTk7/Tk5O/05OTv9SUU//waFi/9WvZf/Vr2X/1a9l/9WvZf9ra2v/SUlJ/9Wv + Zf/Vr2X/1a9l/9WvZf/Vr2X/1a9l/9WvZf/Vr2X/1a9l/9WvZf/Vr2X/1a9l/9WvZf/Vr2X/SUlJ/zg4 + OOeukVr/1a9l/9WvZf/Vr2X/1a9l/9WvZf/Vr2X/1a9l/9WvZf/Vr2X/1a9l/9WvZf/Vr2X/rpFa/zg4 + OOc4ODhhODg45zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4OP84ODj/ODg4/zg4 + OOc4ODhhAAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA + //8AAP//AAD//w== +</value> + </data> +</root> \ No newline at end of file -- Gitblit v1.9.3