機能詳細

名前空間

Haluで使用する名前空間として、以下が定義されています。

$HHalu全体を対象とした基底の名前空間
AppSpecアプリケーション仕様クラス
Model処理
View表示
Controller制御

データマッピング(画面表示)

端末で画面が操作されると、以下の順に各データ処理が実行され、画面情報が更新されます。
この時、データはJSON形式で各処理を経由します。

パラメータ説明
commentこのファイルの説明(画面名 + 処理情報)
htmlこのファイルのあるディレクトリ
status状態
msgメッセージ
idrecord構造体のid
multilineデータ行数が複数になる可能性があるかどうか(yes/no)
defaultline1ページに表示する行数
recordrecord構造体
 - key項目名
 - value値(固定値の場合[“XXXX”],変動の場合[“”])
{
  "comment": "一覧照会(親子テーブル) dataset",
  "html": "Sample/Json/Apps/OrderList",
  "message": {
    "status": "OK",
    "msg": "データを入力して、実行ボタンを押下して下さい。"
  },
  "records": [
    {
      "id": "login",
      "multiline": "no",
      "defaultline": "0",
      "record": {
        "ユーザID": {
          "value": [""]
        },
        "ユーザ名称": {
          "value": [""]
        }
      }
    }
 ]
}
パラメータ説明
commentこのファイルの説明(画面名 + 処理情報)
htmlこのファイルのあるディレクトリ
mode処理モード
progSQL前後処理の有無
modelmodel処理(SQL実行)の有無
status状態
msgメッセージ
idrecord構造体のid
beforeSQL処理前実行メソッド
afterSQL処理後実行メソッド
multilineデータ行数が複数になる可能性があるかどうか(yes/no)
defaultline1ページに表示する行数
recordrecord構造体
 - key項目名
 - value値(固定値の場合[“XXXX”],変動の場合[“”])
"request": {
    "comment": "一覧照会(親子テーブル) 照会処理 リクエストデータ",
    "html" : "Sample/Json/Apps/OrderList",
    "mode": "select",
    "prog": "no",
    "model": "yes",
    "message": {
      "status": "OK",
      "msg": ""
    },
    "records": [
    {
      "id": "header",
      "before": "",
      "after": "",
      "multiline": "no",
      "record": {
        "ページライン数": {
          "value": [""]
        },
        "カレントページ": {
          "value": [""]
        },
        "検索顧客ID": {
          "value": [""]
        },
        "検索顧客氏名": {
          "value": [""]
        },
        "検索受注日カラ": {
          "value": [""]
        },
        "検索受注日マデ": {
          "value": [""]
        }
      }
    }
    ]
  },
パラメータ説明
htmlこのファイルのあるディレクトリ
dbnameDB名
mode処理モード
progSQL前後処理(controller.py)および
バリデーションチェックの追加処理の有無
status状態
msgメッセージ
commentSQLの説明
idrecord構造体のid
before項目のバリデーションチェック前に実行するメソッド
after項目のバリデーションチェック後に実行するメソッド
パラメータ説明
typeSQLの種類(select/delete/update/insert/nosql)
freesqlSQL文(自由記述)
genesqlSQL文共通条件(where/orderby/limit句)構造体
 - distDISTINCTの設定有無(yes/””(空白))
 - fromSQL文のfrom句
 - whereSQL文のwhere句
 - orderSQL文のorderby句
 - limitSQL文のLIMIT句
パラメータ説明
multilineデータ行数が複数になる可能性があるかどうか
recordrecord構造体
 - keyデータ項目名
 - valueデータ項目の値
 - fieldテーブル列名
 - fromtypeデータ取得元のrecord構造体の種類(sqls/request)
 - fromidデータ取得元のrecord構造体のid
 - fromio取得元(input/output)
 - fromnameデータ取得元の項目名
パラメータ説明
multilineデータ取得結果が複数件想定されるかどうか
recordrecord構造体
 - keyデータ項目名(index.htmlのclassと紐づく)
 - valueデータ項目の値
 - fieldテーブル列名
 - table取得元テーブル名
 - funct関数式(利用する場合)
{
  "html": "Sample/Json/Apps/OrderList",
  "dbname": "sample",
  "mode": "select",
  "prog": "yes",
  "message": {
    "status": "OK",
    "msg": "照会処理は正常に終了しました。"
  },
  "sqls": [
  {
    "comment": "総件数を取得する",
    "id": "total_count",
    "before": "setSql_OrderList('header', 'total_count', 'genesql')",
    "after":  "",
    "sql": {
      "type": "select",
      "freesql": "",
      "genesql": {
        "dist": "",
        "from": 
        [
          "受注ヘッダ AS hdr"
         ,"LEFT OUTER JOIN 受注明細 AS dtl ON (hdr.受注番号 = dtl.受注番号)"
         ,"LEFT OUTER JOIN 顧客 AS cst ON (hdr.顧客ID = cst.顧客ID)"
        ],
        "where": "true &&",
        "order": ""
      }
    },
    "input": {
      "multiline": "no",
      "record": {
      }
    },
    "output": {
      "multiline": "no",
      "record": {
        "トータル件数": {
          "value": [""],
          "funct": "count(distinct hdr.受注番号)"
        }
      }
    }
  }]
}
パラメータ説明
commentこのファイルの説明
htmlこのファイルのあるディレクトリ
mode処理モード
progSQL前後処理(view.py)の有無
status状態
msgメッセージ
パラメータ説明
commentレスポンスデータの説明
idレスポンスデータのid
beforeSQL処理前実行メソッド(view.py)
afterSQL処理後実行メソッド(view.py)
multilineデータ行数が複数になる可能性があるかどうか
recordrecord構造体
 - key - 項目名
 - value - 値(固定値の場合[“XXXX”],変動の場合[“”])
 - fromtype ※ - データ取得元のrecord構造体の種類(sqls/request)
 - fromid  ※ - データ取得元のrecord構造体のid
 - fromio  ※ - 取得元(input/output)
 - fromname ※ - データ取得元の項目名
※・・・省略可
"response": {
    "comment": "一覧照会(親子テーブル) 照会処理 レスポンスデータ",
    "html" : "Sample/Json/Apps/OrderList",
    "mode": "select",
    "prog": "yes",
    "message": {
      "status": "OK",
      "msg": "照会処理は正常に終了しました。"
    },
    "records": [
    {
      "comment": "テーブルページング情報(行数・カレント行・総ページ数・総件数)getMaxPageCount:総ページ数を計算する。",
      "id": "header",
      "before": "",
      "after": "getMaxPageCountOfOrderList('header')",
      "multiline": "no",
      "record": {
        "ページライン数": {
          "value": [""],
          "fromtype": "request",
          "fromid": "header",
          "fromio": "",
          "fromname": "ページライン数"
        },
        "カレントページ": {
          "value": ["1"],
          "fromtype": "request",
          "fromid": "header",
          "fromio": "",
          "fromname": "カレントページ"
        },
        "最大ページ": {
          "value": [""]
        },
        "トータル件数": {
          "value": [""],
          "fromtype": "sqls",
          "fromid": "total_count",
          "fromio": "output",
          "fromname": "トータル件数"
        }
      }
    }
パラメータ説明
commentこのファイルの説明
htmlこのファイルのあるディレクトリ
idこのrecords構造体のid
multilinerecord構造体の配列要素数が2以上か
 - key - データ項目名(index.htmlのclassと紐づく)
 - validation - 必須設定(required/nonrequired),データ型(別記参照)
 - min - 最小桁数
 max - 最大桁数
 - format ※ - フォーマット設定(別記参照)
※省略可
設定値説明
free型制限なし
integer符号付き(省略可)数字(整数)
alphabetアルファベット(大文字・小文字)
yyyymmdd日付型
hhmm時刻
※詳細はvalidation.py およびhaluvalidation.jsを参照ください。
設定値説明
yyyySmmSdd日付(yyyy/mm/dd)
money数量(通貨)
※詳細はhaluview.jsを参照ください。
{
  "comment": "明細一覧登録(子テーブル) validation",
  "html": "Sample/Json/Apps/OrderDetailListMainte",
  "records": [
  {
    "id": "detail",
    "multiline": "yes",
    "record": {
      "受注数量": {
        "validation": ["required",
        "integerP"],
        "min": "1",
        "max": "11"
      },
      "受注単価": {
        "validation": ["required",
        "integerP"],
        "min": "1",
        "max": "11",
        "format": "money"
      },
      "受注金額": {
        "validation": ["nonrequired",
        "integerP"],
        "min": "1",
        "max": "11",
        "format": "money"
      },
      "納期日": {
        "validation": ["nonrequired",
        "yyyymmdd"],
        "min": "8",
        "max": "10",
        "format": "yyyySmmSdd"
      }
    }
  }
  ]
}
パラメータ説明
idxバッチ処理用index
  "records": [{
    "id": "login",
    "multiline": "no",
    "defaultline": "0",
    "record": {
      "ユーザID": {
        "value": [""],
        "idx": [""]
      },
      "ユーザ名称": {
        "value": [""],
        "idx": [""]
      }
    }
  },
パラメータ説明
excelinfoexcel処理関連情報構造体
 - prog - 項目出力前後処理の有無
 - template - テンプレートExcelファイル名
 - savefile - 作成したエクセルのファイル名
 - pdfname - PDFファイル名
"response": {
    "comment": "受注一覧表(H)帳票処理 レスポンスデータ",
    "html" : "Sample/Json/Apps/OrderListPrint",
    "mode": "printH",
    "prog": "no",
    "excelinfo": {
      "prog": "yes",
      "template": "OrderListPrint_printH.xlsx",
      "savefile": "OrderListPrint_printH.xlsx",
      "pdfname": "受注一覧表(H)"
    },
    "message": {
      "status": "OK",
      "msg": "プリント処理は正常に終了しました。"
    },
パラメータ説明
excelinfoexcel処理関連情報構造体
 - before - エクセルのセルに項目を出力する前に呼び出す処理
 - after - エクセルのセルに項目を出力した後に呼び出す処理
 - pagecontrol - ページ内のデータid
 - outputcontrol - pagecontrol内の出力対象データ
 - templatepage - テンプレートページ
 - pagelines - 1ページの最大行数
 - rowposition - 明細の最初の行数
 - movedown - 2行目以降の相対行
"records": [
    {
      "comment": "ページヘッダ",
      "id": "page_header",
      "before": "",
      "after": "",
      "multiline": "no",
      "excelinfo": {
        "before": "page_headerH()",
        "after": "",
        "pagecontrol": "page_header",
        "outputcontrol": "all_page",
        "templatepage": "1"
      },
パラメータ説明
excelinfoexcelセルデータ情報構造体
 - type - データ型
 - cell - セル位置情報構造体
  - savefile  - 列位置
  - pdfname  - 行位置
        "顧客氏名H": {
          "value": [""],
          "fromtype": "sqls",
          "fromid": "printParam",
          "fromio": "input",
          "fromname": "検索顧客氏名",
          "excelinfo": {
            "type":   "str",
            "cell": {
              "column": "B",
              "row": "5"
            }
          }
        },
let App = $H.Application.CustomerListMainte = {};
this.nextname= "StartMenu";
this.beforename = "OrderList";
urlInfo: [
  { app: "Sample/Html/Apps/CustomerListMainte/" }
  , { json: "Sample/Json/Apps/CustomerListMainte/" }
]
jsonInfo: [
 { dataset: "yes" }
 , { validation: "yes" }
]
requestInfo: [
  ["select", "on照会OfCheckRequestData", "on照会OfEditResponseData", "onErrorResponseData"]
  , ["execute", "on実行OfCheckRequestData", "on実行OfEditResponseData", "onErrorResponseData"]
]
externalInfo: [
 ["MasterSelectBox",  "Employee",  "on初期処理OfCheckRequestData",  "on初期処理OfEditResponseData",  "onErrorResponseData"]
]
enterTabPFKey: {
 Enter: true
 , Tab: true
 , F1: "on実行"
 , F2: null
 , F3: null
 , F4: null
 , F5: null
 , F6: null
 , F7: null
 , F8: null
 , F9: null
 , F10: null
 , F11: null
 , F12: null
 , ESC: "on戻る"
 , Forms: 0
}
navButtonEvent: [
 ["#戻る", "click", "on戻る"]
 , ["#実行", "click", "on実行"]
 , ["#mainTable td", "click", "onテーブル行クリック"]
 , ["#行追加", "click", "on行追加クリック"]
]
validationEvent: [
 ["#mainForm", "focus", "onFocus"]
 , ["#mainForm", "blur", "onBlur"]
]
selectorEvent: [
 [".削除", "change", "on削除"]
]
pubsubCheckEvent: [
  ["check該当NO", "controller", "onCheck該当NO"]
]
pubsubDeriveEvent: [
  ["deriveトータル件数", "model", "onDeriveトータル件数"]
]
pubsubOtherEvent: [
  ["showページ情報",  "view", "showページ情報"]
]
firstFocusItem: [
  ["class", "開始日付"]
]
f12FocusItem: [
  ["id", "該当NO"]
]
sessionStorageHeaderKey: [
 {
   datasetid: "header"
  , dataname:  ["検索顧客ID", "検索顧客氏名", "検索受注日カラ", "検索受注日マデ"]
  , classname: ["検索顧客ID", "検索顧客氏名", "検索受注日カラ", "検索受注日マデ"]
  , typename:  ["text","text", "text", "text"]
 }
]
sessionStorageDetailKey: [
 {
   datasetid: "detail"
  , dataname:  ["受注番号"]
  , typename:  ["text"]
 }
]
sessionStorageFooterKey: [
 {
   datasetid: "header"
  ,dataname: ["カレントページ", "ページライン数"]
  ,typename: ["dataset", "dataset"]
 }
]
nextStorageData: [
 {
   datasetid: "detail"
   , dataname: ["受注番号"]
   , validation: ["nonrequired"]
   , titlename: ["受注番号"]
 }
]
beforeStorageData: [
  {
    datasetid: "header"
    , dataname: ["検索顧客ID"]
    , classname: [""]
    , typename: ["dataset"]
  }
]
selectStorageRequestData: [
  {
    requestname: ""
    , datasetid: ""
    , dataname: [""]
    , value: [""]
  }
]
selectStorageResponseData:[
  {
    responsename: "OrderList"
    , datasetid: "header"
    , dataname: ["検索顧客ID", "検索顧客氏名"]
    , value: [""]
    , afterfunction: ""
    , cancelfunction: ""
  }
]
selectbox: [
  {
    selectorid: "検索メニュー名"
    , selectorname: ""
    , init: { initvalue: "", inithtml: "メニュー選択", datasetid: "選択検索メニュー名", valuename: "list_メニューコード", htmlname: "list_メニュー名" }
    , change: { datasetid: "header", valuename: "検索メニュー名", htmlname: "" }
  }
]
checkboxDetail: [
  {
    selectorid: "", selectorname: "削除", datasetid: "detail", datasetname: "削除"
    , value: { on: "9", off: "0" }
  }
]
クラス名説明
Class基底クラス
Eventイベントクラス
PubSubpubsubクラス
Synchro同期クラス
Datasetデータセットクラス
Validationバリデーション(入力チェック)クラス
Transactionトランザクションクラス
TranControllトランザクション管理クラス
AppSpecアプリケーション仕様クラス
Modelデータ関連処理クラス
View表示関連処理クラス
Controller制御処理クラス(model, viewの各処理を呼び出す)