名前空間
Haluで使用する名前空間として、以下が定義されています。
$H | Halu全体を対象とした基底の名前空間 |
AppSpec | アプリケーション仕様クラス |
Model | 処理 |
View | 表示 |
Controller | 制御 |
データマッピング(画面表示)
端末で画面が操作されると、以下の順に各データ処理が実行され、画面情報が更新されます。
この時、データはJSON形式で各処理を経由します。
データフロー図

dataset
dataset.jsonに記載された、使用する全てのデータ項目情報です。
画面からは検索条件などのリクエストデータにセットするデータ項目をセットします。
各データ処理後、レスポンスデータから移送されたデータ項目を画面が参照し、表示などの処理を行います。
以下の構造体を含みます。
・message
・records
パラメータ | 説明 |
comment | このファイルの説明(画面名 + 処理情報) |
html | このファイルのあるディレクトリ |
status | 状態 |
msg | メッセージ |
id | record構造体のid |
multiline | データ行数が複数になる可能性があるかどうか(yes/no) |
defaultline | 1ページに表示する行数 |
record | record構造体 |
- 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": [""]
}
}
}
]
}
request
dataset.jsonの各項目から、tran.jsonのrequest内の各項目へデータを移送したものです。
データセット後、リクエストデータとしてクライアントからサーバへ送信されます。
以下の構造体を含みます。
・message(メッセージ情報)
・records(record構造体配列)
パラメータ | 説明 |
comment | このファイルの説明(画面名 + 処理情報) |
html | このファイルのあるディレクトリ |
mode | 処理モード |
prog | SQL前後処理の有無 |
model | model処理(SQL実行)の有無 |
status | 状態 |
msg | メッセージ |
id | record構造体のid |
before | SQL処理前実行メソッド |
after | SQL処理後実行メソッド |
multiline | データ行数が複数になる可能性があるかどうか(yes/no) |
defaultline | 1ページに表示する行数 |
record | record構造体 |
- 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": [""]
}
}
}
]
},
sql
sql.jsonに記載された、SQLの実行に必要な情報と実行結果の情報です。
以下の構造体を含みます。
・message(メッセージ情報)
・sqls(SQL情報構造体配列。sql構造体、input構造体、output構造体を含む)
パラメータ | 説明 |
html | このファイルのあるディレクトリ |
dbname | DB名 |
mode | 処理モード |
prog | SQL前後処理(controller.py)および バリデーションチェックの追加処理の有無 |
status | 状態 |
msg | メッセージ |
comment | SQLの説明 |
id | record構造体のid |
before | 項目のバリデーションチェック前に実行するメソッド |
after | 項目のバリデーションチェック後に実行するメソッド |
◇sql(SQL文作成情報構造体)
パラメータ | 説明 |
type | SQLの種類(select/delete/update/insert/nosql) |
freesql | SQL文(自由記述) |
genesql | SQL文共通条件(where/orderby/limit句)構造体 |
- dist | DISTINCTの設定有無(yes/””(空白)) |
- from | SQL文のfrom句 |
- where | SQL文のwhere句 |
- order | SQL文のorderby句 |
- limit | SQL文のLIMIT句 |
◇input(input情報構造体)
パラメータ | 説明 |
multiline | データ行数が複数になる可能性があるかどうか |
record | record構造体 |
- key | データ項目名 |
- value | データ項目の値 |
- field | テーブル列名 |
- fromtype | データ取得元のrecord構造体の種類(sqls/request) |
- fromid | データ取得元のrecord構造体のid |
- fromio | 取得元(input/output) |
- fromname | データ取得元の項目名 |
◇output (output情報)
パラメータ | 説明 |
multiline | データ取得結果が複数件想定されるかどうか |
record | record構造体 |
- 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.受注番号)"
}
}
}
}]
}
response
sql.jsonにセットされたoutputから、tran.jsonのresponse内の各項目へデータ移送されたものです。
データセット後、レスポンスデータとしてサーバからクライアントへ送信されます。
以下の構造体を含みます。
・message(メッセージ情報)
・records(record構造体配列を含むデータ情報)
パラメータ | 説明 |
comment | このファイルの説明 |
html | このファイルのあるディレクトリ |
mode | 処理モード |
prog | SQL前後処理(view.py)の有無 |
status | 状態 |
msg | メッセージ |
◇records(record構造体配列を含むデータ情報)
パラメータ | 説明 |
comment | レスポンスデータの説明 |
id | レスポンスデータのid |
before | SQL処理前実行メソッド(view.py) |
after | SQL処理後実行メソッド(view.py) |
multiline | データ行数が複数になる可能性があるかどうか |
record | record構造体 |
- 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": "トータル件数"
}
}
}
validation
request.jsonのチェック時に使用するvalidation情報です。
チェックは次の二つのタイミングで実行されます。
・ブラウザでの項目入力直後
・サーバ側で、リクエストデータを受信した直後
以下の構造体を含みます。
・records(record構造体配列を含むデータ情報)
パラメータ | 説明 |
comment | このファイルの説明 |
html | このファイルのあるディレクトリ |
id | このrecords構造体のid |
multiline | record構造体の配列要素数が2以上か |
- key | - データ項目名(index.htmlのclassと紐づく) |
- validation | - 必須設定(required/nonrequired),データ型(別記参照) |
- min | - 最小桁数 |
max | - 最大桁数 |
- format ※ | - フォーマット設定(別記参照) |
◇validation データ型 設定例
設定値 | 説明 |
free | 型制限なし |
integer | 符号付き(省略可)数字(整数) |
alphabet | アルファベット(大文字・小文字) |
yyyymmdd | 日付型 |
hhmm | 時刻 |
◇format 設定例
設定値 | 説明 |
yyyySmmSdd | 日付(yyyy/mm/dd) |
money | 数量(通貨) |
{
"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"
}
}
}
]
}
データマッピング(バッチ処理)
バッチ処理の場合、画面表示で使用する内容に加えて以下を設定します。
dataset
◇record構造体
パラメータ | 説明 |
idx | バッチ処理用index |
"records": [{
"id": "login",
"multiline": "no",
"defaultline": "0",
"record": {
"ユーザID": {
"value": [""],
"idx": [""]
},
"ユーザ名称": {
"value": [""],
"idx": [""]
}
}
},
データマッピング(帳票出力処理)
帳票出力処理の場合、画面表示で使用する内容に加えて以下を設定します。
response
パラメータ | 説明 |
excelinfo | excel処理関連情報構造体 |
- 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": "プリント処理は正常に終了しました。"
},
◇records構造体
パラメータ | 説明 |
excelinfo | excel処理関連情報構造体 |
- 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"
},
◇record構造体
パラメータ | 説明 |
excelinfo | excelセルデータ情報構造体 |
- type | - データ型 |
- cell | - セル位置情報構造体 |
- savefile | - 列位置 |
- pdfname | - 行位置 |
"顧客氏名H": {
"value": [""],
"fromtype": "sqls",
"fromid": "printParam",
"fromio": "input",
"fromname": "検索顧客氏名",
"excelinfo": {
"type": "str",
"cell": {
"column": "B",
"row": "5"
}
}
},
クライアント側
基本クラスClassを継承し、include関数を使用して独自処理を追加していく仕組みです。
画面処理パターンが複数用意されており、各パターンを使用して作られたSampleプログラムをコピーして実装を行います。
1つの画面を作成するのに必要なファイルは以下の通りです。
アプリケーション仕様クラス(AppSpec)に必要なテーブル項目や紐づけたい処理を設定することで実装が完了します。
画面処理パターン(Mixin)
画面処理のパターンごとに必要な処理を実装したMixinが用意されています。
各画面で同名のメソッドを定義・実装することでオーバーライドも可能です。
アプリケーション開発の際は、Sampleアプリから使用したい画面処理パターンを実装している画面プログラム一式をコピーしてプログラムを作成します。
◇一覧登録(単一テーブル)パターン
・ singleTableListForm.controller/model/view.mixin-X.X.X.js
1つのテーブルについて、データを一覧表示および更新することができる画面パターンです。
Sampleアプリ:顧客一覧(CustomerListMainte)
◇一覧照会(親子テーブル)パターン
・ multiTableListForm.controller/model/view.mixin-X.X.X.js
複数テーブルを結合して一覧表示することができる画面パターンです。
一覧からデータを選択してメンテナンス画面へ遷移することができます。
Sampleアプリ:ユーザ一覧(UserList) → ユーザ登録(UserListMainte)
Sampleアプリ:受注一覧(OrderList) → 受注登録(OrderListMainte)
◇単票登録(単一テーブル)パターン
・ singleRecordForm.controller/model/view.mixin-X.X.X.js
一覧照会パターンの画面から遷移して使用する画面パターンです。
呼び出し元画面で選択したレコード1件の情報を表示・更新することができます。
Sampleアプリ:ユーザ登録(UserListMainte)
Sampleアプリ:受注登録(OrderListMainte)
◇データ選択画面パターン
・ dataSelectionDialog.controller/model/view.mixin-X.X.X.js
選択したレコードの情報を呼び出し元に返す画面パターンです。
検索条件の入力補助などに使用します。
Sampleアプリ:顧客選択画面(CustmoerSelection)
◇ログインパターン
・ login.controller/model/view.mixin-X.X.X.js
ログイン画面パターンです。
Sampleアプリ:ログイン画面(Login)
◇タブメニューパターン
・ tabMenu.controller/model/view.mixin-X.X.X.js
タブ式メニューの画面パターンです。
Sampleアプリ:メニュー画面(StartMenu)
Sampleアプリ:管理者メニュー画面(AdminMenu)
Appspec
Appspec.jsはイベントマッピング、画面表示とデータの項目マッピングなどの各種設定用ファイルです。
各種プログラムがAppspecの設定をもとに処理を実行します。
項目と設定値の説明は以下の通りです。
◇App
$H.Application配下に名前空間を宣言します。
let App = $H.Application.CustomerListMainte = {};
◇nextname
インスタンスプロパティとして、遷移先の画面名を設定します。
this.nextname= "StartMenu";
◇beforename
インスタンスプロパティとして、遷移元の画面名を設定します。
this.beforename = "OrderList";
◇urlInfo
プログラム・JSONファイルのURL情報を定義します。(サブシステム名・種類・Apps・プログラムフォルダ名)app
: アプリケーション(js,html)のプログラムを格納しているフォルダパスjson
:JSONファイルを格納しているフォルダパス
urlInfo: [
{ app: "Sample/Html/Apps/CustomerListMainte/" }
, { json: "Sample/Json/Apps/CustomerListMainte/" }
]
◇jsonInfo
JSONファイルの有無を定義します。dataset
:dataset.jsonの有無validation
:validation.jsonの有無
jsonInfo: [
{ dataset: "yes" }
, { validation: "yes" }
]
◇requestInfo
トランザクションおよびそれに関連するリクエストチェック・レスポンス編集・エラーの各種コールバック関数を定義します。
また、トランザクションの設定値をもとに画面名_トランザクション_tran.jsonのファイル名を読み込みます。
requestInfo: [
["select", "on照会OfCheckRequestData", "on照会OfEditResponseData", "onErrorResponseData"]
, ["execute", "on実行OfCheckRequestData", "on実行OfEditResponseData", "onErrorResponseData"]
]
◇externalInfo
外部トランザクションに対する、外部プログラム名・トランザクション・リクエストチェック・レスポンス編集・エラーのコールバック関数を定義します。
externalInfo: [
["MasterSelectBox", "Employee", "on初期処理OfCheckRequestData", "on初期処理OfEditResponseData", "onErrorResponseData"]
]
◇enterTabPFKey
エンター・タブとPFキーのコールバック関数を定義します。Enter/Tab
:キー押下時に次項目へカーソルを移動するかどうか設定します。(有効(true) / 無効(false))
F1~F12/ESC
:キー押下時に実行する、コールバック関数を設定します。
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
NAVボタンのイベントを定義します。
イベント設定はセレクタ・イベント・コールバック関数の順に指定します。
navButtonEvent: [
["#戻る", "click", "on戻る"]
, ["#実行", "click", "on実行"]
, ["#mainTable td", "click", "onテーブル行クリック"]
, ["#行追加", "click", "on行追加クリック"]
]
◇validationEvent
バリデーションイベントを定義します。
イベント設定はセレクタ・イベント・コールバック関数の順に指定します。
validationEvent: [
["#mainForm", "focus", "onFocus"]
, ["#mainForm", "blur", "onBlur"]
]
◇selectorEvent
NAVボタンおよびバリデーション以外のセレクターイベントを定義します。
イベント設定はセレクタ・イベント・コールバック関数の順に指定します。
selectorEvent: [
[".削除", "change", "on削除"]
]
◇pubsubCheckEvent
チェック用カスタムイベントを定義します。
カスタムイベント設定はイベント名・実行コンテキスト・コールバック関数の順に指定します。
pubsubCheckEvent: [
["check該当NO", "controller", "onCheck該当NO"]
]
◇pubsubDeriveEvent
導出項目編集用カスタムイベントを定義します。
カスタムイベント設定はイベント名・実行コンテキスト・コールバック関数の順に指定します。
pubsubDeriveEvent: [
["deriveトータル件数", "model", "onDeriveトータル件数"]
]
◇pubsubOtherEvent
その他カスタムイベントを定義します。
カスタムイベント設定はイベント名・実行コンテキスト・コールバック関数の順に指定します。
pubsubOtherEvent: [
["showページ情報", "view", "showページ情報"]
]
◇firstFocusItem
画面が表示された時、最初にフォーカスを設定する項目を指定します。
項目の指定はkey(“id”または”class”)・値(id名またはclass名)の順に設定します。
firstFocusItem: [
["class", "開始日付"]
]
◇f12FocusItem
F12押下時、フォーカスを設定する項目を指定します。
項目の指定はkey(“id”または”class”)・値(id名またはclass名)の順に設定します。
f12FocusItem: [
["id", "該当NO"]
]
◇sessionStorageHeaderKey
画面ヘッダキーを定義します。 この定義情報は自画面のセッションストレージに保存されます。
各項目の説明は以下の通りです。
・ datasetid
: datasetのid
・ dataname
: datasetの項目名
・ classname
: HTMLのクラス名
・ typename
: HTMLのTYPE
sessionStorageHeaderKey: [
{
datasetid: "header"
, dataname: ["検索顧客ID", "検索顧客氏名", "検索受注日カラ", "検索受注日マデ"]
, classname: ["検索顧客ID", "検索顧客氏名", "検索受注日カラ", "検索受注日マデ"]
, typename: ["text","text", "text", "text"]
}
]
◇sessionStorageDetailKey
画面明細キーを定義します。
この定義情報は自画面のセッションストレージに保存されます。
各項目の説明は以下の通りです。
・ datasetid
: datasetのid
・ dataname
: datasetの項目名
・ typename
: datasetもしくはHTMLのTYPE
sessionStorageDetailKey: [
{
datasetid: "detail"
, dataname: ["受注番号"]
, typename: ["text"]
}
]
◇sessionStorageFooterKey
画面フッターキーを定義します。 この定義情報は自画面のセッションストレージに保存されます。 各項目の説明は以下の通りです。
・ datasetid
: datasetのid
・ dataname
: datasetの項目名
・ typename
: datasetもしくはHTMLのTYPE
sessionStorageFooterKey: [
{
datasetid: "header"
,dataname: ["カレントページ", "ページライン数"]
,typename: ["dataset", "dataset"]
}
]
◇nextStorageData
次画面への引き継ぎデータを定義します。
この定義情報は次画面のセッションストレージに保存されます。
各項目の説明は以下の通りです。
・datasetid
: datasetのid
・dataname
: datasetの項目名
・validation
: required(必須)もしくはnonrequired(省略可能)
・titlename
: エラーメッセージのタイトル
nextStorageData: [
{
datasetid: "detail"
, dataname: ["受注番号"]
, validation: ["nonrequired"]
, titlename: ["受注番号"]
}
]
◇beforeStorageData
前画面からの引き継ぎデータを定義します。
各項目の説明は以下の通りです。
・datasetid
: datasetのid
・dataname
: datasetの項目名
・classname
: HTMLのクラス名
・typename
: datasetもしくはHTMLのTYPE
beforeStorageData: [
{
datasetid: "header"
, dataname: ["検索顧客ID"]
, classname: [""]
, typename: ["dataset"]
}
]
◇selectStorageRequestData
選択画面への引き渡しデータを定義します。
各項目の説明は以下の通りです。
・requestname
: 選択画面名
・datasetid
: datasetのid
・dataname
: datasetの項目名
・value
: 空白(項目名の値がセットされ選択画面へ渡されます)
selectStorageRequestData: [
{
requestname: ""
, datasetid: ""
, dataname: [""]
, value: [""]
}
]
◇selectStorageResponseData
選択画面からの引き渡しデータを定義します。
各項目の説明は以下の通りです。
・responsename
: 自画面名
・datasetid
: datasetのid
・dataname
: datasetの項目名
・value
: 空白(選択画面からの引き渡しデータの値がセットされます)
・afterfunction
: データ選択後処理関数(同時に、pubsubOtherEventにも設定します)
・cancelfunction
: キャンセル処理関数(同時に、pubsubOtherEventにも設定します)
selectStorageResponseData:[
{
responsename: "OrderList"
, datasetid: "header"
, dataname: ["検索顧客ID", "検索顧客氏名"]
, value: [""]
, afterfunction: ""
, cancelfunction: ""
}
]
◇selectbox
セレクトボックス情報を定義します。
各項目の説明は以下の通りです。
・selectorid
: HTMLのIDを指定する
・selectorname
: HTMLのnameを指定する(テーブル内で使用する時に定義する)
・init
: 初期表示用構造体
- initvalue
: 初期値(0)
- inithtml
: 初期表示(~選択)
- datasetid
: datasetのID名を指定する
- valuename
: datasetに定義されているキー値の項目名
- htmlname
: datasetに定義されている表示用データの項目名
・change
: 選択変更時用構造体
- datasetid
: datasetのID名を指定する
- valuename
: 選択したキー値を格納するdatasetの項目名
- htmlname
: 選択した表示値を格納するdatasetの項目名
selectbox: [
{
selectorid: "検索メニュー名"
, selectorname: ""
, init: { initvalue: "", inithtml: "メニュー選択", datasetid: "選択検索メニュー名", valuename: "list_メニューコード", htmlname: "list_メニュー名" }
, change: { datasetid: "header", valuename: "検索メニュー名", htmlname: "" }
}
]
◇checkboxDetail
チェックボックス情報を定義します。
各項目の説明は以下の通りです。
・selectorid
: HTMLのID
・selectorname
: HTMLのname(テーブル内で使用する時に定義します)
・datasetid
: チェックボックスの値が設定されるdatasetのID名
・datasetname
: チェックボックスの値が設定されるdatasetの項目名
・value
:チェック状態変更時の値切替情報構造体
- on
: チェックされた時に取得される値
- off
: チェックが外された時に取得される値
checkboxDetail: [
{
selectorid: "", selectorname: "削除", datasetid: "detail", datasetname: "削除"
, value: { on: "9", off: "0" }
}
]
Python
画面のrequest.json/sql.json/response.jsonで使用するメソッドを記述します。
詳細はSampleプログラムをご参照下さい。
◇使用方法
・有効化:各JSONファイルでprog=yesを設定します。
・実行メソッド設定:各JSONファイルでbefore/afterに呼び出しを設定します。
◇処理の記述先:
・画面_controller.py:request.jsonのbefore/afterで使用するメソッドを記述します。
・画面_model.py:sql.jsonのbeforeで使用するメソッドを記述します。
・画面_view.py:response.jsonのbefore/agterで使用するメソッドを記述します。
サーバ側
サーバ側プログラムはPythonとJavaScriptで作成されています。
JavaScript
◇概要
JavaScriptプログラムではクライアント側フレームワークが実装されており、
各種クラスライブラリはクライアント側プログラムで継承され、ブラウザ上で実行されます。
◇主なクラスライブラリ
クラス名 | 説明 |
Class | 基底クラス |
Event | イベントクラス |
PubSub | pubsubクラス |
Synchro | 同期クラス |
Dataset | データセットクラス |
Validation | バリデーション(入力チェック)クラス |
Transaction | トランザクションクラス |
TranControll | トランザクション管理クラス |
AppSpec | アプリケーション仕様クラス |
Model | データ関連処理クラス |
View | 表示関連処理クラス |
Controller | 制御処理クラス(model, viewの各処理を呼び出す) |
◇関連ドキュメント
Python
◇概要
Pythonプログラムではサーバ側フレームワークが実装されており、クライアントからのリクエストを受信すると以下を実行します。
①JSONファイルの読み込み
②項目移送およびSQLの実行
③クライアントにレスポンスを送信
◇関連ドキュメント
フォルダ構成
クライアント側

サーバ側
