sophieデータ出力機構マニュアル
last update: Tue, 13 Aug 2024 04:42:45 GMT ( 10 months ago )

                  データ出力帳票

                  以下に、帳票設定(mst.report_setting)に保存するデータの定義を記載します。
                  • 基本情報

                    データの第一階層のプロパティになります。
                    ・設定後のイメージ
                    プロパティ
                    キー設定例備考
                    kaisha_cd
                    "SSK"
                    会社コードを指定します。
                    reg_no
                    "003"
                    帳票登録番号を指定します。(一意にすること)
                    reg_nm
                    "個別出勤簿"
                    帳票名を指定します。(データ出力画面の帳票名、帳票出力時のタイトルになります。)
                    explain
                    "月次資料"
                    帳票の簡単な説明を指定します。(データ出力画面の説明欄に表示されます。)
                    tab_kbn
                    ["kanri"]
                    システム上のどのタブ(販売、経費、経理、会計)に表示するかを指定します。(配列)※環境によって違う場合あり。
                    ・管理:kanri
                    ・販売:hankan
                    ・経費:keihi
                    ・経理:keiri
                    ・会計:kaikei
                    menu_kbn
                    "mst_prt"
                    tab_kbn に指定したタブ上のリンクに指定されている data-recipe を指定します。>
                    mdl_kbn
                    "kanri"
                    基準となる処理年月を管理するモジュール区分を指定します。※環境によって違う場合あり。
                    ・管理:kanri
                    ・販売:hankan
                    ・経費:keihi
                    ・経理:keiri
                    ・会計:kaikei
                    prt_kbn
                    "kanri"
                    おまとめ印刷(未実装)用のカテゴライズ(配列指定になる予定)
                    report_type
                    "multi-list"
                    出力タイプ(現在未使用)
                    ・TABLE:一覧表・合計差込型
                    ・PIVOT:分析表、内包型
                    ・COMPLEX:混在帳票
                    ・PAGING_TABLE:ページ分割一覧表
                    ・multi-list:混合一覧
                    prt
                    {active: true, paper: {・・・}}
                    印刷用設定。オブジェクト型。※後述
                    csv
                    {active: true, ・・・}
                    出力用設定。オブジェクト型。※後述
                    dsp
                    {active: true, ・・・}
                    検索用設定。(未実装)オブジェクト型。※後述
                  • prt

                    prt プロパティの詳細になります。
                    ・設定後のイメージ
                    プロパティ
                    キー設定例備考
                    active
                    "true"
                    「印刷」ボタンを有効にする場合に true を指定します。(false で非表示)
                    rasterize
                    "false"
                    ラスタライズを有効にして出力するには true を指定します。(デフォルトは false。大量ページの印刷が可能になりますが、印字が少し荒くなります。)
                    paper
                    { 
                    "paper":"A4_横",
                    "margin":{
                    "left":"5mm", "top":"5mm",
                    "right":"5mm", "bottom":"5mm"
                    }
                    }
                    帳票の用紙と余白などの設定をします。
                    type
                    "PIVOT"
                    帳票のタイプを指定します。
                    ・TABLE:一覧表・合計差込型
                    ・PIVOT:分析表、内包型
                    ・COMPLEX:混在帳票
                    ・PAGING_TABLE:ページ分割一覧表
                    ・multi-list:混合一覧
                    projection
                    {"sequence": ["xxx","yyy"], ・・・}
                    データ取得設定を定義します。※後述
                    aggregate
                    {"sequence": ["xxx","yyy"], ・・・}
                    projection で取得したデータの集計・ソート・グルーピングの設定を定義します。※後述
                    draw
                    {"sequence": ["xxx","yyy"], ・・・}
                    aggregate 処理にて整形されたデータの印刷設定を定義します。※後述
                  • csv

                    csv プロパティの詳細になります。
                    ・設定後のイメージ
                    プロパティ
                    キー設定例備考
                    active
                    "true"
                    「出力」ボタンを有効にする場合に true を指定します。(false で非表示)
                    sequence
                    ["output"]
                    CSVの出力処理を配列で指定します。
                    CSVの出力処理は、この配列に指定された設定を前から順番に処理していきます。
                    (配列に指定するキー名は任意ですが、次に記述する設定キーと同一のものを指定してください。)
                    output
                    {"headers": {"xxx": "ラベル", ・・・}
                    sequence 配列に指定したキーをキーとしてその設定を値に定義します。※後述
                    ・output(名称は任意)のプロパティ詳細は以下になります。
                    ・設定後のイメージ
                    プロパティ
                    キー設定例備考
                    headers
                    {"xxx": "ラベル", ・・・}
                    CSVのヘッダー部分になります。
                    Object型になり、サンプルは以下です。
                    modifyHead
                    "javascript logic."
                    CSVのヘッダーの一部を動的に書き換えたい場合に定義します。
                    文字列です。
                    詳細は、tips : ヘッダーを動的に変更したい。を参照してください。
                    modifyHead_args
                    ["jkn_obj"]
                    modifyHeadに検索条件(jkn_obj)等を渡したい場合にそのキー文字列を配列で指定します。
                    keys
                    ["shain_cd", "shain_nm", ・・・]
                    出力したいフィールドを配列で指定します。
                  • dsp

                    dsp プロパティの詳細になります。(未実装ですが active: false が必要)
                    ・設定後のイメージ
                    プロパティ
                    キー設定例備考
                    active
                    "false"
                    「検索」ボタンを有効にする場合に true を指定します。(false で非表示)
                  • projection

                    prt.projection では 画面からの条件指定に基づき、ある程度限定的なデータを取得します。

                    ※データベースにアクセスするのはここが最後ですが、ここで表示したいデータを表示したい順序にするのではありません
                    あくまで「材料」の取得であることに留意してください。

                    ・projection がどのように挙動するかの詳細フローになります。
                    ・prt > projection プロパティの詳細になります。
                    ・設定後のイメージ
                    プロパティ
                    キー設定例備考
                    sequence
                    ["soshiki", "kamoku", "find_acnt_zan", ・・・]
                    データの取得処理を配列で指定します。
                    データの取得処理は、この配列に指定された設定を前から順番に処理していきます。
                    (配列に指定するキー名は任意ですが、次に記述する設定キーと同一のものを指定してください。)
                    soshiki
                    {
                    "template": "soshiki",
                    "soshiki_zu_no": "SHIKIN1:S1"
                    }
                    sequence 配列に指定したキーをキーとしてその設定を値に定義します。
                    このサンプルのsoshiki というキーは任意です。
                    設定に template を指定する場合(オプションあり)のサンプルになります。
                    ※ template については後述
                    kamoku
                    {"template": "kamoku"}
                    sequence 配列に指定したキーをキーとしてその設定を値に定義します。
                    このサンプルのkamoku というキーは任意です。
                    設定に template を指定する場合(オプションなし)のサンプルになります。
                    ※ template については後述
                    find_acnt_zan
                    {"c": "dtl.acnt_zan_gaku", "fields": {・・・}}
                    sequence 配列に指定したキーをキーとしてその設定を値に定義します。
                    このサンプルのfind_acnt_zan というキーは任意です。
                    ※ 実際の設定内容サンプルについては後述
                    ※template (テンプレート)の一覧とその指定内容は以下です。
                    キー設定例/サンプル備考
                    kamoku
                    {"template": "kamoku"}

                    {
                    "11110": {
                    nm: "普通預金",
                    kbn: {
                    bs_pl: "bs",
                    ・・・(中略)
                    }
                    }
                    勘定科目マスタ(mst.acnt_kamoku)のデータを取得します。
                    soshiki
                    {
                    "template": "soshiki",
                    "soshiki_zu_no": "SHIKIN1:S1"
                    }

                    {
                    "C50": {
                    nm: "普通預金",
                    kbn: {
                    bs_pl: "bs",
                    ・・・(中略)
                    }
                    }
                    組織マスタ(mst.soshiki)のデータを取得します。
                    ※soshiki_zu_no の設定ルール
                    ・組織図Noは、組織マスタに定義されているものを指定
                    ・: (コロン)で条件を追加可能。
                    trad
                    {"template": "trad"}

                    {
                    "65900": {
                    nm: "サンプル",
                    }
                    取引先マスタ(mst.trad)のデータを取得します。
                    user/maker
                    {"template": "user"}

                    {
                    "65900-001": {
                    nm: "サンプル",
                    }
                    取引先詳細マスタ(mst.trad_dtl)のデータを取得します。
                    shain
                    {"template": "shain"}

                    {
                    "999": {
                    nm: "直井",
                    }
                    社員マスタ(mst.shain)のデータを取得します。
                    souko
                    {"template": "souko"}

                    {
                    "010": {
                    nm: "客先直送"
                    }
                    倉庫マスタ(mst.souko)のデータを取得します。
                    bank
                    {"template": "bank"}

                    {
                    "0001-001": {
                    nm: "みずほ銀行 本店営業部"
                    }
                    銀行マスタ(mst.gp, type: bank)のデータを取得します。
                    kuni
                    {"template": "kuni"}

                    {
                    "JPN": {
                    nm: "日本国"
                    }
                    国マスタ(mst.gp, type: kuni)のデータを取得します。
                    kanri
                    {"template": "bank"}

                    {
                    "99": {
                    nm: "99(指定なし)"
                    }
                    管理項目マスタ(mst.gp, type: kanri)のデータを取得します。
                    zei_kbn
                    {"template": "zei_kbn"}

                    {
                    "10E": {
                    nm: "10%別"
                    }
                    税区分マスタ(mst.gp, type: zei_kbn)のデータを取得します。
                    tekiyo
                    {"template": "tekiyo"}

                    {
                    "00": {
                    nm: "サンプル"
                    }
                    摘要マスタ(mst.gp, type: tekiyo)のデータを取得します。
                    group
                    {"template": "group"}

                    {
                    "MKR": {
                    nm: "メーカー"
                    }
                    グループマスタ(mst.gp, type: group)のデータを取得します。
                    trad_group
                    {"template": "trad_group"}

                    {
                    "XXX": {
                    nm: "取引先グループ名"
                    }
                    取引先グループマスタ(mst.gp, type: trad_group)のデータを取得します。
                    hin
                    {"template": "hin"}

                    {
                    "0001-001": {
                    nm: "みずほ銀行 本店営業部"
                    }
                    品目マスタ(mst.gp, type: hin)のデータを取得します。
                    tanni
                    {"template": "tanni"}

                    {
                    "0001-001": {
                    nm: "みずほ銀行 本店営業部"
                    }
                    単位マスタ(mst.gp, type: tanni)のデータを取得します。
                    uwabasho
                    {"template": "uwabasho"}

                    {
                    "0001-001": {
                    nm: "みずほ銀行 本店営業部"
                    }
                    受渡場所マスタ(mst.gp, type: uwabasho)のデータを取得します。
                    hwatashi
                    {"template": "hwatashi"}

                    {
                    "00": {
                    nm: "引き渡し先名",
                    }
                    引渡先マスタ(mst.gp, type: hwatashi)のデータを取得します。
                    (執筆中)
                    {"template": "xxx"}

                    {
                    "00": {
                    nm: "引き渡し先名",
                    }
                    xxxマスタ(mst.gp, type: xxx)のデータを取得します。
                    keihi_kbn/ keihi_shiharai_kbn_group/ keihi_shiharai_kbn/ kind_kbn/ tenmatsu_kbn/ shain_kbn/ kotsu/ shuku/ nitto/ koza/ category/ kategory_kanri
                    calendar
                    {"template": "calendar"}

                    {
                    "2020/02/01": {
                    koyomi: true,
                    kaisha: false,
                    bank: true
                    },・・・
                    }
                    カレンダーマスタ(mst.calendar)のデータを取得します。
                    期間検索条件(ymd, ym)のいずれかを指定している必要あり。
                    ・true = 休日, false = 平日
                    • fine_acnt_zan(sample)

                      prt.projection のサンプルとして、勘定科目残高(dtl.acnt_zan_gaku)からデータを取得する場合の設定にて各プロパティの説明をします。
                      ・設定後のイメージ
                      プロパティ
                      キー設定例備考
                      c
                      "dtl.acnt_zan_gaku"
                      データの取得元コレクション名(省略形)を指定します。
                      データの取得処理は、この配列に指定された設定を前から順番に処理していきます。
                      c_tmp
                      "SSK.dtl.acnt_zan_gaku"
                      取得コレクションを一時的に変更したい場合に、コレクション名(フルに指定)を指定します。
                      fields
                      {"kamoku_cd": "$kamoku.cd", ・・・}
                      対象のコレクションから取得したいフィールド名を{キー:値}のようにObject型で定義します。
                      p
                      ["match", "sort", "project"]
                      データの取得は、aggregate で行われるため、その pipeline を指定します。
                      g
                      "kamoku.cd"
                      データの取得は、aggregate で行われるため、その group を指定します。
                      指定する文字列は、コレクション上のフィールド名です。
                      ※複数のフィールドでグループ化する場合は、
                      ["ym", "kamoku.cd"] のように配列で指定します。
                      selector
                      "{\"start_ym\":\"%_START_YM_%\", ・・・}"
                      データの取得は、aggregate で行われるため、その selector を指定します。
                      文字列指定のため、selector 内の "(ダブルクオテーション)はエスケープする必要があります。
                      sort
                      "{\"kamoku.cd\":1}"
                      データの取得は、aggregate で行われるため、その sort オプション を指定します。
                      文字列指定のため、selector 内の "(ダブルクオテーション)はエスケープする必要があります。
                      modify
                      "javascript program"
                      selector に指定した検索条件を加工したい場合に指定します。
                      ※引数には x(エックス)が渡されてきます。最後に必ずreturn x;する必要があります。
                      ※記述方法については、「Tips : modify で selector を加工する」を参照。
                      modify_args
                      ["soshiki","kamoku","modifyData"]
                      modify 内部で利用したいデータがある場合は、そのキーを配列で指定します。
                      stretch
                      "javascript program"
                      gで指定して取得したグループ単位のデータをロジックで加工したい場合にそのスクリプトを指定します。
                      ※記述方法については、「Tips : strech でグループごとにデータを加工する」を参照。
                      stretch_args
                      ["match", "sort", "project"]
                      stretch 内部で利用したいデータがある場合は、そのキーを配列で指定します。
                      modifyData
                      "javascript program"
                      projection 処理の最初(x="init")最後にロジックを実行したい場合にそのスクリプトを指定します。
                      ※記述方法については、「Tips : modifyData で自由にデータを取得・加工する」を参照。
                      modifyData_args
                      ["match", "sort", "project"]
                      modifyData 内部で利用したいデータがある場合は、そのキーを配列で指定します。
                    • Tips(projection)

                      • modifyData で自由にデータを取得・加工する

                      • strech でグループごとにデータを加工する

                  • aggregate

                    執筆中
                  • draw

                    prt.draw では印刷のレイアウト、出力タイミング、表示データ列名などを定義します。
                    ・出力サンプル
                    prt > draw プロパティの詳細になります。
                    ・設定後のイメージ
                    プロパティ
                    キー設定例備考
                    sequence
                    [
                    "reportHeader",
                    "tsukaNm",
                    "taniNm",
                    "dataTable",
                    "tableLine",
                    "reportFooter"
                    ]
                    帳票出力処理を配列で指定します。
                    帳票の出力処理は、この配列に指定された設定(レイアウト)を前から順番に処理していきます。
                    ※定型レイアウトとして
                    ・reportHeader : レポートのヘッダー
                     →(文書タイトル、印刷日、ページ)
                    ・reportFooter : レポートのフッター
                     →(会社名等)
                    が用意されています。
                    (上記以外の配列に指定するキー名は任意ですが、次に記述する設定キーと同一のものを指定してください。)
                    output
                    上記のサンプルではtsukaNm, taniNm, dataTable, tableLine にあたるもの。
                    {"data": "xxx",・・・}
                    レイアウトの定義は以下のパターンごとにそれぞれ違います。
                    ・plainBlockPart : ブロックエリア(固定エリア)
                    ・matrixTable : 表形式
                    ・barGraph : 棒グラフ
                    ・lineGraph : 折れ線グラフ
                    ・罫線 : plainBlockPart を使って自由な罫線をひきたい場合
                    ※指定しない場合は、plainBlockPart として取り扱われます。
                    それぞれの定義ごとに後述します。
                    • plainBlockPart

                      template プロパティに、「plainBlockPartpart」、もしくは、「false」、もしくは指定がない場合は、plainBlockPart が選ばれたものとして取り扱われます。
                      plainBlockPart とは、任意のブロックを定義するためのレイアウトになります。
                      plainBlockPart のレイアウトプロパティの詳細になります。
                      ・設定後のイメージ
                      プロパティ
                      キー設定例備考
                      data
                      "find_daicho"
                      aggregate の設定にて、データを集計する定義をした際のキーを指定します。
                      帳票の出力に指定できるデータは一つのみになります。
                      lines
                      [
                      [["ラベル", 25], ["ラベル", 15], ・・・],
                      [["=field1", 25], ["=field2", 15], ・・・]
                      ]
                      レイアウト定義になります。配列
                      複数行を定義する場合はそれぞれを配列として追加します。
                      ※ひとつのセルに対する定義については後述。
                      print
                      {
                      position: { x: 120, y: 40 },
                      timing: "always"
                      }
                      レイアウト定義になります。配列
                      position では、x(=横位置:ミリ単位)と、y(縦位置:ミリ単位)を指定します。
                      timing とは、このブロックが描画されるタイミングを指定します。
                      ・選択肢
                      ・always:データ行ごとに描画
                      ・skipIf:合わせて指定されるskipif プロパティが「false」、指定なしの場合描画
                      ・wholeHead:帳票の1ページ目にのみ描画
                      ・wholeFoot:帳票の最終ページ目にのみ描画
                      ・groupHead:データのグループごとの1ページ目にのみ描画(未実装?)
                      ・groupFoot:データのフループごとの最終ページ目にのみ描画(未実装?)
                      skipIf
                      "java script"
                      データの各行単位で呼び出されて、その行データが出力対象かどうかのフラグを返すロジックを記述します。
                      true / false のいずれかを return する必要があります。
                      row_height
                      2
                      ブロックエリア全体の行の高さを指定します。
                      高さが2以上の場合の表示文字列の縦位置はデフォルトで中央寄せ("middle")になります。
                      template
                      false/"plainBlockPart"
                      レイアウトタイプの指定になります。
                      border
                      true/ false
                      ブロックエリア全体に対して、罫線を描画するかを指定します。
                      trueを指定した場合、すべてのセルに罫線がつきます。
                      ※レイアウト上、罫線を一部つけたくないという場合は、「false」指定した上で、レイアウト:自由罫線を利用して罫線を描画してください。
                      ・セルの定義について
                        [表示文字列, 幅 [, 横位置] [, 縦位置] [, オプション]]
                      プロパティ説明とサンプル
                      表示文字列そのセルに表示したい文字列を指定します。
                      指定は、文字列をそのままの場合は、
                      "表示したい文字列"
                      データの中身を表示する場合は、
                      "=フィールド名"
                      とします。(=を忘れないように)
                      幅をミリ単位で指定します。
                      横位置表示文字列の横位置を指定します。
                      ・選択肢
                      ・left、指定なし:左寄せ
                      ・center:中央寄せ
                      ・right:右寄せ
                      縦位置セルの高さが2以上の場合に、その縦位置を指定します。
                      ・選択肢
                      ・top:上寄せ
                      ・middle、指定なし:中央寄せ
                      ・bottom:下寄せ
                      オプションセルの装飾やスタイルを指定できます。
                      ・文字の色
                       { fill: "#f22" } 
                      ・背景色
                       { "background-color" : "#f22" } 
                      ・折り返しなし
                       { "white-space" : "nowrap" } 
                      ・文字溢れ非表示
                       { "overflow" : "hidden" } 
                    • matrixTable

                      template プロパティに、「matrixTable」を指定するとヘッダーとボディを持つテーブル形式のレイアウトが定義できます。
                      matrixTable に渡されるデータは配列となっており、ボディ部分に定義したレイアウトに沿って全てのデータが描画されます。
                      matrixTable のレイアウトプロパティの詳細になります。
                      ・設定後のイメージ
                      プロパティ
                      キー設定例備考
                      data
                      "find_daicho"
                      aggregate の設定にて、データを集計する定義をした際のキーを指定します。
                      帳票の出力に指定できるデータは一つのみになります。
                      print
                      {
                      position: { x: 120, y: 40 },
                      timing: "skipIf",
                      skipIf: "return x.gaku == 0;"
                      }
                      レイアウト定義になります。配列
                      position では、x(=横位置:ミリ単位)と、y(縦位置:ミリ単位)を指定します。
                      timing とは、このブロックが描画されるタイミングを指定します。
                      ・選択肢
                      ・always:データ行ごとに描画
                      ・skipIf:合わせて指定されるskipif プロパティが「false」、指定なしの場合描画
                      ・wholeHead:帳票の1ページ目にのみ描画
                      ・wholeFoot:帳票の最終ページ目にのみ描画
                      ・groupHead:データのグループごとの1ページ目にのみ描画(未実装?)
                      ・groupFoot:データのフループごとの最終ページ目にのみ描画(未実装?)
                      skipIf
                      "java script"
                      データの各行単位で呼び出されて、その行データが出力対象かどうかのフラグを返すロジックを記述します。
                      true / false のいずれかを return する必要があります。
                      head
                      {
                      row_height : 1,
                      row1 : [["ラベル", 25], ["ラベル", 15], ・・・],
                      ]
                      もしくは
                        [["ラベル", 25], ["ラベル", 15], ・・・]
                      ヘッダーのレイアウト定義になります。
                      配列もしくは、オブジェクト型で定義します。
                      ヘッダーを複数行にしたい場合は、オブジェクト型で、行ごとにキーと配列を定義します。
                      body
                      {
                      row_height : 1,
                      row1 : [["=field1", 25], ["=field2", 15], ・・・],
                      ]
                      もしくは
                        [["=field1", 25], ["=field2", 15], ・・・]
                      ボディ部のレイアウト定義になります。
                      配列もしくは、オブジェクト型で定義します。
                      ボディを複数行にしたい場合は、オブジェクト型で、行ごとにキーと配列を定義します。
                      style
                      {
                      "font-size": "10pt"
                      }
                      テーブル全体のスタイルを指定します。
                      ※本例では、フォントサイズを10ptにしています。
                      template
                      "matrixTable"
                      レイアウトタイプの指定になります。
                      border
                      true/ false
                      テーブル全体に対して、罫線を描画するかを指定します。
                      trueを指定した場合、すべてのセルに罫線がつきます。
                      ※レイアウト上、罫線を一部つけたくないという場合は、「false」指定した上で、Tips(draw):自由に罫線を引くを利用して罫線を描画してください。
                    • Tips(draw)

                      これより下には、特殊な印刷に対応するサンプルを記載していきます。
                      • セルの背景色を指定する

                        template プロパティ == 「plainBlockPart」 を利用
                        template プロパティに、「plainBlockPart」、もしくは、false を指定し、ブロックエリアを利用し、任意の位置にボックスを置くことで、背景色をつけるサンプルを掲載します。
                        ・サンプル
                        ・設定後のイメージ
                        ・items プロパティの定義
                        items プロパティに以下のように記述すると好きな位置にボックスを描画することが可能です。
                        下記の例では、
                        1つ目のrect:x:0, y:0 の位置から、幅388mm、高さ12mm の#222色の枠線を引く
                        2つ目のline : x:0, y:0 の位置から、幅388mm、高さ12mm の枠線を引き、#eeeの色で塗りつぶす
                        [
                        ["rect", {x: 0, y: 0, width: 388, height: 12, stroke: "#222"}],
                        ["rect", {x: 0, y: 0, width: 388, height: 12, fill: "#eee"}],
                        ]
                        template プロパティ == 「matrixPart」 の場合
                        ・サンプル
                        ・設定後のイメージ
                      • 自由に罫線を引く

                        template プロパティに、「plainBlockPart」、もしくは、false を指定し、ブロックエリアを利用し、任意の位置に罫線を引くサンプルを掲載します。
                        ・サンプル
                        ・設定後のイメージ
                        ・items プロパティの定義
                        items プロパティに以下のように記述すると好きな位置に罫線を引くことが可能です。
                        下記の例では、
                        1つ目のline:ヘッダーの途中から途中までの横線
                        2つ目のline : ヘッダーの左端の斜めの線
                        [
                        ["line", {x1: 62, y1: 24, x2: 254, y2: 24, stroke: "#222"}],
                        ["line", {x1: 0, y1: 20, x2: 62, y2: 28, stroke: "#222"}]
                        ]
                        ※stroke-dasharray: "2" or "2 3" を指定すると、「破線」を描画できます。
                        ("2" -> 実線2 余白2 の意味。"2 3" -> 実線2 余白3 の意味)
                      • ヘッダーを動的に加工する

                        以下のサンプルのように、検索した年月より向こう18ヶ月分の情報を出力するようなケースでは modifyHead プロパティを使って動的にヘッダーを加工します。
                        ・サンプル
                        ・設定後のイメージ
                        (ルート)
                        (head > row1 の中身)
                        ・modifyHead プロパティの定義
                        modifyHead プロパティには、javascript ロジックを記述します。
                        ヘッダーの定義に基づいて検索条件の値から表示文字列を生成しています。
                          // jken_obj の ym (年月)を使って n に指定した月数分ずらした年月を取得する
                        var fix =n=>fn.sync.YMDHMS(fn.sync.procTo(jkn_obj.ym, n, 'date'), 'Y/M');
                        switch(x.row_key) { // x.row_key には、head に定義したキーが入ってくる
                        case "row1": // head のキーが row1 の場合に処理
                        x.line[1][0]=fix(0); // x.line[1][0] ==> head > row1 の 1 インデックスの "ym_0" を指している
                        x.line[2][0]=fix(1);
                        x.line[3][0]=fix(2);
                        x.line[4][0]=fix(3);
                        x.line[5][0]=fix(4);
                        x.line[6][0]=fix(5);
                        x.line[7][0]=fix(6);
                        x.line[8][0]=fix(7);
                        x.line[9][0]=fix(8);
                        x.line[10][0]=fix(9);
                        x.line[11][0]=fix(10);
                        x.line[12][0]=fix(11);
                        x.line[13][0]=fix(12);
                        x.line[14][0]=fix(13);
                        x.line[15][0]=fix(14);
                        x.line[16][0]=fix(15);
                        x.line[17][0]=fix(16);
                        x.line[18][0]=fix(17);
                        }
                        ・modifyHead_args プロパティの定義
                        modifyHead プロパティにて、jkn_obj を利用しているため、それを modifyHead に渡すために以下の設定をしています。
                        modifyHead_args : ["jkn_obj"]
                  • requireCommand の利用

                    帳票出力機構内の以下の記述部分について、requireCommand(コマンド実行)を呼び出すことができます。

                    ・projection.modifyData
                    ・projection.modify
                    ・projection.stretch
                    ・aggregate.join
                    ・aggregate.calc
                    ・aggregate.skipIf
                    ・aggregate.fixData
                    ・aggregate.sort
                    ・aggregate.treatment
                    ・draw.skipIf
                    ・draw.beforeWrite
                    ・draw.modifyContext
                    ・draw.modifyHead
                    ・draw.modifyBody
                    ・csv.modifyHead
                    ・pieChart.radius
                    ・draw.calcX
                    ・draw.labelX
                    ・draw.calcY
                    ・draw.labelY
                    • requireCommandとは

                      requireCommand とは、「管理者タブ」等に表示されている、「コマンド管理・実行画面」で定義できるロジックのことです。
                      本画面にて定義したロジックはDB上に保管されいつでも実行・編集が可能です。
                      繰り返し行うような作業や、調査、データ出力などを定義しておくと非常に便利なツールになります。

                      (画面イメージ)
                      ・メニュー


                      ・一覧


                      ・入力


                      (新規作成時にデフォルトでセットされるものを実行した結果)


                    • 記述ルール

                      帳票出力機構において、requireCommand を利用する場合には以下の点に注意してください。

                      1)文字列として「 "rc('呼び出したいコマンドの名前')" 」を指定
                       ※「' 」(シングルクオテーション)を忘れずに。

                      2)requireCommand では必ず Promise を返す

                      3)xxxx_args に指定しているarguments がその名前をキーとして受け渡される

                      4)3)で渡されるデータに requireCommand 側で直接変更を加えることが可能

                      ※記述例はこれ以降を参照してください。
                    • modifyDataサンプル

                      ここでは、データ取得と加工を行いデータを返すことが可能な「modifyData」のサンプルを掲載します。

                      (DBの設定)


                      (コマンド実行の記述)