BaaN+Tools+session+编程培训--程序设计.ppt

上传人:本田雅阁 文档编号:3012396 上传时间:2019-06-24 格式:PPT 页数:62 大小:293.51KB
返回 下载 相关 举报
BaaN+Tools+session+编程培训--程序设计.ppt_第1页
第1页 / 共62页
BaaN+Tools+session+编程培训--程序设计.ppt_第2页
第2页 / 共62页
BaaN+Tools+session+编程培训--程序设计.ppt_第3页
第3页 / 共62页
BaaN+Tools+session+编程培训--程序设计.ppt_第4页
第4页 / 共62页
BaaN+Tools+session+编程培训--程序设计.ppt_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《BaaN+Tools+session+编程培训--程序设计.ppt》由会员分享,可在线阅读,更多相关《BaaN+Tools+session+编程培训--程序设计.ppt(62页珍藏版)》请在三一文库上搜索。

1、BaaN Tools 培训,-程序设计,概要,domain、table管理 session管理 form 维护 脚本变量、程控语句、函数 SQL语句、事件、自定义函数 report 维护 easy SQL Funtion和DLL,一、domain 、 table管理,domain的命名规则:tdpur.match domain的作用相当于自定义的变量类型 ttadv4500m000(tools/application development/domain and table/域) 维护domain 类型 字符、数值属性设置 枚举值 显示格式,一、domain 、 table管理(续),练习 d

2、mcwar.x 仓库 (字符/6位/左对齐/大写) dmigrp.x 物料组 (字符/ 6位/左对齐/大写) dmitem.x 物料 (字符/ 8位/左对齐/大写) dmnote.x 备注 (多字节字符/ 20位/左对齐/大写) dmorno.x 订单号(长/6) dmpono.x 订单行(整/2),一、domain 、 table管理(续),练习 dmpric.x 价格(双/10.4/1/舍入) dmquan.x 数量(双/5.4/1/舍入) dmtype.x 订单类型(枚举) 1/in/入库 2/out/出库 3/adj/调整,一、domain 、 table管理(续),table的命名规

3、则:前台 tiitm001; 后台ttiitm001100 ttadv4520m000(ttadv4500m000(tools/application development/domain and table/table definitions) 维护table 更新参考:如果表的主键被其他表参考,则修改此表主键时系统将给出指定的提示 删除参考:如果表的主键被其他表参考,则删除此条记录时系统将给出指定的提示 关系类型:指示表字段之间是否有联系。系统允许多个用户同时修改一条记录,但是不能同时修改相同的字段和有联系的字段,一、domain 、 table管理(续),维护表字段 组合字段:由此表其他

4、字段组成 域:字段类型。域的属性将自动应用到字段上 条目说明:字段说明。系统将自动建立相应的条目,条目名同字段名相同 初始值:字段默认值,如果在插入记录时没有对此字段赋值,系统将使用默认值 法定输入:是否为必输字段 重复字段:此字段是否是一个数组字段 深度:重复字段的个数,一、domain 、 table管理(续),维护表字段 参考表字段:外键。将自动引用主表的index1 参考方式:法定/法定除非空/非法定 参考控制模式: 删除控制 将删除子记录:所有参照主表的记录将被删除 限制(含计数器):主表记录的删除受限制。一个参照计数器记录有多少记录参照主表。 不存在检查:子表不产生额外的动作,参照

5、完整性可能被破坏 查找(限制):主表记录的删除受限制。不使用参照计数器,在删除时可能需要很长时间检查所有的参照关系。对于主表记录极少变化且有多个子表时,可以使用此模式,一、domain 、 table管理(续),维护表字段 参考控制模式: 更新控制 将更新子记录:所有参照主表的记录将被更新 限制(含计数器):主表主键的更新受限制。一个参照计数器记录有多少记录参照主表。 不存在检查:在父表主键更新时,子表不产生额外的动作,参照完整性可能被破坏 查找(限制):主表主键的更新受限制。不使用参照计数器,在更新时可能需要很长时间检查所有的参照关系。对于主表主键极少改动且有多个子表时,可以使用此模式,一、

6、domain 、 table管理(续),练习 dmoesx00 Item group,索引 1 igrp,一、domain 、 table管理(续),练习 dmoesx01 Warehouse,索引 1 cwar,一、domain 、 table管理(续),练习 dmoesx02 Item,索引 1 item 2 igrp 可重复,一、domain 、 table管理(续),练习 dmoesx03 Order,索引 1 orno,一、domain 、 table管理(续),练习 dmoesx04 Orderline,索引 1 orno/pono 2 item 可重复,一、domain 、 ta

7、ble管理(续),练习 dmoesx05 Inventory,索引 1 cwar/item 2 item 可重复,二、session管理,命名:tfgld1406m000,tfgld1508s000, tfgld1101m000 1:maintain;4:print;5:display 包括:form、object、reports、main table、charts,二、session管理(续),维护:ttadv2500m000(tools/application development/session/进程) Standard Script: 系统提供的标准脚本 Program Script

8、: 自定义的脚本 Main Table:连接的主表 主进程:是否为主进程 窗口类型:此session的窗口类型,二、session管理(续),Forms.: 维护form Reports.: 维护report Script.:维护自定义脚本,二、session管理(续),练习: 维护新进程dmoesx100m000 维护物料组 标准脚本:否 自定义脚本: 主表:dmoesx00 起始选项:7 主进程:是,二、session管理(续),练习: 维护新进程dmoesx400m000 维护物料组 标准脚本:否 自定义脚本: 主表:dmoesx00 起始选项:21 主进程:是,三、form管理,命名:

9、tfgld1406mc01d,tfgld1508s000d, tfgld1101m000d 类型:,三、form管理(续),维护:ttadv3500m000 可以查看当前form上有哪写字段. 右键当前session-edit form 开始设计form结构 Form 组成:group、field Field:指定domain、initial value、lable code、zoom,三、form管理(续),按钮: Edit Form.:编辑屏幕 Form Fields.:编辑屏幕字段 Standard commands.:使哪些标准按钮激活 Form commands.:自定义按钮,三、f

10、orm管理(续),表格字段: 字段名: 域: 链接的显示格式:字段同域的显示格式一致 字段类型:输入/显示/仅输入/仅显示 默认表达式:fmax($#) 推进:进程/菜单 推进至:,三、form管理(续),练习:在form:dmoesx100m0001中添加 标签字段: dmoesx00.igrp dmoesx00.note 表格字段 链接的显示格式:字段同域的显示格式一致 dmoesx00.igrp 字段类型:输入 推进:不存在 强制输入 dmoesx00.note 字段类型:输入 推进:不存在 不强制输入,三、form管理(续),维护session、form综合练习: 产生进程:ttadv

11、2100s000 建立新主进程打印类型 dmoesx401m000维护仓库 建立新主进程维护类型 dmoesx104m000维护订单行 建立新主进程显示类型 Dmoesx501m000显示物料数据,三、form管理(续),输入数据: 输入5个物料组 输入4个仓库 输入至少30个物料,分属5个物料组且每个物料组不少于5个物料,四、脚本变量、程控语句、函数 -常量,long double string enumerate 在脚本中用#define定义 #define AAA “aaaaaaa”,-2147483648 2147483647 123.456,-2.34e10 abc123!?.,四、

12、脚本变量、程控语句、函数 -变量,long double string enumerate table domain,-2147483648 2147483647 123.456,-2.34e10 abc123!?. ttditm001,ttfgld100 tfgld.year,tfgld.amnt,四、脚本变量、程控语句、函数 -预定义变量,attr.input (R/W) auto.nextform (R/W) date、date$ time job.process parent pid reportgrp(R/W),reportno update.status language$ log

13、name$ prog.name$ user.type$ query.extension(R/W),四、脚本变量、程控语句、函数 -算术运算符,- * / + - &,负号 乘 除 加 减 取余 串连接,四、脚本变量、程控语句、函数 -关系运算符,= = =,四、脚本变量、程控语句、函数 -逻辑运算符,not and or,四、脚本变量、程控语句、函数 -程控语句,if then else endif oncase-case-endcase for endfor while endwhile repeat until continue:用在循环语句和selectdo中 break:用在循环语句、

14、selectdo和case语句中,四、脚本变量、程控语句、函数 -Function,4GL functions dispaly,display.all,skip.io,set.input.error. 3GL functions date.num,str$.,五、SQL语句、事件、自定义函数 - SQL语句,select selectdo selecteos selectempty selecterror endselect,五、SQL语句、事件、自定义函数 - SQL语句(续),select from where group by having order by set specificat

15、ion(as set with n rows),五、SQL语句、事件、自定义函数 - SQL语句(续),where子句 =,=,!=,#,#=,#,#= in between/inrange refers to/referred by exists 表名._compnr隐含字段 dmoes000._compnr=800,五、SQL语句、事件、自定义函数 -SQL语句(续),修改数据(SQL中的事务处理) db.retry.point() db.insert() db.update() db.delete() commit.transaction() abort.transaction(),五、

16、SQL语句、事件、自定义函数 -SQL语句(续),修改数据(SQL中的事务处理) db.retry.point() select. from table for update order by . with retry repeat last row selectdo db.update(ttable,db.retry) commit.transaction() endselect,五、SQL语句、事件、自定义函数 - SQL语句(续),select 的注意事项 where (condition) 中组合字段的条件要用括住,如tiitm001._index1=“IO-34L1201” 如果SQ

17、L语句中使用变量,则变量前加:,如tiitm001._index1=:aaa inrange同between的区别 对于单个非组合字段,效果相同 对于组合字段 inrange相当于每个子字段分别比较 between相当于将所有子字段组合后比较,五、SQL语句、事件、自定义函数 -常用事件,program before.program after.program form init.form,五、SQL语句、事件、自定义函数 -常用事件(续),field before.input before.display check.input on.input when.field.changes aft

18、er.input after.display,五、SQL语句、事件、自定义函数 -常用事件(续),choice before.choice on.choice after.choice,五、SQL语句、事件、自定义函数 -自定义函数,语法 function function_type function_name(arglist) 声明局部变量 函数语句 return(return_value) 函数类型:long,double,string,domain,void 只能在程序脚本的最后部分定义,五、SQL语句、事件、自定义函数 -自定义函数(续),函数中的变量: 局部变量:只能用在当前函数体中

19、 静态变量:是局部变量,每次调用后其值保留 全局变量:在函数体外声明,声明语句以后的函数均可使用 外部变量:可用于函数体外,如report、form 及声明语句以后的其它函数,五、SQL语句、事件、自定义函数 -自定义函数(续),函数中的参数: 传值参数: 如 function aaa(long val) 传地址参数: 如 function aaa(reference long val),五、SQL语句、事件、自定义函数 -宏、引用外部函数,#include “ifilename”: #include “itfgld0001” 引用DLL #pragma used dll “olibraryn

20、ame” #pragma used dll “odmoesmydll” 在维护脚本进程的libraries按钮中添加使用的DLL,五、SQL语句、事件、自定义函数 -4GL程序规则,declaration段必须是脚本的第一部分 functions段必须程序的最后一部分 一个对象所有代码必须在一起,事件代码互相之间没有先后顺序,但不同对象的代码不能混合,六、report管理,命名:tfgld1406mc011,tfgld1508s0001, tfgld1101m0001 维护:ttadv3530m000(工具/软件开发/session) 页面:-1 页面宽度:=255,六、report管理(续)

21、,按钮: Input Field:定义报表使用的字段 字段名:自定义变量、表字段、脚本变量 深度:数组的维数 域:字段的类型 分类模式:升序/降序/不排序/预分类(按输入到报表中的顺序排序) 分类顺序:决定字段之间排序的优先级,小数值代表优先级高 Edit Script:编辑报表脚本,六、report管理(续),按钮(续): Layout:设计报表 设计类型:7种 before report:报表封皮 页眉: before field:在某一字段分组之前打印 详细资料:明细数据 after field:在某一字段分组并打印明细数据之后打印 页脚: after report:报表封底 输出表达式

22、:打印满足指定条件的数据,六、report管理(续),报表编辑器:基本操作同form近似 表格字段:用于打印所需数据 打印表达式:打印的字段 与域连接:打印格式同域的定义是否一致 汇总功能:合计函数,如total,counter等 Where(expr):计算的条件,只有符合条件的数据才能被计算 打印条件:如$0代表数值0时打印,六、report管理(续),报表种类:3种 1:每个字段占一行,每条记录占一页 2:每条记录占一行 3:每条记录占一行,并包括分组字段,六、report管理(续),预定义变量 lattr.print(R/W) lattr.pageno(R/W) lattr.endda

23、ta lattr.language$,六、report管理(续),系统function layout.again() need(expr) page() reset.suppress() skip(expr) skip.to(expr) to.page(expr),六、report管理(续),练习 打印库存 一条记录打印一行 添加分组:先按仓库分组打印仓库的合计数量,然后再按物料分组打印仓库的合计数量 限制仓库的合计数量的汇总条件,只有数量100的才进行合计 对打印的明细数据的数量字段进行限制,数量100的记录不打印数量值 对打印的明细数据进行限制,数量100的记录不打印 不打印明细数据,只打

24、印按仓库的汇总记录,七、easy SQL,维护:ttadv3580m000(工具/SQL查询) 执行一些简单的查询,七、easy SQL(续2),ttadv3580m000(工具/SQL查询)的其它按钮 产生报表:按选择的条件生成报表并编译 报表数据.:重新维护产生的报表(同维护report近似),八、Function和DLL管理,Function:作用相当于C语言中的include文件。如果一个进程脚本调用Function,在编译时,BaaN系统即将此Function的代码包含到进程中一同编译。 DLL:作用与windows等系统的DLL相同。系统在运行时动态调用,一旦加载到内存中,调用同一DLL的进程即可以共同使用,节省内存资源。,八、Function和DLL管理,练习 新建function:dmoes000x function dmoes000x() message(“function-dmoes000x”) 修改进程dmoesx104s000:当单价改变时调用上面的function,八、Function和DLL管理,练习 新建DLL:dmoesmydllx function extern mydllx() message(“DLL-x”) 修改进程dmoesx104s000:当数量改变时调用上面的DLL,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1