C/S开发框架提供类似SAP系统的快速命令,能快速打开界面窗体(Command模式)
C/S开发框架提供类似SAP系统的快速命令,能快速打开界面窗体(Command模式)输入命令后按回车,系统自动解析输入内容,并执行相应的动作。
设计采用命令模式:Command Pattern

回车事件:
C# Code:
private void txtCommand_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (txtCommand.Text.Trim() != "")
{
e.Handled = true;
CommandHandler.Execute(this, txtCommand.Text.Trim());
txtCommand.Text = "";
}
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
{
if (e.KeyCode == Keys.Enter)
{
if (txtCommand.Text.Trim() != "")
{
e.Handled = true;
CommandHandler.Execute(this, txtCommand.Text.Trim());
txtCommand.Text = "";
}
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
经典命令模式:
C# Code:
/// <summary>
/// 执行命令
/// </summary>
/// <param name="instance">主窗体实例</param>
/// <param name="cmdText">命令文本</param>
/// <returns></returns>
public static object Execute(IMdiForm instance, string cmdText)
{
//匹配命令字符,返回对象实例
QuickCommand cmd = AllCommands.Find(delegate (QuickCommand p) { return p.Match(cmdText); });
if (cmd == null) throw new Exception("无效的命令!参考:PO,PO1,PO2,SO,LK,HELP");
//界面操作通用处理方法
if (cmd.IsFormAction)
return instance.OpenModuleForm(cmd);
//锁定用户界面命令
if (cmd.CommandCode == "LK")
return frmLock.ExecuteLock(instance as Form);
//打开帮助文档
if (cmd.CommandCode == "HELP")
HelpDoc.HelpAllFile(HelpDoc.CSHelp);
//
//其它命令
//
return null;
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
/// 执行命令
/// </summary>
/// <param name="instance">主窗体实例</param>
/// <param name="cmdText">命令文本</param>
/// <returns></returns>
public static object Execute(IMdiForm instance, string cmdText)
{
//匹配命令字符,返回对象实例
QuickCommand cmd = AllCommands.Find(delegate (QuickCommand p) { return p.Match(cmdText); });
if (cmd == null) throw new Exception("无效的命令!参考:PO,PO1,PO2,SO,LK,HELP");
//界面操作通用处理方法
if (cmd.IsFormAction)
return instance.OpenModuleForm(cmd);
//锁定用户界面命令
if (cmd.CommandCode == "LK")
return frmLock.ExecuteLock(instance as Form);
//打开帮助文档
if (cmd.CommandCode == "HELP")
HelpDoc.HelpAllFile(HelpDoc.CSHelp);
//
//其它命令
//
return null;
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
C# Code:
/// <summary>
/// 系统定义的所有命令
/// </summary>
private static List<QuickCommand> AllCommands
{
get
{
if (_AllCommands == null)
{
//模拟命令表(从数据库获取)
DataTable dt = new DataTable("sys_Commands");
dt.Columns.Add("CommandCode", typeof(String));//命令,如:PO,PO1,PO2,SO,HELP,LK
dt.Columns.Add("CommandName", typeof(String));//命令名称,PO-打开采购订单
dt.Columns.Add("CommandType", typeof(String));//命令类型:OpenForm-打开窗体,Add,Search,Other
dt.Columns.Add("FormNamespace", typeof(String));//窗体的命名空间
dt.Columns.Add("MenuName", typeof(String));//打开此窗体关联的菜单名称(模块主窗体内定义)
dt.Rows.Add(new object[] { "PO", "打开采购订单", "OpenForm", "CSFrameworkV5.DemoPurchaseModule.frmPO", "menuItemPO" });
dt.Rows.Add(new object[] { "PO1", "采购订单-新增", "Add", "CSFrameworkV5.DemoPurchaseModule.frmPO", "menuItemPO" });
dt.Rows.Add(new object[] { "PO2", "采购订单-搜索", "Search", "CSFrameworkV5.DemoPurchaseModule.frmPO", "menuItemPO" });
dt.Rows.Add(new object[] { "SO", "打开销售订单", "OpenForm", "CSFrameworkV5.DemoSalesModule.frmSO", "menuSalesOrder" });
dt.Rows.Add(new object[] { "HELP", "打开帮助文档", "Other", "", "" });
dt.Rows.Add(new object[] { "LK", "锁定主界面", "Other", "", "" });
dt.AcceptChanges();
//将DataTable转换为对象列表
List<QuickCommand> list = new ModelConverter<QuickCommand>().FillModel(dt);
return list;
}
return _AllCommands;
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
/// 系统定义的所有命令
/// </summary>
private static List<QuickCommand> AllCommands
{
get
{
if (_AllCommands == null)
{
//模拟命令表(从数据库获取)
DataTable dt = new DataTable("sys_Commands");
dt.Columns.Add("CommandCode", typeof(String));//命令,如:PO,PO1,PO2,SO,HELP,LK
dt.Columns.Add("CommandName", typeof(String));//命令名称,PO-打开采购订单
dt.Columns.Add("CommandType", typeof(String));//命令类型:OpenForm-打开窗体,Add,Search,Other
dt.Columns.Add("FormNamespace", typeof(String));//窗体的命名空间
dt.Columns.Add("MenuName", typeof(String));//打开此窗体关联的菜单名称(模块主窗体内定义)
dt.Rows.Add(new object[] { "PO", "打开采购订单", "OpenForm", "CSFrameworkV5.DemoPurchaseModule.frmPO", "menuItemPO" });
dt.Rows.Add(new object[] { "PO1", "采购订单-新增", "Add", "CSFrameworkV5.DemoPurchaseModule.frmPO", "menuItemPO" });
dt.Rows.Add(new object[] { "PO2", "采购订单-搜索", "Search", "CSFrameworkV5.DemoPurchaseModule.frmPO", "menuItemPO" });
dt.Rows.Add(new object[] { "SO", "打开销售订单", "OpenForm", "CSFrameworkV5.DemoSalesModule.frmSO", "menuSalesOrder" });
dt.Rows.Add(new object[] { "HELP", "打开帮助文档", "Other", "", "" });
dt.Rows.Add(new object[] { "LK", "锁定主界面", "Other", "", "" });
dt.AcceptChanges();
//将DataTable转换为对象列表
List<QuickCommand> list = new ModelConverter<QuickCommand>().FillModel(dt);
return list;
}
return _AllCommands;
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761

参考文档:
GoF设计模式:命令模式(Command Pattern)—请求发送者与接收者解耦-C/S开发框架
.NET Framework V4.0版本经典模式和集成模式的区别 - 阿里云虚拟主机.NET版本设置
软件开发与设计 - SAP-全球企业管理软件与解决方案数据库表结构设计文档
C/S系统快速开发平台采用ADO-Direct模式模拟数据提交流程
C/S系统快速开发平台采用WCF模式模拟完整请求的流程
IIS7 经典模式和集成模式的区别
作为一个学生,想问下这套框架是三层架构吗?使用了那些设计模式?
[转帖]ACTIVE OBJECT 模式
C# 使用设计模式构建通用数据库访问类
ACTIVE OBJECT 模式(转)
开发应用 - 策略模式(Strategy Pattern) 常用设计模式
开发应用-命令模式(C#实现POS收银功能)
开发应用-职责链模式(Chain Of Resposibility Pattern)
C/S开发框架两种后台连接:直连模式与WebApi模式(ADODirect与WebApi)|C/S开发框架
代码生成器:直连模式+WebApi生成的源码集成到VS解决方案|C/S开发框架
CS开发框架新功能 - MES系统多工厂模式
GoF设计模式:命令模式(Command Pattern)—请求发送者与接收者解耦-C/S开发框架
.NET Framework V4.0版本经典模式和集成模式的区别 - 阿里云虚拟主机.NET版本设置
软件开发与设计 - SAP-全球企业管理软件与解决方案数据库表结构设计文档
C/S系统快速开发平台采用ADO-Direct模式模拟数据提交流程
C/S系统快速开发平台采用WCF模式模拟完整请求的流程
IIS7 经典模式和集成模式的区别
作为一个学生,想问下这套框架是三层架构吗?使用了那些设计模式?
[转帖]ACTIVE OBJECT 模式
C# 使用设计模式构建通用数据库访问类
ACTIVE OBJECT 模式(转)
开发应用 - 策略模式(Strategy Pattern) 常用设计模式
开发应用-命令模式(C#实现POS收银功能)
开发应用-职责链模式(Chain Of Resposibility Pattern)
C/S开发框架两种后台连接:直连模式与WebApi模式(ADODirect与WebApi)|C/S开发框架
代码生成器:直连模式+WebApi生成的源码集成到VS解决方案|C/S开发框架
CS开发框架新功能 - MES系统多工厂模式
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
