基线 SVN r240

SVN-Revision: r240
This commit is contained in:
cyf
2025-02-06 06:46:06 +00:00
commit ab56a9bcf7
5317 changed files with 902274 additions and 0 deletions
+210
View File
@@ -0,0 +1,210 @@
namespace CensorModule
{
partial class FrmMain
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.panel2 = new System.Windows.Forms.Panel();
this.pl_Main = new DevExpress.XtraEditors.PanelControl();
this.txtLog = new System.Windows.Forms.TextBox();
this.panelControl1 = new DevExpress.XtraEditors.PanelControl();
this.che_some = new DevExpress.XtraEditors.CheckEdit();
this.che_All = new DevExpress.XtraEditors.CheckEdit();
this.lab_Sop = new DevExpress.XtraEditors.LabelControl();
this.lab_Name = new DevExpress.XtraEditors.LabelControl();
this.labelControl1 = new DevExpress.XtraEditors.LabelControl();
this.btn_Reset = new DevExpress.XtraEditors.SimpleButton();
this.btn_start = new DevExpress.XtraEditors.SimpleButton();
this.lbl_progress = new System.Windows.Forms.ProgressBar();
this.panel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pl_Main)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.panelControl1)).BeginInit();
this.panelControl1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.che_some.Properties)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.che_All.Properties)).BeginInit();
this.SuspendLayout();
//
// panel2
//
this.panel2.Controls.Add(this.pl_Main);
this.panel2.Controls.Add(this.txtLog);
this.panel2.Controls.Add(this.panelControl1);
this.panel2.Controls.Add(this.lbl_progress);
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel2.Location = new System.Drawing.Point(0, 0);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(724, 465);
this.panel2.TabIndex = 11;
//
// pl_Main
//
this.pl_Main.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder;
this.pl_Main.Dock = System.Windows.Forms.DockStyle.Fill;
this.pl_Main.Location = new System.Drawing.Point(0, 172);
this.pl_Main.Name = "pl_Main";
this.pl_Main.Size = new System.Drawing.Size(724, 231);
this.pl_Main.TabIndex = 14;
//
// txtLog
//
this.txtLog.Dock = System.Windows.Forms.DockStyle.Top;
this.txtLog.Location = new System.Drawing.Point(0, 0);
this.txtLog.Multiline = true;
this.txtLog.Name = "txtLog";
this.txtLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.txtLog.Size = new System.Drawing.Size(724, 172);
this.txtLog.TabIndex = 13;
//
// panelControl1
//
this.panelControl1.Controls.Add(this.che_some);
this.panelControl1.Controls.Add(this.che_All);
this.panelControl1.Controls.Add(this.lab_Sop);
this.panelControl1.Controls.Add(this.lab_Name);
this.panelControl1.Controls.Add(this.labelControl1);
this.panelControl1.Controls.Add(this.btn_Reset);
this.panelControl1.Controls.Add(this.btn_start);
this.panelControl1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.panelControl1.Location = new System.Drawing.Point(0, 403);
this.panelControl1.Name = "panelControl1";
this.panelControl1.Size = new System.Drawing.Size(724, 34);
this.panelControl1.TabIndex = 12;
//
// che_some
//
this.che_some.Location = new System.Drawing.Point(480, 7);
this.che_some.Name = "che_some";
this.che_some.Properties.Caption = "简易检索";
this.che_some.Size = new System.Drawing.Size(75, 19);
this.che_some.TabIndex = 2;
this.che_some.CheckStateChanged += new System.EventHandler(this.OnsomeCheckedChanged);
//
// che_All
//
this.che_All.EditValue = true;
this.che_All.Location = new System.Drawing.Point(394, 7);
this.che_All.Name = "che_All";
this.che_All.Properties.Caption = "全局检索";
this.che_All.Size = new System.Drawing.Size(75, 19);
this.che_All.TabIndex = 2;
this.che_All.CheckStateChanged += new System.EventHandler(this.OnAllCheckedChanged);
//
// lab_Sop
//
this.lab_Sop.Location = new System.Drawing.Point(70, 10);
this.lab_Sop.Name = "lab_Sop";
this.lab_Sop.Size = new System.Drawing.Size(0, 14);
this.lab_Sop.TabIndex = 1;
//
// lab_Name
//
this.lab_Name.Appearance.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold);
this.lab_Name.Location = new System.Drawing.Point(123, 10);
this.lab_Name.Name = "lab_Name";
this.lab_Name.Size = new System.Drawing.Size(52, 14);
this.lab_Name.TabIndex = 1;
this.lab_Name.Text = "当前项目";
//
// labelControl1
//
this.labelControl1.Appearance.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Bold);
this.labelControl1.Location = new System.Drawing.Point(12, 10);
this.labelControl1.Name = "labelControl1";
this.labelControl1.Size = new System.Drawing.Size(52, 14);
this.labelControl1.TabIndex = 1;
this.labelControl1.Text = "当前进度";
//
// btn_Reset
//
this.btn_Reset.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btn_Reset.Location = new System.Drawing.Point(561, 6);
this.btn_Reset.Name = "btn_Reset";
this.btn_Reset.Size = new System.Drawing.Size(75, 23);
this.btn_Reset.TabIndex = 0;
this.btn_Reset.Text = "重置";
this.btn_Reset.Click += new System.EventHandler(this.OnResetClick);
//
// btn_start
//
this.btn_start.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btn_start.Location = new System.Drawing.Point(642, 6);
this.btn_start.Name = "btn_start";
this.btn_start.Size = new System.Drawing.Size(75, 23);
this.btn_start.TabIndex = 0;
this.btn_start.Text = "开始";
this.btn_start.Click += new System.EventHandler(this.OnStartClick);
//
// lbl_progress
//
this.lbl_progress.Dock = System.Windows.Forms.DockStyle.Bottom;
this.lbl_progress.Location = new System.Drawing.Point(0, 437);
this.lbl_progress.Margin = new System.Windows.Forms.Padding(2);
this.lbl_progress.Name = "lbl_progress";
this.lbl_progress.Size = new System.Drawing.Size(724, 28);
this.lbl_progress.TabIndex = 9;
//
// FrmMain
//
this.Appearance.BackColor = System.Drawing.SystemColors.Control;
this.Appearance.Options.UseBackColor = true;
this.Appearance.Options.UseFont = true;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(724, 465);
this.Controls.Add(this.panel2);
this.Name = "FrmMain";
this.Text = "一键审查模板";
this.panel2.ResumeLayout(false);
this.panel2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pl_Main)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.panelControl1)).EndInit();
this.panelControl1.ResumeLayout(false);
this.panelControl1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.che_some.Properties)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.che_All.Properties)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.ProgressBar lbl_progress;
private System.Windows.Forms.TextBox txtLog;
private DevExpress.XtraEditors.PanelControl panelControl1;
private DevExpress.XtraEditors.SimpleButton btn_start;
private DevExpress.XtraEditors.SimpleButton btn_Reset;
private DevExpress.XtraEditors.LabelControl lab_Sop;
private DevExpress.XtraEditors.LabelControl labelControl1;
private DevExpress.XtraEditors.PanelControl pl_Main;
private DevExpress.XtraEditors.LabelControl lab_Name;
private DevExpress.XtraEditors.CheckEdit che_All;
private DevExpress.XtraEditors.CheckEdit che_some;
}
}
+444
View File
@@ -0,0 +1,444 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Lskj.Control;
using Lskj.Data;
using Lskj.Business.Impl;
using Lskj.Business;
using Lskj.Model;
using Lskj.Util;
using System.Diagnostics;
using Lskj.Core;
using System.Threading;
namespace CensorModule
{
public partial class FrmMain : BaseForm
{
public FrmMain()
{
InitializeComponent();
InitializeControl();
this.TopLevel = true; //重要的一个步骤
}
#region
private bool NewInitSuccess = false;//初始化标识字段
private int ModuleCount;//需要测试模块的个数
private bool isFinish;//是否加载完成
private DataTable MenuConfigdt;//获取所有模块表
#endregion
#region
/// <summary>
/// <para>说明:开始模块检测方法</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2020-03-19 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
public void start()
{
this.lbl_progress.Maximum = ModuleCount = MenuConfigdt.Rows.Count;
RefreshLogUIThread(string.Format("开始检测发布模板:\r\n"));
RefreshLogUIThread(string.Format("开始测试:.\r\n"));
for (int i = 0; i < MenuConfigdt.Rows.Count; i++)
{
DataRow rowItem = MenuConfigdt.Rows[i];
//更新进度条进度状态,当进度条为跑马灯模式时(ProgressBarStyle.Marquee)不可能调用该方法
this.lbl_progress.PerformStep();
//设置进度百分比
double dCount = ModuleCount, dProg = this.lbl_progress.Value;
this.lbl_progress.Text = (((i + 1) / dCount) * 100).ToString() + "%";
this.lab_Sop.Text = (i + 1) + "/" + dCount;
this.lab_Name.Text = "当前项目:" + rowItem["MenuCaption"] + "";
this.lbl_progress.Refresh();
OpenModule(rowItem["menuId"] + "", rowItem["MenuCaption"] + "", rowItem["DllFileName"] + "", rowItem["PurviewId"] + "", rowItem["UrlParams"] + "");
}
this.pl_Main.Controls.Clear();
isFinish = true;
MessageUtil.Show("加载完毕请统计错误信息!");
}
/// <summary>
/// <para>说明:打开模块</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2020-03-18 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="menuId">The menu identifier.</param>
/// <param name="menuName">Name of the menu.</param>
/// <param name="modelFlag">The model flag.</param>
/// <param name="urlParams">The URL parameters.</param>
public void OpenModule(string menuId, string menuName, string dllName, string modelFlag, string urlParams)
{
// 验证参数
if (string.IsNullOrWhiteSpace(menuId) || string.IsNullOrWhiteSpace(dllName))
{
MessageUtil.Show(ResourceKeys.NotFoundMenu);
return;
}
// 验证权限
int purview = MainImpl.GetUserPurviewsByMenuId(menuId);
if (purview == 0)
{
return;
}
LogUtil.WriteDebug(menuId.ToString(), "操作模块", menuName, menuName);
DllModule module = new DllModule
{
DllName = ReplaceDllFileName(dllName),
Id = menuId,
Name = menuName
};
string[] args = new string[]{
menuName,
ERPInfo.Instance.UserId,
ERPInfo.Instance.UserName,
purview + "",
urlParams,
menuId
};
dllName = MainImpl.GetDefaultValue(dllName);
if (dllName.ToLower().Contains(".exe"))
{
//WinHelper.WinExec(dllName);
return;
}
else if (dllName.ToLower().IndexOf("http:", StringComparison.OrdinalIgnoreCase) != -1 ||
dllName.ToLower().IndexOf("www.", StringComparison.OrdinalIgnoreCase) != -1 ||
dllName.ToLower().IndexOf("ftp:", StringComparison.OrdinalIgnoreCase) != -1)
{
//Process.Start(dllName);
return;
}
else
{
if (string.IsNullOrWhiteSpace(modelFlag))
{
//MessageBox.Show(PubUtil.AbsolutelyLibPath + dllName+" "+ menuName+" "+purview+" "+urlParams);
// 打开delphi程序
// DelphiHelper.LoadDelphiDll(PubUtil.AbsolutelyLibPath + dllName, "", menuName, "", "", purview, urlParams);
return;
}
else
{
// 打开module程序
OpenModuleText(module, args);
}
}
}
/// <summary>
/// <para>说明:循环打开模块测试</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2020-03-18 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="tabMain">The tab main.</param>
/// <param name="module">The module.</param>
/// <param name="args">The arguments.</param>
public void OpenModuleText(DllModule module, string[] args)
{
try
{
Application.DoEvents();
foreach (Form frm in this.pl_Main.Controls)
{
frm.Dispose();
}
IForm iform = FormHelper.LoadDllForm(module.DllName, args);
// 菜单打开的模块默认最大化,界面FormState设置为Normal模式,否则会出现界面不是全屏,会显示默认阴影界面
iform.SubForm.WindowState = FormWindowState.Maximized;
Form form = iform.SubForm;
form.TopLevel = false;
form.Dock = DockStyle.Fill;
form.FormBorderStyle = FormBorderStyle.None;
pl_Main.Controls.Add(form);
form.Show();
//LastModuleForm.Add(module);
}
catch (Exception ex)
{
RefreshLogUIThread(DateTime.Now + "打开" + module.Name + "失败!" + "\r模块id:" + module.Id + "\r\n");
LogUtil.WriteError("打开" + module.Name + "模块失败!", ex);
}
}
#endregion
#region
/// <summary>
/// <para>说明:初始化检测发布平台工具</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2020-03-19 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
private void InitializeControl()
{
try
{
RefreshLog(DateTime.Now + "正在初始化平台.\r\n");
if (DBConfig.Instance.CreateConnection())
{
DataTable table = MainImpl.GetEmployeeList();
isFinish = false;
DataRow[] drRows = table.Select("UserName='" + DBConfig.Instance.LoginName + "'");
DataRow drRow = drRows[0];
if (drRow != null)
{
ERPInfo.Instance.UserId = drRow["UserId"] + "";
ERPInfo.Instance.UserName = drRow["UserName"] + "";
}
MenuConfigdt = GetMenusByMenuType();
NewInitSuccess = true;
RefreshLog(DateTime.Now + "初始化平台成功.\r\n");
//获取指定目录下所有文件数量(实际过程忽略)
ModuleCount = 1;
ModuleCount = MenuConfigdt.Rows.Count > 0 ? MenuConfigdt.Rows.Count : ModuleCount;
//设置进度条基础属性
this.lbl_progress.Value = 0;
this.lbl_progress.Style = ProgressBarStyle.Blocks;
this.lbl_progress.Minimum = 0;
this.lbl_progress.MarqueeAnimationSpeed = 100;
this.lbl_progress.Step = 1;
this.lbl_progress.Text = "0%";
this.lbl_progress.Refresh();
}
else
{
RefreshLog(DateTime.Now + " 初始化平台失败.\r\n");
}
}
catch (Exception ex)
{
RefreshLog(DateTime.Now + string.Format("初始化失败.原因:{0}.\r\n", ex.Message));
}
}
/// <summary>
/// <para>说明:初始化所有模块表</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2020-03-19 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <returns>DataTable.</returns>
public static DataTable GetMenusByMenuType()
{
// MainMenuType:1: 加载子系统菜单数据,2.加载所有菜单,3.加载子系统权限菜单,4.加载所有权限菜单
int menutype = SystemInfo.Instance.MainMenuType;
string condWhere = string.Empty;
string sqlValue = string.Empty;
if (menutype > 2)
{
// 获取权限
condWhere = MainImpl.GetPurviewCond();
}
if (MainImpl.HasExistsColumn("P_FormMenuConfigTab", "useFlag"))
{
// 获取可用菜单标识
condWhere += " and isnull(useFlag,0)=1";
}
if (MainImpl.HasExistsColumn("P_FormMenuConfigTab", "TargetMode"))
{
// 获取CS端显示标识(0 全部、1cs、 2 手机、3、bs)
condWhere += " and isnull(TargetMode,1) in (1)";
}
string fields = string.Empty, field = string.Empty;
if (MainImpl.HasExistsColumn("p_formmenuconfigtab", "menuRow"))
{
fields = ",menuRow";
field = "a.menuRow,";
}
// 加载所有菜单下的数据
sqlValue = string.Format(@"select * from (
select a.MenuId,a.MouseOutImg,a.MouseOverImg1,a.MenuCaption,a.DllFileName,a.MenuStruct,a.PurviewId,a.UrlParams,a.subsysid,{0}
z.SubSysName,MenuCaption+'-'+z.SubSysName SearchMenuCaption
FROM p_formmenuconfigtab a
left join P_SubSystemTab z on a.SubSysId=z.SubSysId
WHERE 1=1 " + condWhere + @") x
where LEN(x.MenuStruct)=4", field);
return SqlHelper.ExecuteDataTable(sqlValue);
}
/// <summary>
/// <para>说明:初始化所有模块表</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2020-03-19 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="dllName">Name of the DLL.</param>
/// <returns>System.String.</returns>
private static string ReplaceDllFileName(string dllName)
{
switch (dllName.ToLower().Trim())
{
case "pubspec.dll":
dllName = "Lskj.PubSpec.dll";
break;
}
return dllName;
}
#endregion
#region
/// <summary>
/// <para>说明:主线程刷新</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2020-03-19 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
public void RefreshLog(string msg)
{
txtLog.Text += msg;
txtLog.Select(txtLog.TextLength, 0);
txtLog.ScrollToCaret();
}
/// <summary>
/// <para>说明:后台线程刷新数据</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2020-03-19 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
public void RefreshLogUIThread(string msg)
{
txtLog.Text += msg;
txtLog.Select(txtLog.TextLength, 0);
txtLog.ScrollToCaret();
}
#endregion
#region
/// <summary>
/// <para>说明:点击开始</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2020-03-18 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="dllName">Name of the DLL.</param>
/// <returns>System.String.</returns>
private void OnStartClick(object sender, EventArgs e)
{
try
{
if (isFinish) {
InitializeControl();//初始化
}
if (!this.che_All.Checked)
{
//string allMaxModelId = string.Empty;
//string modelIdItem = string.Empty;
//DataTable SomeTable = SqlHelper.ExecuteDataTable("select max(MenuId) as id from P_FormMenuConfigTab where DllFileName!='' group by DllFileName ");
//foreach (DataRow item in MenuConfigdt.Rows)
//{
// string MenuId = item["MenuId"] + "";
// foreach (DataRow someTable in SomeTable.Rows)
// {
// string someMenuId = someTable["id"] + "";
// if (MenuId.Equals(someMenuId))
// {
// allMaxModelId = allMaxModelId + someTable["id"] + ',';
// }
// }
//}
//modelIdItem = modelIdItem.Trim().TrimEnd(',');
//allMaxModelId = allMaxModelId.Trim().TrimEnd(',');
//MenuConfigdt = MenuConfigdt.Select(string.Format("MenuId in ({0})", allMaxModelId)).CopyToDataTable();
//MenuConfigdt.Compute("max(MenuId)", "");
MenuConfigdt.DefaultView.Sort = "MenuId DESC";
MenuConfigdt = MenuConfigdt.DefaultView.ToTable();
MenuConfigdt = MenuConfigdt.AsEnumerable().GroupBy(r => new { Col1 = r["DllFileName"] }).Select(g => g.OrderBy(r => r["DllFileName"]).First()).CopyToDataTable();
}
start();
}
catch (Exception)
{
throw;
}
}
/// <summary>
/// <para>说明:点击重置界面</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2020-03-18 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="dllName">Name of the DLL.</param>
/// <returns>System.String.</returns>
private void OnResetClick(object sender, EventArgs e)
{
InitializeControl();
}
/// <summary>
/// <para>说明:选择全局查询</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2020-03-18 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="dllName">Name of the DLL.</param>
/// <returns>System.String.</returns>
private void OnsomeCheckedChanged(object sender, EventArgs e)
{
this.che_All.Checked = !this.che_some.Checked;
}
/// <summary>
/// <para>说明:选择部分查询</para>
/// <para>创建人:王一帆</para>
/// <para>创建日期:2020-03-18 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="dllName">Name of the DLL.</param>
/// <returns>System.String.</returns>
private void OnAllCheckedChanged(object sender, EventArgs e)
{
this.che_some.Checked = !this.che_All.Checked;
}
#endregion
}
}
+120
View File
@@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
+73
View File
@@ -0,0 +1,73 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using DevExpress.UserSkins;
using DevExpress.Skins;
using DevExpress.LookAndFeel;
using System.Threading;
using Lskj.Control;
using Lskj.Util;
namespace CensorModule
{
static class Program
{
/// <summary>
/// 是否退出应用程序
/// </summary>
static bool glExitApp = false;
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
BonusSkins.Register();
SkinManager.EnableFormSkins();
UserLookAndFeel.Default.SetSkinStyle("DevExpress Style");
//处理未捕获的异常
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
//处理UI线程异常
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
//处理非UI线程异常
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
Application.Run(new FrmMain());
glExitApp = true;//标志应用程序可以退出
}
/// <summary>
/// <para>说明:处理异常</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2017-11-22 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
/// <param name="sender">The source of the event.</param>
/// <param name="e">The <see cref="ThreadExceptionEventArgs"/> instance containing the event data.</param>
static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
{
MessageUtil.Show(e.Exception);
LogHelper.Instance.WriteError(e.Exception);
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
MessageUtil.Show(e.ExceptionObject.ToString());
while (true)
{//循环处理,否则应用程序将会退出
if (glExitApp)
{//标志应用程序可以退出,否则程序退出后,进程仍然在运行
MessageUtil.Show(e.ExceptionObject.ToString());
return;
}
System.Threading.Thread.Sleep(2 * 1000);
};
}
}
}
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("CensorModule")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("CensorModule")]
[assembly: AssemblyCopyright("Copyright © 2013")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("9006f149-aa49-4b8e-ba69-386d945fa738")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
@@ -0,0 +1,63 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace CensorModule.Properties {
using System;
/// <summary>
/// 一个强类型的资源类,用于查找本地化的字符串等。
/// </summary>
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// 返回此类使用的缓存的 ResourceManager 实例。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CensorModule.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// 使用此强类型资源类,为所有资源查找
/// 重写当前线程的 CurrentUICulture 属性。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}
@@ -0,0 +1,117 @@
<?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.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: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" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</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" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
@@ -0,0 +1,26 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace CensorModule.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.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;
}
}
}
}
@@ -0,0 +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>
@@ -0,0 +1,3 @@
<?xml version="1.0"?>
<configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB