テキスト・エリア(TEXTAREA)とは複数行のテキストを入力できるフィールドのことである。
HTMLでは textarea タグはお馴染みであるが RPG でも同じような複数行から成る入力欄を
作ることができる。
IBM のDDS解説書などでは textarea とは書いていないので読み飛ばしている人も多いが
textarea を作るのは CNTFLD (=Conticanate Field:結合フィールド)として
解説されている。
[ 部品検収の入力 ]
[解説]
ご覧の「写真」というフィールドは複数行から成り立っていることが
おわかりになると思う。
これはひとつのフィールドでありがら複数行として表示されているいわゆるテキスト・エリアである。
[ DSPF: CAMERADFM ソース ]
ソースはこちらから
0001.00 A*%%TS SD 20210805 150710 QTR REL-V6R1M0 5761-WDS 0002.00 A*%%EC 0003.00 A DSPSIZ(24 80 *DS3) 0004.00 A MSGLOC(24) 0005.00 A PRINT 0006.00 A******************************************************************* 0007.00 A R DSPDTA01 0008.00 A******************************************************************* 0009.00 A*%%TS SD 20210805 150710 QTR REL-V6R1M0 5761-WDS 0010.00 A TEXT(' 明細画面 01') 0011.00 A CF03(03 ' 終了 ') 0012.00 A CF05(05 ' 撮影 ') 0013.00 A CF07(07 ' 画像 ') 0014.00 A CF10(10 ' 更新 ') 0015.00 A CF23(23 ' 削除 ') 0016.00 A CF12(12 ' 前画面 ') 0017.00 A ROLLUP(07) 0018.00 A ROLLDOWN(08) 0019.00 A SETOF(99) 0020.00 A BLINK 0021.00 A 1 2HTML('TEMPLATE=/AS400-NET.USR/TEMPL- 0022.00 A ATE/QTROBJ/CAMERA/CAMERAD.HTM') 0023.00 A 1 21' 部品検収の入力 ' 0024.00 A DSPATR(HI) 0025.00 A DSPMSG 6A O 1 53TEXT(' 保守モード ') 0026.00 A DSPATR(HI) 0027.00 A 2 40' 検収日 ' 0028.00 A BKDATE 8Y 0O 2 49EDTCDE(W) 0029.00 A 3 2' 部品コード ' 0030.00 A BKNCOD 12A O 3 17TEXT(' 部品コード ') 0031.00 A 4 2' 部品名 ' 0032.00 A BHNAME 20O O 4 17TEXT(' 部品名 ') 0033.00 A 5 2' 検収数 ' 0034.00 A BKNUKO 7Y 0B 5 17TEXT(' 検収数 ') 0035.00 A EDTCDE(K) 0036.00 A 6 2' 摘要 ' 0037.00 A BKTEKI 21G B 6 17TEXT(' 摘要 UNICODE *EMOJI') 0038.00 A DSPATR(PC) 0039.00 A CCSID(1200 21) 0040.00 A* 6 61'( 絵文字入力可 )' 0041.00 A 8 2' ↓ボタンを押して検収品を撮影して + 0042.00 A ください。 ' 0043.00 A COLOR(BLU) 0044.00 A 9 2' 写真 ' 0045.00 A BPHOTO 504A B 9 17TEXT(' 写真 =42 桁 * 12 行表示 *IMA- 0046.00 A GE') 0047.00 A CNTFLD(042) 0048.00 A* 0049.00 A F3FLD 2Y 0B 23 2PSHBTNFLD(*RSTCSR (*NUMCOL 1)) 0050.00 A TEXT(' 終了ボタン ') 0051.00 A PSHBTNCHC(1 '*END' CF03) 0052.00 A CAMERA 2Y 0B 23 10PSHBTNFLD(*RSTCSR (*NUMCOL 1)) 0053.00 A TEXT(' カメラ撮影 ') 0054.00 A PSHBTNCHC(1 '*CAMERA' CF05) 0055.00 A PICTURE 2Y 0B 23 21PSHBTNFLD(*RSTCSR (*NUMCOL 1)) 0056.00 A TEXT(' 画像の検索 ') 0057.00 A PSHBTNCHC(1 '*PICTURE' CF07) 0058.00 A UPLOAD 2Y 0B 23 34PSHBTNFLD(*RSTCSR (*NUMCOL 1)) 0059.00 A TEXT(' アップロードキー ') 0060.00 A PSHBTNCHC(1 '*UPLOAD' CF09) 0061.00 A UPDATE 2Y 0B 23 47PSHBTNFLD(*RSTCSR (*NUMCOL 1)) 0062.00 A TEXT(' 更新キー ') 0063.00 A PSHBTNCHC(1 '*UPDATE' CF10) 0064.00 A PREV 2Y 0B 23 60PSHBTNFLD(*RSTCSR (*NUMCOL 1)) 0065.00 A TEXT(' 戻る ') 0066.00 A PSHBTNCHC(1 '*PREV' CF12) 0067.00 A 22 2' - 0068.00 A ' 0069.00 A DSPATR(UL) 0070.00 ******************************************************************* 0071.00 A R DSPHEAD 0072.00 ******************************************************************* 0073.00 A TEXT(' 初期画面 ') 0074.00 A* 11:59:33 QSECOFR REL-R06M00 5714-UT1 0075.00 A CF03(03 ' 終了 ') 0076.00 A ROLLUP(07) 0077.00 A ROLLDOWN(08) 0078.00 A BLINK 0079.00 A 1 21' 部品検収の入力 ' 0080.00 A DSPATR(HI) 0081.00 A 2 40' 検収日 ' 0082.00 A BKDATE 8Y 0B 2 49 0083.00 A EDTCDE(W) 0084.00 A 3 2' 部品コード ' 0085.00 A BKNCOD 12A B 3 17TEXT(' 部品コード ') 0086.00 A 11 13' 部品コードを入れて + 0087.00 A 実行キーを押してください ' 0088.00 A DSPATR(HI) 0089.00 A F3FLD 2Y 0B 23 2PSHBTNFLD(*RSTCSR (*NUMCOL 1)) 0090.00 A TEXT(' 終了ボタン ') 0091.00 A PSHBTNCHC(1 '*END' CF03) 0092.00 ******************************************************************* 0093.00 A R ENDOPT 0094.00 ******************************************************************* 0095.00 A TEXT(' 終了画面 ') 0096.00 A CF03(03 ' 終了 ') 0097.00 A CSRLOC(LIN POS) 0098.00 A 1 34' 終了 ' 0099.00 A COLOR(PNK) 0100.00 A DSPATR(HI) 0101.00 A 3 2' 処理されたレコード数 ' 0102.00 A 5 10' 追加 . . . . . :' 0103.00 A ADDREC 5Y 0O 5 35EDTCDE(4) 0104.00 A 6 10' 変更 . . . . . :' 0105.00 A CHGREC 5Y 0O 6 35EDTCDE(4) 0106.00 A 7 10' 削除 . . . . . :' 0107.00 A DLTREC 5Y 0O 7 35EDTCDE(4) 0108.00 A 11 2' 選択項目を打鍵して,実行キーを押 + 0109.00 A してください。 ' 0110.00 A COLOR(BLU) 0111.00 A 13 5' データ入力の終了 . . . . . .' 0112.00 A ANS 1A B 13 39VALUES('Y' 'N') 0113.00 A 13 53'Y=YES, N=NO' 0114.00 A F3FLD 2Y 0B 23 2PSHBTNFLD(*RSTCSR (*NUMCOL 1)) 0115.00 A TEXT(' 終了ボタン ') 0116.00 A PSHBTNCHC(1 '*END' CF03) 0117.00 A PREV 2Y 0B 23 15PSHBTNFLD(*RSTCSR (*NUMCOL 1)) 0118.00 A TEXT(' 戻る ') 0119.00 A PSHBTNCHC(1 '*PREV' CF12) 0120.00 A LIN 3S 0H 0121.00 A POS 3S 0H
[解説]
写真として表示されているテキスト・エリアのフィールドは
0043.00 A COLOR(BLU) 0044.00 A 9 2' 写真 ' 0045.00 A BPHOTO 504A B 9 17TEXT(' 写真 =42 桁 * 12 行表示 *IMA- 0046.00 A GE') 0047.00 A CNTFLD(042)
である。
このフィールド : BPHOTO は 504バイトの長さであるが CNTFLD(042) によって42桁の幅として
表示されている。
従って 504 / 42 = 12行の表示である。
データ・ベース上では 504バイトのフィールドとして処理されているはずである。
参考までにこの画面をAutoWebで表示すると
[解説]
写真フィールドは完全なテキスト・エリアとして表示されているだけでなく
押しボタンがアイコン・ボタンとして表示されていることに注意して欲しい。
AutoWebではアイコン・ボタンの表示や絵文字の入力も可能になっている。
もちろん写真を撮って貼り付けることもできる。
AutoWebの画像処理はIBM iのインターフェースのイメージを大幅に変革したのである。
– AutoWebの画像処理はくわしくはこちらで –