TOC
前言
回顧這幾年不斷持續的在進行人員培訓(不只是新鮮人、還有小學生),這裡希望繼續呼應之前文章,紀錄這快失傳的系統開發方式。
本篇依據 TIPTOP ERP 整理出必要學習的技能項目
必要技能
1、程式語言 - 4GL / BDL
首先可參考原廠文件Genero Business Development Language (BDL)
但這豐富的內容,應該會嚇壞不少人,這裡先僅針對Language basics & SQL support 提出並整理我自己常使用的部分,並且稍微示範如何使用:
*Flow control - 流程控制
- IF 條件 THEN / ELSE / END IF
- FOR 變數=起始數值 TO 截止數值 (STEP 累加值) / END FOR
- WHILE 條件 / END WHILE
- CASE / WHEN 條件 / OTHERWISE / END CASE
- CALL FUNC名稱(參數) RETURNING 變數
- CONTINUE:經常搭配 IF / FOR / WHILE / CASE / FOREACH
- RETURN 回傳值:經常搭配FUNCTION
*Variables - 變數
- DEFING 變數 型態:定義變數
- DEFING 變數 LIKE table+field:定義變數
- LET 變數 = 數值:設定變數用
- DISPLAY BY NAME 變數:將變數顯示在畫面上
- DISPLAY ARRAY 變數:將陣列顯示在畫面上
補充:有另外兩種變數的定義方式
Record:一維陣列
Array:二維陣列
*SQL support - 資料庫語法支援
DML語法(Data Manipulation Language)
- SELECT
- INSERT
- UPDATE
- DELETE
DDL語法(Data Definition Language)
- CREATE TABLE
- DROP TABLE
2、開發工具 - Genero Studio
Genero Studio (GST) 主要是用來設計畫面的,但在後期的TIPTOP也可以拿來設計 Gerero Report (GR)報表,少數情況因此先不拿出來討論。
因此我們直接先了解設計畫面時常用的 Widgets 有哪些即可,這裡直接整理出我自己常用的部分。
- Button
- ButtonEdit
- CheckBox
- ComboBox
- DateEdit
- Edit
- Label
- Image
- TextEdit
另外也有偶爾視情況使用的Widgets:
- HLine
- SpinEdit
- ProgressBar
3、資料庫SQL - Oracle / Informix(舊版)
在前面有提到4gl可直接支援SQL,因此會大量的在程式碼中大量的看到 SQL 語法,因此還是要請熟悉基本的 DML語法(Data Manipulation Language),剩下的就是 Oracle 本身與其他資料庫的使用差異。
DML語法
- SELECT
- INSERT
- UPDATE
- DELETE
另外,可搭配官方提供的工具 p_zta
來了解 Table Schema,熟悉系統上會更有幫助!
4、報表開發 - Crystal Report (CR) / BDL Report
設計CR時,連線方式採取 ADO.NET(XML) ,並且依照原廠的開發流程及目錄指定位置進行放置,其他就是依照使用者情境進行設計,除明細式呈現資料外,另外常見的情境如下:
- 自定義公式 (欄位組合、數字加總)
- 依群組(單號)跳頁
- 依群組(單號)合計
- 資料空白則隱藏顯示
- 文字顯示一行裁斷
- 紙張套表
第二種是過BDL來撰寫報表,可參考 Reports 文件介紹,這裡整理常使用的指令。
Report instructions
- PRINTX
- SKIP
Report operators
- PAGENO
- SPACES
Report aggregate functions
- COUNT
- SUM
- AVG
5、系統程式架構
一定要熟記系統架構,雖然是可以自行“創造”出屬於自己的系統程式架構,但開發經常會需要修改標準作業,因此熟記一定能加速開發效率。(過去文章也曾提到)
以下列出可比較常見的參考作業:
- 單檔作業:aimi100
- 單檔多欄作業:aooi030
- 雙檔作業:axmt410
- 假雙檔作業:axmi151
- 批次作業:axcp500 / asfp304 (供人員勾選)
- 報表作業:axmr410
- 查詢作業:aimq102
- 參數作業:axmr410
6、內建Debug工具 - r.d2+
與常見IDE工具所提供的 Debug 功能相近,以下是常用的熱鍵。
- Setp Into (F11):逐行跑+進入Function
- Setp Over (F10):逐行跑+不會進入Function
- Step Out (Shift+F11):跳離目前Function
- Run/Continue (F5):執行 / 跳至下個中斷點
- 設置中斷點
請務必使用並熟悉!
選配技能
1、文字編輯器 - VI
雖然BDL有自己的Genero Studio可以進行撰寫程式碼,但使用 VI 介面可讓我有80%時間可以讓雙手停留在鍵盤上coding,不僅減少滑鼠手,我是覺得開發效率還比較高!
另外亦可透過 vim 或 設定主題顏色 (.vimrc)來讓增加程式可讀性。
2、系統指令&操作 - Linux
由於該系統建置在Linux環境下,因此熟悉基本指令還是需要,這裡僅列出開發會用到的指令:
- ls
- cp
- mv