処理中ファイル書式 | 状態取得書式 | ユーザーデータ書式 | グローバルデータ書式 | 日付書式 | 文字列書式 | 数学書式 | 制御書式 | ファイルシステム書式 | テキストファイル書式 | データベース書式 | プロセス書式 | Web書式 | DocuWorks書式 | DocuWorks書式 (アノテーション関連) | 画像処理書式 | Excel書式 | その他の書式
データ領域(変数)に文字情報を一時的に記憶できます。データ名単位で、重複しないキーを指定し、複数の値(文字列)を記憶できます。
分類キーを使って、階層的にデータを保存することもできます。分類キーは0個~10個まで指定できます。
同じ名前の分類キーとキーを同じ階層に重複して追加することはできません。
ユーザーデータの内容が保持されるのは、バッチ処理が開始されてからバッチ処理が終了するまでとなっています。
但し、ファイルの繰り返しがある場合は、ファイルの繰り返し処理のパネルの「ループ毎にユーザーデータをクリアする」がデフォルトでチェックされた状態になっていますので、ファイル毎にユーザーデータがクリアされます。
詳細はファイルの 繰り返し処理 の「ループ毎にユーザーデータをクリアする」をご覧ください。
{%SET_USER_DATA(商品データ,A001-00123,パソコン)}
{%SET_U(商品データ,A001-00123,パソコン)}
{%SET_USER_DATA(学生リスト,1年,1組,1番,伊藤)} {%SET_USER_DATA(学生リスト,1年,1組,2番,大橋)} {%SET_USER_DATA(学生リスト,1年,2組,1番,山田)} {%SET_USER_DATA(学生リスト,2年,1組,1番,太田)}
以下の書き方はできません。「学生リスト,1年,1組,2番,大橋」の「1組」は分類キーで、「学生リスト,1年,1組,山岡先生」の「1組」はキーですが、同じ「1組」のため重複してしまいます。
{%SET_USER_DATA(学生リスト,1年,1組,1番,伊藤)} {%SET_USER_DATA(学生リスト,1年,1組,2番,大橋)} {%SET_USER_DATA(学生リスト,1年,1組,山岡先生)} {%SET_USER_DATA(学生リスト,1年,2組,1番,山田)} {%SET_USER_DATA(学生リスト,1年,2組,村上先生)} {%SET_USER_DATA(学生リスト,2年,1組,1番,太田)} {%SET_USER_DATA(学生リスト,2年,1組,木村先生)}
先生と生徒を分類したい場合は、以下の様にするとよいでしょう。
{%SET_USER_DATA(学生リスト,1年,1組,生徒,1番,伊藤)} {%SET_USER_DATA(学生リスト,1年,1組,生徒,2番,大橋)} {%SET_USER_DATA(学生リスト,1年,1組,先生,山岡)} {%SET_USER_DATA(学生リスト,1年,2組,生徒,1番,山田)} {%SET_USER_DATA(学生リスト,1年,2組,先生,村上)} {%SET_USER_DATA(学生リスト,2年,1組,生徒,1番,太田)} {%SET_USER_DATA(学生リスト,2年,1組,先生,木村)}
さらに、先生が複数になる場合も考慮すると以下のようになります。
{%SET_USER_DATA(学生リスト,1年,1組,生徒,1番,伊藤)} {%SET_USER_DATA(学生リスト,1年,1組,生徒,2番,大橋)} {%SET_USER_DATA(学生リスト,1年,1組,先生,1番,山岡)} {%SET_USER_DATA(学生リスト,1年,2組,生徒,1番,山田)} {%SET_USER_DATA(学生リスト,1年,2組,先生,1番,村上)} {%SET_USER_DATA(学生リスト,2年,1組,生徒,1番,太田)} {%SET_USER_DATA(学生リスト,2年,1組,先生,1番,木村)} {%SET_USER_DATA(学生リスト,2年,1組,先生,2番,中川)}
データ領域(変数)に文字情報を一時的に記憶できます。データ名単位で、重複しないキーを指定し、複数の値(文字列)を記憶できます。連番のキーを追加して登録します。追加される連番は自動でカウントアップされていきます。
分類キーを使って、階層的にデータを保存することもできます。分類キーは0個~10個まで指定できます。
{%ADD_USER_DATA(参加者リスト,伊藤)} {%ADD_USER_DATA(参加者リスト,山田)} {%ADD_USER_DATA(参加者リスト,太田)}
この例では内部的には、キー「1」値「伊藤」、キー「2」値「山田」、キー「3」値「太田」と登録されます。
{%ADD_USER_DATA(学生リスト,1年,1組,伊藤)} {%ADD_USER_DATA(学生リスト,1年,1組,大橋)} {%ADD_USER_DATA(学生リスト,1年,2組,山田)} {%ADD_USER_DATA(学生リスト,2年,1組,太田)}
この例では内部的に以下の様なデータが登録されます。 学生リスト 1年 1組 1 伊藤 2 大橋 2組 1 山田 2年 1組 1 太田
データ領域(変数)に記憶された文字情報を返却します。(SET_USER_DATAマクロでセットされたデータを返却します。)
{%GET_USER_DATA(商品データ,A001-00123)}
{%GET_U(商品データ,A001-00123)}
{%SET_USER_DATA(学生リスト,1年,1組,1番,伊藤)} {%SET_USER_DATA(学生リスト,1年,1組,2番,大橋)} {%SET_USER_DATA(学生リスト,1年,2組,1番,山田)} {%SET_USER_DATA(学生リスト,2年,1組,1番,太田)} {%WRITE_LOG({%GET_USER_DATA(学生リスト,1年,1組,1番)})} {%WRITE_LOG({%GET_USER_DATA(学生リスト,2年,1組,1番)})}
結果 伊藤 太田
データ領域(変数)に記憶された文字情報を、番号を指定して返却します。(SET_USER_DATA,ADD_USER_DATAマクロでセットされたデータを返却します。)
{%SET_USER_DATA(商品データ,A001-00123,パソコン)} {%SET_USER_DATA(商品データ,A001-00200,マウス)} {%WRITE_LOG({%GET_USER_DATA_BY_NUMBER(商品データ,1)})}
結果 パソコン
{%SET_USER_DATA(学生リスト,1年,1組,1番,伊藤)} {%SET_USER_DATA(学生リスト,1年,1組,2番,大橋)} {%WRITE_LOG({%GET_USER_DATA_BY_NUMBER(学生リスト,1年,1組,2)})}
結果 大橋
データ領域(変数)に記憶されたキー情報を、番号を指定して返却します。(SET_USER_DATA,ADD_USER_DATAマクロでセットされたデータのキーを返却します。)
{%SET_USER_DATA(商品データ,A001-00123,パソコン)} {%GET_USER_DATA_KEY_BY_NUMBER(商品データ,1)}
結果 A001-00123
{%SET_USER_DATA(学生リスト,1年,1組,1番,伊藤)} {%SET_USER_DATA(学生リスト,1年,1組,2番,大橋)} {%WRITE_LOG({%GET_USER_DATA_KEY_BY_NUMBER(学生リスト,1年,1組,2)})}
結果 2番
ユーザーデータに記憶されたデータの個数を返却します。データ名を指定します。
間違えやすいので、通常はユーザーデータキー数取得(GET_USER_DATA_KEY_COUNT)を使用してください。
データ名と分類キーを指定することもできます。その場合は最後の分類キーまで指定してください。{%SET_USER_DATA(商品データ,A001-00123,パソコン)} {%SET_USER_DATA(商品データ,A001-00200,マウス)} {%WRITE_LOG({%GET_USER_DATA_COUNT(商品データ)})}
結果 2
{%SET_USER_DATA(学生リスト,1年,1組,1番,伊藤)} {%SET_USER_DATA(学生リスト,1年,1組,2番,大橋)} {%SET_USER_DATA(学生リスト,1年,2組,1番,山田)} {%WRITE_LOG({%GET_USER_DATA_COUNT(学生リスト)})} {%WRITE_LOG({%GET_USER_DATA_COUNT(学生リスト,1年)})} {%WRITE_LOG({%GET_USER_DATA_COUNT(学生リスト,1年,1組)})} {%WRITE_LOG({%GET_USER_DATA_COUNT(学生リスト,1年,1組,1番)})}
結果 0 ← 分類キーを最後まで指定していないので0となる。 0 ← 分類キーを最後まで指定していないので0となる。 2 0 ← 最後の分類キーまで指定しているので0となる。
ユーザーデータに記憶されたキーの個数を返却します。データ名を指定します。
データ名と分類キーを指定することもできます。各階層の分類キーの数を取得できます。
{%SET_USER_DATA(学生リスト,1年,1組,1番,伊藤)} {%SET_USER_DATA(学生リスト,1年,1組,2番,大橋)} {%SET_USER_DATA(学生リスト,1年,2組,1番,山田)} {%WRITE_LOG({%GET_USER_DATA_KEY_COUNT(学生リスト)})} {%WRITE_LOG({%GET_USER_DATA_KEY_COUNT(学生リスト,1年)})} {%WRITE_LOG({%GET_USER_DATA_KEY_COUNT(学生リスト,1年,1組)})} {%WRITE_LOG({%GET_USER_DATA_KEY_COUNT(学生リスト,1年,1組,1番)})}
結果 1 2 2 0 ← 最後の分類キーまで指定しているので0となる。
ユーザーデータに記憶されているデータのデータ名、分類キー、又はキーが存在するかチェックします。存在する場合、「True」を返却します。存在しない場合は、「Flase」を返却します。
{%IF({%EXISTS_USER_DATA(商品データ,A001-00123)}=True, {%MSGBOX(データあり)} , {%MSGBOX(データなし)} )}
{%SET_USER_DATA(学生リスト,1年,1組,1番,伊藤)} {%SET_USER_DATA(学生リスト,1年,1組,2番,大橋)} {%SET_USER_DATA(学生リスト,1年,2組,1番,山田)} {%WRITE_LOG({%EXISTS_USER_DATA(学生リスト)})} {%WRITE_LOG({%EXISTS_USER_DATA(学生リスト,1年)})} {%WRITE_LOG({%EXISTS_USER_DATA(学生リスト,1年,1組)})} {%WRITE_LOG({%EXISTS_USER_DATA(学生リスト,1年,1組,1番)})} {%WRITE_LOG({%EXISTS_USER_DATA(学生リスト,2年)})} {%WRITE_LOG({%EXISTS_USER_DATA(学生リスト,1年,1組,3番)})}
結果 True True True True False False
ユーザーデータを削除します。キーは省略可能で、キーを省略した場合は、データ名で定義された全てのキーと値が削除されます。データ名とキーを指定した場合は、該当のキーと値のみが削除されます。
{%DELETE_USER_DATA(商品データ,A001)}
{%DELETE_USER_DATA(商品データ)}
SAVE_USER_DATAマクロによって、出力されたユーザーデータをファイルから読み込みます。
値に独自の形式の識別文字(改行や、タブ)が含まれる場合は、マッチした制御文字に置き換え、読み込みます。
ファイル削除指定には、「Delete」または、「Leave」を指定できます。「Delete」を指定した場合は、データ読込後に、ファイルを削除します。「Leave」を指定した場合は、ファイルを削除せず、そのまま残します。省略した場合は「Leave」となります。
文字コードは「SJIS」、「UTF-8」、「UTF-16」、「UTF-16BE」、「EUC」、「JIS」、「自動」の何れかを指定します。省略した場合は「SJIS」になります。
{%LOAD_USER_DATA(D:\Test\UserData.txt,商品データ,Delete)}
ユーザーデータの内容をファイルに出力します。出力するファイルはテキスト形式で、キーと値がタブで区切られたTAB区切りデータになります。複数のデータがある場合は、1データ1行で改行されて出力されます。
値に、改行や、タブが含まれる場合は、独自の形式で識別文字に置き換え保存します。
文字コードは「SJIS」、「UTF-8」、「UTF-16」、「UTF-16BE」、「EUC」、「JIS」の何れかを指定します。省略した場合は「SJIS」になります。
{%SAVE_USER_DATA(D:\Test\UserData.txt,商品データ)}
ユーザーデータのデータをCSV(カンマ区切り)で取得します。引数にユーザーデータ名を指定してください。
{%SET_USER_DATA(temp,氏名,伊藤由美子)} {%SET_USER_DATA(temp,性別,女性)} {%SET_USER_DATA(temp,年齢,24)} {%SET_USER_DATA(temp,住所,東京都品川区)} {%MSGBOX({%GET_USER_DATA_IN_CSV(temp)})}
ユーザーデータのデータをTSV(タブ区切り)で取得します。引数にユーザーデータ名を指定してください。
{%SET_USER_DATA(temp,氏名,伊藤由美子)} {%SET_USER_DATA(temp,性別,女性)} {%SET_USER_DATA(temp,年齢,24)} {%SET_USER_DATA(temp,住所,東京都品川区)} {%MSGBOX({%GET_USER_DATA_IN_TSV(temp)})}
ユーザーデータのデータを指定文字区切りで取得します。引数にユーザーデータ名、区切り文字、エスケープ有無、囲い文字、全項目囲い文字付与有無を指定してください。
区切り文字以降の引数の意味は GET_FIELD_VALUES_IN_SV と同じになります。
{%SET_USER_DATA(temp,氏名,伊藤由美子)} {%SET_USER_DATA(temp,性別,女性)} {%SET_USER_DATA(temp,年齢,24)} {%SET_USER_DATA(temp,住所,東京都品川区)} {%MSGBOX({%GET_USER_DATA_IN_SV(temp,|,,有,",有)})}
ユーザーデータのデータを並び変えます。
並び順には、「Asc」(昇順)、「Desc」(降順)を指定します。
対象には、「Key」(キー)、「Value」(値)を指定します。
ソートタイプには、「Natural」(自然順)、「String」(文字コード順)、「Integer」(数値順)を指定します。
{%SET_U(点数,伊藤,52)} {%SET_U(点数,山本,87)} {%SET_U(点数,西川,8)} {%SET_U(点数,橋本,100)} {%SET_U(点数,酒井,86)} {%SORT_USER_DATA(点数,Asc,Value,Natural)} {%LOOP L1 {%GET_USER_DATA_COUNT(点数)}( {%WRITE_LOG({%GET_USER_DATA_KEY_BY_NUMBER(点数,[L_IDX(L1)])} {%GET_USER_DATA_BY_NUMBER(点数,[L_IDX(L1)])})} )}
結果 西川 8 伊藤 52 酒井 86 山本 87 橋本 100
グローバルデータ設定で設定された文字列を、引数のデータ名により返却します。
{%GET_GLOBAL_DATA(PATH)}
ローカルデータ設定で設定された文字列を、引数のデータ名により返却します。
{%GET_LOCAL_DATA(PATH)}