MyGeneration【ui-原】
------------------------------------------------------------------------
1)界面就用软件本身封装的
2)可以选择当前选择的数据库中的几个表
3) 同MyGeneration【ui-winform】做一下对比而已
-----------------------------------------------------------------------
<%#NAMESPACE System.Windows.Forms, System.Drawing,System, System.Text, System.Collections, Zeus, Zeus.UserInterface, Zeus.DotNetScript, Microsoft.Win32 %>
public class GeneratedGui : DotNetScriptGui
{
public GeneratedGui( ZeusGuiContext context ) : base( context ) {}
GuiTextBox classNamespace;
GuiTextBox outputPath;
GuiTextBox memberPrefix;
GuiTextBox connectionString;
public override void Setup()
{
if ( !input.Contains( "chooseTables" ) || !input.Contains( "txtPath" ) ||
( !input.Contains( "chkClass" ) && !input.Contains( "chkNaming" ) ) )
{
ui.Title = "Zhuer's Generator";
ui.Width = 330;
ui.Height = 400;
// 选择数据库Label
GuiLabel label5 = ui.AddLabel( "label5", "选择一个数据库:", "选择一个数据库" );
// 选择数据库下拉列表
GuiComboBox chooseDatabase = ui.AddComboBox( "chooseDatabase", "选择一个数据库" );
// 显示当前选择的数据库中所包含的表
GuiLabel label7 = ui.AddLabel( "label7", "选择表:", "选择表" );
GuiListBox chooseTables = ui.AddListBox( "chooseTables", "选择表");
chooseTables.Height = 200;
// 为选择数据库的下拉列表创建onchange事件
setupDatabaseDropdown( chooseDatabase );
// 绑定处理方法
chooseDatabase.AttachEvent( "onchange", "chooseDatabase_onchange");
ui.ShowGui = true;
}
else
{
ui.ShowGui = false;
}
}
//选择数据库
public void setupDatabaseDropdown( GuiComboBox Databases )
{
try
{
if( MyMeta.IsConnected )
{
Databases.BindData( MyMeta.Databases );
if( MyMeta.DefaultDatabase != null )
{
Databases.SelectedValue = MyMeta.DefaultDatabase.Alias;
bindTables( Databases.SelectedValue );
}
}
}
catch
{
}
}
//绑定数据库中的表
public void bindTables( string sDatabase )
{
int count = 0;
GuiListBox lstTables = ui["chooseTables"] as GuiListBox;
try
{
IDatabase db = MyMeta.Databases[sDatabase];
lstTables.BindData( db.Tables );
}
catch
{
}
}
//选择数据库引发的事件
public void chooseDatabase_onchange( GuiComboBox control )
{
int count = 0;
GuiComboBox cmbDatabases = ui["chooseDatabase"] as GuiComboBox;
bindTables( cmbDatabases.SelectedText );
}
}
public class GeneratedTemplate : DotNetScriptTemplate
{
//选中的表
private IList _selectedTables;
//数据库名
private string _dbName;
//表名
private string _tableName;
//类名
private string _className;
//输出路径
private string _exportPath="C:\\cs";
//文件名
private string _fileName;
//文件名
private string _nameSpace;
public GeneratedTemplate(ZeusContext context) : base(context) {}
//---------------------------------------------------
// Render()就是Template Code的入口函数,当成Main就好了
//---------------------------------------------------
public override void Render()
{
_dbName = input["chooseDatabase"].ToString(); //选择的数据库
_selectedTables = input["chooseTables"] as ArrayList;//选择的表
foreach (string _newTable in _selectedTables)
{
ITable _workingTable = MyMeta.Databases[_dbName].Tables[_newTable];
_tableName = _workingTable.Alias.Replace(" ", "");
_className = TableToClassName(_workingTable);
GenerateModelFile(_workingTable.Columns);
}
System.Diagnostics.Process.Start("explorer.exe",_exportPath);//文件输出完毕,打开输出文件夹
}
//---------------------------------------------------
// 循环某个表中的所有列 每运行一次 则把一个表实体映射到一个cs文件
//---------------------------------------------------
private void GenerateModelFile( IColumns Columns )
{
_nameSpace="MyModel";
output.writeln( "using System;" );
output.writeln( "" );
output.writeln( "/// <summary>" );
output.writeln("///\tMyGeneration : 实体类 " + _className);
Version();
output.writeln( "/// </summary>" );
output.writeln( "namespace " +_nameSpace+".Model");
output.writeln( "{" );
output.writeln( "\tpublic class "+ _className);
output.writeln( "\t{" );
//私有成员变量
//BuildPrivateMembers( Columns );
//BuildDefaultConstructor( Columns );
//BuildPublicProperties( Columns );
output.writeln( "\t}" );
output.writeln( "}" );
_fileName = _className + ".cs";
output.saveEnc( "c:\\cs\\" + "MOD_"+_fileName ,"o","unicode" );
output.clear();
}
// 版本信息 【公共小函数】
private void Version()
{
output.writeln("///\t作者:You");
output.writeln("///\t我的博客:http://you.cnblogs.com/");
output.writeln("///\t版本:1.0");
output.writeln("///\tCreated on " + DateTime.Now);
}
// 表转换为类名【公共小函数】
protected string TableToClassName(ITable table)
{
string tableName=table.Alias;
return tableName.Replace(" ","");
}
}
%>
转载于:https://www.cnblogs.com/master-zhu/archive/2010/06/10/1755771.html
MyGeneration【ui-原】相关推荐
- JAVA团队开发手册 - 2.代码管理
工具选择 代码管理用什么工具好,有人喜欢git,不过git有个小小的缺点,就是对UI使用的大文件支持不太好,比如PSD文档,PNG文档等等. 作为windows下的佛系程序员,我还是保守一点,团队使用 ...
- win7变成xp风格了怎么改回_win7
2017-03-31 16:34:05 浏览量:7614 随着win7系统不断发展和稳定,许多用户都从xp升级到win7系统,可是一些用户反馈说win7功能虽然多,但是界面不习惯,很多设置都不知道如何 ...
- 自动化运维saltstack(资源)
2019独角兽企业重金招聘Python工程师标准>>> 简介 SaltStack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的pupp ...
- 常用前端资源网站集合
常用的学习资源网站: 前端导航(一款前端网站集合的网站): https://docs.pfan123.com/ 知识点类: https://cloud.tencent.com/developer/ar ...
- 【无标题】游戏原画和UI的区别?
\n游戏原画:\n\n游戏原画设计,是游戏项目前期准备环节.游戏原画师需要通过游戏策划的文字等描述,结合自己的想象,进行角色.场景.道具形象的概念设计.原画设计是游戏美术设计环节的参照蓝图,是后期建模 ...
- 开箱即用的后台UI框架eui(原eadmin)
(很多人问有没有开箱即用,不需要复杂打包环境配置的功能强大.界面精美的后台UI框架,现在他来了) eui 基于原生JS开发,开箱即用,无需打包环境,专门为不太熟悉mvvm开发模式的人员定制打造.此次是 ...
- C#类中操作UI层控件状态[原]
一直以来都是接触B/S开发,很少做C/S开发,线程就用得更少了,最近做一些工作中用到的小软件终于用上了线程,记录一些心得. 场景: 1:假设有窗体F,里面有一按钮BtnA,及一Label控 ...
- iOS开发UI篇 程序启动原理和UIApplication
2019独角兽企业重金招聘Python工程师标准>>> 一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplicati ...
- iOS超全开源框架、项目和学习资料汇总(1)UI篇
上下拉刷新控件 **1. ** MJRefresh --仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.(推荐) ...
- iOS超全开源框架、项目和学习资料汇总:UI篇
2017-01-30 iOS巍 CocoaChina 原文 上下拉刷新控件 1. MJRefresh --仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉 ...
最新文章
- JavaScript 全选函数的实现
- 第四范式与丘成桐北京雁栖湖应用数学研究院签署战略合作协议
- html下拉框变长,改变HTML下拉框SELECT选项的多种方法
- 816D.Karen and Test 杨辉三角 规律 组合
- 猎户座计划软件测试,三星Exynos4412
- @NOIP2018 - D1T1@ 铺设道路
- 个类似GoogleMap的客户端JS开源库
- 【Unity Native Plugins】1.调用动态库so-android篇 附录完整工程
- 计算机控制面板设置命令,进入开始---设置--控制面板--声音和音频设备命令
- 计算机硬盘能否做u盘用怎么用,教你怎么用移动硬盘做原系统的启动硬盘图文教程...
- Java实现局域网流量监控
- #SVN Skipped ‘xxx‘ -- Node remains in conflict 错误的解决办法#
- shiro+微信登录整合
- printf中%p的输出应用
- 你认为微软 Win12 可以在哪些方面改进?
- 神经网络怎么学,怎么学神经网络
- ACM-ICPC近年省赛汇总
- HDFS 本地编程报错java.net.ConnectException: Call From LAPTOP-LJF22VB3/192.168.56.1 to 192.168
- 学计算机人都很自私,心理学家:内心极度虚伪的人,往往都有这三个特征,趁早远离!...
- ESModule 系列 (二):构建下一代基础设施 PDN
热门文章
- Map与Set的经典OJ题
- java同步机制简单介绍
- php如何发起get网络请求,php发送get、post请求的几种方法
- C语言程序设计输入x求函数y,C语言程序设计实践(OJ)-初识函数
- c语言里变量列表,嵌入式C语言里的土豪们之变量类型
- antd 函数组件_React - 组件:函数组件
- 运维基础(1)Nginx
- 常用网络故障集锦,收藏备用
- 阿里开源分布式限流框架 -Sentinel Go 0.3.0 发布,支持熔断降级能力
- android service alertdialog,Android service里面启动alertdialog