畫布(canvanse): 類似於一個畫冊的白紙,可以在上面進行操作;比如說,添加元件(item),
就是在上面進行畫畫;就像是一個頁面一樣
區塊(data block): 類似於java的一個類,或者說是一個集合
觸發器(trigger): 類似於,你對一個東西,做出了什麼動作,會觸發甚麼事情;
例如,java中,你需要發送一個請求,然後再去做相應的操作,觸發器就相當於請,
請求的類型有很多種,觸發器也是
元件(item): 就類似於html的表當標籤,例如 button,text item ,跟html的效果差不多
進行程序的創建與更改
目前:創建畫布 -> 創建區塊 -> 把區塊丟到想要放置的畫布上 -> 通過觸發器進行相應的操作
滑動條:在相應的區塊中設置屬性 Scrollbar ;
show scroll bar -> 是否開啟滑動條 ;
scroll bar canvas -> 設置在哪裡畫布上顯示
當在觸發器中想要拋出自訂義警告信息
app_message.show_message('資料為空,請檢查');
raise form_trigger_failure;
只有一個確定按鈕,並且不會執行後續內容
選中那行,進行顏色變換
Visual attributes 進行新增,然後選擇屬性面板,把背景顏色調成自己需要的;
選擇自己需要進行顏色的數據塊或者元件,一般選擇數據塊,打開屬性面板,
設置Records 的第一行
屬性:currnt record visual attribute group 為剛才新建的visual attributes
Number of records displayed 設置紀錄顯示多少行
Button
Button通過觸發器進行操作,button的觸發器寫的sql語句,
需要進行commit/rollback才會生效
Check box(選中打勾)
使用check box 需要設置選中值與非選中值
Value when checked 選中值
Value when unchecked 非選中值
賦值為選中值則打勾 :block.item := ‘ 值’
使用lov
--使用lov
1.創建紀錄組(record groups)
新建 record groups -> 選擇based on the query below ->
query test(輸入查詢語句) ;創建完成後,可以根據自己的需求進行紀錄組相關屬性進行修改
2.創建lov
新建 lovs -> 選擇bulid a new lov manually ->
打開lovs屬性面板,注意第二行的Subclass Information选择LOV ->
将Record Group属性设置成我们所定义的数据组 ->
选择Record Group下面的Column Mapping Properties ,
Column Names 对应的是查询语句中的查询字段,
Return item对应的是数据块中将要使用LOV功能的ITEM,
display width 欄位顯示的寬度,
column title是欄位名稱
3.綁定item觸發lov
打開數據塊,選擇需要觸發lov的item,屬性面板中選擇list of values ,選擇剛才創建的lovs ->
對需要觸發lovs的item 編寫觸發器,內容 ' list_values;';
4.如果需要修改lov的屬性,選擇lov,右鍵選中lov wizard
觸發器(trigger)
Trigger分為三大類:
Form 觸發器/Block 觸發器/Item 觸發器
Pre 之前
Post 之後
When 進行時
On 進行時
Key 什麼鍵按下時
常用觸發器:
Post-query 查詢之後
Post-change 修改之後
When-mouse-click 單擊時
When-mouse-doubleclick 雙擊時
Form的Trigger的优先级是从item,到block,到form级别
触发器执行顺序:
1.当打开FORM时:
(1)PRE-FORM
(2)PRE-BLOCK(BLOCK级)
(3)WHEN-NEW-FORM-INSTANCE
(4)WHEN-NEW-BLOCK-INSTANCE
(5)WHEN-NEW-RECORD-INSTANCE
(6)WHEN-NEW-ITEM-INSTANCE
2.当填写一行记录完成后,光标移动到下一条记录的时候:
(1)WHEN-VALIDATE-RECORD
(只将填写的记录与数据库中已存在的记录作唯一性的验证,如果只是页面上的数据重复而数据库中没有与其重复的值则不会报错.)
(2)WHEN-NEW-RECORD-INSTANCE
(3)WHEN-NEW-ITEM-INSTANCE
3.当点击“保存”时
(1)WHEN-VALIDATE-RECORD
(将页面上的所有数据提交到数据库,若页面上有重复的数据,则提交第一次时成功但只是将数据先写到数据库中一类似临时表的地方,在提交第二条重复记录的时候报错,执行事务回滚,原来执行成功的指令也将被撤消)
(2)PRE-INSERT
(3)ON-INSERT
(4)POST-INSERT
(5)POST-FORMS-COMMIT
(6)PRE-BLOCK(BLOCK级)
(7)KEY-COMMIT
(8)WHEN-NEW-ITEM-INSTANCE
4.当光标移动到当前数据块中已经显示的行上时:
(1)WHEN-REMOVE-RECORD
(2)WHEN-NEW-RECORD-INSTANCE
(3)WHEN-NEW-ITEM-INSTANCE
当在该行上的不同ITEM移动时:
(4)WHEN-NEW-ITEM-INSTANCE
5.当要进行修改时(在记录中的某个项上进行了修改时):
(1)ON-LOCK
6.在修改完成后进行保存时:
(1)WHEN-VALIDATE-RECORD
(2)PRE-UPDATE
(3)ON-UPDATE
(4)POST-FORMS-COMMIT
(5)PRE-BLOCK(BLOCK级)
(6)KEY-COMMIT
(7)WHEN-NEW-ITEM-INSTANCE
7.删除一条记录时:
(1)ON-LOCK
(2)WHEN-REMOVE-RECORD
(3)KEY-DELREC
(4)WHEN-NEW-RECORD-INSTANCE
(5)WHEN-NEW-ITEM-INSTANCE
8.F11查询过程:
(1)WHEN-CLEAR-BLOCK
(2)WHEN-NEW-RECORD-INSTANCE
(3)WHEN-NEW-ITEM-INSTANCE
在输入查询条件后点CTRL+F11:
(4)PRE-QUERY
(5)WHEN-CLEAR-BLOCK
(6)POST-QUERY
(7)WHEN-NEW-RECORD-INSTANCE
(8)WHEN-NEW-ITEM-INSTANCE
9.CRRL+F11:
(1)WHEN-CLEAR-BLOCK
(2)PRE-QUERY
(3)WHEN-CLEAR-BLOCK
(4)POST-QUERY(每查一条记录,触发一次)
(5)WHEN-NEW-RECORD-INSTANCE
(6)WHEN-NEW-ITEM-INSTANCE
10.从查询状态(F11)转为输入状态(F4)时:
(1)WHEN-CLEAR-BLOCK
(2)KEY-EXIT
(3)WHEN-NEW-RECORD-INSTANCE
(4)WHEN-NEW-ITEM-INSTANCE
11.手电筒查询过程:
(1)QUERY_FIND(BLOCK级)
输入查询条件后,点击“查询”按钮:
(2)WHEN-CLEAR-BLOCK
(3)PRE-QUERY
(4)WHEN-CLEAR-BLOCK
(5)POST-QUERY
(6)WHEN-NEW-RECORD-INSTANCE
(7)WHEN-NEW-ITEM-INSTANCE
12.点击“New”时:
(1)WHEN-NEW-RECORD-INSTANCE
(2)WHEN-NEW-ITEM-INSTANCE
13.点击“EditField”时:
(1)KEY-EDIT
14.点击“WindowHelp”时:
(1)KEY-HELP
15.点击“ClearRecord”时:
(1)WHEN-REMOVE-RECORD
(2)POST-QUERY
(3)WHEN-NEW-RECORD-INSTANCE
(4)WHEN-NEW-ITEM-INSTANCE
16.点击F4关闭时:
(1)KEY-EXIT
(2)POST-FORM
17.点击“CloseForm”按钮关闭时:
(1)KEY-EXIT
(2)POST-FORM
18.点击“Translations”按钮时:
(1)TRANSLATIONS
19.点击小叉号关闭时:
(1)WHEN-WINDOW-CLOSED
(2)CLOSE-WINDOW
(3)KEY-EXIT
(4)POST-FORM
20.选中LOV列表:
(1)KEY-LISTVAL
(2)WHEN-NEW-ITEM-INSTANCE
21.选中记录前面的小条时:
(1)WHEN-NEW-RECORD-INSTANCE
(2)WHEN-NEW-ITEM-INSTANCE(数据项级)
(3)WHEN-NEW-ITEM-INSTANCE
22.光标上下移动时:
(1)WHEN-NEW-RECORD-INSTANCE
(2)WHEN-NEW-ITEM-INSTANCE