[TIPTOP]系統開發-新人程式教育訓練

培訓方式起步式

Posted by 許仕杰 on Sunday, March 19, 2023

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

  • PRINT
  • 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