`
arfayr
  • 浏览: 24420 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

OrFlying For VB.NET 使用说明

阅读更多

说明:OrFlying For VBNET 目前只能根据SQL Server的数据库自动产生代码。

 

1登录系统

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 219.75pt; HEIGHT: 166.5pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image001.png"></imagedata></shape>

l帐号密码为登录SQL数据库的用户名和密码

l服务器为SQLServer2k的服务器名称或者IP地址

l数据库为指定的数据库的名称,对大小写敏感。

2主界面

<shape id="_x0000_i1026" style="WIDTH: 414.75pt; HEIGHT: 311.25pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image003.png"><font size="3"></font></imagedata></shape>

界面解释:

l菜单

n保存配置,系统自动把转换配置保存到本地的XML文件AgileSoftEccConfig.xml

n保存代码,把自动产生的代码文件保存到选择的目录中。其中关于缓冲类的代码如果为选择为新的VB.NET,则自动生成两个文件,并且保存。如果没有选择需要如上图所示选择现存的两个文件,系统将部分代码自动插入到这两个文件中去。

缓冲集的管理为工程级共享,即在工程内部缓存。刷新的时候需要调用CCacheManage.ReleaseAllCache() 清除缓存。

n产生代码根据当前的配置信息产生代码,分别在后面的五个Tab页面中显示。可以手工复制粘贴。

n退出系统退出系统

l对象列表主要来源于两个源头,以表明成为唯一标示

n数据库,对于当前XML文件中没有配置信息的对象,读取数据库取出相应的字段信息。

n配置文件AgileSoftEccConfig.xml 对于已经产生过代码和保存过的配置信息,从XML文件中读取,并且显示。可以进行编辑。

n注意:数据库的同步功能没有做,也就是说你在变更数据结构后,需要手工保持数据结构和代码转换配置的对应关系。然后在生成代码。

l代码转换配置

n对象名称内部定义的对象名称,唯一标示,如定义为XXX,则将产生CClsXXX CColXXX CEngXXX 等三个文件,并且内部类的名称也如此。

n对象关键字本方案默认所有的系统均有关键字,并且为整形类型 bigint 由代码自动维护而不是数据库的自增量。并且表中的关系最好通过本字段关联。

n关于缓冲剂的代码

u新建vb.net工程,将产生完整的声明文件:MdlEccCache.cls 和管理文件: CCacheManage.cls

u不选择,双击文本框选择现有的文件,则把部分缓冲集的代码插入上述两个文件中。

n对象属性信息手工维护对象的属性

<shape id="_x0000_i1027" style="WIDTH: 230.25pt; HEIGHT: 195pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image005.png"><font size="3"></font></imagedata></shape>

u属性类型

l数据库关联该属性将自动和数据库中对应的字段数据同步,即读取和写入

l变量独立的属性和数据库无关

l实体关联的对象实体如下图所示定义一个关联对象:

<shape id="_x0000_i1028" style="WIDTH: 228.75pt; HEIGHT: 193.5pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image007.png"><font size="3"></font></imagedata></shape>

ü属性名称和对应字段最好以Cls开头表示为独立的一个对象,例如班级的班主任关联对象ClsClass.ClsTeacher

ü数据类型为当前系统中已经产生的基本类类型

ü关联对象为代码转换配置中定义的对象名称

ü关联条件:这里填写当前类中关联字段的名称即可如:Class中有关联Teacher表中的TeacherUID字段,则这里的关联条件写TeacherUID

 

l实体集合如下图:

<shape id="_x0000_i1029" style="WIDTH: 228.75pt; HEIGHT: 193.5pt" type="#_x0000_t75"><imagedata o:title="" src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image009.png"><font size="3"></font></imagedata></shape>

ü属性名称和对应字段最好以Col开头表示为独立的一个对象,例如班级的学生关联对象ClsClass.ColStudents

ü数据类型为当前系统中已经产生的集合类类型

ü关联对象为代码转换配置中定义的对象名称

ü关联条件:注意这里要写的是关联的SQL语句片段,主要是条件如:对于Class类的ColStudents ,如:

uClassUID=<%ClassUID%> <%ClassUID%>为关联条件,ClassUIDClass类中的ClassUID对应的属性名称,= 号前面的ClassUIDStudent表中的关联Class的字段

uClassUID in (Select ClassUID from Class where grade=’二年级’) 固定条件

uNodeTypeUID in (Select Distinct NodeTypeUID from ADP_SysTreeNode Where TreeUID=<%TreeUID%>)

uParentLayerName='Root' and TreeUID=<%TreeUID%>

 

l基本类代码产生的基本类代码

l集合类代码产生的集合类代码

l引擎类代码产生的引擎类代码

l缓存声明代码产生的缓存声明代码

l缓存管理代码产生的缓存管理代码

 

3OrFlying Ecc代码的使用

 

需要引用AgileSoft.CGlbDll.dll

附录会附上相关的数据处理的部分源代码

 

l获取对象:

Dim xClsStudent as CClsStudent

If not CEngStudent. GetClsStudentByKey(xClsStudent, 102) then

错误信息

Endif

Msgbox xClsStudent.Name

如果student对象关联了课程集合类CColCase

则可以直接访问:

Dim xCase as CClsCase

For each xCase in xClsStudent.ColCase

Msgbox xCase.name‘显示课程名称

Next

 

l插入对象

Dim xClsStudent as new CClsStudent

xClsStudent.IsNew=true

xClsStudent.Name=’张三

….属性赋值

If not CEngUpdateStudent(xClsStudent) then

错误信息

endif

 

l删除对象

Dim xClsStudent as CClsStudent

If not CEngStudent. GetClsStudentByKey (xClsStudent, 102) then

错误信息

Endif

 

xClsStudent.IsDel=true

If not CEngUpdateStudent(xClsStudent) then

错误信息

endif

l修改对象

Dim xClsStudent as CClsStudent

If not CEngStudent. GetClsStudentByKey (xClsStudent, 102) then

错误信息

Endif

xClsStudent.Name=’张三<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="123" unitname="’"><span lang="EN-US"><font face="Times New Roman">123’</font></span></chmetcnv>

xClsStudent.IsDirty=true

If not CEngUpdateStudent(xClsStudent) then

错误信息

endif

 

l更新集合对象

Dim xColStudent as CColStudent

If not CEngStudent. GetColStudentBySQL(xColStudent) then‘不传入条件返回所有对象

 

Endif

删除第一个对象

xColStudent(1).IsDel=true

修改第二个对象

xColStudent(2).Name=”xxx”

xColStudent(2).IsDirty=true

插入新对象

Dim xClsStudent as new CClsStudent

xClsStudent.IsNew=true

xClsStudent.Name=’张三

xColStudent.Add(xClsStudent)

更新数据库

If not CEngStudent.UpdateCol(xColStudent) then

 

endif

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics