TIPTOP PER档修改说明(总结)
一、PER文件的UI(Ur Interface用户接口)组成:
TitleBar(标题栏)
TopMenu(菜单栏)【非必要Section】定义画面中的 TOPMENU 结构。
ToolBar(工具栏)【非必要Section】定义画面中的 TOOLBAR 结构。
金字图片
Page(页面)
Field Description(域)
RingMenu(响应按钮)【非必要Section】定义Action 显示于画面上的名称值及快速键设置。
Table(表格部分—单身部分)
ScrollBar(滚动条)
二、PER 【FORM】画面文件的结构
<1> PER档应由下列区段组成:
舞龙图片Schema(模式)【非必要Section】设置设计画面时,所需要引用到的数据库。
Layout(布局)【必要Section】定义画面样式的主要 SECTION,在本 SECTION 中须采用对象的概念,任何的设置均应以Container 视之,在结束处需加上 END 注记以标示结束。
Table(表格)【非必要Section】设置屏幕画面的显示字段所对应的数据库TABLE名称。
Attributes(属性)【非必要Section】在 LAYOUT SECTION 中出现的字段、TAG 等,均需在此段中定义其类型或属性。
Instructions(指令)【非必要Section】定义屏幕数组。当使用屏幕数组时才需定义。
<2> SCHEMA:SCHEMA {databa[@dbrver] | string | FORMONLY }
任沉浮如果SCHEMA用FORMONLY,则不能用TABLES Section,而要把要参照的数据表名称于ATTRIBUTES Section中分别指定。
单行指令,不加END。
预设为SCHEMA FORMONLY。
<3>LAYOUT: LAYOUT {TEXT= }
TP7中以 LAYOUT 取代 SCREEN。
宣告在 TEXT 部份的值会出现在 Window Title。
LAYOUT 中使用 Container 概念。
LAYOUT本身即为最外层的 Container。
<4>可用的 Container 列表
GROUP:组件分组(将外层加上框线)
GRID:可视为基本的画布(简易空白画布)
TABLE:置放窗体(以表格方式显示数组数据)
SCROLLGRID:不想以表格呈现的数组(以画布方式显示数组数据)
HBOX:排列顺序【水平排列】(将内含的对象以水平方式呈现)
VBOX:排列顺序【垂直排列】(将内含的对象以垂直方式呈现)
FOLDER:切页宣告(设置分页模式)
PAGE:页次(设置分页模式中的页)
TAG:分三种 G(Group),T(Tables),S(Scroll grid)
注:
1.在 Container 中,如果有两个以上的子Container,一定要告诉程序该怎么排列HBOX:子 Container 间为水平排列 VBOX:子 Container 间为垂直排列同样的,别忘了宣告结束。
2.Container 中,除了 LAYOUT 本身之外只有 GROUP 可以拿来装其它的 Container
Container范例:
Container TP 双文件范例:
孝感教育云平台Container 名称 | 可包函在里面的子项目 | 功能说明 |
VBOX | VBOX, HBOX, GROUP, FOLDER, GRID, TABLE | 将内含的 Container 组件做垂直排列。 |
HBOX佳能打印机维修>伤感流行歌曲 | VBOX, HBOX, GROUP, FOLDER, GRID, TABLE | 将内含的 Container 组件做水平排列。 |
GROUP | VBOX, HBOX, GROUP, FOLDER, GRID, TABLE | 将内含的 Container 组件以一个外框包起来。 |
FOLDER | PAGE | 宣告将开启分页。 下方一定要接上 PAGE Container |
PAGE | VBOX, HBOX, GROUP, FOLDER, GRID, TABLE | 在 FOLDER 中定义分页。 一定要跟着 FOLDER Container |
GRID | 无 | 单一宣告组件置放用的画布。 |
SCROLLGRID | 无 | 数组数据组件用的画布。 |
TABLE | 无 | 数组数据以表格方式表示。 |
| | |
<5>GRID Container
可将此Container 视为一张空白的画布。
支援 TAG < >:<G groupname>。
TAG 不支持巢状结构,若需使用巢状结构,需改用 GROUP Container。
<6>GROUP Container
相关字段应以 GROUP 包起来。
若遇到 TP 中报表程序般有两层以上 GROUP 包覆者,应使用 GROUP 而不可用 GRID 中的 TAG。
若 GROUP 做隐藏时,它会一并隐藏其中的组件。
若要分组但不要框线,请改用 GRID。
GROUP要整齐排列时,须注意是否每个 GROUP 宽度是否相同。
属性可直接定义也可以写在 ATTRIBUTES Section。
<7>TABLE Container
数组数据才可以置入 TABLE 中。
数组数据中变量顺序需和 TABLE 中顺序一致。
TABLE区段最外面以 [ ] 包起来,里面各字段以『|』做分隔。
TABLE 标题字符串间至少要空 2 个字符
使用 TABLE 时须注意每一个 Column 都要有 Column Name(列名),否则在编译时会出现 Warning(警告)。
<8>SCROLLGRID Container
类似 GRID 画布,可自定要显示的格式
要为数组数据才可使用 SCROLLGRID
屏幕数组个数必需与 INSTRCUTION Section 中指定个数相同
屏幕数组个数须大于 2 才会出现 Scrollbar
<9>LAYOUT 应注意事项
SCREEN RECORD 均改为 TABLE 方式呈现。
黑暗的句子 GRID Container 若有框线时删除框线,并以 TAG <G GROUP1 > 取代。
依显示顺序调整位置,并以GROUP分组。
十个以内字段排成一行,十个以上则切成左右两组 GROUP。
<G GROUP1 >内的 Group Name会全部转为小写,应配合 ATTRIBUTE SECTION中GROUP TEXT属性指定其GROUP Name,即可指定大小写、多字、或不显示 GROUP Name。
COMBOBOX、RADIOGROUP、CHECKBOX等应对齐 Edit Box。
LAYOUT SECTION 中若有一组以上的 GRID、TABLE或其它 Container,则必须加上 VBOX或 HBOX,否则于编译时期会出现错误。
<10>TABLES
SCREEN FORM 所用到的 TABLE 必须在此 SECTION列出。
若SCHEMA SECTION不是宣告为FROMONLY,则不修改,保留原值。
若已宣告为 FORMONLY ,则删除本SECTION ,由ATTRIBUTES SECTION分别指定各组件参照TABLE 。
<11>ATTRIBUTES
订定每个组件 Component 的属性。
widget、REVERSE、noupdate、right、WIDTH、CLASS、CONFIG、KEY、OPTIONS、wordwarp、QUERYCLEAR、ZEROFILL等属性即将取消支持,若有使用要修正。
<12>常用范例说明
1) 赞美樱花的古诗LABEL
原始写法:oaydesc= FORMONLY.oaydesc ,COLOR=YELLOW BLINK--#, widget="LABEL";
新版写法:LABEL oaydesc= FORMONLY.oaydesc;
2) EDIT
原始写法:oea01 = oea01, COLOR=GREEN REVERSE,UPSHIFT,
COMMENTS='<^P>Qry Documents';
新版写法:EDIT oea01 = oea01, UPSHIFT, COMMENTS = “<^P>Qry Documents”;
说明:预设 TYPE 即为 EDIT,故可不写。
3) CHECKBOX
原始写法:f = oea50,COLOR=YELLOW,UPSHIFT,COMMENTS='CSD Product'
--#, widget="CHECK", config='Y N "CSD Product"';
新版写法:CHECKBOX f= oea50, TEXT = “CSD Product”,VALUECHECKED = “Y”, VALUEUNCHECKED = “N”,COMMENTS = “CSD Product”;
4) COMBOBOX
原始写法:e = oea08, COLOR=YELLOW,
COMMENTS='1.Local Order 2.Export Order 3.As Export
--#, widget="COMBO", include=("","1", "2","3");
新版写法:COMBOBOX e = oea08,
ITEMS = ((“”,””),(1,”Local Order”),(2,”Export Order”),(3,”As Export”)),
COMMENTS = “1.Local Order 2.Export Order 3.As Export”;
5) RADIOGROUP
原始写法:c = oaz61,COLOR=YELLOW
--#, widget="RADIO", config='1 "Ded Now (No Ask)" 2 "Ded Now (Qry )" 3 "Ded Later "';
新版写法:RADIOGROUP c= oaz61,
ITEMS = ((1,"Ded Now (No Ask)“),(2,"Ded Now (Qry )“),(3,"Ded Later “));
6) TEXTEDIT
新版写法:TEXTEDIT oap041 = oap041,COMMENTS = "<^P>Qry Details";
oap042 = oap042,COMMENTS = "<^P>Qry Details";
说明:常见于 Address 或说明字段,先前常用多栏表示