MyGeneration【ui-原】
生活随笔
收集整理的這篇文章主要介紹了
MyGeneration【ui-原】
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
------------------------------------------------------------------------
1)界面就用軟件本身封裝的
2)可以選擇當前選擇的數(shù)據(jù)庫中的幾個表
3) 同MyGeneration【ui-winform】做一下對比而已
?-----------------------------------------------------------------------
Interface Code <%#REFERENCE?System.Windows.Forms.dll?%><%#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;
????????????????
????????????//?選擇數(shù)據(jù)庫Label?
????????????GuiLabel?label5?=?ui.AddLabel(?"label5",?"選擇一個數(shù)據(jù)庫:",?"選擇一個數(shù)據(jù)庫"?);
????????????
????????????//?選擇數(shù)據(jù)庫下拉列表
????????????GuiComboBox?chooseDatabase?=?ui.AddComboBox(?"chooseDatabase",?"選擇一個數(shù)據(jù)庫"?);
????????????
????????????//?顯示當前選擇的數(shù)據(jù)庫中所包含的表
????????????GuiLabel?label7?=?ui.AddLabel(?"label7",?"選擇表:",?"選擇表"?);
????????????GuiListBox?chooseTables?=?ui.AddListBox(?"chooseTables",?"選擇表");
????????????chooseTables.Height?=?200;
????????????
????????????????????????
????????????//?為選擇數(shù)據(jù)庫的下拉列表創(chuàng)建onchange事件
????????????setupDatabaseDropdown(?chooseDatabase?);
????????????//?綁定處理方法
????????????chooseDatabase.AttachEvent(?"onchange",?"chooseDatabase_onchange");
????????????
????????????ui.ShowGui?=?true;
????????}
????????else?
????????{
????????????ui.ShowGui?=?false;
????????}
????}
????
????//選擇數(shù)據(jù)庫
????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
????????{
????????}
????}
????
????//綁定數(shù)據(jù)庫中的表
????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
????????{
????????}
????}????
????
????//選擇數(shù)據(jù)庫引發(fā)的事件
????public?void?chooseDatabase_onchange(?GuiComboBox?control?)
????{
????????int?count?=?0;
????????GuiComboBox?cmbDatabases?=?ui["chooseDatabase"]?as?GuiComboBox;
????????bindTables(?cmbDatabases.SelectedText?);
????}?
????
} Template Code <%
public?class?GeneratedTemplate?:?DotNetScriptTemplate?
{
????//選中的表
????private?IList?_selectedTables;
????//數(shù)據(jù)庫名
????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的入口函數(shù),當成Main就好了
????//---------------------------------------------------
????public?override?void?Render()
????{
????????_dbName?=?input["chooseDatabase"].ToString();????????//選擇的數(shù)據(jù)庫
????????_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);//文件輸出完畢,打開輸出文件夾
????}
????
????
????//---------------------------------------------------
????//?循環(huán)某個表中的所有列??每運行一次?則把一個表實體映射到一個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();
????????}
????
????//?版本信息?【公共小函數(shù)】
???????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);
????????}
????
????
????//?表轉(zhuǎn)換為類名【公共小函數(shù)】
????protected?string?TableToClassName(ITable?table)
????????{
????????????string?tableName=table.Alias;
????????????return?tableName.Replace("?","");
????????}
}
%>
轉(zhuǎn)載于:https://www.cnblogs.com/master-zhu/archive/2010/06/10/1755771.html
總結(jié)
以上是生活随笔為你收集整理的MyGeneration【ui-原】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工作笔记-2019.7.8
- 下一篇: 关于保存到session里的信息