スクリプト-関数(その他)


様々な機能を提供する関数です。




CorrectPath 関数

フォルダ区切り文字をファイルの場所(ローカル/URL)に合わせて修正します。

"http://"や "https://"で始まるパスで「\」(エンサイン)が含まれる場合「/」(スラッシュ)に置き換えます。
その他の場合は「/」(スラッシュ)を「\」(エンサイン)に置き換えます。

<構文>

CorrectPath(path As STRING) As STRING


<引数>

引数 説明
path ローカル(またはURL)パス文字列


<戻り値>
修正したパス文字列を返します。

<使用例-Clickスクリプト>

//表示している帳票のパス下にあるchild\details.wfrを表示します。

STRING sfile;

//GetPath( ) の戻り値が URL の場合 sfile は http://www.../child\details.wfr となります。
//このままではファイルを開くことができません。(エラーになります)
//そこでCorrectPath を使って正しいパス http://www.../child/details.wfr に修正します。
sfile = GetPath() + "child\\details.wfr";
sfile = CorrectPath(sfile);

CallExe("wfrv.exe", "wfrv.exe \"" + sfile + "\"");

return 0;




FileDlg 関数

ファイルダイアログを表示します。

<構文>

FileDlg(
    mode As NUMBER = 0,
    title As STRING = "",
    file As STRING = ""
) As STRING


<引数>

引数 説明
mode ダイアログのモードを指定します。
説明
0 開くダイアログを表示します。
【全てのファイル(*.*)】
1 名前を付けて保存ダイアログを表示します。
【全てのファイル(*.*)】
10 開くダイアログを表示します。
【CSVファイル(*.csv;*.txt)】
11 名前を付けて保存ダイアログを表示します。
【CSVファイル(*.csv;*.txt)】
20 開くダイアログを表示します。
【画像ファイル(*.jpg;*.bmp)】
21 名前を付けて保存ダイアログを表示します。
【画像ファイル(*.jpg;*.bmp)】
title ダイアログタイトルを指定します。
省略すると「ファイルを開く」または「名前を付けて保存」が指定されます。
file 最初に選択されるファイル名を指定します。



<戻り値>
選択されたファイルの完全パスを返します。
キャンセルされた場合は空の文字列を返します。

<使用例-Clickスクリプト>

DATA data;
STRING file;

data = GetData("Data1");

file = FileDlg(10);
if (file.Count() > 0) {
    data.ExportCSV(file);
}

return 0;




GetBarcodeInfo 関数

自アイテムより前に描画されたバーコードの品質情報を取得します。

<構文>

GetBarcodeInfo(
    info_no As NUMBER = -1
) As STRING


<引数>

引数 説明
info_no 情報番号(描画順バーコード番号 0〜)
-1を指定すると全バーコード情報を取得することができます。


<戻り値>
バーコード情報を取得します。

<使用例-GetValueスクリプト>

GetBarcodeInfo( )


<取得情報例>



@アイテムID

Aバーコード型式

型式
JN JAN-標準
JS JAN-短縮
UA UPC-A
UE UPC-E
C3 Code-39
C1 Code-128
NW NW-7
IT ITF
CS カスタマー
QR QRコード


B品質

値(L) 説明
1 非常に悪い
2 悪い
3 普通
4 良い
5 非常に良い」

プリンター出力(印刷)では2以下の場合バーコードリーダで読み取ることが難しくなります。
ディスプレイに表示されたバーコードをリーダーで読み取る場合は 1 でもバーが均一(警告がない)な場合は読み取れる可能性があります。

C共通情報(M=描画モード、BD=黒バーの濃度調整、DX/DY=DPI)

D固有情報(バーのドット数など)



GetData 関数

データオブジェクトを取得します。

<構文>

GetData(data_name As STRING) As DATA


<引数>

引数 説明
data_name データ名


<戻り値>
データオブジェクトを取得します。

<使用例>

DATA data;
NUMBER nr;

data = GetData("Data1");
nr = data.Add();

ScrollEx(0, "レポート1", "フォーム1", "セクション1", nr);

return 3;




GetDeviceInfo 関数

出力デバイスの情報を取得します。

<構文>

GetBarcodeInfo( ) As STRING


<引数>
なし。

<戻り値>
デバイス情報を取得します。

<使用例-GetValueスクリプト>

GetDeviceInfo( )

<取得情報例>
Name=DISPLAY,X=96dpi Y=96dpi




GetFontList 関数

使用可能なフォントのリストを取得します。

<構文>

GetFontList( ) As STRING_ARRAY


<引数>
なし。

<戻り値>
フォント名のリストを戻します。

<使用例-SetListスクリプト>

STRING_ARRAY fonts;

fonts = GetFontList();
fonts.Sort();

return fonts;




GetName/GetReportName/GetFormName/GetSectionName/GetUnitName 関数

自身、あるいは親のオブジェクト名を取得します。

<構文>

GetName( ) As STRING
GetReportName( ) As STRING
GetFormName( ) As STRING
GetSectionName( ) As STRING
GetUnitName( ) As STRING


<引数>
なし。

<戻り値>
オブジェクトの名称を返します。

<使用例-GetValueスクリプト>

//クローン種別のフォームでタイトルだけを変える場合等に使用します。

GetFormName()




GetPath 関数

オープンしている帳票が所属するローカルパス(あるいはURLパス)を取得します。


この関数を下記スクリプト以外で使用する場合は注意が必要です。
帳票ファイルが存在するフォルダが変わった場合、帳票の出力内容に影響を及ぼす可能性があります。

ChangeValue スクリプト
Click スクリプト
SetList スクリプト


<構文>

GetPath( ) As STRING


<引数>
なし。

<戻り値>
帳票が所属しているパスを返します。

<使用例-Clickスクリプト>

//表示している帳票と同じパスにあるdetails.wfrを表示します。

STRING sfile;

sfile = GetPath() + "details.wfr";

CallExe("wfrv.exe", "wfrv.exe \"" + sfile + "\"");

return 0;




GetTempFile 関数

一時ファイル名を取得します。

この関数では一時ファイルを作成し、そのファイル名を取得することができます。
この関数で作成された一時ファイルはスクリプト実行後削除されます。

CallExe関数等で他アプリケーションにファイル名を渡す場合は注意が必要です。
一時ファイルが削除できなくなるため、スクリプトが終了するまでにファイルを開放する必要があります。
(CallExe関数の場合、呼び出されるアプリケーションの起動処理から戻る前に開放する必要があります


<構文>

GetTempFile( ) As STRING


<引数>
なし。

<戻り値>
一時ファイル名を返します。

<使用例-Clickスクリプト>

//帳票のデータを別の帳票で表示します。

DATA data;
STRING tmpfile;
STRING report;

// データを一時ファイルに出力
data = GetData("Data1");
tmpfile = GetTempFile();
data.ExportCSV(tmpfile);

//帳票を表示
report = GetPath() + "list.wfr";
CallExe("wfrv.exe", "\"" + report + "\" /d \"Data1,0,'" + tmpfile + "'");

return 0;




GetTextValue 関数

バーコードやグラフアイテムでテスト値を使う場合に使用します。

<構文>

GetTestValue( ) As STRING


<引数>
なし。

<戻り値>
テスト値を戻します。

<使用例>

return GetTestValue( );




IsEdit 関数

コントロールの入力が許可されているか確認するために使用します。
IsEdit スクリプトの結果を返します。

<引数>
なし。

<戻り値>
IsEdit スクリプトの結果を戻します。

<使用例>

if (IsEdit( ) == FALSE) {
    _item.fill_color1 = RGB(128,128,128);
}




IsPrint 関数

印刷モード/プレビューモードの判定を行います。

<引数>
なし。

<戻り値>
印刷モードの場合 TRUE を戻します。
その他の場合は FALSE を戻します。

<使用例>

if (IsPrint( ) == FALSE) {
    _item.fill_color1 = RGB(160,255,255);
}




JapanPost 関数

郵便番号・住所情報を検索・解析します。
「,」(カンマ)区切りの住所情報文字列が戻るので、StrSep( ) 関数で一旦配列に変換し必要な情報を取り出します。

郵便番号情報ファイル」「JapanPostFileオプション」参照。

<構文>

JapanPost(mode As NUMBER=0 , data1 As STRING="", data2 As STRING ="") As STRING


<引数>

引数 説明
mode 実行モードを指定します。
引数 説明
0 郵便番号・住所検索ダイアログを表示します。
1 data1 に指定された住所を「郵便番号」「住所A」「住所B」に分割します。
2 data1 に指定された住所からカスタマバーコード用のデータを取得します。
data1 住所文字列(郵便番号 + 住所A + 住所B)を指定します。
mode が 0 の場合は無視されます。


<戻り値>
郵便番号情報ファイルが開けない場合や該当住所が存在しない場合は空文字("")を戻します。
その他の場合は「,」(カンマ)区切りの住所情報文字列を戻します。
詳細は以下の通りです。(modeにより内容が異なります)


mode が 0 の場合は、
(0)郵便番号,(1)都道府県,(2)市町村,(3)町域,(4)番地,(5)条件,(6)会社名,(7)住所,
(8)トドウフケン,(9)シチョウソン,(10)チョウイキ,(11)ソノタ,(12)対象
を戻します。

mode が 1 の場合は、
(0)郵便番号,(1)住所A,(2)住所B,(3)対象
を戻します。

mode が 2 の場合は、
(0)バーコード文字列
を戻します。

<使用例-Clickスクリプト>

STRING_ARRAY sa;
sa = StrSep(JapanPost( ));

Set("郵便番号", sa.Get(0));
Set("住所A", sa.Get(1)+sa.Get(2)+sa.Get(3));

return 2;


<使用例-Changeスクリプト>

Set("barcode", JapanPost(2, GetS("郵便番号") + GetS("住所")));
return 2;


<使用例-DataScript(Where)スクリプト>

Set("barcode", JapanPost(2, GetS("郵便番号") + GetS("住所")));
return TRUE;



カスタマバーコード用のデータについては、StrFormat("%〒", GetS("郵便番号")+GetS("住所B")) でも取得することができます。ただし、住所が住所Aと住所Bに分かれていない場合で住所A中に数値が存在する場合、この数値もデータに含まれてしまいます。JapanPost(2)関数を使うことで住所A,住所Bの切り分けを自動で行うことができます。



MsgBox 関数

メッセージダイアログを表示します。

<構文>

MsgBox( type As NUMBER , message As STRING, details As STRING ="") As NUMBER


<引数>

引数 説明
type 表示するメッセージダイアログの形式を指定します。
説明
0 「OK」ボタンを表示
1 「OK」「キャンセル」ボタンを表示
3 「はい」「いいえ」「キャンセル」ボタンを表示
4 「はい」「いいえ」ボタンを表示
message 表示するメッセージを指定します。
details 詳細情報を指定します。(省略可)


<戻り値>

戻り値 説明
1 「OK」ボタンが押下されました。
2 「キャンセル」ボタンが押下されました。
6 「はい」ボタンが押下されました。
7 「いいえ」ボタンが押下されました。


<使用例>

DATA data;

data = GetData("Data1");
if (MsgBox(4, "削除しますか?") == 6) {
    data.Delete(GetRecordNo()-1);
    return 3;
}
return 0;




Order 関数

レコードを昇順/降順に並べ替えます。
DataScriptメソッド」参照。


<構文>

Order( mode As NUMBER , field_name As STRING) As NUMBER


<引数>

引数 説明
mode 並べ替えモードを指定します。

説明
1 フィールド値を文字列として比較し昇順に並べ替えます。
2 フィールド値を文字列として比較し降順に並べ替えます。
3 フィールド値を数値として比較し昇順に並べ替えます。
4 フィールド値を数値として比較し降順に並べ替えます。
5 フィールド値を日時として比較し昇順に並べ替えます。
6 フィールド値を日時として比較し降順に並べ替えます。
field_name フィールド名を指定します。


<戻り値>
失敗した場合は 0 を戻します。

<使用例>

//Field1 の値(数値)が小さい順に並べ替えます。

obj.DataScript "Data1", "Order", "Order(3, ""Field1"")"




PrintOut 関数

印刷を実行します。
PrintOutメソッド」参照。


この関数からの印刷では帳票編集時やアプリケーションから指定した印刷オプションは適用されません。


<構文>

PrintOut( mode As NUMBER = 1 , option_name As STRING = "") As NUMBER


<引数>

引数 説明
mode 印刷モードを指定します。
下記の<方法>と<モード>を合わせた値を指定します。

<方法>
説明
00 プリンターに印刷します。
10 Adobe社の「Adobe Acrobat Distiller」と連携しPDFファイルを作成します。
printer の指定は無視され常に「Adobe PDF」が使用されます。
20 プリンタードライバーを使って印刷結果をファイルに出力します。
30 インターコム社の「まいとーくFAX」と連携しFAXを送信します。
printer の指定は無視されます。
40 用紙毎に出力先を指定して印刷します。
printer の指定は無視されます。
50 仕分印刷を行います。
printer の指定は無視されます。
60 印刷結果をEMF(メタファイル)に保存します。
70 Adobe社の「Adobe Acrobat Distiller」と連携しPDFファイルを作成します。
任意のPostScriptプリンター(ドライバー)を使用することができます。

<モード>
説明
0 印刷を行います。
1 印刷ダイアログを表示します。
印刷ダイアログで[OK]ボタンを押下することで印刷が行われます。
2 バックグラウンド印刷を行います。(OLEオートメーションのみ)
3 印刷ダイアログを表示します。
印刷ダイアログで[OK]ボタンを押下することでバックグラウンド印刷が行われます。
(OLEオートメーションのみ)

option 印刷オプションを指定します。「印刷オプション」参照。

引数は省略可能です。

<戻り値>
エラーコードを戻します。正常終了した場合は 0 が戻ります。
エラーコードについては「PrintOutメソッド」を参照。

<使用例>

//印刷ダイアログを表示(カレントページを印刷)
PrintOut(1, "Range=CURRENT");
return 0;




PdfOut 関数

帳票をPDFに出力します。
必ず「PDFファイルに保存」ダイアログが表示されます。


この関数はエディタで編集するこはできますが実行するには「Wonderful Report 2016 Preview (version 3.0.0.105以降)」を使う必要があります。


<構文>

PdfOut( file As STRING = "", page As NUMBER = -1) As NUMBER


<引数>

説明
file 出力するPDFファイルのパスを指定します。
省略すると帳票タイトル名が使われます。
page PDFに出力するページを指定します。(1〜)
0以下の値を指定すると全ページをPDFに出力します。

引数は省略可能です。

<戻り値>
正常終了した場合は 0 が戻ります。
エラー(キャンセル含む)の場合は0以外が戻ります。

<使用例>

//カレントページをPDFに出力
PdfOut("", GetPageNo());
return 0;




PopupMenu 関数

ポップアップメニューを表示します。


<構文>

PopupMenu( menu_list As STRING ) As NUMBER
PopupMenu( menu_list As STRING_ARRAY ) As NUMBER


<引数>

説明
menu_list メニューとして表示する項目を、「,」(カンマ)区切りの文字列配列で指定します。
空値はセパレート線として表示されます。

STRING_ARRAY型の変数を使って指定することもできます。



<戻り値>
正常終了した場合は選択されたメニュー番号(index) が戻ります。
エラー(キャンセル含む)の場合は負の値が戻ります。

<使用例>

//Clickスクリプト中でメニューを表示しデータレコードを操作
NUMBER n_menu;
NUMBER n_cur;
DATA p_data;

//
p_data = GetData();
n_cur = GetRecordNo() - 1;

//
n_menu = PopupMenu("前に移動,後ろに移動,,前に挿入,後ろに挿入,,削除");
if (n_menu == 1)
{
    p_data.Move(n_cur, n_cur - 1);
}
else if (n_menu == 2)
{
    p_data.Move(n_cur, n_cur + 1);
}
else if (n_menu == 4)
{
    p_data.Insert(n_cur);
}
else if (n_menu == 5)
{
    p_data.Insert(n_cur + 1);
}
else if (n_menu == 7)
{
    p_data.Delete(n_cur);
    if (p_data.GetRecordCount( ) <= 0)
    {
        p_data.Add();
    }
}

return 3;




Scroll 関数

指定ページの指定座標を表示(スクロール)します。


<構文>

Scroll( page As NUMBER , x As NUMBER=0, y As NUMBER=0)


<引数>

説明
page 表示するページを指定します。(1〜)
x 表示する X 座標を 1/100mm単位で指定します。(省略可)
y 表示する Y 座標を 1/100mm単位で指定します。(省略可)


<戻り値>
なし。

<使用例>

Scroll( 5 );
return 2;




ScrollEx 関数

指定セクションの指定レコードを表示(スクロール)します。


<構文>

ScrollEx( mode As NUMBER , report As STRING, form As STRING, section As STRING, record As NUMBER)


<引数>

説明
mode 予約されています。必ず「0」(ゼロ)を指定してください。
report レポートオブジェクト名を指定します。
form フォームオブジェクト名を指定します。
section セクションオブジェクト名を指定します。
record レコード番号を指定します。(0〜)


<戻り値>
なし。

<使用例>

DATA data;
NUMBER nr;

data = GetData("Data1");
nr = data.Add();

ScrollEx(0, "レポート1", "フォーム1", "セクション1", nr);

return 3;




ViewDlg 関数

ダイアログに別帳票を表示します。

<構文>

ViewDlg( command As STRING) As NUMBER


<引数>

説明
command コマンドを指定します。
詳細は「コマンド起動」を参照。


<戻り値>
常に「0」(ゼロ)を戻します。
将来的に戻り値が変更される可能性があります。
戻り値を使った処理は行わないでください。

<使用例>

ViewDlg( "c:\...\sample.wfr /d \"Data1,0,c:\...\sample.csv\"");