上传当前项目状态

This commit is contained in:
2026-05-23 13:54:15 +08:00
parent 3b871f24b3
commit 0e3250c8b8
32 changed files with 22267 additions and 22099 deletions

13
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,13 @@
{
"version": "0.2.0",
"configurations": [
{
"name": ".NET Framework: WC_GKJ_OIL",
"type": "clr",
"request": "launch",
"program": "${workspaceFolder}\\WC_GKJ_OIL_EXE\\WC_GKJ_OIL.exe",
"cwd": "${workspaceFolder}\\WC_GKJ_OIL_EXE",
"preLaunchTask": "build Debug"
}
]
}

3
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,3 @@
{
"dotnet.preferCSharpExtension": true
}

22
.vscode/tasks.json vendored Normal file
View File

@@ -0,0 +1,22 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "build Debug",
"type": "process",
"command": "C:\\Program Files\\Microsoft Visual Studio\\2022\\Professional\\MSBuild\\Current\\Bin\\MSBuild.exe",
"args": [
"${workspaceFolder}\\WC_GKJ_OIL_SLN.sln",
"/restore",
"/m",
"/p:Configuration=Debug",
"/p:Platform=Any CPU"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": "$msCompile"
}
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,57 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{1AC112C4-2400-4D03-A26D-2E3ACE6FE6D4}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>MW_Log</RootNamespace>
<AssemblyName>MW_Log</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net">
<HintPath>..\DLL\log4net.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="LoggerHelper.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="log4net.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{1AC112C4-2400-4D03-A26D-2E3ACE6FE6D4}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>MW_Log</RootNamespace>
<AssemblyName>MW_Log</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net">
<HintPath>..\DLL\log4net.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="LoggerHelper.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="log4net.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -1,49 +1,49 @@
using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MW_Log
{
/// <summary>
/// LoggerHelper
/// </summary>
public class LoggerHelper
{
/// <summary>
/// LogInfo
/// </summary>
private static readonly ILog LogInfo = LogManager.GetLogger("LogInfo");
/// <summary>
/// 记录Info日志
/// </summary>
/// <param name="msg"></param>
/// <param name="ex"></param>
public static void Info(string type, string msg, Exception ex = null)
{
try
{
msg = $"【类别:{type}】\r\n【内容】{msg}";
if (ex != null)
{
LogInfo.Info(msg, ex);
}
else
{
LogInfo.Info(msg);
}
}
catch (Exception err)
{
}
}
}
}
using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MW_Log
{
/// <summary>
/// LoggerHelper
/// </summary>
public class LoggerHelper
{
/// <summary>
/// LogInfo
/// </summary>
private static readonly ILog LogInfo = LogManager.GetLogger("LogInfo");
/// <summary>
/// 记录Info日志
/// </summary>
/// <param name="msg"></param>
/// <param name="ex"></param>
public static void Info(string type, string msg, Exception ex = null)
{
try
{
msg = $"【类别:{type}】\r\n【内容】{msg}";
if (ex != null)
{
LogInfo.Info(msg, ex);
}
else
{
LogInfo.Info(msg);
}
}
catch (Exception err)
{
}
}
}
}

View File

@@ -1,37 +1,37 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("MW_Log")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("MW_Log")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("1ac112c4-2400-4d03-a26d-2e3ace6fe6d4")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("MW_Log")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("MW_Log")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("1ac112c4-2400-4d03-a26d-2e3ace6fe6d4")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]

View File

@@ -1,35 +1,35 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<!--Info日志-->
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<!--日志文件存放位置,可以为绝对路径也可以为相对路径 -->
<param name="File" value="C:\MWLOG" />
<!--是否支持分割文件-->
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="10240" />
<!--当日志文件达到MaxFileSize大小就自动创建备份文件。-->
<param name="MaxSizeRollBackups" value="100" />
<!-- 当将日期作为日志文件的名字时必须将staticLogFileName的值设置为false -->
<param name="StaticLogFileName" value="false" />
<!-- 日志文件的命名规则 -->
<param name="DatePattern" value="\\yyyy_MM\\yyyy_MM_dd'.log'" />
<!--日志文件的记录形式-->
<param name="RollingStyle" value="Date" />
<!--日志文件的布局格式:%newline【%date】【级别%-5level】【线程ID%thread】%n【内容】%message%newline %n%n-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="【%date】【线程ID%thread】%message%newline %n%n" />
</layout>
</appender>
<!--Info日志-->
<logger name="LogInfo">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</logger>
</log4net>
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<!--Info日志-->
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<!--日志文件存放位置,可以为绝对路径也可以为相对路径 -->
<param name="File" value="C:\MWLOG" />
<!--是否支持分割文件-->
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="10240" />
<!--当日志文件达到MaxFileSize大小就自动创建备份文件。-->
<param name="MaxSizeRollBackups" value="100" />
<!-- 当将日期作为日志文件的名字时必须将staticLogFileName的值设置为false -->
<param name="StaticLogFileName" value="false" />
<!-- 日志文件的命名规则 -->
<param name="DatePattern" value="\\yyyy_MM\\yyyy_MM_dd'.log'" />
<!--日志文件的记录形式-->
<param name="RollingStyle" value="Date" />
<!--日志文件的布局格式:%newline【%date】【级别%-5level】【线程ID%thread】%n【内容】%message%newline %n%n-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="【%date】【线程ID%thread】%message%newline %n%n" />
</layout>
</appender>
<!--Info日志-->
<logger name="LogInfo">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</logger>
</log4net>
</configuration>

View File

@@ -1,35 +1,35 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<!--Info日志-->
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<!--日志文件存放位置,可以为绝对路径也可以为相对路径 -->
<param name="File" value="C:\MWLOG" />
<!--是否支持分割文件-->
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="10240" />
<!--当日志文件达到MaxFileSize大小就自动创建备份文件。-->
<param name="MaxSizeRollBackups" value="100" />
<!-- 当将日期作为日志文件的名字时必须将staticLogFileName的值设置为false -->
<param name="StaticLogFileName" value="false" />
<!-- 日志文件的命名规则 -->
<param name="DatePattern" value="\\yyyy_MM\\yyyy_MM_dd'.log'" />
<!--日志文件的记录形式-->
<param name="RollingStyle" value="Date" />
<!--日志文件的布局格式:%newline【%date】【级别%-5level】【线程ID%thread】%n【内容】%message%newline %n%n-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="【%date】【线程ID%thread】%message%newline %n%n" />
</layout>
</appender>
<!--Info日志-->
<logger name="LogInfo">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</logger>
</log4net>
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<!--Info日志-->
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<!--日志文件存放位置,可以为绝对路径也可以为相对路径 -->
<param name="File" value="C:\MWLOG" />
<!--是否支持分割文件-->
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="10240" />
<!--当日志文件达到MaxFileSize大小就自动创建备份文件。-->
<param name="MaxSizeRollBackups" value="100" />
<!-- 当将日期作为日志文件的名字时必须将staticLogFileName的值设置为false -->
<param name="StaticLogFileName" value="false" />
<!-- 日志文件的命名规则 -->
<param name="DatePattern" value="\\yyyy_MM\\yyyy_MM_dd'.log'" />
<!--日志文件的记录形式-->
<param name="RollingStyle" value="Date" />
<!--日志文件的布局格式:%newline【%date】【级别%-5level】【线程ID%thread】%n【内容】%message%newline %n%n-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="【%date】【线程ID%thread】%message%newline %n%n" />
</layout>
</appender>
<!--Info日志-->
<logger name="LogInfo">
<level value="INFO" />
<appender-ref ref="InfoAppender" />
</logger>
</log4net>
</configuration>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="IsDemoMesServer" value="1"/>
<add key="IsDemoMesServer" value="0"/>
<add key="BasicDataTableFile" value="SignalTable_CZ.xlsx"/>
<add key="IsAllowWrite" value="1"/>
<!--是启用写监控报错日志-->
@@ -15,7 +15,7 @@
<add key="Station1OpName" value="ST04"/>
<add key="Station2OpName" value="ST05"/>
<!--数据库连接-->
<add key="ConnectionString" value="server=.,1333;database=MESBasicDB_WC_CZGKJ;uid=sa;pwd=126.com;Connection Reset=FALSE;Max Pool Size = 1000"/>
<add key="ConnectionString" value="server=LAPTOP-ELBDN3OJ\SQLEXPRESS;database=MESBasicDB_WC_CZGKJ;uid=sa;pwd=126.com;Connection Reset=FALSE;Max Pool Size = 1000"/>
<!--WebApi-->
<add key="WebApi_Port" value="9981"/>
@@ -33,7 +33,7 @@
<!--曲线稳定窗口点数-->
<add key="CurveStableWindowSize" value="20"/>
<!--最终重量计算时跳过前置称重点数0=不跳过-->
<add key="CurveStableSkipStartPointCount" value="0"/>
<add key="CurveStableSkipStartPointCount" value="50"/>
</appSettings>
<startup>

File diff suppressed because it is too large Load Diff

View File

@@ -1,72 +1,72 @@
using MesWork;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
namespace MesWork
{
public class SqlOperation
{
public static bool ExecuteStoredProcedure(string name, SqlParameter[] sqlParameters, out string errorMessage)
{
return DataLinkMesWork.SQLCommon.ExecuteStoredProcedure(name, MesWorkForm.ConnectionString, ref sqlParameters, out errorMessage);
}
public static bool ExecuteStoredProcedure(string name, SqlParameter[] sqlParameters, out DataTable dt, out string errorMessage)
{
return DataLinkMesWork.SQLCommon.ExecuteStoredProcedure(name, MesWorkForm.ConnectionString, ref sqlParameters, out dt, out errorMessage);
}
public static bool ExecuteStoredProcedure(string name, SqlParameter[] sqlParameters, out DataSet ds, out string errorMessage)
{
return DataLinkMesWork.SQLCommon.ExecuteStoredProcedure(name, MesWorkForm.ConnectionString, ref sqlParameters, out ds, out errorMessage);
}
public static bool ExecuteSql(string sql, out DataTable dt, out string errorMessage)
{
return DataLinkMesWork.SQLCommon.ExecuteSql(sql, MesWorkForm.ConnectionString, out dt, out errorMessage);
}
public static bool ExecuteSql(string sql, out DataSet ds, out string errorMessage)
{
return DataLinkMesWork.SQLCommon.ExecuteDataset(sql, MesWorkForm.ConnectionString, out ds, out errorMessage);
}
public static bool ExecuteSql(string sql, out string errorMessage)
{
return DataLinkMesWork.SQLCommon.ExecuteSql(sql, MesWorkForm.ConnectionString, out errorMessage);
}
/// <summary>
/// 通过SqlBulkCopy复制table数据到数据库
/// </summary>
/// <param name="dataset"></param>
public static bool SqlbulkcopyInsert(DataTable dt, out string ErrMsg)
{
bool success = false;
ErrMsg = "";
try
{
// SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectString, SqlBulkCopyOptions.KeepIdentity);//删除自增ID插入原始数据
SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(MesWorkForm.ConnectionString, SqlBulkCopyOptions.UseInternalTransaction);//批量事务处理
sqlbulkcopy.DestinationTableName = dt.TableName;//数据库中的表名
for (int i = 0; i < dt.Columns.Count; i++)
{
var columnName = dt.Columns[i].ColumnName.ToString();
sqlbulkcopy.ColumnMappings.Add(columnName, columnName);
}
sqlbulkcopy.WriteToServer(dt);
success = true;
}
catch (Exception err)
{
ErrMsg = err.Message;
}
return success;
}
}
}
using MesWork;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
namespace MesWork
{
public class SqlOperation
{
public static bool ExecuteStoredProcedure(string name, SqlParameter[] sqlParameters, out string errorMessage)
{
return DataLinkMesWork.SQLCommon.ExecuteStoredProcedure(name, MesWorkForm.ConnectionString, ref sqlParameters, out errorMessage);
}
public static bool ExecuteStoredProcedure(string name, SqlParameter[] sqlParameters, out DataTable dt, out string errorMessage)
{
return DataLinkMesWork.SQLCommon.ExecuteStoredProcedure(name, MesWorkForm.ConnectionString, ref sqlParameters, out dt, out errorMessage);
}
public static bool ExecuteStoredProcedure(string name, SqlParameter[] sqlParameters, out DataSet ds, out string errorMessage)
{
return DataLinkMesWork.SQLCommon.ExecuteStoredProcedure(name, MesWorkForm.ConnectionString, ref sqlParameters, out ds, out errorMessage);
}
public static bool ExecuteSql(string sql, out DataTable dt, out string errorMessage)
{
return DataLinkMesWork.SQLCommon.ExecuteSql(sql, MesWorkForm.ConnectionString, out dt, out errorMessage);
}
public static bool ExecuteSql(string sql, out DataSet ds, out string errorMessage)
{
return DataLinkMesWork.SQLCommon.ExecuteDataset(sql, MesWorkForm.ConnectionString, out ds, out errorMessage);
}
public static bool ExecuteSql(string sql, out string errorMessage)
{
return DataLinkMesWork.SQLCommon.ExecuteSql(sql, MesWorkForm.ConnectionString, out errorMessage);
}
/// <summary>
/// 通过SqlBulkCopy复制table数据到数据库
/// </summary>
/// <param name="dataset"></param>
public static bool SqlbulkcopyInsert(DataTable dt, out string ErrMsg)
{
bool success = false;
ErrMsg = "";
try
{
// SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectString, SqlBulkCopyOptions.KeepIdentity);//删除自增ID插入原始数据
SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(MesWorkForm.ConnectionString, SqlBulkCopyOptions.UseInternalTransaction);//批量事务处理
sqlbulkcopy.DestinationTableName = dt.TableName;//数据库中的表名
for (int i = 0; i < dt.Columns.Count; i++)
{
var columnName = dt.Columns[i].ColumnName.ToString();
sqlbulkcopy.ColumnMappings.Add(columnName, columnName);
}
sqlbulkcopy.WriteToServer(dt);
success = true;
}
catch (Exception err)
{
ErrMsg = err.Message;
}
return success;
}
}
}

View File

@@ -17,163 +17,160 @@ namespace MesWork
private void InitializeComponent()
{
this.pnl_Card = new System.Windows.Forms.Panel();
this.lbl_Title = new System.Windows.Forms.Label();
this.lbl_SubTitle = new System.Windows.Forms.Label();
this.lbl_User = new System.Windows.Forms.Label();
this.txt_LoginID = new System.Windows.Forms.TextBox();
this.lbl_Pwd = new System.Windows.Forms.Label();
this.txt_userPassword = new System.Windows.Forms.TextBox();
this.btn_Login = new System.Windows.Forms.Button();
this.btn_Cancel = new System.Windows.Forms.Button();
this.lbl_Msg = new System.Windows.Forms.Label();
this.pnl_Card.SuspendLayout();
this.SuspendLayout();
//
// pnl_Card - 白色登录卡片
//
this.pnl_Card.BackColor = System.Drawing.Color.White;
this.pnl_Card.Location = new System.Drawing.Point(310, 180);
this.pnl_Card.Name = "pnl_Card";
this.pnl_Card.Size = new System.Drawing.Size(400, 380);
this.pnl_Card.TabIndex = 0;
this.pnl_Card.Paint += new System.Windows.Forms.PaintEventHandler(this.pnl_Card_Paint);
//
// lbl_Title - 系统图标+名称
//
this.lbl_Title.Font = new System.Drawing.Font("微软雅黑", 20F, System.Drawing.FontStyle.Bold);
this.lbl_Title.ForeColor = System.Drawing.Color.FromArgb(30, 58, 95);
this.lbl_Title.Location = new System.Drawing.Point(20, 30);
this.lbl_Title.Name = "lbl_Title";
this.lbl_Title.Size = new System.Drawing.Size(360, 40);
this.lbl_Title.TabIndex = 0;
this.lbl_Title.Text = "⚖ 称重数据采集分析";
this.lbl_Title.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lbl_SubTitle
//
this.lbl_SubTitle.Font = new System.Drawing.Font("微软雅黑", 11F);
this.lbl_SubTitle.ForeColor = System.Drawing.Color.FromArgb(107, 114, 128);
this.lbl_SubTitle.Location = new System.Drawing.Point(20, 72);
this.lbl_SubTitle.Name = "lbl_SubTitle";
this.lbl_SubTitle.Size = new System.Drawing.Size(360, 24);
this.lbl_SubTitle.TabIndex = 1;
this.lbl_SubTitle.Text = "管理系统";
this.lbl_SubTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lbl_User
//
this.lbl_User.Font = new System.Drawing.Font("微软雅黑", 10F);
this.lbl_User.ForeColor = System.Drawing.Color.FromArgb(55, 65, 81);
this.lbl_User.Location = new System.Drawing.Point(40, 120);
this.lbl_User.Name = "lbl_User";
this.lbl_User.Size = new System.Drawing.Size(60, 24);
this.lbl_User.TabIndex = 2;
this.lbl_User.Text = "👤 用户名";
//
// txt_LoginID
//
this.txt_LoginID.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txt_LoginID.Font = new System.Drawing.Font("微软雅黑", 12F);
this.txt_LoginID.Location = new System.Drawing.Point(40, 148);
this.txt_LoginID.Name = "txt_LoginID";
this.txt_LoginID.Size = new System.Drawing.Size(320, 29);
this.txt_LoginID.TabIndex = 1;
this.txt_LoginID.Text = "admin";
this.txt_LoginID.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txt_LoginID_KeyDown);
//
// lbl_Pwd
//
this.lbl_Pwd.Font = new System.Drawing.Font("微软雅黑", 10F);
this.lbl_Pwd.ForeColor = System.Drawing.Color.FromArgb(55, 65, 81);
this.lbl_Pwd.Location = new System.Drawing.Point(40, 195);
this.lbl_Pwd.Name = "lbl_Pwd";
this.lbl_Pwd.Size = new System.Drawing.Size(60, 24);
this.lbl_Pwd.TabIndex = 4;
this.lbl_Pwd.Text = "🔒 密码";
//
// txt_userPassword
//
this.txt_userPassword.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txt_userPassword.Font = new System.Drawing.Font("微软雅黑", 12F);
this.txt_userPassword.Location = new System.Drawing.Point(40, 223);
this.txt_userPassword.Name = "txt_userPassword";
this.txt_userPassword.PasswordChar = '*';
this.txt_userPassword.Size = new System.Drawing.Size(320, 29);
this.txt_userPassword.TabIndex = 2;
this.txt_userPassword.Text = "admin";
this.txt_userPassword.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txt_userPassword_KeyDown);
//
// btn_Login - Steel Blue 主按钮
//
this.btn_Login.BackColor = System.Drawing.Color.FromArgb(74, 144, 217);
this.btn_Login.Cursor = System.Windows.Forms.Cursors.Hand;
this.btn_Login.FlatAppearance.BorderSize = 0;
this.btn_Login.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_Login.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold);
this.btn_Login.ForeColor = System.Drawing.Color.White;
this.btn_Login.Location = new System.Drawing.Point(40, 280);
this.btn_Login.Name = "btn_Login";
this.btn_Login.Size = new System.Drawing.Size(150, 42);
this.btn_Login.TabIndex = 3;
this.btn_Login.Text = "登 录";
this.btn_Login.UseVisualStyleBackColor = false;
this.btn_Login.Click += new System.EventHandler(this.btn_Login_Click);
//
// btn_Cancel - 灰色边框按钮
//
this.btn_Cancel.BackColor = System.Drawing.Color.White;
this.btn_Cancel.Cursor = System.Windows.Forms.Cursors.Hand;
this.btn_Cancel.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(209, 213, 219);
this.btn_Cancel.FlatAppearance.BorderSize = 1;
this.btn_Cancel.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_Cancel.Font = new System.Drawing.Font("微软雅黑", 12F);
this.btn_Cancel.ForeColor = System.Drawing.Color.FromArgb(107, 114, 128);
this.btn_Cancel.Location = new System.Drawing.Point(210, 280);
this.btn_Cancel.Name = "btn_Cancel";
this.btn_Cancel.Size = new System.Drawing.Size(150, 42);
this.btn_Cancel.TabIndex = 4;
this.btn_Cancel.Text = "取 消";
this.btn_Cancel.UseVisualStyleBackColor = false;
this.btn_Cancel.Click += new System.EventHandler(this.btn_Cancel_Click);
//
// lbl_Msg
//
this.lbl_Msg.Font = new System.Drawing.Font("微软雅黑", 9F);
this.lbl_Msg.ForeColor = System.Drawing.Color.FromArgb(239, 68, 68);
this.lbl_Msg.Location = new System.Drawing.Point(40, 332);
this.lbl_Msg.Name = "lbl_Msg";
this.lbl_Msg.Size = new System.Drawing.Size(320, 24);
this.lbl_Msg.TabIndex = 8;
this.lbl_Msg.Visible = false;
//
// 添加控件到卡片
//
this.pnl_Card.Controls.Add(this.lbl_Title);
this.pnl_Card.Controls.Add(this.lbl_SubTitle);
this.pnl_Card.Controls.Add(this.lbl_User);
this.pnl_Card.Controls.Add(this.txt_LoginID);
this.pnl_Card.Controls.Add(this.lbl_Pwd);
this.pnl_Card.Controls.Add(this.txt_userPassword);
this.pnl_Card.Controls.Add(this.btn_Login);
this.pnl_Card.Controls.Add(this.btn_Cancel);
this.pnl_Card.Controls.Add(this.lbl_Msg);
//
// Frm_Login
//
this.AcceptButton = this.btn_Login;
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.BackColor = System.Drawing.Color.FromArgb(240, 244, 248);
this.ClientSize = new System.Drawing.Size(1024, 720);
this.Controls.Add(this.pnl_Card);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "Frm_Login";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "称重数据采集分析管理系统 - 登录";
this.pnl_Card.ResumeLayout(false);
this.pnl_Card.PerformLayout();
this.ResumeLayout(false);
this.pnl_Card = new System.Windows.Forms.Panel();
this.lbl_Title = new System.Windows.Forms.Label();
this.lbl_SubTitle = new System.Windows.Forms.Label();
this.lbl_User = new System.Windows.Forms.Label();
this.txt_LoginID = new System.Windows.Forms.TextBox();
this.lbl_Pwd = new System.Windows.Forms.Label();
this.txt_userPassword = new System.Windows.Forms.TextBox();
this.btn_Login = new System.Windows.Forms.Button();
this.btn_Cancel = new System.Windows.Forms.Button();
this.lbl_Msg = new System.Windows.Forms.Label();
this.pnl_Card.SuspendLayout();
this.SuspendLayout();
//
// pnl_Card
//
this.pnl_Card.BackColor = System.Drawing.Color.White;
this.pnl_Card.Controls.Add(this.lbl_Title);
this.pnl_Card.Controls.Add(this.lbl_SubTitle);
this.pnl_Card.Controls.Add(this.lbl_User);
this.pnl_Card.Controls.Add(this.txt_LoginID);
this.pnl_Card.Controls.Add(this.lbl_Pwd);
this.pnl_Card.Controls.Add(this.txt_userPassword);
this.pnl_Card.Controls.Add(this.btn_Login);
this.pnl_Card.Controls.Add(this.btn_Cancel);
this.pnl_Card.Controls.Add(this.lbl_Msg);
this.pnl_Card.Location = new System.Drawing.Point(310, 180);
this.pnl_Card.Name = "pnl_Card";
this.pnl_Card.Size = new System.Drawing.Size(400, 380);
this.pnl_Card.TabIndex = 0;
this.pnl_Card.Paint += new System.Windows.Forms.PaintEventHandler(this.pnl_Card_Paint);
//
// lbl_Title
//
this.lbl_Title.Font = new System.Drawing.Font("微软雅黑", 20F, System.Drawing.FontStyle.Bold);
this.lbl_Title.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(58)))), ((int)(((byte)(95)))));
this.lbl_Title.Location = new System.Drawing.Point(20, 30);
this.lbl_Title.Name = "lbl_Title";
this.lbl_Title.Size = new System.Drawing.Size(360, 40);
this.lbl_Title.TabIndex = 0;
this.lbl_Title.Text = "⚖ 称重数据采集分析";
this.lbl_Title.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lbl_SubTitle
//
this.lbl_SubTitle.Font = new System.Drawing.Font("微软雅黑", 11F);
this.lbl_SubTitle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(107)))), ((int)(((byte)(114)))), ((int)(((byte)(128)))));
this.lbl_SubTitle.Location = new System.Drawing.Point(20, 72);
this.lbl_SubTitle.Name = "lbl_SubTitle";
this.lbl_SubTitle.Size = new System.Drawing.Size(360, 24);
this.lbl_SubTitle.TabIndex = 1;
this.lbl_SubTitle.Text = "管理系统";
this.lbl_SubTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// lbl_User
//
this.lbl_User.Font = new System.Drawing.Font("微软雅黑", 10F);
this.lbl_User.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(55)))), ((int)(((byte)(65)))), ((int)(((byte)(81)))));
this.lbl_User.Location = new System.Drawing.Point(40, 120);
this.lbl_User.Name = "lbl_User";
this.lbl_User.Size = new System.Drawing.Size(60, 24);
this.lbl_User.TabIndex = 2;
this.lbl_User.Text = "👤 用户名";
//
// txt_LoginID
//
this.txt_LoginID.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txt_LoginID.Font = new System.Drawing.Font("微软雅黑", 12F);
this.txt_LoginID.Location = new System.Drawing.Point(40, 148);
this.txt_LoginID.Name = "txt_LoginID";
this.txt_LoginID.Size = new System.Drawing.Size(320, 29);
this.txt_LoginID.TabIndex = 1;
this.txt_LoginID.Text = "admin";
this.txt_LoginID.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txt_LoginID_KeyDown);
//
// lbl_Pwd
//
this.lbl_Pwd.Font = new System.Drawing.Font("微软雅黑", 10F);
this.lbl_Pwd.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(55)))), ((int)(((byte)(65)))), ((int)(((byte)(81)))));
this.lbl_Pwd.Location = new System.Drawing.Point(40, 195);
this.lbl_Pwd.Name = "lbl_Pwd";
this.lbl_Pwd.Size = new System.Drawing.Size(60, 24);
this.lbl_Pwd.TabIndex = 4;
this.lbl_Pwd.Text = "🔒 密码";
//
// txt_userPassword
//
this.txt_userPassword.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txt_userPassword.Font = new System.Drawing.Font("微软雅黑", 12F);
this.txt_userPassword.Location = new System.Drawing.Point(40, 223);
this.txt_userPassword.Name = "txt_userPassword";
this.txt_userPassword.PasswordChar = '*';
this.txt_userPassword.Size = new System.Drawing.Size(320, 29);
this.txt_userPassword.TabIndex = 2;
this.txt_userPassword.Text = "admin";
this.txt_userPassword.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txt_userPassword_KeyDown);
//
// btn_Login
//
this.btn_Login.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(74)))), ((int)(((byte)(144)))), ((int)(((byte)(217)))));
this.btn_Login.Cursor = System.Windows.Forms.Cursors.Hand;
this.btn_Login.FlatAppearance.BorderSize = 0;
this.btn_Login.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_Login.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold);
this.btn_Login.ForeColor = System.Drawing.Color.White;
this.btn_Login.Location = new System.Drawing.Point(40, 280);
this.btn_Login.Name = "btn_Login";
this.btn_Login.Size = new System.Drawing.Size(150, 42);
this.btn_Login.TabIndex = 3;
this.btn_Login.Text = "登 录";
this.btn_Login.UseVisualStyleBackColor = false;
this.btn_Login.Click += new System.EventHandler(this.btn_Login_Click);
//
// btn_Cancel
//
this.btn_Cancel.BackColor = System.Drawing.Color.White;
this.btn_Cancel.Cursor = System.Windows.Forms.Cursors.Hand;
this.btn_Cancel.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(209)))), ((int)(((byte)(213)))), ((int)(((byte)(219)))));
this.btn_Cancel.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_Cancel.Font = new System.Drawing.Font("微软雅黑", 12F);
this.btn_Cancel.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(107)))), ((int)(((byte)(114)))), ((int)(((byte)(128)))));
this.btn_Cancel.Location = new System.Drawing.Point(210, 280);
this.btn_Cancel.Name = "btn_Cancel";
this.btn_Cancel.Size = new System.Drawing.Size(150, 42);
this.btn_Cancel.TabIndex = 4;
this.btn_Cancel.Text = "取 消";
this.btn_Cancel.UseVisualStyleBackColor = false;
this.btn_Cancel.Click += new System.EventHandler(this.btn_Cancel_Click);
//
// lbl_Msg
//
this.lbl_Msg.Font = new System.Drawing.Font("微软雅黑", 9F);
this.lbl_Msg.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(239)))), ((int)(((byte)(68)))), ((int)(((byte)(68)))));
this.lbl_Msg.Location = new System.Drawing.Point(40, 332);
this.lbl_Msg.Name = "lbl_Msg";
this.lbl_Msg.Size = new System.Drawing.Size(320, 24);
this.lbl_Msg.TabIndex = 8;
this.lbl_Msg.Visible = false;
//
// Frm_Login
//
this.AcceptButton = this.btn_Login;
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(240)))), ((int)(((byte)(244)))), ((int)(((byte)(248)))));
this.ClientSize = new System.Drawing.Size(1024, 720);
this.Controls.Add(this.pnl_Card);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "Frm_Login";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "称重数据采集分析管理系统 - 登录";
this.pnl_Card.ResumeLayout(false);
this.pnl_Card.PerformLayout();
this.ResumeLayout(false);
}
#endregion

View File

@@ -152,6 +152,8 @@ namespace MesWork
MesWorkForm.Curr_UserPassWord = txt_userPassword.Text;
MesWorkForm.Curr_UserName = name;
B_DB_Opera.LoginState_Save(MesWorkForm.Curr_LoginID, MesWorkForm.Curr_UserName, perm);
// 记录登录日志
try { B_DB_Opera.SaveLog_Request(MesWorkForm.Curr_Station, Log_Type.ZK_Login, "", Log_FromAndTo.ZK, Log_FromAndTo.ZK, $"用户[{name}({txt_LoginID.Text.Trim()})]登录系统", out long _); } catch { }

View File

@@ -1,61 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<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>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -16,6 +16,58 @@ namespace MesWork
{
public static bool LoginState_Query(out LoginStateInfo loginState)
{
loginState = null;
try
{
var sqlParameter = new SqlParameter[] {
new SqlParameter("@机器名", Environment.MachineName)
};
SqlOperation.ExecuteStoredProcedure("系统登录状态_查询", sqlParameter, out DataTable dt, out string err);
if (dt != null && dt.Rows.Count > 0 && dt.Rows[0]["result"].ToString() == "1")
{
loginState = new LoginStateInfo
{
LoginID = dt.Rows[0]["登录账号"]?.ToString() ?? "",
UserName = dt.Rows[0]["用户姓名"]?.ToString() ?? "",
Permission = dt.Rows[0]["权限"]?.ToString() ?? ""
};
return !string.IsNullOrWhiteSpace(loginState.LoginID) && !string.IsNullOrWhiteSpace(loginState.UserName);
}
}
catch { }
return false;
}
public static void LoginState_Save(string loginID, string userName, string permission)
{
try
{
var sqlParameter = new SqlParameter[] {
new SqlParameter("@机器名", Environment.MachineName),
new SqlParameter("@登录账号", loginID ?? ""),
new SqlParameter("@用户姓名", userName ?? ""),
new SqlParameter("@权限", permission ?? "")
};
SqlOperation.ExecuteStoredProcedure("系统登录状态_保存", sqlParameter, out string err);
}
catch { }
}
public static void LoginState_Clear()
{
try
{
var sqlParameter = new SqlParameter[] {
new SqlParameter("@机器名", Environment.MachineName)
};
SqlOperation.ExecuteStoredProcedure("系统登录状态_清空", sqlParameter, out string err);
}
catch { }
}
public static void Event_Signal_Log(string opName, int tagTypeCodeID, string signalName, string value)
{
var procedureName = "Event_Signal_Log";
@@ -449,6 +501,13 @@ namespace MesWork
}
public class LoginStateInfo
{
public string LoginID;
public string UserName;
public string Permission;
}
/// <summary>
/// 曲线采样点数据结构
/// </summary>

View File

@@ -1,40 +1,40 @@
using DC_A95;
using OpcBasic;
using OpcData;
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using SystemFramework;
namespace MesWork
{
/// <summary>
/// 设备状态的处理
/// </summary>
public partial class MesWorkForm
{
/// <summary>
/// 设备状态的处理
/// </summary>
/// <param name="e"></param>
private void MIS_Device(object e)
{
var eState = (DeviceDriver_BasicData.PlcStateEvetnArgs)e;
var ip = eState.IP.ToString();
var onLine = eState.OnLine;
}
}
}
using DC_A95;
using OpcBasic;
using OpcData;
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using SystemFramework;
namespace MesWork
{
/// <summary>
/// 设备状态的处理
/// </summary>
public partial class MesWorkForm
{
/// <summary>
/// 设备状态的处理
/// </summary>
/// <param name="e"></param>
private void MIS_Device(object e)
{
var eState = (DeviceDriver_BasicData.PlcStateEvetnArgs)e;
var ip = eState.IP.ToString();
var onLine = eState.OnLine;
}
}
}

View File

@@ -21,57 +21,69 @@ namespace MesWork
public MesWorkForm()
{
Frm_Login frm_Login = new Frm_Login();
if (frm_Login.ShowDialog() == DialogResult.OK)
if (!TryAutoLogin())
{
OnStart();
InitializeComponent();
InsertWeighingAnalysisNav();
CheckForIllegalCrossThreadCalls = false;
IsMdiContainer = false;
// 加载窗口图标
LoadWindowIcon();
// 设置用户名
lbl_UserName.Text = $"操作员:{MesWorkForm.Curr_UserName}";
// 标题追加工位号
if (!string.IsNullOrEmpty(Curr_Station))
Text = $"称重数据采集分析管理系统 - {Curr_Station}";
// 启动定时器
timer_OnLine_Show.Interval = 1000;
timer_OnLine_Show.Enabled = true;
timer_Clock.Interval = 1000;
timer_Clock.Enabled = true;
// 启动SQL在线检测
CommunicationCheckOnLine();
// 初始化扫码枪
if (MesWorkForm.IsUseBarcode == 1)
Frm_Login frm_Login = new Frm_Login();
if (frm_Login.ShowDialog() != DialogResult.OK)
{
BarcodeManager.Init();
BarcodeManager.OnBarcodeScanned = (opName, barcode) =>
{
// 在线程池中执行业务处理与PLC信号处理一致
System.Threading.ThreadPool.QueueUserWorkItem(_ =>
{
try { Barcode_HandleScan(opName, barcode); }
catch { }
});
};
Process.GetCurrentProcess().Kill();
return;
}
}
// 默认选中"称重作业"
SetActiveNav(pnl_NavWeighing);
}
else
OnStart();
InitializeComponent();
InsertWeighingAnalysisNav();
CheckForIllegalCrossThreadCalls = false;
IsMdiContainer = false;
// 加载窗口图标
LoadWindowIcon();
// 设置用户名
lbl_UserName.Text = $"操作员:{MesWorkForm.Curr_UserName}";
// 标题追加工位号
if (!string.IsNullOrEmpty(Curr_Station))
Text = $"称重数据采集分析管理系统 - {Curr_Station}";
// 启动定时器
timer_OnLine_Show.Interval = 1000;
timer_OnLine_Show.Enabled = true;
timer_Clock.Interval = 1000;
timer_Clock.Enabled = true;
// 启动SQL在线检测
CommunicationCheckOnLine();
// 初始化扫码枪
if (MesWorkForm.IsUseBarcode == 1)
{
Process.GetCurrentProcess().Kill();
BarcodeManager.Init();
BarcodeManager.OnBarcodeScanned = (opName, barcode) =>
{
// 在线程池中执行业务处理与PLC信号处理一致
System.Threading.ThreadPool.QueueUserWorkItem(_ =>
{
try { Barcode_HandleScan(opName, barcode); }
catch { }
});
};
}
// 默认选中"称重作业"
SetActiveNav(pnl_NavWeighing);
}
private bool TryAutoLogin()
{
if (!B_DB_Opera.LoginState_Query(out LoginStateInfo loginState)) return false;
Curr_LoginID = loginState.LoginID;
Curr_UserName = loginState.UserName;
Curr_UserPassWord = "";
return true;
}
// ====================================================================
@@ -324,6 +336,7 @@ namespace MesWork
BarcodeManager.Shutdown();
B_DB_Opera.SaveLog_Request(Curr_Station, Log_Type.ZK_Login, "", Log_FromAndTo.ZK, Log_FromAndTo.ZK, $"用户[{Curr_UserName}({Curr_LoginID})]退出称重系统", out long AID);
B_DB_Opera.LoginState_Clear();
Process.GetCurrentProcess().Kill();
}
}

View File

@@ -1,120 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -1,36 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("MesWork")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("MesWork")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("a8d0b4ef-e223-4b9a-b2d9-0156b7b8b073")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("MesWork")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("MesWork")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("a8d0b4ef-e223-4b9a-b2d9-0156b7b8b073")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

File diff suppressed because it is too large Load Diff

View File

@@ -1,397 +1,397 @@
<?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>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="返回2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\返回2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="HMI" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\HMI.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="列表2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\列表2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="信息_记录" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\信息_记录.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="辅助_协助" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\辅助_协助.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="更多" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\更多.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="帮助" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\帮助.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="JD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\JD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="配置2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\配置2.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="BOSS_数据管理1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\BOSS-数据管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="重新加载数据" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\重新加载数据.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="导出" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\导出.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="MBE风格多色图标_密码" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\MBE风格多色图标-密码.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="断开" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\断开.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="excelICON" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\excelICON.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="系统管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\系统管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="关闭系统" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\关闭系统.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="登录" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\登录.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="刷新" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\刷新.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="导入" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\导入.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="零件管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\零件管理.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="连接状态" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\连接状态.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="操作管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\操作管理.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="断开连接" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\断开连接.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="按键分割线" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\按键分割线.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="任务监控和查询" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\任务监控和查询.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="分布图1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\分布图.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="系统管理和监控服务" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\系统管理和监控服务.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ssbj" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\ssbj.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="解锁" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\解锁.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="配置1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\配置.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="_002_列表" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\002_列表.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="panlClose" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\panlClose.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="文档" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\文档.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="正确_成功" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\正确_成功.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="按键分割线浅" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\按键分割线浅.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="异常_危险" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\异常_危险.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="bitbug_favicon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\bitbug_favicon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="连接" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\连接.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="图表_线_通用_统计" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\图表_线_通用_统计.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="下载" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\下载.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="搜索" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\搜索.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="上传" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\上传.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="图表_柱" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\图表_柱.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="用户_账号_我的_未登录" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\用户_账号_我的_未登录.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="工作台" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\工作台.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="新增_添加" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\新增_添加.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="分布图" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\分布图.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="动态数据查询" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\动态数据查询.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="筛选" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\筛选.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="图表_饼" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\图表_饼.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="action_Cancel_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\action_Cancel_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="权限角色管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\权限角色管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="_0780fca3def52d8a02649c7aa2f8093a" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\0780fca3def52d8a02649c7aa2f8093a.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="编辑_修改" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\编辑_修改.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="关闭" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\关闭.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="手动打印" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\手动打印.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="上载" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\上载.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="BOSS_数据管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\BOSS-数据管理.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="保存" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\保存.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="列表" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\列表.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="合作" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\合作.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="断开状态" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\断开状态.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="配置21" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\配置2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="日志" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\日志.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="错误_失败" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\错误_失败.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="用户_账号_我的" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\用户_账号_我的.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="业务" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\业务.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="工具" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\工具.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="jk" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\jk.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="进度_沙漏" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\进度_沙漏.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="记录2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\记录2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="质控管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\质控管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="登出2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\登出2.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="删除" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\删除.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="添加" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\添加.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="备份_复制" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\备份_复制.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="写入托盘" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\写入托盘.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="配置" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\配置.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="日志1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\日志.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="密码" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\密码.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="锁定" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\锁定.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="staticjd" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\staticjd.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="组群_角色" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\组群_角色.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="增加" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\增加.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="打印机" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\打印机.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="审核_盖章" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\审核_盖章.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="退出" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\退出.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="布局图" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\布局图.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="工件信息" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\工件信息.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="清洗信息" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\清洗信息.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="能耗信息" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\能耗信息.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<?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>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="返回2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\返回2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="HMI" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\HMI.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="列表2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\列表2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="信息_记录" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\信息_记录.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="辅助_协助" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\辅助_协助.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="更多" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\更多.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="帮助" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\帮助.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="JD" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\JD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="配置2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\配置2.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="BOSS_数据管理1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\BOSS-数据管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="重新加载数据" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\重新加载数据.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="导出" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\导出.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="MBE风格多色图标_密码" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\MBE风格多色图标-密码.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="断开" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\断开.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="excelICON" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\excelICON.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="系统管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\系统管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="关闭系统" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\关闭系统.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="登录" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\登录.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="刷新" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\刷新.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="导入" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\导入.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="零件管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\零件管理.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="连接状态" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\连接状态.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="操作管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\操作管理.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="断开连接" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\断开连接.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="按键分割线" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\按键分割线.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="任务监控和查询" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\任务监控和查询.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="分布图1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\分布图.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="系统管理和监控服务" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\系统管理和监控服务.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ssbj" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\ssbj.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="解锁" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\解锁.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="配置1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\配置.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="_002_列表" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\002_列表.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="panlClose" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\panlClose.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="文档" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\文档.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="正确_成功" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\正确_成功.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="按键分割线浅" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\按键分割线浅.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="异常_危险" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\异常_危险.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="bitbug_favicon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\bitbug_favicon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="连接" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\连接.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="图表_线_通用_统计" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\图表_线_通用_统计.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="下载" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\下载.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="搜索" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\搜索.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="上传" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\上传.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="图表_柱" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\图表_柱.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="用户_账号_我的_未登录" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\用户_账号_我的_未登录.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="工作台" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\工作台.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="新增_添加" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\新增_添加.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="分布图" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\分布图.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="动态数据查询" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\动态数据查询.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="筛选" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\筛选.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="图表_饼" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\图表_饼.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="action_Cancel_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\action_Cancel_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="权限角色管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\权限角色管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="_0780fca3def52d8a02649c7aa2f8093a" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\0780fca3def52d8a02649c7aa2f8093a.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="编辑_修改" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\编辑_修改.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="关闭" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\关闭.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="手动打印" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\手动打印.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="上载" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\上载.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="BOSS_数据管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\BOSS-数据管理.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="保存" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\保存.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="列表" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\列表.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="合作" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\合作.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="断开状态" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\断开状态.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="配置21" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\配置2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="日志" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\日志.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="错误_失败" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\错误_失败.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="用户_账号_我的" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\用户_账号_我的.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="业务" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\业务.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="工具" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\工具.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="jk" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\jk.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="进度_沙漏" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\进度_沙漏.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="记录2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\记录2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="质控管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\质控管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="登出2" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\登出2.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="删除" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\删除.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="添加" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\添加.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="备份_复制" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\备份_复制.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="写入托盘" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\写入托盘.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="配置" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\配置.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="日志1" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\日志.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="密码" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\密码.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="锁定" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\锁定.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="staticjd" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\staticjd.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="组群_角色" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\组群_角色.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="增加" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\增加.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="打印机" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\打印机.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="审核_盖章" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\审核_盖章.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="退出" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\退出.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="布局图" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\布局图.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="工件信息" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\工件信息.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="清洗信息" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\清洗信息.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="能耗信息" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\icon\能耗信息.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@@ -1,26 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace WC_GKJ_OIL.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.14.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;
}
}
}
}
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace WC_GKJ_OIL.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.14.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;
}
}
}
}

View File

@@ -1,7 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

View File

@@ -1,46 +1,46 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Http;
using System.Net.Http;
using System.Text.RegularExpressions;
namespace WebApi
{
public enum ResponseCode
{
Fail = 00000,
Success = 00200,
}
public class ApiTools
{
private string msgModel = "{{\"code\":{0},\"message\":\"{1}\",\"result\":{2}}}";
public ApiTools()
{
}
public HttpResponseMessage MsgFormat(ResponseCode code, string explanation, string result)
{
string r = @"^(\-|\+)?\d+(\.\d+)?$";
string json = string.Empty;
if (Regex.IsMatch(result, r) || result.ToLower() == "true" || result.ToLower() == "false" || result == "[]" || result.Contains('{'))
{
json = string.Format(msgModel, (int)code, explanation, result);
}
else
{
if (result.Contains('"'))
{
json = string.Format(msgModel, (int)code, explanation, result);
}
else
{
json = string.Format(msgModel, (int)code, explanation, "\"" + result + "\"");
}
}
return new HttpResponseMessage { Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json") };
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Http;
using System.Net.Http;
using System.Text.RegularExpressions;
namespace WebApi
{
public enum ResponseCode
{
Fail = 00000,
Success = 00200,
}
public class ApiTools
{
private string msgModel = "{{\"code\":{0},\"message\":\"{1}\",\"result\":{2}}}";
public ApiTools()
{
}
public HttpResponseMessage MsgFormat(ResponseCode code, string explanation, string result)
{
string r = @"^(\-|\+)?\d+(\.\d+)?$";
string json = string.Empty;
if (Regex.IsMatch(result, r) || result.ToLower() == "true" || result.ToLower() == "false" || result == "[]" || result.Contains('{'))
{
json = string.Format(msgModel, (int)code, explanation, result);
}
else
{
if (result.Contains('"'))
{
json = string.Format(msgModel, (int)code, explanation, result);
}
else
{
json = string.Format(msgModel, (int)code, explanation, "\"" + result + "\"");
}
}
return new HttpResponseMessage { Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json") };
}
}
}

View File

@@ -1,148 +1,148 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace SlMesDbIterface
{
public partial class MyHttpRequest {
public static string MyPost(string url,string jsonStr)
{
string result = "";
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "text/html, application/xhtml+xml, application/json, */*";
req.Proxy = null;
req.KeepAlive = false;
byte[] data = Encoding.UTF8.GetBytes(jsonStr);
req.ContentLength = data.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
reqStream.Close();
}
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
//获取响应内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
result = reader.ReadToEnd();
}
Console.WriteLine(result);
}
catch (Exception err)
{
Console.WriteLine("<Error> " + err.Message);
}
return result;
}
public static string MyPost(string url,Dictionary<string,string> paramDict, string jsonStr)
{
string result = "";
try
{
StringBuilder builder = new StringBuilder();
builder.Append(url);
if (paramDict.Count > 0)
{
builder.Append("?");
int i = 0;
foreach (var item in paramDict)
{
if (i > 0)
builder.Append("&");
builder.AppendFormat("{0}={1}", item.Key, item.Value);
i++;
}
}
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(builder.ToString());
req.Method = "POST";
req.ContentType = "text/html, application/xhtml+xml, application/json, */*";
req.Proxy = null;
req.KeepAlive = false;
byte[] data = Encoding.UTF8.GetBytes(jsonStr);
req.ContentLength = data.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
reqStream.Close();
}
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
//获取响应内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
result = reader.ReadToEnd();
}
Console.WriteLine(result);
}
catch (Exception err)
{
Console.WriteLine("<Error> " + err.Message);
}
return result;
}
public static string MyGet(string url, Dictionary<string,string> paramDict)
{
string result = "";
StringBuilder builder = new StringBuilder();
builder.Append(url);
if (paramDict.Count > 0)
{
builder.Append("?");
int i = 0;
foreach (var item in paramDict)
{
if (i > 0)
builder.Append("&");
builder.AppendFormat("{0}={1}", item.Key, item.Value);
i++;
}
}
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(builder.ToString());
req.Method = "GET";
req.ContentType = "text/html, application/xhtml+xml, application/json, */*";
req.Proxy = null;
req.KeepAlive = false;
HttpWebResponse response = (HttpWebResponse)req.GetResponse();
Stream rs = response.GetResponseStream();
StreamReader sr = new StreamReader(rs, Encoding.UTF8);
result = sr.ReadToEnd();
sr.Close();
rs.Close();
return result;
}
}
}
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace SlMesDbIterface
{
public partial class MyHttpRequest {
public static string MyPost(string url,string jsonStr)
{
string result = "";
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "text/html, application/xhtml+xml, application/json, */*";
req.Proxy = null;
req.KeepAlive = false;
byte[] data = Encoding.UTF8.GetBytes(jsonStr);
req.ContentLength = data.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
reqStream.Close();
}
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
//获取响应内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
result = reader.ReadToEnd();
}
Console.WriteLine(result);
}
catch (Exception err)
{
Console.WriteLine("<Error> " + err.Message);
}
return result;
}
public static string MyPost(string url,Dictionary<string,string> paramDict, string jsonStr)
{
string result = "";
try
{
StringBuilder builder = new StringBuilder();
builder.Append(url);
if (paramDict.Count > 0)
{
builder.Append("?");
int i = 0;
foreach (var item in paramDict)
{
if (i > 0)
builder.Append("&");
builder.AppendFormat("{0}={1}", item.Key, item.Value);
i++;
}
}
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(builder.ToString());
req.Method = "POST";
req.ContentType = "text/html, application/xhtml+xml, application/json, */*";
req.Proxy = null;
req.KeepAlive = false;
byte[] data = Encoding.UTF8.GetBytes(jsonStr);
req.ContentLength = data.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
reqStream.Close();
}
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
//获取响应内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
result = reader.ReadToEnd();
}
Console.WriteLine(result);
}
catch (Exception err)
{
Console.WriteLine("<Error> " + err.Message);
}
return result;
}
public static string MyGet(string url, Dictionary<string,string> paramDict)
{
string result = "";
StringBuilder builder = new StringBuilder();
builder.Append(url);
if (paramDict.Count > 0)
{
builder.Append("?");
int i = 0;
foreach (var item in paramDict)
{
if (i > 0)
builder.Append("&");
builder.AppendFormat("{0}={1}", item.Key, item.Value);
i++;
}
}
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(builder.ToString());
req.Method = "GET";
req.ContentType = "text/html, application/xhtml+xml, application/json, */*";
req.Proxy = null;
req.KeepAlive = false;
HttpWebResponse response = (HttpWebResponse)req.GetResponse();
Stream rs = response.GetResponseStream();
StreamReader sr = new StreamReader(rs, Encoding.UTF8);
result = sr.ReadToEnd();
sr.Close();
rs.Close();
return result;
}
}
}

View File

@@ -1,147 +1,147 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Net.Http.Formatting;
using System.Net.Http.Headers;
using System.Text;
using System.Web.Http;
using System.Web.Http.Cors;
using System.Web.Http.SelfHost;
namespace WebApi
{
/// <summary>
///
/// </summary>
public class InitServer
{
/// <summary>
///
/// </summary>
HttpSelfHostConfiguration config = null;
/// <summary>
///
/// </summary>
HttpSelfHostServer server = null;
/// <summary>
///
/// </summary>
/// <param name="port"></param>
public InitServer(int port)
{
config = new HttpSelfHostConfiguration($"http://localhost:{port}");
config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
config.MapHttpAttributeRoutes();
//config.Routes.MapHttpRoute(
// name: "DefaultApi",
// routeTemplate: "api/{controller}/{id}",
// defaults: new { id = RouteParameter.Optional }
//);
// 自定义路由匹配到action
config.Routes.MapHttpRoute(
name: "API Default",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
server = new HttpSelfHostServer(config);
server.OpenAsync().Wait();
}
/// <summary>
///
/// </summary>
/// <param name="port"></param>
public void Close()
{
server.CloseAsync();
}
/// <summary>
///
/// </summary>
public class JsonContentNegotiator : IContentNegotiator
{
/// <summary>
///
/// </summary>
private readonly JsonMediaTypeFormatter _jsonFormatter;
/// <summary>
///
/// </summary>
/// <param name="formatter"></param>
public JsonContentNegotiator(JsonMediaTypeFormatter formatter)
{
_jsonFormatter = formatter;
}
/// <summary>
///
/// </summary>
/// <param name="type"></param>
/// <param name="request"></param>
/// <param name="formatters"></param>
/// <returns></returns>
public ContentNegotiationResult Negotiate(Type type, HttpRequestMessage request, IEnumerable<MediaTypeFormatter> formatters)
{
var result = new ContentNegotiationResult(_jsonFormatter, new MediaTypeHeaderValue("application/json"));
return result;
}
public static string Postring1(string url, string token, Dictionary<string, string> dic)
{
string results = "";
//url = "http://172.16.22.15:8000/" + url;
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.Headers.Add("Authorization", "Bearer " + token);
StringBuilder builder = new StringBuilder();
int i = 0;
foreach (var item in dic)
{
if (i > 0)
builder.Append("&");
builder.AppendFormat("{0}={1}", item.Key, item.Value);
i++;
}
byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
req.ContentLength = data.Length;
try
{
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
reqStream.Close();
}
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
//获取响应内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
results = reader.ReadToEnd();
}
return results;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
return e.Message;
throw;
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Net.Http.Formatting;
using System.Net.Http.Headers;
using System.Text;
using System.Web.Http;
using System.Web.Http.Cors;
using System.Web.Http.SelfHost;
namespace WebApi
{
/// <summary>
///
/// </summary>
public class InitServer
{
/// <summary>
///
/// </summary>
HttpSelfHostConfiguration config = null;
/// <summary>
///
/// </summary>
HttpSelfHostServer server = null;
/// <summary>
///
/// </summary>
/// <param name="port"></param>
public InitServer(int port)
{
config = new HttpSelfHostConfiguration($"http://localhost:{port}");
config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
config.MapHttpAttributeRoutes();
//config.Routes.MapHttpRoute(
// name: "DefaultApi",
// routeTemplate: "api/{controller}/{id}",
// defaults: new { id = RouteParameter.Optional }
//);
// 自定义路由匹配到action
config.Routes.MapHttpRoute(
name: "API Default",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
server = new HttpSelfHostServer(config);
server.OpenAsync().Wait();
}
/// <summary>
///
/// </summary>
/// <param name="port"></param>
public void Close()
{
server.CloseAsync();
}
/// <summary>
///
/// </summary>
public class JsonContentNegotiator : IContentNegotiator
{
/// <summary>
///
/// </summary>
private readonly JsonMediaTypeFormatter _jsonFormatter;
/// <summary>
///
/// </summary>
/// <param name="formatter"></param>
public JsonContentNegotiator(JsonMediaTypeFormatter formatter)
{
_jsonFormatter = formatter;
}
/// <summary>
///
/// </summary>
/// <param name="type"></param>
/// <param name="request"></param>
/// <param name="formatters"></param>
/// <returns></returns>
public ContentNegotiationResult Negotiate(Type type, HttpRequestMessage request, IEnumerable<MediaTypeFormatter> formatters)
{
var result = new ContentNegotiationResult(_jsonFormatter, new MediaTypeHeaderValue("application/json"));
return result;
}
public static string Postring1(string url, string token, Dictionary<string, string> dic)
{
string results = "";
//url = "http://172.16.22.15:8000/" + url;
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.Headers.Add("Authorization", "Bearer " + token);
StringBuilder builder = new StringBuilder();
int i = 0;
foreach (var item in dic)
{
if (i > 0)
builder.Append("&");
builder.AppendFormat("{0}={1}", item.Key, item.Value);
i++;
}
byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
req.ContentLength = data.Length;
try
{
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(data, 0, data.Length);
reqStream.Close();
}
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Stream stream = resp.GetResponseStream();
//获取响应内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
results = reader.ReadToEnd();
}
return results;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
return e.Message;
throw;
}
}
}
}
}

View File

@@ -1,79 +1,79 @@
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC 清单选项
如果想要更改 Windows 用户帐户控制级别,请使用
以下节点之一替换 requestedExecutionLevel 节点。
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
如果你的应用程序需要此虚拟化来实现向后兼容性,则移除此
元素。
-->
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- 设计此应用程序与其一起工作且已针对此应用程序进行测试的
Windows 版本的列表。取消评论适当的元素,
Windows 将自动选择最兼容的环境。 -->
<!-- Windows Vista -->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
<!-- Windows 7 -->
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
<!-- Windows 8 -->
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
<!-- Windows 8.1 -->
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
<!-- Windows 10 -->
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
</application>
</compatibility>
<!-- 指示该应用程序可感知 DPI 且 Windows 在 DPI 较高时将不会对其进行
自动缩放。Windows Presentation Foundation (WPF)应用程序自动感知 DPI无需
选择加入。选择加入此设置的 Windows 窗体应用程序(面向 .NET Framework 4.6)还应
在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing" 设置设置为 "true"。
将应用程序设为感知长路径。请参阅 https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation -->
<!--
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
</windowsSettings>
</application>
-->
<!-- 启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) -->
<!--
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
-->
</assembly>
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC 清单选项
如果想要更改 Windows 用户帐户控制级别,请使用
以下节点之一替换 requestedExecutionLevel 节点。
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
如果你的应用程序需要此虚拟化来实现向后兼容性,则移除此
元素。
-->
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- 设计此应用程序与其一起工作且已针对此应用程序进行测试的
Windows 版本的列表。取消评论适当的元素,
Windows 将自动选择最兼容的环境。 -->
<!-- Windows Vista -->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
<!-- Windows 7 -->
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
<!-- Windows 8 -->
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
<!-- Windows 8.1 -->
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
<!-- Windows 10 -->
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
</application>
</compatibility>
<!-- 指示该应用程序可感知 DPI 且 Windows 在 DPI 较高时将不会对其进行
自动缩放。Windows Presentation Foundation (WPF)应用程序自动感知 DPI无需
选择加入。选择加入此设置的 Windows 窗体应用程序(面向 .NET Framework 4.6)还应
在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing" 设置设置为 "true"。
将应用程序设为感知长路径。请参阅 https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation -->
<!--
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
</windowsSettings>
</application>
-->
<!-- 启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) -->
<!--
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
-->
</assembly>

File diff suppressed because it is too large Load Diff

View File

@@ -1,312 +1,312 @@
using ExternalDataSync;
using MesWork;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
/// <summary>
/// 报警类型
/// </summary>
public enum Log_Type
{
/// <summary>
/// 报警
/// </summary>
ZK_Alarm = 1,
/// <summary>
/// 登录
/// </summary>
ZK_Login = 2,
/// <summary>
/// 提示
/// </summary>
ZK_Tip = 3,
/// <summary>
/// MES处理信号
/// </summary>
ZK_MesHandler = 4,
/// <summary>
/// 配方下载
/// </summary>
ZK_DownloadRecipes = 5,
/// <summary>
/// 发动机上线
/// </summary>
ZK_OnLine = 6,
/// <summary>
/// 发动机下线
/// </summary>
ZK_OffLine = 7,
/// <summary>
/// MES请求接口的日志
/// </summary>
ZK_Interface_MesReq = 8,
/// <summary>
/// 1.AGV 请求进入
/// </summary>
AGV_To_MES_agvCallback = 9,
/// <summary>
/// 删除
/// 2025.11.25.0024.LLX
/// </summary>
ZK_Delete = 10,
/// <summary>
/// 未定义
/// </summary>
Undefined = 1000
}
public enum Log_FromAndTo
{
/// <summary>
/// PLC
/// </summary>
PLC = 3,
/// <summary>
/// AGV海康威视
/// </summary>
HK_AGV = 4,
/// <summary>
/// LES启明
/// </summary>
WMS = 5,
/// <summary>
/// AGV临工
/// </summary>
ZK = 10,
/// <summary>
/// 未定义
/// </summary>
Undefined = 1000
}
namespace LogRecord
{
/// <summary>
/// 日志处理
/// </summary>
public partial class LogRecord
{
/// <summary>
/// 构造
/// </summary>
public LogRecord()
{
InitializeComponent();
//this.Width = _Width;
//this.Height = _Height;
cb_Type.DataSource = Enum.GetNames(typeof(Log_Type));
cb_Type.Text = Log_Type.Undefined.ToString();
cb_From.DataSource = Enum.GetNames(typeof(Log_FromAndTo));
cb_From.Text = Log_FromAndTo.Undefined.ToString();
cb_To.DataSource = Enum.GetNames(typeof(Log_FromAndTo));
cb_To.Text = Log_FromAndTo.Undefined.ToString();
cb_StationName.Items.Add("");
foreach (var stationName in MesWorkForm.opNameList)
{
cb_StationName.Items.Add(stationName);
}
cb_StationName.SelectedIndex = 0;
var end = System.DateTime.Now.AddDays(1);
var start = end.AddDays(-3);
dtp_Start.Value = start;
dtp_End.Value = end;
}
/// <summary>
/// 钩子
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void LogRecord_Load(object sender, EventArgs e)
{
}
/// <summary>
///
/// </summary>
/// <param name="row"></param>
/// <param name="color"></param>
/// <param name="dgv"></param>
private void RowsColor(int row, Color color, DataGridView dgv)
{
var dt = (System.Data.DataTable)dgv.DataSource;
for (int i = 0; i < dt.Columns.Count; i++)
{
dgv.Rows[row].Cells[i].Style.BackColor = color;
}
}
public static bool Insert_ScanLog_EleCraft(Log_Type LogType,string stationName, string Log_Content)
{
bool success = false;
var sql =
$" INSERT INTO [记录_日志_扫码发送电子工艺]([Log_Station],[Log_Type],[Log_Time],[Log_Content])" +
$" VALUES('{stationName}','{LogType.ToString()}',getdate(),'{Log_Content}')";
success = DataLinkMesWork.SQLCommon.ExecuteSql(sql, MesWorkForm.ConnectionString, out string err2);
return success;
}
/// <summary>
/// 手动刷新
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_Refresh_Click(object sender, EventArgs e)
{
try
{
var start = dtp_Start.Value;
var end = dtp_End.Value;
var stationName = cb_StationName.Text;
var type = (Log_Type)Enum.Parse(typeof(Log_Type), cb_Type.Text);
var taskID = txt_TaskID.Text;
var from = (Log_FromAndTo)Enum.Parse(typeof(Log_FromAndTo), cb_From.Text);
var to = (Log_FromAndTo)Enum.Parse(typeof(Log_FromAndTo), cb_To.Text);
var req = txt_Req.Text;
var rsp = txt_Rsp.Text;
var whereStr = "";
if (start != null & end != null)
{
whereStr = whereStr + $" AND [请求时间] >= '{start.ToString("G")}' AND [请求时间] < '{end.ToString("yyyy-MM-dd 23:59:59")}'";
}
if (!string.IsNullOrEmpty(stationName) && !string.IsNullOrEmpty(req))
{
whereStr = whereStr + $" AND ([工位号] = '{stationName}' OR [请求内容] like '%{req}%')";
}
else if (!string.IsNullOrEmpty(stationName))
{
whereStr = whereStr + $" AND [工位号] = '{stationName}'";
}
else if (!string.IsNullOrEmpty(req))
{
whereStr = whereStr + $" AND [请求内容] like '%{req}%'";
}
if (type != Log_Type.Undefined)
{
whereStr = whereStr + $" AND [日志类型] = '{type.ToString()}'";
}
if (!string.IsNullOrEmpty(taskID))
{
whereStr = whereStr + $" AND [TaskID] like '%{taskID}%'";
}
if (from != Log_FromAndTo.Undefined)
{
whereStr = whereStr + $" AND [请求FROM] like '%{from}%'";
}
if (to != Log_FromAndTo.Undefined)
{
whereStr = whereStr + $" AND [请求TO] like '%{to}%'";
}
if (!string.IsNullOrEmpty(rsp))
{
whereStr = whereStr + $" AND [响应内容] like '%{rsp}%'";
}
var sql =
$" SELECT " +
$" [工位号] '工位号'" +
$" ,[日志类型] '类型'" +
$" ,[请求时间] '请求时间'" +
$" ,[请求内容] '请求内容'" +
$" ,[响应时间] '响应时间'" +
$" ,[响应内容] '响应内容'" +
$" ,[请求CMD] 'CMD'" +
$" ,[请求FROM] 'FROM'" +
$" ,[请求TO] 'TO'" +
$" ,[TaskID] 'TaskID'" +
$" ,[AID] 'AID'" +
$" FROM [记录_日志_项目运行日志]" +
$" WHERE 1=1 {whereStr}" +
$" ORDER BY [请求时间] DESC";
DataLinkMesWork.SQLCommon.ExecuteDataTable(sql, MesWorkForm.ConnectionString, out DataTable dt, out string err2);
label_Count.Text = $"消息数量:{dt.Rows.Count}";
dgv_Log.DataSource = dt;
for (int i = 0; i < dt.Rows.Count; i++)
{
// Log_Type LogType = Log_Type.Undefined;
var LogTypeStr = "";
try
{
LogTypeStr = dt.Rows[i]["类型"].ToString();
// LogType = (Log_Type)Enum.Parse(typeof(Log_Type), LogTypeStr);
}
catch (Exception err)
{
MessageBox.Show($"填充日志类型,类型转换出错!{err.Message}");
break;
}
switch (LogTypeStr)
{
case "ZK_Alarm":
case "ZK_Delete":
RowsColor(i, MesWorkForm.color_Red, dgv_Log);
break;
case "ZK_Login":
RowsColor(i, MesWorkForm.color_Green, dgv_Log);
break;
case "ZK_Tip":
RowsColor(i, MesWorkForm.color_Yellow, dgv_Log);
break;
default:
RowsColor(i, MesWorkForm.color_Grey, dgv_Log);
break;
}
}
dgv_Log.ClearSelection();
//dgv_Log.CurrentCell = null;
//dgv_Log.Rows[0].Selected = false;
}
catch (Exception err)
{
MessageBox.Show($"点击查询按钮产生的未预知错误:【{err.Message }】------{err.StackTrace}");
}
}
private void dgv_Log_CellClick(object sender, DataGridViewCellEventArgs e)
{
try
{
var AID = dgv_Log.CurrentRow.Cells["AID"].Value.ToString();
var sql = $"SELECT [请求内容安全] FROM [记录_日志_项目运行日志] WHERE [AID] = '{AID}'";
DataLinkMesWork.SQLCommon.ExecuteDataTable(sql, MesWorkForm.ConnectionString, out DataTable dt, out string err2);
var reqStrSafe = dt.Rows[0][0].ToString();
var reqStr = dgv_Log.CurrentRow.Cells["请求内容"].Value.ToString();
txt_RequestContext_3.Text = reqStr;
txt_ResponseContext_3.Text = dgv_Log.CurrentRow.Cells["响应内容"].Value.ToString();
}
catch (Exception err)
{
}
}
}
}
using ExternalDataSync;
using MesWork;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
/// <summary>
/// 报警类型
/// </summary>
public enum Log_Type
{
/// <summary>
/// 报警
/// </summary>
ZK_Alarm = 1,
/// <summary>
/// 登录
/// </summary>
ZK_Login = 2,
/// <summary>
/// 提示
/// </summary>
ZK_Tip = 3,
/// <summary>
/// MES处理信号
/// </summary>
ZK_MesHandler = 4,
/// <summary>
/// 配方下载
/// </summary>
ZK_DownloadRecipes = 5,
/// <summary>
/// 发动机上线
/// </summary>
ZK_OnLine = 6,
/// <summary>
/// 发动机下线
/// </summary>
ZK_OffLine = 7,
/// <summary>
/// MES请求接口的日志
/// </summary>
ZK_Interface_MesReq = 8,
/// <summary>
/// 1.AGV 请求进入
/// </summary>
AGV_To_MES_agvCallback = 9,
/// <summary>
/// 删除
/// 2025.11.25.0024.LLX
/// </summary>
ZK_Delete = 10,
/// <summary>
/// 未定义
/// </summary>
Undefined = 1000
}
public enum Log_FromAndTo
{
/// <summary>
/// PLC
/// </summary>
PLC = 3,
/// <summary>
/// AGV海康威视
/// </summary>
HK_AGV = 4,
/// <summary>
/// LES启明
/// </summary>
WMS = 5,
/// <summary>
/// AGV临工
/// </summary>
ZK = 10,
/// <summary>
/// 未定义
/// </summary>
Undefined = 1000
}
namespace LogRecord
{
/// <summary>
/// 日志处理
/// </summary>
public partial class LogRecord
{
/// <summary>
/// 构造
/// </summary>
public LogRecord()
{
InitializeComponent();
//this.Width = _Width;
//this.Height = _Height;
cb_Type.DataSource = Enum.GetNames(typeof(Log_Type));
cb_Type.Text = Log_Type.Undefined.ToString();
cb_From.DataSource = Enum.GetNames(typeof(Log_FromAndTo));
cb_From.Text = Log_FromAndTo.Undefined.ToString();
cb_To.DataSource = Enum.GetNames(typeof(Log_FromAndTo));
cb_To.Text = Log_FromAndTo.Undefined.ToString();
cb_StationName.Items.Add("");
foreach (var stationName in MesWorkForm.opNameList)
{
cb_StationName.Items.Add(stationName);
}
cb_StationName.SelectedIndex = 0;
var end = System.DateTime.Now.AddDays(1);
var start = end.AddDays(-3);
dtp_Start.Value = start;
dtp_End.Value = end;
}
/// <summary>
/// 钩子
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void LogRecord_Load(object sender, EventArgs e)
{
}
/// <summary>
///
/// </summary>
/// <param name="row"></param>
/// <param name="color"></param>
/// <param name="dgv"></param>
private void RowsColor(int row, Color color, DataGridView dgv)
{
var dt = (System.Data.DataTable)dgv.DataSource;
for (int i = 0; i < dt.Columns.Count; i++)
{
dgv.Rows[row].Cells[i].Style.BackColor = color;
}
}
public static bool Insert_ScanLog_EleCraft(Log_Type LogType,string stationName, string Log_Content)
{
bool success = false;
var sql =
$" INSERT INTO [记录_日志_扫码发送电子工艺]([Log_Station],[Log_Type],[Log_Time],[Log_Content])" +
$" VALUES('{stationName}','{LogType.ToString()}',getdate(),'{Log_Content}')";
success = DataLinkMesWork.SQLCommon.ExecuteSql(sql, MesWorkForm.ConnectionString, out string err2);
return success;
}
/// <summary>
/// 手动刷新
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_Refresh_Click(object sender, EventArgs e)
{
try
{
var start = dtp_Start.Value;
var end = dtp_End.Value;
var stationName = cb_StationName.Text;
var type = (Log_Type)Enum.Parse(typeof(Log_Type), cb_Type.Text);
var taskID = txt_TaskID.Text;
var from = (Log_FromAndTo)Enum.Parse(typeof(Log_FromAndTo), cb_From.Text);
var to = (Log_FromAndTo)Enum.Parse(typeof(Log_FromAndTo), cb_To.Text);
var req = txt_Req.Text;
var rsp = txt_Rsp.Text;
var whereStr = "";
if (start != null & end != null)
{
whereStr = whereStr + $" AND [请求时间] >= '{start.ToString("G")}' AND [请求时间] < '{end.ToString("yyyy-MM-dd 23:59:59")}'";
}
if (!string.IsNullOrEmpty(stationName) && !string.IsNullOrEmpty(req))
{
whereStr = whereStr + $" AND ([工位号] = '{stationName}' OR [请求内容] like '%{req}%')";
}
else if (!string.IsNullOrEmpty(stationName))
{
whereStr = whereStr + $" AND [工位号] = '{stationName}'";
}
else if (!string.IsNullOrEmpty(req))
{
whereStr = whereStr + $" AND [请求内容] like '%{req}%'";
}
if (type != Log_Type.Undefined)
{
whereStr = whereStr + $" AND [日志类型] = '{type.ToString()}'";
}
if (!string.IsNullOrEmpty(taskID))
{
whereStr = whereStr + $" AND [TaskID] like '%{taskID}%'";
}
if (from != Log_FromAndTo.Undefined)
{
whereStr = whereStr + $" AND [请求FROM] like '%{from}%'";
}
if (to != Log_FromAndTo.Undefined)
{
whereStr = whereStr + $" AND [请求TO] like '%{to}%'";
}
if (!string.IsNullOrEmpty(rsp))
{
whereStr = whereStr + $" AND [响应内容] like '%{rsp}%'";
}
var sql =
$" SELECT " +
$" [工位号] '工位号'" +
$" ,[日志类型] '类型'" +
$" ,[请求时间] '请求时间'" +
$" ,[请求内容] '请求内容'" +
$" ,[响应时间] '响应时间'" +
$" ,[响应内容] '响应内容'" +
$" ,[请求CMD] 'CMD'" +
$" ,[请求FROM] 'FROM'" +
$" ,[请求TO] 'TO'" +
$" ,[TaskID] 'TaskID'" +
$" ,[AID] 'AID'" +
$" FROM [记录_日志_项目运行日志]" +
$" WHERE 1=1 {whereStr}" +
$" ORDER BY [请求时间] DESC";
DataLinkMesWork.SQLCommon.ExecuteDataTable(sql, MesWorkForm.ConnectionString, out DataTable dt, out string err2);
label_Count.Text = $"消息数量:{dt.Rows.Count}";
dgv_Log.DataSource = dt;
for (int i = 0; i < dt.Rows.Count; i++)
{
// Log_Type LogType = Log_Type.Undefined;
var LogTypeStr = "";
try
{
LogTypeStr = dt.Rows[i]["类型"].ToString();
// LogType = (Log_Type)Enum.Parse(typeof(Log_Type), LogTypeStr);
}
catch (Exception err)
{
MessageBox.Show($"填充日志类型,类型转换出错!{err.Message}");
break;
}
switch (LogTypeStr)
{
case "ZK_Alarm":
case "ZK_Delete":
RowsColor(i, MesWorkForm.color_Red, dgv_Log);
break;
case "ZK_Login":
RowsColor(i, MesWorkForm.color_Green, dgv_Log);
break;
case "ZK_Tip":
RowsColor(i, MesWorkForm.color_Yellow, dgv_Log);
break;
default:
RowsColor(i, MesWorkForm.color_Grey, dgv_Log);
break;
}
}
dgv_Log.ClearSelection();
//dgv_Log.CurrentCell = null;
//dgv_Log.Rows[0].Selected = false;
}
catch (Exception err)
{
MessageBox.Show($"点击查询按钮产生的未预知错误:【{err.Message }】------{err.StackTrace}");
}
}
private void dgv_Log_CellClick(object sender, DataGridViewCellEventArgs e)
{
try
{
var AID = dgv_Log.CurrentRow.Cells["AID"].Value.ToString();
var sql = $"SELECT [请求内容安全] FROM [记录_日志_项目运行日志] WHERE [AID] = '{AID}'";
DataLinkMesWork.SQLCommon.ExecuteDataTable(sql, MesWorkForm.ConnectionString, out DataTable dt, out string err2);
var reqStrSafe = dt.Rows[0][0].ToString();
var reqStr = dgv_Log.CurrentRow.Cells["请求内容"].Value.ToString();
txt_RequestContext_3.Text = reqStr;
txt_ResponseContext_3.Text = dgv_Log.CurrentRow.Cells["响应内容"].Value.ToString();
}
catch (Exception err)
{
}
}
}
}

View File

@@ -1,153 +1,153 @@
<?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="工位号.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="类型.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="CMD.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="FROM.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="TO.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="请求时间.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="请求内容.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="TaskID.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="响应时间.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="响应内容.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="AID.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<?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="工位号.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="类型.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="CMD.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="FROM.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="TO.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="请求时间.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="请求内容.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="TaskID.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="响应时间.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="响应内容.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="AID.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>

View File

@@ -1,31 +1,31 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.33530.505
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WC_GKJ_OIL", "SCADA\WC_GKJ_OIL.csproj", "{A8D0B4EF-E223-4B9A-B2D9-0156B7B8B073}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "01_MW_Log", "MW_Log\01_MW_Log.csproj", "{1AC112C4-2400-4D03-A26D-2E3ACE6FE6D4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A8D0B4EF-E223-4B9A-B2D9-0156B7B8B073}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A8D0B4EF-E223-4B9A-B2D9-0156B7B8B073}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A8D0B4EF-E223-4B9A-B2D9-0156B7B8B073}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A8D0B4EF-E223-4B9A-B2D9-0156B7B8B073}.Release|Any CPU.Build.0 = Release|Any CPU
{1AC112C4-2400-4D03-A26D-2E3ACE6FE6D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1AC112C4-2400-4D03-A26D-2E3ACE6FE6D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1AC112C4-2400-4D03-A26D-2E3ACE6FE6D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1AC112C4-2400-4D03-A26D-2E3ACE6FE6D4}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {69A6FC91-6BE5-4336-BCE5-EF3A80318EBA}
EndGlobalSection
EndGlobal
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.33530.505
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WC_GKJ_OIL", "SCADA\WC_GKJ_OIL.csproj", "{A8D0B4EF-E223-4B9A-B2D9-0156B7B8B073}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "01_MW_Log", "MW_Log\01_MW_Log.csproj", "{1AC112C4-2400-4D03-A26D-2E3ACE6FE6D4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A8D0B4EF-E223-4B9A-B2D9-0156B7B8B073}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A8D0B4EF-E223-4B9A-B2D9-0156B7B8B073}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A8D0B4EF-E223-4B9A-B2D9-0156B7B8B073}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A8D0B4EF-E223-4B9A-B2D9-0156B7B8B073}.Release|Any CPU.Build.0 = Release|Any CPU
{1AC112C4-2400-4D03-A26D-2E3ACE6FE6D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1AC112C4-2400-4D03-A26D-2E3ACE6FE6D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1AC112C4-2400-4D03-A26D-2E3ACE6FE6D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1AC112C4-2400-4D03-A26D-2E3ACE6FE6D4}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {69A6FC91-6BE5-4336-BCE5-EF3A80318EBA}
EndGlobalSection
EndGlobal