last update: Tue, 13 Aug 2024 04:30:12 GMT ( 8 months ago )
API
fn.lib.report を利用するためには帳票RSDの冒頭に以下の記述をすることをおすすめします。var rpt = fn.report;
var L = rpt.L;
var L1 = rpt.L1;
var L2 = rpt.L2;
var L3 = rpt.L3;
var L4 = rpt.L4;
var Lsum = rpt.Lsum;
var Vtcl = rpt.Vtcl;
var Line = rpt.Line;
var Line_d = rpt.Line_d;
var SetLine = rpt.SetLine;
var SetLineNonBDR = rpt.SetLineNonBDR;
var SetBox = rpt.SetBox;関数名 構文、説明 XLSH rpt.XLSH(4);
帳票の1行の高さを数値で指定します。(行間を広めにしたい時等に設定)。
デフォルトは 4 になります。L L(x, y, w, a, va, opts)
もしくはrpt.L(x, y, w, a, va, opts)
セルの定義のオプションを取得する関数になります。
引数:※ 横位置に left を指定すると padding をとるために x 座標を 1mm ずらします。x : x 座標(ミリ単位)y : y 座標(行位置)w : 幅(ミリ単位)a : 横位置(left , center, right)va : 縦位置(top, middle, bottom)opts : オプション(スタイル等)
※ 横位置に right を指定すると padding をとるために 幅を 1mm 減らします。
※ オプションに row_height を指定すると指定した行高さ(height)に調整されます。
・サンプルpat.push(["text", "=head.user.adr.adr", L(8, 1, 82, "left", "top")]);
L1 L1(x, w, a)
もしくはrpt.L1(x, w, a)
1行目のセルの定義のオプションを取得する関数になります。(ほぼ未利用)
引数:※ y 座標は0(1行目)固定になります。x : x 座標(ミリ単位)w : 幅(ミリ単位)a : 横位置(left , center, right)
※ 横位置による、padding 調整はされません。
※ 縦位置は "bottom" 固定になります。
・サンプルpat.push(["text", "=head.user.adr.adr", L1(8, 82, "left")]);
L2 L2(x, w, a)
もしくはrpt.L2(x, w, a)
2行目のセルの定義のオプションを取得する関数になります。(ほぼ未利用)
引数:※ y 座標は1(2行目)固定になります。x : x 座標(ミリ単位)w : 幅(ミリ単位)a : 横位置(left , center, right)
※ 横位置による、padding 調整はされません。
※ 縦位置は "bottom" 固定になります。
・サンプルpat.push(["text", "=head.user.adr.adr", L2(8, 82, "left")]);
L3 L3(x, w, a)
もしくはrpt.L3(x, w, a)
3行目のセルの定義のオプションを取得する関数になります。(ほぼ未利用)
引数:※ y 座標は2(3行目)固定になります。x : x 座標(ミリ単位)w : 幅(ミリ単位)a : 横位置(left , center, right)
※ 横位置による、padding 調整はされません。
※ 縦位置は "bottom" 固定になります。
・サンプルpat.push(["text", "=head.user.adr.adr", L3(8, 82, "left")]);
L4 L4(x, w, a)
もしくはrpt.L4(x, w, a)
4行目のセルの定義のオプションを取得する関数になります。(ほぼ未利用)
引数:※ y 座標は3(4行目)固定になります。x : x 座標(ミリ単位)w : 幅(ミリ単位)a : 横位置(left , center, right)
※ 横位置による、padding 調整はされません。
※ 縦位置は "bottom" 固定になります。
・サンプルpat.push(["text", "=head.user.adr.adr", L4(8, 82, "left")]);
Lsum Lsum(x, w, a)
もしくはrpt.Lsum(x, w, a)
1行目の合計欄用のセルの定義のオプションを取得する関数になります。(ほぼ未利用)
引数:※ y 座標は0(1行目)固定になります。x : x 座標(ミリ単位)w : 幅(ミリ単位)a : 横位置(left , center, right)
※ 横位置による、padding 調整はされません。
※ 縦位置は "bottom" 固定になります。
・サンプルpat.push(["text", "=head.user.adr.adr", Lsum(8, 82, "left")]);
Vtcl Vtcl(x, y, w, a)
もしくはrpt.Vtcl(x, y, w, a)
縦書きセルの定義のオプションを取得する関数になります。(ほぼ未利用)
引数:※ y 座標2は、y +2行の固定になります。x : x 座標(ミリ単位)y : y 座標(行位置)w : 幅(ミリ単位)a : 横位置(left , center, right)
※ 横位置による padding の調整はされません。
※ 縦位置は、middle 固定になります。
・サンプルpat.push(["text", "=head.user.adr.adr", Vtcl(8, 1, 82, "left")]);
Line Line(x1, y1, x2, y2, w, h, opts)
もしくはrpt.Line(x1, y1, x2, y2, w, h, opts)
指定した範囲に罫線を引くセルの定義を取得する関数になります。
引数:・サンプルx1 : x 座標(ミリ単位:開始位置)y1 : y 座標(行位置:開始位置)x2 : x 座標(ミリ単位:終了位置)y2 : y 座標(行位置:終了位置)w : 幅(ミリ単位)h : 太さ(ミリ単位)opts : オプション(スタイル等)pat.push(Line(8, 1, 82, 3, 1)]);
Line_d Line_d(x1, y1, x2, y2, w, h)
もしくはrpt.Line_d(x1, y1, x2, y2, w, h)
指定した範囲に波線を引くセルの定義を取得する関数になります。
引数:・サンプルx1 : x 座標(ミリ単位:開始位置)y1 : y 座標(行位置:開始位置)x2 : x 座標(ミリ単位:終了位置)y2 : y 座標(行位置:終了位置)w : 幅(ミリ単位)h : 太さ(ミリ単位)pat.push(Line_d(8, 1, 82, 3, 1)]);
SetLine SetLine(pat, line, x, y, dush, row_height)
もしくはrpt.SetLine(pat, line, x, y, dush, row_height)
行単位でArray(配列)を渡し、L関数をまとめて呼び出す関数。
引数:・サンプルpat : pattern 用配列line : 行の設定配列([value, w, a, va, opts])x : x 座標(ミリ単位)y : y 座標(行位置)dash : 行の下罫線を波線にするかどうかのフラグrow_height : 行高さvar line = [];
line.push(["",8],["〒", 4, "center"], ["=head.user.adr.zip_no", 14, "center"]);
SetLine(pat, line, 0, 0);SetLineNonBDR SetLineNonBDR(pat, line, x, y)
もしくはrpt.SetLineNonBDR(pat, line, x, y)
行単位でArray(配列)を渡し、L関数をまとめて呼び出す関数。
※各セルごとに下線を引かない。
引数:・サンプルpat : pattern 用配列line : 行の設定配列([value, w, a, va, opts])x : x 座標(ミリ単位)y : y 座標(行位置)var line = [];
line.push(["",8],["〒", 4, "center"], ["=head.user.adr.zip_no", 14, "center"]);
SetLineNonBDR(pat, line, 0, 0);
fn.lib.report モジュール
fn.lib.report は、帳票出力の際のレイアウト定義を簡易に記述するためのAPI群になります。
・APIを利用しない場合の記述
・APIを利用しない場合の記述
var XLSH = 4;・APIを利用した場合の記述
pat.push(['text', "2020/03/03", {
x: 0,
y: 0,
width: 25,
height: XLSH,
align: 'right',
valign: 'middle'
}]);
// 画像を配置したい場合
// shain.tanto_in : SVG or URL
pat.push(["image", "=shain.tanto_in", {
x: 72, y: 0.5, width: XLSH * 4.5, height: XLSH * 4.5
}]);
//一つのエリアに文字列を出力したい場合
pat.push(["text", "受領印", L(70, 2, 22, "center", null, {fill: "#ccc", "font-weight": 900, "font-size": "12px"})]);
// 複数のセルと行を出力する場合
pat = []; // 初期化
lines = []; // 初期化
lines.push(line = []);
line.push(["",8],["=user.nm", 102]);
lines.push(line = []);
line.push(["",8],["=user.tanto.shozoku", 102]);
lines.push(line = []);
line.push(["",8],["=user.tanto.nm", 102]);
lines.push(line = []);
line.push(["",8],["",65]);
lines.push(line = []);
line.push(["",80], ["御中",10]);
lines.push(line = []);
line.push(["",8],["TEL", 7, "center"], ["=user.phone_no",34], ["FAX",7,"center"], ["=user.fax_no",34],["",60],["=user.cd",30,"right"]);
lines.forEach(function(line, i) {
SetLineNonBDR(pat, line, 0, i + 3);
});