読み取りデータ書式
|
シンボル情報取得書式
|
配信先取得書式
|
処理結果取得書式
|
ユーザデータ書式
|
グローバルデータ書式
|
プラグインデータ書式
|
日付書式
|
ファイル名書式
|
文字列書式
|
数学書式
|
制御書式
|
実行書式
|
データベース書式
|
DocuWorksAPI書式
|
ブラウザフォーム書式
引数のメッセージをダイアログに表示します。
{%MSGBOX({%P_DATA(QRコード読み取り1.1)})}
エラーを発生させます。通常のエラーと同様に、処理中の処理を中断し、次の処理を行います。引数にエラーメッセージを指定することができます。
IFマクロと併用し、条件によりエラーを発生させて使います。
{%IF({%N_EXISTS(QRコード読み取り1.name)}=True,,{%ERROR_RAISE(nameが見つかりません)})}
eDocArrangementの処理結果にメッセージを出力します。ログ設定が有効になっていれば、通常のログと一緒に出力されます。
{%LOG_OUT(処理を実行しました。)}
ファイル名に指定されたファイルを削除します。ファイルが存在しない場合は何もしません。
ファイルの削除に成功した場合は、ファイル名を返却します。
ファイルが存在しない場合は、空文字を返却します。
{%DELETE_FILE(D:\Test\File01.tif)}
フォルダ名に指定されたフォルダを削除します。フォルダが存在しない場合は何もしません。
フォルダの中が空の場合のみ削除します。
フォルダの削除に成功した場合は、フォルダ名を返却します。
フォルダが存在しない場合は、空文字を返却します。
フォルダの中にファイル又はフォルダが存在する場合はエラーとなります。
{%DELETE_FOLDER(D:\Test)}
フォルダ名に指定されたフォルダを作成します。上位から順番に存在しないフォルダを作成していきますので、パスで指定された全てのフォルダを一度に作成できます。
{%CREATE_FOLDER(C:\Home\test\abc)}
ファイル名に指定されたファイルが存在するかチェックします。ファイルが存在する場合はTrueを返却し、存在しない場合はFalseを返却します。
{%IF({%EXISTS_FILE(D:\Test\File01.txt)}=True,MSGBOX(あり),MSGBOX(なし))}
フォルダ名に指定されたフォルダが存在するかチェックします。フォルダが存在する場合はTrueを返却し、存在しない場合はFalseを返却します。
{%IF({%EXISTS_FOLDER(D:\Test)}=True,MSGBOX(あり),MSGBOX(なし))}
ファイルをコピーします。コピー先に既に同名のファイルが存在する場合は、エラーが発生します。
{%COPY_FILE(D:\Test\File01.txt,D:\Test\控え\File01.txt)}
ファイルを回数で指定された数分コピー(複製)します。コピー先ファイル名には[No]という文字を含ませてください。実行時に[No]が番号に置換されます。
コピー先に既に同名のファイルが存在する場合は、エラーが発生します。
{%MULTI_COPY_FILE(D:\Test\File.txt,D:\Test\控え\File[No].txt,3)}
ファイルを移動します。移動先に既に同名のファイルが存在する場合は、エラーが発生します。
{%MOVE_FILE(D:\Test\File01.txt,D:\Test\処理済み\File01.txt)}
フォルダ名に指定されたフォルダ内にファイル又は、フォルダが存在するかチェックします。存在しない場合はTrueを返却し、存在する場合はFalseを返却します。
{%IF({%IS_FOLDER_EMPTY(D:\Test)}=True,{%DELETE_FOLDER(D:\Test)},)}
ファイル名に指定されたファイルが存在するかチェックし、ファイルが存在する場合はファイル名の末尾に連番を付与したファイル名を返却します。
{%GET_SEQUENCE_FILENAME(D:\Test\File01.txt)}
結果 ファイルが存在する場合
File01_0001.txt
指定されたファイル、又は、フォルダの作成日時を取得します。取得される形式は、「yyyyy/mm/dd hh:nn:ss」です。
{%GET_CREATION_TIME({%FILE_FULL_PATH})} 結果 2018/02/10 12:44:27
指定されたファイル、又は、フォルダの更新日時を取得します。取得される形式は、「yyyyy/mm/dd hh:nn:ss」です。
{%GET_LAST_WRITE_TIME({%FILE_FULL_PATH})} 結果 2018/02/10 12:44:27
指定されたファイル、又は、フォルダのアクセス日時を取得します。取得される形式は、「yyyyy/mm/dd hh:nn:ss」です。
{%GET_LAST_ACCESS_TIME({%FILE_FULL_PATH})} 結果 2018/02/10 12:44:27
ファイル名に指定されたテキストファイルを行単位で読み込みます。読み込んだテキストデータは、ユーザデータに格納します。
読み取った内容はユーザデータのキーに行番号(1〜)を指定することで参照できます。
また、読み取り行数は、キーに「Count」を指定することで参照できます。
{%FILE_READ(D:\Test\File01.txt,Data)}
{%MSGBOX({%GET_USER_DATA(Data,Count)})}
{%MSGBOX({%GET_USER_DATA(Data,1)})}
ファイル名に指定されたCSVファイルを読み込みます。読み込んだ項目は、ユーザデータに格納します。
分割されるデータにユニークキーがある場合は、引数のキー番号にユニークキーの項目番号(1〜n)を指定します。ユニークキーがない場合は引数のキー番号に0を指定します。
結果として格納されるユーザデータは、「引数で指定した出力ユーザデータ名 + "_" + ユニークキー」という名前で設定します。 したがって、データの件数分、ユーザデータが作成されることになります。
分割されたデータにユニークキーとして指定した項目が存在しない場合、又は0を指定した場合は、ユーザデータ名の末尾に付加する文字を行番号にします。 (「引数で指定した出力ユーザデータ + "_" + 行番号」)
ユニークであるはずのキーが複数存在した場合には、後から読み込んだデータ(キー)で上書きします。
ユーザデータの中身は、項目番号をキーとして、項目の内容を値としてセットします。
また、読み取り行数はキーに「Count」を指定することで参照できます。読み取り項目数はGET_USER_DATA_COUNTマクロで取得できます。
このマクロはExcelで保存可能な、項目に改行が入ったCSV(項目の前後が""で囲われている書式)も読み込めます。
{%CSV_FILE_READ(D:\Test\File01.csv,data,1)}
{%MSGBOX("{%GET_USER_DATA(data_X500,1)}"
"{%GET_USER_DATA(data_X500,2)}"
"{%GET_USER_DATA(data_X500,3)}"
{%GET_USER_DATA(data,Count)}
)}
{%CSV_FILE_READ(D:\Test\File01.csv,data,0)}
{%MSGBOX("{%GET_USER_DATA(data_3,1)}"
"{%GET_USER_DATA(data_3,2)}"
"{%GET_USER_DATA(data_3,3)}"
{%GET_USER_DATA_COUNT(data_3)}
)}
ファイル名に指定されたテキストファイルを行単位で読み込みます。1行読むたびに引数のグローバルデータで定義されたマクロを実行します。あらかじめグローバルデータで実行するマクロを定義しておく必要があります。
読み取った行の内容は引数のユーザデータとキー「1」を指定することで参照できます。1行毎に毎回、キー「1」にセットしますので、使用するメモリは1行分のデータだけとなります。
また、読み取り行数は、キーに「Count」を指定することで参照できます。
但し、eDocArrangementのマクロ実行は処理速度が遅いので、行数の多いテキストファイルに対して処理を行うことはお勧めできません。実測して実用的なケースでご利用ください。
{%FILE_READ_AND_MACRO_EXECUTE(D:\Test\File01.txt,Data,Macro1)}
引数に指定されたユーザデータの内容を、テキストファイルに書き込みます。ユーザデータは一つのキーが1行になり、ファイルには値が出力されます。出力順は、ユーザデータの登録順になります。
モードには、「OUTPUT」または「APPEND」を指定します。「OUTPUT」の場合、ファイルが既に存在した場合に上書きになります。「APPEND」は追加書き込みになります。ファイルが存在しない場合は、両方共に新しく作成します。
{%SET_USER_DATA(Temp,1,番号\,注文数\,税込金額)}
{%SET_USER_DATA(Temp,2,100\,1\,200)}
{%FILE_WRITE(C:\data.txt,Temp,OUTPUT)}
◆出力されたテキストファイルの内容
番号,注文数,税込金額
100,1,200
指定のフォルダからファイル又は、フォルダを検索します。
フォルダ名には、検索するフォルダを指定します。
ファイル名に検索したいファイルを指定します。ファイル名にはワイルドカードが使用できます。;(セミコロン)で区切ることによって複数指定が可能です。
データ名には、検索結果を保存するユーザデータのデータ名を指定します。
サブフォルダ検索指定には、「SUB_DIR」又は「CURRENT_DIR」を指定します。「SUB_DIR」を指定するとサブディレクトリも検索の対象となります。「CURRENT_DIR」を指定すると指定したフォルダのみを検索対象とします。
フォルダ検索指定には、「FOLDER」又は「FILE」を指定します。「FOLDER」を指定すると検索対象がファイルではなくフォルダのみとなります。省略すると「FOLDER」となります。
検索結果の形式には、「FULL」又は「NAME」を指定します。「FULL」を指定すると検索結果がフルパスで格納されます。「NAME」を指定すると検索結果が名前のみで格納されます。省略すると「FULL」となります。
検索結果は指定したデータ名のユーザデータに格納されます。1から始まる連番がキーとなり、値にはフルパスファイル(フォルダ)名か、ファイル(フォルダ)名がセットされます。
{%SEARCH_FILE(C:\Home\図面,X0002.xdw,FileList,SUB_DIR)}
#--
{%MSGBOX({%IF({%GET_USER_DATA_COUNT(FileList)}>0,発見! {%GET_USER_DATA(FileList,1)},見つからない)})}
{%SEARCH_FILE(C:\Home\図面,*.xdw;*.tif,FileList,CURRENT_DIR)}
#--
{%LOOP L1 {%GET_USER_DATA_COUNT(FileList)}(
{%MSGBOX({%GET_USER_DATA(FileList,[L_IDX(L1)])})}
)}
{%SEARCH_FILE(C:\Home\営業,*伊藤,FolderList,CURRENT_DIR,FOLDER,NAME)}
#--
{%LOOP L1 {%GET_USER_DATA_COUNT(FolderList)}(
{%MSGBOX({%GET_USER_DATA(FolderList,[L_IDX(L1)])})}
)}
指定のフォルダからファイルを検索し、最初に見つかったファイルを移動先フォルダに移動します。本マクロは、指定フォルダ内のファイルをキュー(待ち行列)方式で移動することを目的としています。処理は排他制御され、複数の端末から同時に本マクロを実行しても、同じファイルが2つのフォルダに移動(複製)されることはありません。
排他制御を行う為に、「.lock」というフォルダが一時フォルダに作成されます。処理が終了すると、「.lock」フォルダは削除されます。一時フォルダには、複数のPCから参照可能な共有フォルダを指定します。
検索フォルダ名には、検索するフォルダを指定します。共有フォルダを指定してください。
ファイル名に検索したいファイルを指定します。ファイル名にはワイルドカードが使用できます。;(セミコロン)で区切ることによって複数指定が可能です。
一時フォルダ名には、排他制御用のファイルを作成するフォルダを指定します。共有フォルダを指定してください。
移動先フォルダ名には、ファイルの移動先フォルダ名を指定します。ローカルフォルダを指定してください。
ソート対象には、「FILE」又は「DATE」を指定します。「FILE」が指定された場合、ファイル名でソートします。「DATE」が指定された場合、ファイルの更新日付でソートします。省略された場合は、ソートを行いません。
並び順には、「ASC」又は「DESC」を指定します。「ASC」が指定された場合、昇順でソートします。「DESC」が指定された場合、降順でソートします。
ファイルが移動出来た場合は、移動先ファイルのフルパスが返却されます。検索した結果ファイルが見つからない場合は、「ファイルが見つかりません。」が返却されます。他の処理が実行中の場合は「.lock」ファイルが存在するため、処理待ちになりますが、3秒間の間に数回リトライしてタイムアウトとなります。その場合は、「タイムアウトが発生しました。」を返却します。
{%SET_USER_DATA(wk,FileName,{%MOVE_FILE_USING_QUEUE(\\\\Server1\Home\Test\10_IN,*.xdw,C:\Home\Test\Local,\\\\Server1\Home\Test\90_排他制御,FILE,ASC)})}
文字列をクリップボードに記憶します。
{%SET_CLIPBOARD_TEXT(ABC)}
クリップボードに記憶された文字列を取得します。
{%GET_CLIPBOARD_TEXT}
引数のメッセージを入力ダイアログに表示し、入力された文字を返却します。X,Y座標は省略できます。省略した場合は画面中央付近に表示されます。
キャンセルが押された場合は空文字が返却されます。
{%MSGBOX({%INPUTBOX(名前を入力してください。,)})}
引数の内容に従ってQRコードを作成し、ビットマップ画像として保存します。
セルサイズは出力するQRコードの1ドットを表すピクセル数の指定になります。
誤り訂正レベルは、L,M,Q,Hの何れかを指定します。記号の意味は、それぞれ、L(7%),M(15%),Q(25%),H(30%)になります。
余白サイズはQRコードの周りの余白のピクセル数です。
解像度は省略可能です。縮小帳票などでQRコードを小さく印字したい場合は96以上の値を指定することで小さくできます。既定値は96です。
{%CREATE_QR_BITMAP(C:\Test\Image.bmp,abc,2,M,3)}
{%CREATE_QR_BITMAP(C:\Test\Image.bmp,abc,2,M,3)}
{%DW_PASTE_BITMAP_ANNOTATION({%PAGE_NO},C:\Test\Image.bmp,1000,1000)}
{%DELETE_FILE(C:\Test\Image.bmp)}
SMTPサーバの情報は、設定の基本設定で、「処理結果のメール通知、又は、SMTPサーバの設定を行う」にチェックを入れ、メール設定からサーバの情報を入力します。SMTPサーバの設定が行われていない場合はメール送信ができません。メール送信マクロを使用する場合は、必ず設定してください。
引数の説明は以下の通りです。
引数 | 内容 |
データ名(宛先) | ユーザデータ名を指定します。事前にユーザデータに宛先のメールアドレスを値に設定します。キーは重複しないように数字等を指定してください。 |
送信元メールアドレス | 送信元メールアドレスを指定します。 |
データ名(CC) | ユーザデータ名を指定します。事前にユーザデータにCCの宛先のメールアドレスを値に設定します。キーは重複しないように数字等を指定してください。省略可。 |
データ名(BCC) | ユーザデータ名を指定します。事前にユーザデータにBCCの宛先のメールアドレスを値に設定します。キーは重複しないように数字等を指定してください。省略可。 |
件名 | 件名を指定します。 |
本文 | 本文を指定します。 |
データ名(ファイル) | ユーザデータ名を指定します。事前にユーザデータに添付ファイルのフルパスを値に設定します。キーは空文字にします。省略可。 |
データ名(オプション) |
ユーザデータ名を指定します。事前にユーザデータにメールオプションをセットしておきます。省略可。
メールオプションは、キーに「CATCH_ERR」を(値は空文字を)指定すると送信エラーとなった場合にエラーを発生させず、マクロの戻り値にFalseを返却します。また、エラーの内容をメールオプションで指定したユーザーデータのキー「ERR_MESSAGE」に格納します。(例3を参照) |
マクロの戻り値は、正常時に「Ture」が返却されます。エラー時は、メールオプションの「CATCH_ERR」が指定されている場合は、「False」が返却されます。設定されていない場合は処理がメール送信マクロが中断されエラーになります。(Falseは返却されません。)
{%SET_USER_DATA(宛先,1,tom@test.com)}
{%SEND_MAIL(宛先,tom@test.com,,,テスト,本文です。)}
{%SET_USER_DATA(宛先,1,tom@test.com)}
{%SET_USER_DATA(宛先,2,ken@test.com)}
{%SET_USER_DATA(ファイル,1,{%FILE_FULL_PATH})}
{%SEND_MAIL(宛先,jerry@test.com,,,テスト,本文です。,ファイル)}
{%SET_USER_DATA(宛先,1,tom@test.com)}
{%SET_USER_DATA(option,CATCH_ERR,)}
#--
{%IF({%SEND_MAIL(宛先,tom@test.com,,,テスト,本文です。,,option)}=False,{%LOG_OUT({%GET_USER_DATA(option,ERR_MESSAGE)})},)}
引き数で指定した画像ファイルの解像度、縦幅、横幅を取得します。取得できる情報は以下の通りで、結果は「ImageInformation」という名前のユーザデータに格納されます。
BMP,Tiff,JPEG等の画像ファイルに対応しています。マルチページTiffは1ページ目の画像情報を取得します。
キー | 値 |
Width | 画像ファイルの横幅。(単位:mm) |
Height | 画像ファイルの縦幅。(単位:mm) |
VerRes | 画像ファイルの垂直方向の解像度。(単位:dpi) |
HorRes | 画像ファイルの水平方向の解像度。(単位:dpi) |
Resolution | 画像ファイルの垂直方向と水平方向の解像度の高い方。(単位:dpi) |
{%GET_IMAGE_INFORMATION({%FILE_FULL_PATH})} {%LOG_OUT(Width:{%GET_USER_DATA(ImageInformation,Width)})} {%LOG_OUT(Height:{%GET_USER_DATA(ImageInformation,Height)})} {%LOG_OUT(VerRes:{%GET_USER_DATA(ImageInformation,VerRes)})} {%LOG_OUT(HorRes:{%GET_USER_DATA(ImageInformation,HorRes)})} {%LOG_OUT(Resolution:{%GET_USER_DATA(ImageInformation,Resolution)})}
引き数で指定した時間(単位はミリ秒)だけ待ちます。
{%SLEEP(1000)}
検索対象文字列からユーザーデータの項目位置の文字列を検索し、見つかった場合は、結果格納用ユーザーデータに行番号をセットします。
このマクロは、マスタファイル(CSV)にある製品コード全てを、ページ内テキストから検索して、見つかった製品コードだけをリストにするような場合に使用します。
引数のユーザーデータ、項目位置は、 CSVファイル読み込みマクロで、キー指定を行わない読み込みを行った結果のユーザーデータを対象にしています。(ユーザーデータは、「引数で指定されたユーザーデータ名 + "_" + 行番号」である想定)
結果格納用のユーザーデータには、見つかった行が値に、1〜の連番かキーにセットされます。
#CSV読み込み {%CSV_FILE_READ({%GET_GLOBAL_DATA(TopFolder)}\90_System\10_マスター\master.csv,data,0)} {%LOG_OUT(CSV読み込み行数:{%GET_USER_DATA(data,Count)})} #検索 {%EXTRACT_FOUND_DATA({%REPLACE({%P_DATA(OCR読み取り1.1)}, ,)},data,1,結果)} {%LOG_OUT(見つかった数:{%GET_USER_DATA_COUNT(結果)})} #-- {%LOOP L1 {%GET_USER_DATA_COUNT(結果)}( {%LOG_OUT(結果(行番号):{%GET_USER_DATA(結果,[L_IDX(L1)])})} {%LOG_OUT(結果(検索値):{%GET_USER_DATA(data_{%GET_USER_DATA(結果,[L_IDX(L1)])},1)})} )}
結果例
マスタデータ P001,A P002,B P003,C OCR読取り結果 製品コードP002の在庫数は3。 上記のデータで実行した場合の結果 CSV読み込み行数:3 見つかった数:1 結果(行番号):2 結果(検索値):P002
入力ファイル名に指定したテキストファイルから、制御コードを除去し、出力ファイル名に指定したファイルに出力します。
処理可能なテキストファイルの文字コードはSJISのみです。除去の対象となる文字コードは16進コードで00〜1F,7Fです。但し、改行(0A)、タブ(09)、復帰(0D)は除去しません。
出力ファイルをネットワークフォルダに指定すると、処理速度が遅くなりますので、ローカルフォルダに出力するようにしてください。
{%REMOVE_CONTROL_CHAR(C:\Test\Test.csv,C:\Test\Test_Out.csv)}
ファイルループを中断します。このマクロを実行すると、次のファイルは処理されず、ファイルループを中断します。
{%STOP_FILE_LOOP()}
コマンドを実行します。戻り値に実行したコマンドのリターンコードが返ります。
実行したコマンドが終了するまで待機します。コマンドが終了しない場合は永久に待機してしまいますので、そうなった場合はタスクマネージャーでeDocArrangementを強制終了して下さい。
{%COMMAND(C:\Home\Demo\System\picturetool.exe -i C:\Home\Demo\in\in.jpg -o C:\Home\Demo\out\out.png -t 100\,100\,200\,200)}