KIN03EXP: SELECT INTO → CURSOR(DECLARE/OPEN/FETCH/CLOSE) pattern; SUB01DAT: COPY ZANDATAC; 基本設計書A: KIN08DBU/KIN09CSV specs updated; 品質管理: coverage stats, keyword docs, test criteria
This commit is contained in:
@@ -0,0 +1,211 @@
|
||||
# 詳細設計書
|
||||
|
||||
## 基本情報
|
||||
|
||||
| # | 項目 | 内容 |
|
||||
|---|------|------|
|
||||
| 1 | システム名 | 勤怠休暇管理システム |
|
||||
| 2 | プログラムID | KIN08DBU |
|
||||
| 3 | プログラム名 | 勤怠DB更新処理 |
|
||||
| 4 | PGMタイプ | メイン |
|
||||
| 5 | PGMパターン | DB更新 + SYSIN読込(P28) |
|
||||
| 6 | 機能概要 | DAILY-RECORDを読込み、DAILY_RECORDSにINSERT。社員別月次集計後、MONTHLY_ABSENCEにUPSERT。集計結果をABSENCE_SUMMARYファイルに出力する。SYSIN制御カード(T/P/Mの3種)をGO TO DEPENDING ONで分岐処理する。 |
|
||||
|
||||
### 前提条件
|
||||
|
||||
| NO | 対象ファイル/DB | 条件 |
|
||||
|----|----------------|------|
|
||||
| 1 | DAILY-RECORD | KIN07DAIが出力した日別勤怠計算結果が存在すること |
|
||||
| 2 | DAILY_RECORDS | 同一日付のレコードが既に存在してもMODE=NORMALではUPSERT動作 |
|
||||
| 3 | MONTHLY_ABSENCE | 集計対象月の統計レコードが未作成でもINSERTできること |
|
||||
| 4 | SYSIN | 省略時は全社員対象、NORMALモードで動作 |
|
||||
|
||||
### SYSIN制御カード仕様
|
||||
|
||||
| カード種別 | 第1桁 | フォーマット | 説明 |
|
||||
|-----------|:-----:|-------------|------|
|
||||
| TARGET | T | `T 社員番号,社員番号,...` | 集計対象社員指定。省略時=全社員 |
|
||||
| PERIOD | P | `P YEARMONTH=YYYYMM` | 処理対象年月。必須 |
|
||||
| MODE | M | `M MODE=RESET\|NORMAL` | RESET=既存削除後再INSERT、NORMAL=UPSERT |
|
||||
| コメント | * | `* 任意コメント` | 読み飛ばし |
|
||||
| 不明 | 他 | — | DISPLAYで警告表示 |
|
||||
|
||||
### 使用ファイル一覧
|
||||
|
||||
| NO | 使用ファイル/DB名 | 識別子 | DD名 | I/O | COPY群 | 形式 | ブロック | レコード長 | 媒体 |
|
||||
|----|------------------|--------|------|-----|--------|------|---------|-----------|------|
|
||||
| 1 | DAILY-RECORD | INREC | KIN08R01 | I | KIN07REC | FB | | 200 | PS |
|
||||
| 2 | ABSENCE-SUMMARY | OUTREC | KIN08W01 | O | KIN08REC | FB | | 80 | PS |
|
||||
| 3 | SYSIN | SYSIN | KIN08S01 | I | — | FB | | 80 | PS |
|
||||
|
||||
### 使用DBテーブル
|
||||
|
||||
| NO | テーブル名 | 処理内容 |
|
||||
|----|-----------|---------|
|
||||
| 1 | DAILY_RECORDS | INSERT(MODE=NORMAL時) / DELETE+INSERT(MODE=RESET時) |
|
||||
| 2 | MONTHLY_ABSENCE | SELECT COUNT(*) → IF >0 UPDATE ELSE INSERT(UPSERT) |
|
||||
| 3 | SICK_LEAVE_RATE | SELECT DEDUCTION_RATE WHERE LEAVE_TYPE='04' |
|
||||
|
||||
### 使用モジュール一覧
|
||||
|
||||
| NO | 機能 | プログラムID | 使用COPY名 |
|
||||
|----|------|-------------|-----------|
|
||||
| 1 | メッセージ編集出力SUB | SUB02MSG | ZANMSGAC |
|
||||
| 2 | ABEND処理SUB | SUB03END | ZANENDAC |
|
||||
| 3 | 運用日付取得SUB | SUB01DAT | ZANDATAC |
|
||||
|
||||
---
|
||||
|
||||
## 処理詳細
|
||||
|
||||
```
|
||||
1.初期処理(1000ITTSOR)
|
||||
1-1.開始メッセージ出力
|
||||
【メッセージ編集】
|
||||
メッセージ番号:1(開始メッセージ)
|
||||
1-2.コンパイル日時出力
|
||||
【メッセージ編集】
|
||||
メッセージ番号:33(コンパイル日時)
|
||||
PARM1:コンパイル日時
|
||||
PARM2:'COMPILED'
|
||||
1-3.ワークエリア初期化
|
||||
1-4.DB接続(EXEC SQL CONNECT TO 'data/kin.db')
|
||||
1-5.SYSINファイルOPEN
|
||||
1-6.SYSIN読込ループ(EOFまで)
|
||||
READ SYSINFILE INTO WS-SYSIN-REC
|
||||
AT END SET SYSIN-EOF TO TRUE
|
||||
END-READ.
|
||||
カード種別判定(WS-SYSIN-REC(1:1)):
|
||||
'T' → MOVE 1 TO WS-DISP-IDX → GO TO DEPENDING ON WS-DISP-IDX
|
||||
2100-TARGETSOR 2200-PERIODSOR 2300-MODESOR
|
||||
'P' → MOVE 2 TO WS-DISP-IDX → GO TO DEPENDING ON WS-DISP-IDX
|
||||
2100-TARGETSOR 2200-PERIODSOR 2300-MODESOR
|
||||
'M' → MOVE 3 TO WS-DISP-IDX → GO TO DEPENDING ON WS-DISP-IDX
|
||||
2100-TARGETSOR 2200-PERIODSOR 2300-MODESOR
|
||||
'*' → コメント行としてDISPLAY表示後スキップ(CONTINUE)
|
||||
他 → DISPLAY 'WARNING: Unknown card type [x]'
|
||||
1-7.必須パラメータ未設定チェック
|
||||
Pカード未読込 → ABEND(CALL SUB03END)
|
||||
1-8.集計対象社員テーブル設定(Tカード省略時は全社員フラグON)
|
||||
1-9.入力ファイルOPEN(DAILY-RECORD)
|
||||
1-10.出力ファイルOPEN(ABSENCE-SUMMARY)
|
||||
|
||||
2.主処理(2000MAJSOR)(R01 EOFまで下記を繰り返す)
|
||||
2-1.DAILY-RECORD読込(READ INTO)
|
||||
【ガード】社員番号の有効性チェック
|
||||
INSPECT WS-EMP-ID TALLYING WS-ZERO-CNT FOR LEADING '0'
|
||||
空文字判定 → DISPLAY警告
|
||||
2-2.DAILY_RECORDS INSERT
|
||||
EXEC SQL INSERT INTO DAILY_RECORDS (...) VALUES (:WS-...)
|
||||
IF SQLCODE NOT = 0 → DISPLAY警告 + 9100DBERRSOR
|
||||
2-3.社員別月次集計(PERFORM VARYING 内部テーブル)
|
||||
該当社員の集計行を線形探索
|
||||
集計計算(COMPUTE ROUNDED ON SIZE ERROR)
|
||||
COMPUTE WS-TOTAL-HOURS ROUNDED =
|
||||
WS-ANNUAL-H + WS-PERSONAL-H + WS-OFFICIAL-H
|
||||
+ WS-SICK-H + WS-ABSENT-H
|
||||
ON SIZE ERROR
|
||||
DISPLAY 'WARNING: Total hours overflow '
|
||||
WS-EMP-ID ' date ' WS-DATE
|
||||
MOVE ZERO TO WS-TOTAL-HOURS
|
||||
END-COMPUTE
|
||||
|
||||
3.終了処理(3000STPSOR)
|
||||
3-1.MODE判定
|
||||
MODE=RESETの場合:
|
||||
EXEC SQL DELETE FROM MONTHLY_ABSENCE
|
||||
WHERE YEAR_MONTH = :WS-YEAR-MONTH
|
||||
3-2.集計結果のMONTHLY_ABSENCE書出(PERFORM VARYING 集計テーブル)
|
||||
各社員・月ごとに:
|
||||
EXEC SQL SELECT COUNT(*) INTO WS-CNT
|
||||
FROM MONTHLY_ABSENCE
|
||||
WHERE EMP_ID = :WS-EMP-ID
|
||||
AND YEAR_MONTH = :WS-YEAR-MONTH
|
||||
IF WS-CNT > 0
|
||||
EXEC SQL UPDATE MONTHLY_ABSENCE SET ...
|
||||
ELSE
|
||||
EXEC SQL INSERT INTO MONTHLY_ABSENCE (...)
|
||||
END-IF
|
||||
IF SQLCODE NOT = 0 → 9100DBERRSOR
|
||||
3-3.ABSENCE_SUMMARYファイル出力
|
||||
STRINGで編集後 WRITE
|
||||
3-4.EXEC SQL COMMIT
|
||||
3-5.全CURSOR/ファイルCLOSE
|
||||
3-6.出力件数メッセージ出力
|
||||
【メッセージ編集】
|
||||
メッセージ番号:6(出力件数)
|
||||
PARM1:'DAILY_RECORDS'
|
||||
PARM2:CUN-DBXINS(INSERT件数)
|
||||
3-7.終了メッセージ出力
|
||||
【メッセージ編集】
|
||||
メッセージ番号:2(終了メッセージ)
|
||||
```
|
||||
|
||||
### SYSINカード処理詳細
|
||||
|
||||
```
|
||||
2100-TARGETSOR SECTION.
|
||||
UNSTRING WS-SYSIN-REC(3:) DELIMITED BY ','
|
||||
INTO WS-TARGET-EMP(1) WS-TARGET-EMP(2) ...
|
||||
TALLYING IN WS-EMP-COUNT
|
||||
END-UNSTRING.
|
||||
DISPLAY 'TARGET EMPLOYEES: ' WS-EMP-COUNT ' persons'.
|
||||
EXIT.
|
||||
GO TO 2000-EXIT.
|
||||
|
||||
2200-PERIODSOR SECTION.
|
||||
UNSTRING WS-SYSIN-REC(3:) DELIMITED BY '='
|
||||
INTO WS-PARM-NAME WS-PARM-VALUE
|
||||
END-UNSTRING.
|
||||
MOVE WS-PARM-VALUE TO WS-YEAR-MONTH.
|
||||
DISPLAY 'PERIOD: ' WS-YEAR-MONTH.
|
||||
EXIT.
|
||||
GO TO 2000-EXIT.
|
||||
|
||||
2300-MODESOR SECTION.
|
||||
INSPECT WS-SYSIN-REC
|
||||
REPLACING ALL 'MODE=' BY SPACES.
|
||||
MOVE WS-SYSIN-REC(3:) TO WS-MODE-VALUE.
|
||||
IF WS-MODE-VALUE = 'RESET'
|
||||
SET RESET-MODE TO TRUE
|
||||
ELSE
|
||||
SET NORMAL-MODE TO TRUE
|
||||
END-IF.
|
||||
DISPLAY 'MODE: ' WS-MODE-VALUE.
|
||||
EXIT.
|
||||
GO TO 2000-EXIT.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 出力レコード定義
|
||||
|
||||
### ABSENCE-SUMMARY(OUTREC/KIN08REC)80B FB
|
||||
|
||||
| No | 項目名 | 設定元 | 属性 | 備考 |
|
||||
|----|--------|--------|------|------|
|
||||
| 1 | EMP-ID | MONTHLY_ABSENCE.EMP_ID | X(8) | 社員番号 |
|
||||
| 2 | YEAR-MONTH | MONTHLY_ABSENCE.YEAR_MONTH | X(6) | YYYYMM |
|
||||
| 3 | ANNUAL-LEAVE-H | 集計結果 | 9(4)V9(1) | 年休使用合計 |
|
||||
| 4 | PERSONAL-LEAVE-H | 集計結果 | 9(4)V9(1) | 事假合計 |
|
||||
| 5 | OFFICIAL-LEAVE-H | 集計結果 | 9(4)V9(1) | 因公特批假合計 |
|
||||
| 6 | SICK-LEAVE-H | 集計結果 | 9(4)V9(1) | 病欠合計 |
|
||||
| 7 | UNAPPROVED-ABSENT-H | 集計結果 | 9(4)V9(1) | 未申請欠勤合計 |
|
||||
| 8 | FILLER | SPACE | X(24) | |
|
||||
|
||||
---
|
||||
|
||||
## カバレッジ構文一覧
|
||||
|
||||
| 構文 | 用途 |
|
||||
|------|------|
|
||||
| READ SYSIN(パターン28) | 制御カード読込 ← 新規パターン |
|
||||
| GO TO DEPENDING ON | カード種別による3分岐 ← 新規 |
|
||||
| DISPLAY | 警告メッセージ表示 ← 新規 |
|
||||
| INSPECT TALLYING | 社員番号空チェック、カンマ区切り数検証 |
|
||||
| COMPUTE ROUNDED ON SIZE ERROR | 時間計算桁あふれ処理 ← 新規 |
|
||||
| EXEC SQL DELETE | RESETモード既存削除 ← 新規 |
|
||||
| EXEC SQL INSERT / UPDATE / SELECT | DB操作 |
|
||||
| PERFORM VARYING | 社員別集計ループ |
|
||||
| UNSTRING | SYSINカード値解析 |
|
||||
| STRING | メッセージ編集 |
|
||||
@@ -0,0 +1,207 @@
|
||||
# 詳細設計書
|
||||
|
||||
## 基本情報
|
||||
|
||||
| # | 項目 | 内容 |
|
||||
|---|------|------|
|
||||
| 1 | システム名 | 勤怠休暇管理システム |
|
||||
| 2 | プログラムID | KIN09CSV |
|
||||
| 3 | プログラム名 | 勤怠CSV出力処理 |
|
||||
| 4 | PGMタイプ | メイン |
|
||||
| 5 | PGMパターン | GETPUT(編集出力) |
|
||||
| 6 | 機能概要 | DAILY_RECORDSをDBからSELECTし、STRING WITH POINTERでCSV行を編集、WRITE AFTER ADVANCING(PAGE/2 LINES/1 LINE)で出力する。INSPECT REPLACINGでCSV危険文字をサニタイズする。 |
|
||||
|
||||
### 前提条件
|
||||
|
||||
| NO | 対象ファイル/DB | 条件 |
|
||||
|----|----------------|------|
|
||||
| 1 | DAILY_RECORDS | KIN08DBUにより当月勤怠データが登録済みであること |
|
||||
| 2 | MONTHLY_ABSENCE | KIN08DBUにより当月集計が完了していること |
|
||||
| 3 | PARM | YEARMONTH=YYYYMM は必須。省略時はABEND |
|
||||
|
||||
### PARM引数
|
||||
|
||||
コマンドラインで以下の形式で指定。
|
||||
|
||||
```
|
||||
YEARMONTH=202605,MODE=FULL
|
||||
```
|
||||
|
||||
| パラメータ | 必須 | デフォルト | 説明 |
|
||||
|-----------|:---:|:--------:|------|
|
||||
| YEARMONTH | ○ | — | 処理対象年月(YYYYMM形式) |
|
||||
| MODE | ○ | FULL | FULL=日別+月次全項目出力, SHORT=月次集計のみ |
|
||||
|
||||
### 使用ファイル一覧
|
||||
|
||||
| NO | 使用ファイル/DB名 | 識別子 | DD名 | I/O | COPY群 | 形式 | ブロック | レコード長 | 媒体 |
|
||||
|----|------------------|--------|------|-----|--------|------|---------|-----------|------|
|
||||
| 1 | CSV-OUTPUT | OUTREC | KIN09W01 | O | KIN09REC | FB | | 200 | PS |
|
||||
|
||||
### 使用DBテーブル
|
||||
|
||||
| NO | テーブル名 | 処理内容 |
|
||||
|----|-----------|---------|
|
||||
| 1 | DAILY_RECORDS | SELECT WHERE TARGET_DATE LIKE 'YYYYMM%' ORDER BY EMP_ID, TARGET_DATE |
|
||||
| 2 | MONTHLY_ABSENCE | SELECT WHERE YEAR_MONTH = :WS-YEAR-MONTH ORDER BY EMP_ID |
|
||||
|
||||
### 使用モジュール一覧
|
||||
|
||||
| NO | 機能 | プログラムID | 使用COPY名 |
|
||||
|----|------|-------------|-----------|
|
||||
| 1 | メッセージ編集出力SUB | SUB02MSG | ZANMSGAC |
|
||||
| 2 | ABEND処理SUB | SUB03END | ZANENDAC |
|
||||
|
||||
---
|
||||
|
||||
## 処理詳細
|
||||
|
||||
```
|
||||
1.初期処理(1000ITTSOR)
|
||||
1-1.開始メッセージ出力
|
||||
【メッセージ編集】
|
||||
メッセージ番号:1(開始メッセージ)
|
||||
1-2.コンパイル日時出力
|
||||
【メッセージ編集】
|
||||
メッセージ番号:33(コンパイル日時)
|
||||
PARM1:コンパイル日時
|
||||
PARM2:'COMPILED'
|
||||
1-3.PARM解析(ACCEPT FROM COMMAND-LINE)
|
||||
INSPECT WS-PARM TALLYING WS-COMMA-CNT FOR ALL ','
|
||||
IF WS-COMMA-CNT < 1
|
||||
DISPLAY 'WARNING: Missing MODE, using FULL'
|
||||
END-IF
|
||||
UNSTRING WS-PARM DELIMITED BY ','
|
||||
INTO WS-PARM1 WS-PARM2
|
||||
END-UNSTRING
|
||||
UNSTRING WS-PARM1 DELIMITED BY '='
|
||||
INTO WS-KEY1 WS-VALUE1
|
||||
END-UNSTRING
|
||||
UNSTRING WS-PARM2 DELIMITED BY '='
|
||||
INTO WS-KEY2 WS-VALUE2
|
||||
END-UNSTRING
|
||||
YEARMONTH設定、MODE設定(FULL/SHORT判定)
|
||||
必須チェック:YEARMONTH未設定 → ABEND(CALL SUB03END)
|
||||
1-4.ワークエリア初期化
|
||||
1-5.DB接続(EXEC SQL CONNECT TO 'data/kin.db')
|
||||
1-6.出力ファイルOPEN(KIN09W01)
|
||||
1-7.ヘッダー行書出(WRITE AFTER ADVANCING PAGE)
|
||||
社員番号,日付,出勤時刻,退勤時刻,休暇種別,
|
||||
年休時間,事假時間,因公特批假時間,病欠時間,未申請欠勤時間
|
||||
|
||||
2.主処理(2000MAJSOR)(FETCH EOFまで下記を繰り返す)
|
||||
2-1.CURSOR FETCH(DAILY_RECORDS)
|
||||
2-2.CSV危険文字サニタイズ(INSPECT REPLACING)
|
||||
MOVE 各項目を退避 → WS-SAFE-FIELD
|
||||
INSPECT WS-SAFE-FIELD REPLACING ALL ',' BY ';'
|
||||
ALL X"0D" BY SPACE
|
||||
ALL X"0A" BY SPACE
|
||||
2-3.CSV行編集(STRING WITH POINTER)
|
||||
MOVE 1 TO WS-PTR
|
||||
STRING
|
||||
WS-EMP-ID DELIMITED BY SIZE
|
||||
',' DELIMITED BY SIZE
|
||||
WS-DATE DELIMITED BY SIZE
|
||||
',' DELIMITED BY SIZE
|
||||
WS-TIME-IN DELIMITED BY SIZE
|
||||
',' DELIMITED BY SIZE
|
||||
WS-TIME-OUT DELIMITED BY SIZE
|
||||
',' DELIMITED BY SIZE
|
||||
WS-LEAVE-TYPE DELIMITED BY SIZE
|
||||
',' DELIMITED BY SIZE
|
||||
WS-ANNUAL-H DELIMITED BY SIZE
|
||||
',' DELIMITED BY SIZE
|
||||
WS-PERSONAL-H DELIMITED BY SIZE
|
||||
',' DELIMITED BY SIZE
|
||||
WS-OFFICIAL-H DELIMITED BY SIZE
|
||||
',' DELIMITED BY SIZE
|
||||
WS-SICK-H DELIMITED BY SIZE
|
||||
',' DELIMITED BY SIZE
|
||||
WS-ABSENT-H DELIMITED BY SIZE
|
||||
INTO WS-CSV-LINE WITH POINTER WS-PTR
|
||||
END-STRING
|
||||
2-4.行数カウンタ加算
|
||||
2-5.100行ごとにヘッダー再出力(WRITE AFTER ADVANCING 2 LINES + ヘッダー行)
|
||||
100件毎 → WRITE WS-SEC-REC AFTER ADVANCING 2 LINES
|
||||
WRITE WS-HDR-REC AFTER ADVANCING 1 LINE
|
||||
2-6.データ行出力(WRITE AFTER ADVANCING 1 LINE)
|
||||
WRITE WS-OUT-REC FROM WS-CSV-LINE AFTER ADVANCING 1 LINE
|
||||
|
||||
3.MODE=SHORT時のみ追加処理(2500-SHORT-MODE)
|
||||
3-1.MONTHLY_ABSENCE CURSOR OPEN
|
||||
3-2.STRINGで集計行編集
|
||||
3-3.セクション区切り出力
|
||||
WRITE WS-SEC-REC AFTER ADVANCING 2 LINES
|
||||
3-4.集計行出力
|
||||
WRITE WS-OUT-REC AFTER ADVANCING 1 LINE
|
||||
|
||||
4.終了処理(3000STPSOR)
|
||||
4-1.CURSOR CLOSE
|
||||
4-2.DB切断
|
||||
4-3.出力ファイルCLOSE
|
||||
4-4.出力件数メッセージ出力
|
||||
【メッセージ編集】
|
||||
メッセージ番号:6(出力件数)
|
||||
PARM1:'CSV-OUTPUT'
|
||||
PARM2:CUN-W01OUT(出力行数)
|
||||
4-5.終了メッセージ出力
|
||||
【メッセージ編集】
|
||||
メッセージ番号:2(終了メッセージ)
|
||||
```
|
||||
|
||||
### WRITE AFTER ADVANCING 3種の使い分け
|
||||
|
||||
| タイミング | 構文 | 説明 |
|
||||
|-----------|------|------|
|
||||
| ファイル先頭 | WRITE header-rec AFTER ADVANCING PAGE | 改ページ(最初のヘッダー) |
|
||||
| 100行ごと | WRITE sep-rec AFTER ADVANCING 2 LINES | セクション区切り(空行2行) |
|
||||
| 100行ごと | WRITE header-rec AFTER ADVANCING 1 LINE | 再ヘッダー出力 |
|
||||
| データ行 | WRITE data-rec AFTER ADVANCING 1 LINE | 通常データ行 |
|
||||
|
||||
---
|
||||
|
||||
## 出力レコード定義
|
||||
|
||||
### CSV-OUTPUT(OUTREC/KIN09REC)200B FB
|
||||
|
||||
| No | 項目名 | 設定元 | 属性 | 備考 |
|
||||
|----|--------|--------|------|------|
|
||||
| 1 | CSV-LINE | STRING編集結果 | X(200) | CSV1行分の文字列データ |
|
||||
|
||||
---
|
||||
|
||||
## CSVフォーマット
|
||||
|
||||
ヘッダー行(WRITE AFTER ADVANCING PAGEで出力):
|
||||
```
|
||||
社員番号,日付,出勤時刻,退勤時刻,休暇種別,年休時間,事假時間,因公特批假時間,病欠時間,未申請欠勤時間
|
||||
```
|
||||
|
||||
データ行:
|
||||
```
|
||||
00000101,20260501,0900,1800,99,0.0,0.0,0.0,0.0,0.0
|
||||
00000101,20260502,0900,1300,02,0.0,4.0,0.0,0.0,4.0
|
||||
```
|
||||
|
||||
MODE=SHORT時の集計行(WRITE AFTER ADVANCING 2 LINESで区切り):
|
||||
```
|
||||
社員番号,年月,年休計,事假計,因公特批假計,病欠計,未申請欠勤計
|
||||
00000101,202605,8.0,4.0,0.0,0.0,4.0
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## カバレッジ構文一覧
|
||||
|
||||
| 構文 | 用途 |
|
||||
|------|------|
|
||||
| ACCEPT FROM COMMAND-LINE | PARM解析 |
|
||||
| INSPECT TALLYING | カンマ区切り数チェック |
|
||||
| INSPECT REPLACING | CSV危険文字置換 ← 新規 |
|
||||
| STRING WITH POINTER | 位置指定CSV行編集 ← 新規 |
|
||||
| WRITE AFTER ADVANCING PAGE | ページヘッダー制御 ← 新規 |
|
||||
| WRITE AFTER ADVANCING 2 LINES | セクション区切り ← 新規 |
|
||||
| WRITE AFTER ADVANCING 1 LINE | データ行出力 ← 新規 |
|
||||
| STRING | CSV行編集(DELIMITED BY SIZE) |
|
||||
| EXEC SQL SELECT(CURSOR) | DB読込 |
|
||||
| DISPLAY | 警告メッセージ表示 |
|
||||
Reference in New Issue
Block a user