テキスト・エリア(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の画像処理はくわしくはこちらで –
