開発ガイド
2021/08/11

1.概要

※「Buddy はじめに」を最初お読みください。

2.Buddy と Webアプリケーション

※ 将来、Web ブラウザ内にアプリケーションやデータを保存して、サーバーと通信できない環境でも使えるアプリを開発できるようにする予定ですが、現在はサーバーと通信できないと Buddy 自体も開発されたアプリも利用できません。

3.URL とログイン情報

4.ブラウザ

5.アプリ開発の概要

[設計]

① テンプレートを選び(もしくは白紙の状態で)、名前を付けてアプリを作成する。
② データベース(DBテーブル、DBビュー)設計、スクリーン設計、レポート設計など
  をおこなう。

[デバッグ用生成とテスト]

③ 設計情報に基づいてアプリをデバッグ環境用に生成する。
④ 生成したデバッグ用アプリをテストする。
※ 必要に応じて②から繰り返す。

[本番用生成]

⑤ アプリを本番環境用に生成する(リリースと言う)。

・上記①と②ではアプリの設計情報が作成されるだけで、③と⑤のアプリの生成をおこなってはじめて実行できる状態のアプリができることに注意してください。
デバッグ用アプリと本番用アプリは URL が異なります。

・データベースもアプリの生成をおこなう際に設計情報にもとづいて、デバッグ用、本番用それぞれに作成・更新されます。
デバッグ用と本番用のデータベースは独立していますので、デバッグ環境でテストする時に入力したデータが本番環境に影響することはありません。

・スクリーン設計では、アプリを構成する各画面を設計します。
文字列、画像、入力欄、ボタンなど、様々なパーツ(モジュールと呼ぶ)が用意さていて、それを配置し、必要に応じてスクリプト(Javascript 言語によるプログラム)を書いて、様々な動作を実現します。

・レポート設計では、アプリから出力する Excel ファイルや PDF ファイルの内容を設計します。Excel レポートは、テンプレートとなる Excel ファイルを用意し、そこにデータを埋め込むことで出力します。

※生成の手順について

・データベースの構造は、デバッグ用生成の際にデータベース設計の内容がデバッグ用データベースに反映し、本番用生成の際にそれが本番用データベースに反映します。データベース設計を変更・保存したあと、いきなり本番用生成をおこなうと正しくデータベースに反映しません。必ずデバッグ用生成をおこない、動作確認をおこなってOKであれば本番用生成をおこなう、という手順でおこなってください。

※システムアップデートについて

・改良のためにBuddyのシステムをアップデートすることがあります。その際、アプリの構成要素となるもの(モジュールなど)についても機能の追加や変更がおこなわれることがありますが、既存のアプリにそれを適用してアプリの挙動が変わったり不具合が生じると困るので、既存アプリには適用されません。既存アプリにアップデートを適用するには、「既存アプリから作成」という機能でアプリのコピーを作成する際にアップデート適用を指定します。詳しくは後述の【10. 開発】の「既存アプリから作成」の項をご覧ください。

6.データベースの基本

7.名前について

8. ユーザーと権限について

9.トップページ

通知
メッセージ通知とお知らせを表示するダイアログを開きます。
Buddy2へ
画面をBuddy2に切り替えます。
※Buddy2は2021年10月に提供を開始した、Buddyの新しいバージョンです。
設定
自分自身のパスワードを変更することができます。
マニュアル
各種マニュアルを参照できます。
ログアウト
ログインしなおすことができます。

10.開発

機能 説明
ソート 「表示名」「アプリ名」「作成日」から選択して表示順序を変更
フィルタ 「すべて」では全部、「自分」では自分が作成したアプリのみを表示
検索 入力すると、アプリ名かアプリ表示名かタグにその文字列を含むアプリのみを表示

<白紙から作成>

中身のないアプリケーションが作成できます。

<サンプルから作成>

アプリケーションの雛形から作成できます。
作成後すぐに「生成」してもとりあえず動作するアプリができますが、これを元に修正・追加してアプリを作成していくことができます。

※「アドレス帳」「掲示板」「アンケート集計」「売上報告」「KitchenSink」などがあり、今後も様々なアプリの雛形を用意する予定です。「KitchenSink」はアプリとして実用的なものではなく、Buddy の様々なパーツの使い方のサンプルとなるものです。

<既存アプリから作成>

既存のアプリをコピーして新規アプリを作成できます。既存のアプリの一覧が表示されるので、選択すると次の画面になります。

<設計情報をアップロードして作成>

ダウンロードしておいたアプリの設計情報をアップロードすることで、同じ内容のアプリを作成します。そのBuddy サーバー内の既存アプリについては上記の「既存アプリから作成」でコピーできますが、他の Buddy サーバーにアプリをコピーしたい場合にはこの機能を使用します。

※ 設計情報のダウンロードは、アプリ設定の画面でできます(P11で後述)。

<Buddyモールから作成>

BuddyMallで購入したアプリから、同じ内容のアプリを作成します。BuddyMallに公開されているアプリから直接作成できるのではなく、あらかじめ購入(無料のアプリもあります)が必要です。また、BuddyMallのアプリは編集不可のものもあり、編集不可のアプリは編集することができません。(データベースのテーブルへのインポートは可能です。)

<アプリ作成時の制限>

11.アプリ開発画面

メニュー 説明
アプリ設定 アプリ自体の設定をおこなう
データインポート DBテーブルに他のアプリなどからまとめてデータをインポート
機能セット 機能セットの管理をおこなう
名前 入力すると以下の各種設定で、その文字列を含む名前のものだけが表示される
DBテーブル設計 データベーステーブルの設計をおこなう
DBビュー設計 データベースビューの設計をおこなう
スクリーン設計 スクリーン(アプリの画面)の設計をおこなう
レポート設計 レポート(アプリの出力)の設計をおこなう
サーバー機能設計 アプリのサーバー側で動作するスクリプトの設計をおこなう
ユーザー権限管理 アプリの開発や利用の権限を設定する
スタイルシート管理 スタイルシート(CSS)ファイルを管理する
スクリーンテーマ編集 スクリーンに配置したモジュールの「クラス」や「部分クラス」で指定したクラス名に適用するスタイルをまとめて指定する
ファイル管理 アプリの動作に必要な各種のファイルを管理する
アプリログ一覧 アプリのログリストを閲覧する
アプリ文書 開発者や管理者向けのメモやマニュアルを記入

12.アプリ設定

※ WebAPIについてはマニュアル「プログラミングガイド」をご参照ください。

※選択したアイコンは、生成されたアプリのfaviconとしても使われます。アイコンを変更した場合は、ブラウザの表示を更新しないとfaviconに変更が反映しない場合があるのでご注意ください。

※ ブラウザによってはポップアップ抑止機能を解除しないと働かない場合があります。

※ MyBuddyは、Buddyの契約に関する情報の管理コンソールです。MyBuddyのアカウントはBuddyのアカウントとは別なので注意してください。

13.データインポート

(そのアプリ自身を選ぶこともできます)

※データベースはアプリをデバッグ用に生成したりリリースしたりしてはじめて、設計情報を反映した状態になります。一度もデバッグ用生成やリリースをしていないとデータベース自体が存在しません。インポート先・インポート元を選択するときには注意してください。

14.機能セット

※ 機能セットは今後追加される可能性があります。

14.1.ワークフロー

①対象データのDBテーブル作成
決裁対象となるデータのDBテーブルを作成する。
単独のテーブルでも、それに明細テーブルが一対多で対応する形でもOK。
② ワークフロー追加
関連するDBテーブル、DBビュー、スクリーン、サーバー機能がまとめて作成される。
③ 担当者マスターに登録
申請者と決裁者を登録する。
④ 経路マスターの登録
決裁経路(どの決裁者から順に決裁するか)を設定する。
⑤ 申請と決裁のスクリーンを追加
「追加・編集」で「申請/決裁画面」または「明細付き申請/決裁画面」を追加する。

<①対象データの DBテーブル作成>

プライマリキー(後述P29)

<②ワークフロー追加>

<③担当者マスターに登録>

<④経路マスターの登録>

<⑤申請と決裁のスクリーンを追加>

※ 「申請経路」を空白のままで申請画面と決裁画面のスクリーンを作成した場合は、それぞれのスクリプトの中で「// 経路 ID を選択する処理をここに記載する」というコメントがある箇所を適宜修正してください。

※ ワークフローを追加したときに作成されるスクリーンに、申請画面や決裁画面への移動ボタンがありますが、その時点ではまだ申請・決裁画面がないため、クリックしても機能しないボタンになっています。申請・決裁画面を作成後は、スクリーンのスクリプトの「//申請画面を作成した後、移動スクリプトを記述する」のようにコメントされている箇所を編集してボタンが機能するようにしてください。

14.2.コメント

① コメント追加
関連するDBテーブル、スクリーン、サーバー機能がまとめて作成される。
② 対象のスクリーン作成
コメント機能を付加するスクリーンを作成する。
③ コメント付画面追加
「追加・編集」で「コメント付画面」を追加する。このとき、②で用意したスクリーンを対象に指定する。

<①コメント追加>

<②対象のスクリーン作成>

<③コメント付画面追加>

※ユーザーがどのグループに属するかは、ログイン時に判断されます。ログイン中のユーザーをグループのメンバーに追加・削除した場合、ログアウトしてログインし直さないと反映しない点に注意が必要です。

※「テーブル」は、対象のDBテーブルまたはDBビューを選択します。選択したテーブルまたはビューには、クエリで指定されたidと対応するカラムと、ユーザーIDの入ったカラムがなければなりません。それぞれを「クエリカラム」と「ユーザーIDカラム」で選択します。

15.DB テーブル設計

15.1.DB テーブル新規作成

15.2.DB テーブル新規作成 ~ CSV

15.3.DB テーブル設計

<メニューアイコン>

メニュー名 説明
保存 現在のDBテーブルとDBビューの設計情報を保存する
モデル履歴 設計変更の履歴を閲覧し、未適用のものは取り消せる
削除 このDBテーブルを削除する

<カラム一覧>

項目 説明
端の小さな枠 ピンアイコンがあるとプライマリキーであることを示す
そのテーブルのレコードを一意に識別するキーとなるもの
カラム名 カラムの名前(半角英数字と「_ 」でなければならない)
表示名 わかりやすい日本語表示の名前
「数値」「真偽値」「文字列」「日付・時間」「ファイル」から、どの型のデータを格納するかを選択する
型の詳細 それぞれの型に合わせて詳細を選択する(数値の場合…「自動連番」「整数」「小数点」「金額」)
右端の× そのカラムを削除する

※「型」に「ファイル」を指定した場合、そのカラムにファイルの内容そのもの(バイナリーデータ)を格納するのではなく、アップロードしてサーバー上の所定の場所に保存したファイルのファイル名をカラムの値とすることになります。そのために「データインプット」というモジュールが用意されています。(後述)

<データの確認>

メニュー 説明
インポート デバッグ用や本番用のデータベースの当該テーブルにCSVデータやエクセルデータを投入する
エクスポート デバッグ用や本番用のデータベースの当該テーブルの内容をファイルに出力する
データ履歴 履歴管理しているテーブルでデータ変更の履歴を確認できる
バージョン バージョン管理しているテーブルでデータのバージョンを閲覧できる
データ削除 デバッグ用や本番用のデータベースの当該テーブルの内容を削除する(DBそのものは削除されない)

※「データの確認」で、カラム属性を「配列」にしたカラムに入力するときは、
「{ 値 , …}」と、カンマ区切りで値を並べて、「{」と「}」で囲みます。

<テーブル属性>

項目 説 明
テーブル名 作成時に付けた半角英数字の名前
表示名 わかりやすい日本語表示の名前
テーブルタイプ 「FLOW」…追加されていくタイプ
「STOCK」…書き換えていくタイプ (今のところ機能上の違いはなし)
履歴管理 「はい」…データの変更履歴が内部的に保存される
バージョン管理 「はい」…コード化データの履歴問題(※)に対応するためのバージョン管理をおこなう
権限管理 権限設定が有効な状態では「{…}」と表示され、クリックすると権限設定がおこなえる (※後述)
メモ 覚え書きに使用

※ コード化データの履歴問題:コード化されたデータが変更されたとき、単純に変更すると過去のデータも新データで表示されてしまい、別コードとすると集計等の処理で別扱いになってしまう問題。これに対処するためのバージョン管理の仕組みを用意しています。

「権限管理をする」のチェックを入れると、その下の表で設定した内容にしたがって権限がチェックされるようになります。表で権限の内容を設定していても、「権限管理をする」のチェックを入れない限り権限チェックはされないので注意してください。
「デバッグ用編集」「デバッグ用閲覧」ではデバッグ用データベースでのこのテーブルの編集と閲覧の権限を設定します。「編集」「閲覧」では本番用データベースの権限を設定します。「許可ユーザー」「拒否ユーザー」の設定に該当するとそれによって許可・拒否が決まります。そうでない場合「許可グループ」「拒否グループ」の設定で決まります。
許可と拒否の両方に該当した場合は「優先」によってどちらになるかが決まります。

デフォルトでは上の図のように「許可グループ」が「all」(全ユーザーが所属するグ
ループ)になっているので、誰でも編集・閲覧ともに可能です。

<カラム属性>

項目 説明
デフォルト値 レコードを追加する際に値を指定しなかった場合の値
選択肢 値をいくつかの選択肢のどれかに限定する
範囲 値を「開始後」「終了値」「刻み値」で指定した値のどれかに限定する
必須 省略できない項目を指定する
読込専用 レコードを追加する際に指定した値を後から変更できないようにする
配列 複数の値を格納する({値,…}と、カンマ区切りで値を並べ、「{」と「}」で囲む) (※後述)
複数選択可 選択肢を指定した場合に、複数選択可を設定する
検索対象 検索の対象とするカラムを指定する
全文検索対象(日本語) 全文検索(日本語)の対象とするカラムを指定する (※後述)
全文検索対象(英語) 全文検索(英語)の対象とするカラムを指定する (※後述)
ルートディレクトリ 型が「ファイル」のカラムで、添付ファイルを格納するディレクトリ名を指定する
メモ 覚え書きに使用

※「デフォルト値」の欄をクリックするとダイアログが開きます。

「設定する」を「はい」にして「設定値」に入力すると(何も入力しないと空文字列として)デフォルト値が設定されます。「設定する」が「いいえ」だとデフォルト値は設定されないので、レコード追加時に値を指定しないとNULLになります。
日時、日付、時刻型のカラムに対しては、レコード追加をおこなった日時をセットする指定として「CURRENT_TIMESTAMP」「CURRENT_DATE」「CURRENT_TIME」を指定できます。

※「配列」を「はい」にしたカラムには複数の値を格納できます。ただし、後述する「検索」「単票」「登録・編集」などのスクリーンテンプレートやデータインプットモジュールは、今のところ配列カラムには対応していません。

※ 「全文検索対象」とは、そのカラムについての全文検索を高速にするために内容を単語に分解した索引を作る機能ですが、今のところ機能しません。「全文検索対象」の指定はせず「いいえ」のままにしておいてください。

<テーブルインデックス/テーブルルール/テーブルトリガ>

項目 説明
名前 テーブルトリガを識別する半角英数字の名前
表示名 好きな名前
いつ 「実行前」「実行後」で、内容の変化が実行される前か後かを指定する
DB操作 「INSERT(挿入)」、「UPDATE(更新)」、「DELETE(削除)」、「TRUCATE(空にする)」を指定する
カラム 指定のカラムの内容変化をトリガとしたい場合に、そのカラムを指定する
レベル 「文単位」…一度のDB操作に対して一度、「行単位」…変化のあった各レコード毎に、を指定する
トリガの起動条件を式で指定する
式の中では「OLD.カラム名」で変更前の値、「NEW.カラム名」で変更後の値が参照できる

※例えば、テーブルに新しいレコードが挿入された時にイベントを発生させるなら、「DB操作」を「INSERT」にします。更新時に、カラム「count」の値が変化したらイベントを発生させるなら、「DB操作」を「UPDATE」、「カラム」を「count」にします。更新時にカラム「stock」と「used」の差が10未満の時にイベントを発生させるなら、「DB操作」を「UPDATE」、「式」を「NEW.stock – NEW.used < 10」とします。

※テーブルトリガによるイベントによってどういう動作をさせるかを設定する方法は、プログラミングガイドの【データベースのトリガイベント】で説明します。

15.4.データ履歴

15.5.バージョン情報

※ この機能は上述した「コード化データの履歴問題」に対処するためのもので、他のテーブルなどから参照する際にバージョン番号を含めておくと、その後データの変更があったとしても、参照時の状態が保持されることになります。


15.6.データインポート


項目 説明
データ行として扱う CSVが1行目からデータ行である場合に指定する。
ヘッダ行として扱う CSVの1行目が項目を表すヘッダ行である場合に指定する。
カラム名やカラムの表示名と一致していれば自動的にそのカラムと対応づけられる。
無視する CSVの1行目が項目を表すヘッダ行である場合に指定するが、カラムとの対応づけを自動で行わず手動で行う時に指定する。

15.7.データエクスポート


16.DB ビュー設計

16.1.DB ビュー新規作成

16.2.白紙のビュー

メニュー 説明
一覧/集計 ビューのタイプ(一覧or集計)を切り替える
保存 現在のDBテーブルとDBビューの設計情報を保存する
モデル履歴 設計変更の履歴を閲覧し、未適用のものは取り消しができる
削除 このDBビューを削除する
項目 説明
カラム名 DBビューでのカラム名で、DBテーブルのカラム名とは別の名前を付けることができる
表示名 わかりやすい日本語での表示名
そのカラムの値となるPostgreSQLの式を指定する
メモ 覚え書きに使用

※「式」に文字列を指定するときは「’文字列’::text」のようにシングルクォーテーションで囲んで「::text」のキャストを付けてテキスト型であることを明示する必要があります。

※ AGE関数は、PostgreSQLのインターバル型(日時の間隔を表す)の値を返しますが、今のところBuddyではインターバル型の値を正しく表示できません。例えば誕生日の入ったカラム「birthday」から年齢を得たい場合は「DATE_PART(‘year’,AGE(birthday))」のようにしてAGEの結果から年部分を取り出してください。

項目 説明
グループ項目 そのカラム値が同じレコードをグループ化する
合計 指定したカラムの値を合計する
カウント 件数を数える
最大 指定したカラムの値の最大値を得る
最小 指定したカラムの値の最小値を得る
平均 指定したカラムの値の平均値を得る
集計と無関係の式 上記とは無関係の式

例えば「社員名簿」テーブルの「所属部署」カラムと、「部署」テーブルの「部署コード」カラムの値が同じレコードを結びつけるとすると、「所属部署」を「部署コード」へドラッグします。すると、線で結ばれます。
各テーブルの位置はテーブル名をドラッグして動かすことができるので、線が見やすいように調整して作業してください。
結合は多くの場合カラムの値が等しいレコードを結びつけますが、それだと対応する値がないレコードはビューに含まれなくなります。例えば「所属部署」カラムが空のレコードがあるような場合です。そのようなレコードもビューに含めたい場合は、次の結合の仕方の調整を行い、「left outer join」を使います。
線をクリックするとダイアログが開いて、結合の仕方を調整できます。

項目 説明
結合条件 「等しい」… 緑の線
結合の種類 「join」 … 値が結合条件に合致するレコードだけが結果に含まれる
「left outer join」 … 左側のテーブルのレコードは全て結果に含まれ、線が矢印になる(IEの場合は矢印にはならない)
メニュー 説明
エクスポート デバッグ用や本番用のデータベースに当該ビューの内容をファイルに出力する

※「データの確認」領域(Ⓒ)の下には何らかのエラーがあるとエラー内容が表示されます。例えば0での除算を行うような式を指定するとその旨表示されます。また、生成されたデータベースと、現在編集中の内容が異なる場合、例えばカラムを追加した場合には「列”…”は存在しません」というエラーメッセージが表示されますが、保存して生成するとこのエラーメッセージは出なくなります。

項目 説明
ビュー名 作成時に付けた半角英数字の名前
表示名 わかりやすい日本語表示の名前
権限管理 権限設定が有効な状態では「{・・・}」と表示され、クリックすると権限設定がおこなえる
メモ 覚え書きに使用

16.3.クロス集計ビュー

項目 説明
現在の値 指定したカラムの現在の値から列ラベルを作成する
値の列挙 列挙した値を列ラベルとする
任意の式 SQLの式を指定してその値を列ラベルとする
項目 説明
合計 指定したカラムの値を合計する
カウント 指定したカラムの値の最大値を得る
最大 指定したカラムの値の最大値を得る
最小 指定したカラムの値の最小値を得る
平均 指定したカラムの値の平均値を得る

※ 上の画面例では集計結果の表が表示されていますが、クロス集計ビューを作成しただ
けではこの表示はされません。保存して生成をおこなって始めて結果の表示がされる
ことに注意してください。

16.4.リンクビュー

※ 今のところは、リンクビューを含んだビューを作成することはできません。

17.スクリーン設計

17.1.スクリーン新規作成

テンプレート名 説明
白紙の画面 通常形式の白紙の画面が用意される
グリッド画面 グリッド形式の白紙の画面が用意される

※ 以下のテンプレートはデータベースを操作する画面の雛形で、ベースとなるDBテーブル名またはDBビュー名を選択して、使用するカラムを選択する必要があります。
これらのテンプレートにはそれぞれ通常形式とグリッド形式が用意されています。

テンプレート名 説明
閲覧画面 1レコードずつ表示する
明細付き閲覧画面 1レコードとそれに対応する別テーブルの複数レコードを表示する
検索画面 検索条件を入力して、該当するレコードを一覧表示する
登録・編集画面 レコードを追加登録・編集する
明細付き登録・編集画面 レコードとそれに対応した別テーブルの複数レコードを追加登録・編集する
クロス集計画面 クロス集計をおこなって、その結果の表やグラフを表示する

※ 次のテンプレートは、各種の画面を用意した後で、それらへのメニュー画面を作成す
るために使用します。

テンプレート名 説明
メニュー画面 他の画面へのリンクがメニューとして表示される

※ 次のテンプレートは、既存の画面から画面を作成する際に使用します。

テンプレート名 説明
既存のコピー 既存のスクリーンを選択するとそのコピーが作成される

※ 単票、検索、登録・編集、明細付き登録・編集、クロス集計、のスクリーンテンプレートでは、今のところ配列カラムを扱えません

<白紙の画面>

<グリッド画面>

<閲覧画面/登録・編集画面>

〔閲覧画面〕

〔登録・編集画面〕

※「登録・編集画面(縦並び)」で説明します。

<明細付き閲覧画面/明細付き登録・編集画面>

※ テンプレートは「非グリッド」「グリッド」から選べます。

※ テンプレートは「非グリッド」「グリッド」から選べます。

※ 上記の例では、「ベース」の「ID」が自動連番項目であれば入力の必要は無く、「詳細」の「見積ID」も生成されたスクリーンで自動的に管理されるので、右端の「-」ボタンをクリックして表示項目から外すと良いでしょう。

<検索画面>

※以前のBuddyでは「キャッシュ」という設定項目がありましたが、これは廃止されました。

※ 上記の画面遷移を使用する時は、検索画面での「ID カラム」と、遷移先画面での「ID カラム」に、同じカラムが指定されている必要があります。異なるカラムが指定されていると正しく動作しないので注意してください。

※ 作成された検索画面には、上記で指定した各カラムについての検索条件の入力欄とそれにもとづいて検索する「絞り込み検索」のボタンと、「全体検索」が指定されていれば検索キーワード入力欄とそれにもとづいて検索する「全体検索」のボタンが配置されます。

<クロス集計画面>

・「スクリーン名」と「表示名」を入力し、「作成」をクリックすると作成されます。

・作成される画面には、クロス集計モジュール、グラフモジュール、DBテーブルモジュールが配置されており、アプリ実行時には次のような画面となります。

17.2.スクリーン設計

※ 領域Ⓐの高さはその右下のボタン で調節できます。「-」ボタンでは最小化され、「+」ボタンでは元に戻ります。

※ この領域(Ⓒ)は「レイアウト編集/機能編集」の切替で状態が変わります。(後述)

メニュー 説明
スタイルコピー 他のスクリーンからアイテムのスタイルをコピーする
元に戻す 変更した操作を元(最後に保存したところ)に戻す
やり直し 元に戻した操作をやり直す
履歴 保存の履歴にもとづいて過去の状態に戻す
保存 スクリーン設計を保存する
削除 このスクリーンを削除する
レイアウト編集/機能編集 編集モードを切り替える(後述)
全面表紙 スクリーン領域(Ⓐ)のみを大きく表示する

17.2.1.スクリーンへのモジュール配置

・「モジュール」タブでは、スクリーンに配置できるモジュールのアイコンが一覧表示され、スクリーンの領域へドラッグアンドドロップすることで配置できます。
また、その下の「モデル」には DB テーブルや DB ビューの名前が表示され、その名前をクリックするとさらにその中のカラム名が表示されます。そのカラム名をスクリーンの領域へドラッグアンドドロップすると、そのテーブルとカラムにデータを入力するためのデータインプットモジュールをスクリーンに配置することができます。

・スクリーン設計では、構成要素の配置方法に次のものがあります。

配置方法 説明
横配置 右へ右へと配置されていき、領域の幅に納まらない場合は折り返される
縦配置 下へ下へと配置されていく
自由配置 自由な位置に配置できる

※ 新規作成で「白紙の画面」を選択した時はスクリーン全体が横配置になっています。

※ スクリーンに直接モジュールを配置しても構いませんが、下記の「横配置BOX」「縦配置BOX」「自由配置BOX」を配置してその中にモジュールを配置することで、画面 全体を適切にレイアウトすることができます。ボックスを入れ子にすることも可能です。

※「グリッド画面」の場合は、縦横に仕切られたグリッドの各セルにモジュールを配置していきます。配置したモジュールの大きさはそのセルの大きさになります。行の高さや列の幅の調節、行や列の増減、セルの結合や分割ができます。(その操作方法は後述します)

※ スマホやタブレットなど画面の大きさによって自動的に配置などを変更して見やすく表示する「レスポンシブデザイン」に対応した配置ができるようにする予定です。

レイアウト用
アイコン 名前 説明
横配置BOX その内部が横配置になる
縦配置BOX その内部が縦配置になる
自由配置BOX その内部が自由配置になる
水平区切り線 水平の区切り線
垂直区切り線 垂直の区切り線
入力・洗濯用
アイコン 名前 説明
ボタン クリックすることで何らかの操作をさせる
データインプット DBテーブルのカラムを指定して、そのカラムの属性に適した入力をおこなう
※アイテムの属性
・テーブル名  ・・・対象テーブル名
・カラム名   ・・・対象カラム名
・サムネイル表示・・・対象カラムが画像の場合に「はい」を選択するとサムネイルを表示
※DBテーブル設計で設定した「型」と「型の詳細」に応じてそれに合致した入力のみを受け付ける
・真偽値型  ・・・チェックボックス(captionで指定した文字列がラベルになる)
・選択肢を設定・・・プルダウンリストでの入力
・ファイル型 ・・・テキストボックスとして表示。クリックするとファイル選択ダイアログからファイルのアップロードが可能。
(サーバーに保存されファイル名が値となり、配列属性の場合は複数のファイルがアップロードできファイル名の配列が値となる)
※データインプットモジュール
・ユーザーの入力を受け付けるためのモジュール
・データベースに値をセットする機能は持たない
・データベース操作はスクリプトのデータベース操作機能を使用しておこなう
※カラムに範囲を指定しておけば、入力値がその範囲内にあるかどうかのチェックをするようになる予定
テキストBOX テキストで入力できる
・placeholder・・・入力欄が空の場合に表示される説明文を指定する。あらかじめ入力内容をセットするには「caption属性」で指定する。
チェックBOX オン/オフを切り替えられる
・label・・・チェックBOXの横に表示される文字列
ラジオボタン いくつかの中のひとつだけをオンにする
・label  ・・・ラジオボタンの横に表示される文字列
・radioname・・・ラジオボタンをグループ化する名前(この名前が同じラジオボタンはその中のひとつしかオンにならない)
プルダウンリスト 選択肢(リスト)の中から選ぶことができる
※アイテムの属性
・options ・・・値をクリックすると設定用ダイアログが開く
トグルスイッチ オン/オフを切り替えられる
スライダー 左右にスライドすることで最小値から最大値の間を指定できる
・min ・・・最小値
・max ・・・最大値
・step ・・・刻み値
日付選択 日付または日時の選択ができる
※アイテムの属性
・範囲先頭日 ・・・選択範囲の先頭日
・範囲末尾日 ・・・選択範囲の末尾日
・時刻使用 ・・・「時分秒」または「時分」で時刻も選択
・時選択肢 ・・・時の選択肢をカンマ区切りで
・分選択肢 ・・・分の選択肢をカンマ区切りで
色選択 色が選択できる
DBレコードセレクタ DBテーブルのレコードを選択できる
タブ スクリーンコンテナで入れ子にした画面を切り替える時などに使用する
※アイテムの属性
・menuItems ・・・タブの項目を指定する。クリックすると項目編集用ダイアログが開く
メニュー メニューを入れる
※アイテムの属性
・menuItems ・・・メニューの項目を指定する。クリックすると項目編集用ダイアログが開く
※非グリッドでは第一階層のメニュー項目が横に表示されるが、グリッドではクリックすると第一階層のメニュー項目が縦に開く動作となる
ファイル選択 パソコンの中のファイルを選択し、内容を取得したり、サーバーにアップロードしたりする
※アイテムの属性
・ファイルタイプ・・・選択できるファイルの種類
※ファイルタイプを画像にすると、スマホなどではファイル選択時にカメラを起動して撮影した画像を使うことができる
表示用
アイコン 名前 説明
画像 画像を表示する
※アイテムの属性
・src ・・・表示する画像ファイルを指定する
文字列 文字列を表示する
※アイテムの属性
・リンク表示 ・・・「はい」にするとURLをリンク表示
・フィルタ・・・適用するフィルタ名をカンマ区切りで指定
数式 他のモジュールの値に基づいた計算式の値を表示する
リスト 一行ずつの文字列をリストとして表示する
※アイテムの属性
・複数選択・・・「はい」にすると複数の項目が選択できる
・options ・・・値をクリックすると設定用ダイアログが開く
箇条書き 先頭にマークがついたリスト
・listItems ・・・リストをJSON形式で指定する。 配置したモジュールの中でひとつずつ入力・編集ができる
テーブル 文字列を表形式で表示する
DBテーブル DBテーブルの内容を一覧表の形で表示する
※word-break :改行方法を指定する
・normal  :日本語は表示範囲を超えると改行、英語等は単語区切りで改行
・break-all :すべて表示範囲を超えると改行
・keep-all   :単語の切れ目のみで改行
・無指定   :normalと同様
※white-space :空白文字(半角スペース、タブ、改行)の表示方法を指定する
・normal :連続する空白文字はひとつの半角スペースとして表示
・pre  :そのまま表示
・nowrap   :連続する空白文字はひとつの半角スペースとして表示し、改行なし
・無指定 :normalと同様
スピン 動作中であることを回転で示す
※アイテムの属性
・visibility・・・初期状態で表示するかどうかを指定する
プログレスバー 進行状況を表示する
カレンダー カレンダーを表示する
※年月を省略すると、当月のカレンダーが表示される
タイムテーブル タイムテーブルを表示する
・開始時・・・タイムテーブルの左端時刻を時の数値で指定(省略=9)
クロス集計 クロス集計をおこなう
地図 地図を表示する
・緯度 ・・・地図の中心の緯度
・経度 ・・・地図の中心の経度
・ズーム・・・地図の倍率
※国土地理院の地図を使用しており、日本国内が対象です。海外の緯度経度を指定しても表示されません。
グラフ グラフを表示する
キャンバス HTML5のCANVAS要素を埋め込む
※スクリプトによって図形の描画が可能
埋め込み・連携
アイコン 名前 説明
スクリーンコンテナ 他のコンテナタイプのスクリーンを入れ子にする
・screen ・・・その中に表示するスクリーンを指定する
IFrame 他のWEBページを埋め込む
・src ・・・その中に表示するWEBページのURL

スクリーンに配置したモジュールは、クリックすると選択されて枠線が赤く表示されます。
右上の「×」で削除することができます。
右や下の枠線をドラッグすると大きさを変更できます。
自由配置BOX内のモジュールはそれ自体をドラッグすることで位置を変更できます。

「テーブル名」属性と「カラム名」属性

「データインプット」以外にも、「テキストBOX」「文字列」などにも「テーブル名」「カラム名」の属性があります。これは、そのアイテムがどのDBテーブルのどのカラムを編集・表示するかを指定するものですが、この指定をすることによってそれぞれのモジュールが自動的にデータベースの読み書きをおこなうわけではありません。データベースの読み書きはスクリーンのスクリプトでおこないます。
そのための機能としてsetItemDataFromDB() と getItemDataForDB() という関数がスクリーンのスクリプトに用意されています。setItemDataFromDB() によってデータベースから読み出したデータが各アイテムの「テーブル名」と「カラム名」に従ってセットされ、getItemDataForDB() によって各アイテムのデータが収集されてデータベースに投入できる形にまとめられます。詳しくは【17.07. スクリプト ~データベース操作】を参照してください。

※「閲覧画面」「登録・編集画面」などのスクリーンテンプレートを用いてスクリーンを作成すると、データベースの読み書きに必要なスクリプトは自動的に生成されます。

17.2.2.グリッドの操作

グリッドのセルをクリックすると選択されて赤い枠線が表示されます。右や下の赤い枠線をドラッグすると列の幅や行の高さを変更できます。また操作のためのアイコンがそのセルの右上に表示されます。

セルの右上に表示されるアイコンをクリックすると次の操作ができます。

そのセルの下に一行挿入します
そのセルの右に一行挿入します
そのセルのある行を削除します
そのセルのある列を削除します

Ctrlキーを押しながらセルをクリックすると、複数のセルを選択することができます。その時は次のアイコンでセルの結合ができます。

選択されたセル群を囲む矩形内のセルを結合します

結合されたセルをクリックすると、次のアイコンでセルの分割ができます。

結合されたセルを分割して元に戻します

モジュール一覧からモジュールをセルにドラッグアンドドロップすると、セル内にモジュールを配置することができます。すでにセル内にモジュールが配置されている場合はそのセルの上に一行追加した上でその追加したセルに配置します。

モジュールの配置されたセルをクリックして選択すると、別のセルへドラッグアンドドロップして移動することができます。

次のアイコンで配置したモジュールを削除できます。(セルが削除されるわけではありません。)

配置したモジュールを削除します

17.2.3.アイテム(配置したモジュール)の調整

「アイテム」タブでは、スクリーンに配置したモジュールをクリックして選択すると、そのアイテムの属性が表示され、調節できます。

「オプション」の下に選択されているアイテムの名前がプルダウンリストで表示されており、このプルダウンリストで別のアイテムを選択することもできます。
プルダウンリストでの順序は、横配置BOXや縦配置BOXの中のアイテムでは配置の順序、自由配置BOXの中のアイテムでは奥から手前の順序になります。順序は「前へ移動」「後へ移動」ボタンで変更できます(後述)。

モジュールの属性で、共通するものは次の通りです。(モジュールによって使われる属性は異なります。モジュール固有の属性は後述)

属性 説明
名前 個々の配置されたモジュールを識別する半角英数字の名前
タイプ どのモジュールかを示す名前
クラス スタイルをまとめて指定するためのクラス名
部分クラス 複合的なモジュールで、個々のパーツごとのクラス名を指定
caption 画面に表示される文字列(※仕様変更の可能性あり)
left 画面上での位置を指定する(自由配置の場合)
top 画面上での位置を指定する(自由配置の場合)
width 画面上での大きさを指定する
height 画面上での大きさを指定する
padding 内部の余白を指定する
margin 外部の余白を指定する
border 枠線を指定する
border-top 枠線を上、左、右、下について個別に指定する(入力は上の「border」属性の設定ダイアログでおこなう)
border-left 線を上、左、右、下について個別に指定する(入力は上の「border」属性の設定ダイアログでおこなう)
border-light 線を上、左、右、下について個別に指定する(入力は上の「border」属性の設定ダイアログでおこなう)
border-bottom 線を上、左、右、下について個別に指定する(入力は上の「border」属性の設定ダイアログでおこなう)
font-color 文字色を指定する
font-size 文字サイズを指定する
改行 「はい」にすると横配置ボックス内で強制的に折り返す
text-align そのモジュール内の横の配置
vertical-align そのモジュール内の縦の配置
lign-height 一行の高さ
box-sizing 「width」や「height」が「padding」と「margin」を含むかどうか(border-box=含む、content-box=含まない、無指定はborder-boxと同様)
bg-color 背景色を指定する
bg-image 背景を画像とする場合に指定する
readOnly 「はい」にすると、入力できず表示専用となる
disabled 「はい」にすると、表示はされるが使用できない状態になる

※ 「padding」、「margin」 は、CSS での指定と同様に単独の値を指定すると上下左右を一括指定したことになり、半角スペース区切りで複数指定すれば、2 つの場合「上下 左右」3つの場合「上 左右 下」4つの場合「上 右 下 左」の指定となります。

※今のところ、FirefoxではスライダーのreadOnly属性は機能しません。

17.2.4.属性コピー

モジュールの表示スタイルに関する属性のよく使うものは、モジュール間で簡単にコピーできる方法が用意されています。
コピーの元になるモジュールをクリックして選択し、赤枠で表示された状態にして、「属性コピー」をクリックします。
対象モジュールの枠線と「属性コピー」が緑で表示されて属性コピーモードになっていることを示します。

コピー可能な属性名の前にチェックボックスが表示されるので、コピーしたい属性にチェックを入れます。

その状態で、コピー先となるモジュールをクリックすると、選択した属性の値がコピーされます。

コピーが終わったら「属性コピー」を再度クリックして、属性コピーモードを解除します。(緑色が消えます)

17.2.5.順序変更と削除

横配置ボックスや縦配置ボックス内に入れたモジュールは、順序を入れ替えることができます。

順序を変えたいモジュールをクリックして選択し、画面右側の「オプション」の下の「前へ移動」「後へ移動」をクリックすると、順序を変更できます。上の図の状態であれば、「前へ移動」をクリックすれば BUTTON1 と BUTTON2 が入れ替わり、「後へ移動」をクリックすれば BUTTON2 と BUTTON3 が入れ替わることになります。

「削除」ボタンをクリックすると、選択されているアイテムを削除できます。「×」をクリックすることと同じです。

17.2.6.機能編集のコード挿入

右上のメニューに「機能編集」とある時は、「コード アイテム スクリーン」のタブとなり、「コード」タブでは、配置したモジュールをクリックして選択すると、次のような画面となり「イベント」としてそのモジュールで可能なイベントの一覧が「アクション」としてそのモジュールで可能な操作の一覧が表示されます。

「イベント」の「挿入」ボタンをクリックすると、スクリプトにそのイベント発生時に実行される関数(イベントハンドラ)の枠組みが挿入されます。
例えば「BUTTON1」という名前のボタンで、「onClick」イベントの「挿入」をおこなう(①)と、スクリプトの events の先頭に次の内容が挿入されます。挿入をおこなうとボタンが「挿入済」となり、「挿入済」ボタンをクリックした場合はスクリプトのそのイベントハンドラの部分にカーソルが移動します。

BUTTON1_onClick: function(evt){ },

「アクション」の「挿入」ボタンをクリックすると、スクリプトの現在カーソルがある位置に、その操作をおこなうコードが挿入されます。
例えば「TEXTBOX1」という名前のテキストボックスで、「setValue」アクションの「挿入」をおこなう(②)と、カーソル位置に次の内容が挿入されます。(挿入された内容は選択された状態で青く表示されます。もし誤って挿入したときはキーボードの「Delete」キーを押せば挿入内容を削除できます。)

this.items.TEXTBOX1.setValue( value // セットする文字列 )

ボタンモジュールについては、「機能編集」状態でスクリーンに配置されているアイテムをクリックすると、次のダイアログが開きます。「画面移動」などの機能リストから選んでクリックすると、onClickイベントハンドラとともにその内容を挿入することができます。

17.2.7.スクリーン属性

「スクリーン」タブでは、スクリーンオプション(スクリーン全体の属性)を調節できます。グリッドでない場合とグリッドの場合で属性項目が異なります。

スクリーンオプションでは次の設定ができます。

属性 説明
スクリーン名 新規作成時に指定したスクリーン名
表示名 自由に名前をつけることができる
タイプ 「ページ」と「コンテナ」から選択する
※ページ ・・・独立した画面として表示されるもの
※コンテナ・・・スクリーンコンテナモジュール(後述)の中に配置することで他のスクリーンの中に入れ子にして表示するためのもの
クラス クラス名を指定する (※この設定はまだ機能しません)
画面幅 想定される画面の幅(ピクセル)を指定する。設計画面のスクリーン領域の表示はこの幅に合わせたものになる
画面高 <非グリッド>スクリーン領域の高さ(ピクセル)を指定する
表示領域幅上限 <グリッド>グリッドの表示領域の幅(ピクセル)の上限(画面幅がこれより大きくなると、両側に余白が取られる)
モバイル対応幅 アプリ実行時の画面幅がこれより小さくなると次のようになる
<非グリッド>「モバイル用画面」が指定されていればそのスクリーンが代わりに表示される
<グリッド>「モバイル用画面」が指定されていればそのスクリーンが代わりに表示される。「モバイル用画面が指定されていない場合、各グリッドの幅指定はすべて100%とみなされて縦に並ぶようになる。また、「モバイル対応」が「する」のグリッドでは行のセルが横でなく縦に並ぶようになる
モバイル用画面 アプリ実行時の画面幅が「モバイル対応幅」未満の場合、代わりに表示するスクリーン名を指定する
権限設定 このスクリーンを誰が閲覧できるかの権限を設定する
メモ 開発上で記録しておくためのメモ

「権限設定」の「…」の部分をクリックすると次のダイアログが開きます。

「許可ユーザー」「拒否ユーザー」の設定に該当するとそれによって許可・拒否が決まります。
そうでない場合は「許可グループ」「拒否グループ」の設定で決まります。
許可と拒否の両方に該当した場合は「優先」によってどちらになるかが決まります。

グリッド画面のグリッドの表示領域の幅は、画面幅に応じて伸び縮みします。ただし「表示領域幅上限」よりは広くならず、画面幅がそれより大きいと両側に余白が取られます。

17.2.8.複数グリッドの配置とモバイル対応

グリッド画面は通常は一つのグリッドで構成されますが、「グリッド追加」ボタンを クリックすると、その左で指定した行数と列数のグリッドが追加されます。順に「グリッド1」「グリッド2」…と番号がつきます。それぞれについて「幅」「モバイル対応」「並び順(モバイル時)」の属性を指定できます。「幅」はグリッド全体の幅に対する割合を「%」で指定します。各グリッドは1から順に左から右へ配置され、全体の幅を超えると改行されます。
グリッドの順序は「前へ」「後へ」のボタンで変更できます。例えば2行2列のグリッド1、2、3を、それぞれ幅100%、40%、60%とすると次のように配置されることになります。

アプリ実行時の画面幅が「モバイル対応幅」より小さいと上記の配置が変わり、各グ リッドの幅がすべて100%とみなされて縦に並ぶようになります。このとき、「並び順(モバイル時)」に番号が指定されているとその順で並びます。

また、グリッドの「モバイル対応」を「する」にした場合、アプリ実行時の画面幅が「モバイル対応幅」より小さいと、通常は横に並ぶ各行のセルが縦に並ぶようになります。

17.2.9.選択肢

options 属性の値の部分をクリックすると、選択肢を設定するダイアログが開きます。

上記の例と同じことを、選択肢を DB テーブルから得ておこないたい場合は、次のようなテーブルを用意します。(名前を「ペットタイプ」「ペット」とします。)

そして、プルダウンリストモジュール「SELECT1」と「SELECT2」の options 属性を次のように設定します。

17.2.10.ファイル型カラムでのデータインプット

17.3.スクリプト

※ スクリーンのスクリプトについては、マニュアル「プログラミングガイド」をご参照ください。スクリプトから利用できる機能(api)についてはマニュアル「APIリファレンス」をあわせて参照ください。

17.4.スクリプト ~コード挿入と名前挿入

17.5.式属性

「タイプ」は次から選択します。

タイプ 説明
使用しない 数式を使用しない。各モジュールの本来の機能となる
選択 ダイアログで演算やその引数を選択して数式を組み立てる
スクリプト 数式モジュールと同様にスクリプトのformulasの中に数式を記述する

18.レポート設計

18.1.レポート新規作成

※ Buddyで出力したPDFは、Chrome 内蔵のPDFビューアーでは正しく表示できせん。内蔵のPDFビューアーを無効にするには、Chrome の右上にある、点が三つ縦に並んだアイコンをクリックして設定画面を開きます。画面下部の「詳細設定」をクリックして詳細設定を開きます。その中の「サイトの設定」をクリックします。下のほうにある「PDFドキュメント」をクリックし、「PDF ファイルを Chrome で自動的に開く代わりにダウンロードする」をオンにします。そして Adobe Reader または AdobeAcrobat をインストールして下さい。

18.2.レポート新規作成 ~ XLSX シート

※ テンプレートとなる Excel ファイルをどのように作成するかは後述します。

※ 今のところ Excel ファイルは、拡張子が .xlsx の Excel2007 以降のファイル形式のも
  ののみが扱えます。拡張子が .xls の古い形式のファイルは扱えません。

メニュー 説明
保存 レポート設計を保存する
テスト出力 テスト出力をおこなう(データベースはデバッグ用が参照される)
削除 このレポートを削除する

18.3.Excel テンプレートファイルの作成

※ 今のところエクセルファイルは、拡張子が .xlsx の Excel2007 以降のファイル形式の
もののみが扱えます。拡張子が .xls の古い形式のファイルは扱えません。

※ Excel の数式を含めるには特殊な書き方が必要です。(後述)

例えばあるセルに、「{{age}}歳」と書けば、ageカラムの値と「歳」が表示されます。 「{{this.data.age < 6 ? '幼児' : ''}}」と書けば、ageカラムの値が6未満の時に「幼児」と表示されます。

入れ子のrepeat ①~group による方法
入れ子のrepeat ②~ srcによる方法
Excelの数式の扱い

18.4.レポート新規作成 ~ PDF

18.5.PDFレポート設計

モジュール 説明
文字列 文字列を表示
データ そのモジュールを含む領域に指定したデータソース(DBテーブルやDBビュー)の指定のカラムの値を表示
画像 画像を表示(JPEGまたはPNG)
Javascriptの値を表示し、式の中でカラムの値を参照できる
領域 領域を入れ子にする

※今のところPDFのレポートに表示できる画像はJPEGとPNGのみです。また、インターレースPNGは表示できません。

タイプ 説明
自由配置 領域内の自由な位置にモジュールを配置できる
横配置 右へ右へとモジュールが配置される
縦配置 下へ下へとモジュールが配置される
テーブル 項目名などを示すためのヘッダ行と繰り返されるデータ行からなり、行内は横配置

※ 領域タイプは、領域を配置したあとの最初におこなってください。内部にモジュールを配置したあとで領域タイプを変更すると、不正常な状態となる場合があります。(例外として、横配置と縦配置の相互の変更はモジュール配置後でも OK です。)

※ 今のところ、内部に別の領域を入れ子にできるのは、自由配置領域のみです。

データソースにはDBテーブルまたはDBビュー、あるいはCSVファイルを指定することができます。ダイアログ上部の「DB」「CSV」で切り替えます。「DB」の場合はテーブルまたはビューを選択します。「条件」欄は後述する入れ子の領域で使用します。「CSV」の場合はアップロードしたCSVファイルを選択します。CSVファイルは先頭行が半角英数字の項目名になっている必要があります。

アイテム 説明
名前 半角英数と「_ 」による名前
タイプ モジュールのタイプ
left モジュールの領域左端からの位置
top モジュールの領域上端からの位置
width モジュールの幅
height モジュールの高さ
z-index 領域内でのアイテムの重なりの前後関係を決める数値を指定(数値が大きいほど手前に表示、省略すると0)
コンテンツ 表示する内容(データの場合はカラム名、式の場合は式、画像の場合は画像ファイルパス名
フィルタ 適用するフィルタ名をカンマ区切りで指定
配置 表示する文字列の配置を選択。省略すると両端寄せ(末尾行は左寄せ、それ以外は両端寄せ)
余白 周囲の余白
フォント フォントを選択
フォントサイズ フォントのサイズ(ポイント)フォント
文字色
ボーダー表示 枠表示指定(上下左右の表示したいものにチェック)
ボーダースタイル 実線または破線1~4(破線は1が細かく、2、3、4と粗くなる)
ボーダー幅 枠線幅
ボーダー色 枠線色
画像表示 データモジュールでカラムが画像の場合に画像として表示するか
伸縮 画像の場合に、widthとheightに画像をどうあわせるかを指定
出力 「テストのみ」のチェックを入れると、設計画面のテスト出力では表示されるが、アプリでの出力では表示されない

※ ボーダー関係の 4 つの属性は全て指定しないと枠線は表示されません。

※ ボーダースタイルの破線 1 ~ 4 は画面上では同じ破線として表示されます。
実際の PDF 出力でどのような表示になるかは、テスト出力で確認してください。

領域 説明
領域名 半角英数と「_ 」による名前
領域タイプ タイプを選択
データソース データソース
left 領域の外側領域左端からの位置
top 領域の外側領域上端からの位置
領域幅 領域の幅
領域高 領域の幅(高さ)
繰返し方向 データソースを指定した場合の繰り返し方向(現在は DOWN のみ)
繰返しの高さ (将来の使用のための属性)
繰返しの間隔 (将来の使用のための属性)
1頁あたりの繰返回数 繰り返しを何件ずつで区切るか
レポート 説明
レポート名 新規作成時に指定したレポート名
表示名 自由な名前を付けることができる
タイプ 今のところ PAGE に固定
データソース 新規作成時に指定したデータソース
ページ幅 用紙の幅
ページ高 用紙の高さ
フォント デフォルトのフォント
フォントサイズ デフォルトのフォントサイズ(ポイント)
フォント色 デフォルトの文字色(#RRGGBB)
メモ 開発上のメモ

※「用紙1ページに複数のレポートページを配置する」のチェックを入れた場合、次の
情報も表示されます
:レポート幅、レポート高、横配置数、縦配置数、横間隔、縦間隔、左余白、上余白
   
※ 位置や大きさの属性は、「10mm」のように「mm」を付けて指定してください。
フォントサイズ(ポイント)は数値のみで指定します。

位置ガイドとしての背景画像

18.6.レポートの使用

説明
where 絞り込み条件
order 並べ替え指定
offset 何件目から出力するか(先頭が0)
num 何件出力するか
	var report = "…"; // レポート名
	var param = { // オプションパラメータ
		where: {…}, // データソース名のない領域やrepeatに対するもの
		srcnameparam: {
			foo: { // データソース名が「foo」の領域やrepeatに対するもの
				where: {…},
				order: "…",
			}
		}
	};
	api.outputDialog.open(report, param);

18.7.スクリプトで与えたデータの出力

jsdata: {
    shain: [
        { namae: ‘田中’, nenrei: 34, … },
        { namae: ‘鈴木’, nenrei: 45, … },
        …
    ],
    kokyaku: [
        …
    ]
}

19.フィルタ

<一般>

フィルタ 説明
TRIM 前後の半角スペースやタブを取り除く。オプションパラメータで数字を指定するとその文字数で切る。

<数値>

フィルタ 説明
COMMA 桁区切りのカンマを挿入する。
YEN ¥表記する(桁区切りのカンマ挿入もおこなう)。

<日時関係>

フィルタ 説明
YMD 日付(Date型またはDate型に変換できる文字列)をyyyy/mm/ddにする。オプションパラメータ「h」を付けると区切りが「/」でなく「-」になる。オプションパラメータ「1」を付けると0を付けない。
JYMD 日付(Date型またはDate型に変換できる文字列)を yyyy年mm月dd日 にする。オプションパラメータ「1」を付けると0を付けない。
GYMD 日付(Date型またはDate型に変換できる文字列)を 元号y年m月d日 にする。
YMDHMS 日時(Date型またはDate型に変換できる文字列)をyyyy/mm/ddhh:mm:ssにする。オプションパラメータ「h」を付けると区切りが「/」でなく「-」になる。オプションパラメータ「1」を付けると0を付けない。
JYMDHMS 日時(Date型またはDate型に変換できる文字列)を yyyy年mm月dd日 hh時mm分ss秒にする。オプションパラメータ「1」を付けると0を付けない。
HMS 時刻(Date型または文字列)を hh:mm:ss にする。オプションパラメータ「1」を付けると0を付けない。
AGE 日付(Date型またはDate型に変換できる文字列)を誕生日として現在の満年齢にする。オプションパラメータ「d」を付けると日単位計算(誕生日前日に年を取る)となる。

※ 日付関係のフィルタでは、「元号y年m月d日」の形式の文字列も受け付けるようになっていますので、元号表記と西暦表記の相互変換に使用することができます。

※ 日付関係のフィルタでは、ISO8601の「2016-06-01T10:20:30.456Z」の形式(タイムゾーンはZの他「+0900」「+09:00」もOK)にも対応しています。

<文字種変換>

フィルタ 説明
HIRA2KATA ひらがなをカタカナにする
KATA2HIRA カタカナをひらがなにする
ZEN2HAN 全角英数記号を半角にする
HAN2ZEN 半角英数記号を全角にする
ZEN2HANKATA 全角カナを半角カナにする
HAN2ZENKATA 半角カナを全角カナにする

20.サーバー機能設計

※ 体験版ではサーバー機能設計は使用できません。

メニュー 説明
保存 編集内容を保存する
テスト実行 テストのために実行する
削除 このサーバー機能を削除する
項目 説明
機能名 作成時に指定した機能名
表示名 作成時に指定した表示名
実行タイプ 「同期実行」か「非同期実行」かを選択する
実行ユーザー 「ユーザー」か「system」かを選択する
権限設定 このサーバー機能を誰が実行できるかの権限設定をおこなう
タイムアウト 実行時のタイムアウトをミリ秒で指定する
テスト実行時のoptions テスト実行の際にスクリプトに渡すoptionsの内容を指定する

※ サーバー機能のスクリプトの書き方、その中で使える機能、スクリーンスクリプトからのサーバー機能の呼び出し方などについては、マニュアル「プログラミングガイド」をご参照ください。

21.ユーザー権限管理

※ 試用版ではユーザー権限管理は使用できません。

※ 権限を変更した場合、その権限設定をデータベースにも反映させるにはアプリを生成する必要がありますのでご注意ください。

説明
許可ユーザー 指定されたユーザーは、その権限を許可される
拒否ユーザー 指定されたユーザーは、その権限を拒否される
許可グループ 指定されたグループに属するユーザーは、その権限を許可される
拒否グループ 指定されたグループに属するユーザーは、その権限を拒否される

※ 許可ユーザーか拒否ユーザーに該当した場合は、それによって(グループに関係なく)権限が決まります。

※ 許可ユーザーと拒否ユーザーの両方に該当した場合や、許可グループと拒否グループの両方に該当した場合は、「優先」の指定によって権限が決まります

22. スクリーンテーマ編集

メニュー 説明
読込み 「ダウンロード」で保存しておいたスクリーンテーマを読み込む
ダウンロード 現在のスクリーンテーマをファイルとして保存する
保存 編集中のスクリーンテーマを保存する(編集後は必ず保存してください)
アイテムのクラス属性での指定をItemXXXより優先する <ItemLabelなどのItemXXXクラスはモジュールの種類に応じて自動的に割り当てられるクラス>アイテムのクラス属性で指定したDATA_LABELなどのクラスと両方を指定した場合、クラス属性の方を優先して指定するチェックを入れないとItemXXXの方が優先される
クラス名 説明
APP_で始まる名前 アプリ全体のパーツに対するクラス名(後述)
DATA_LABEL などの大文字の名前 登録・編集や検索などのテンプレートで作成したスクリーンで設定されているクラス名
Item で始まる名前 モジュールの種類に応じて内部的に付けられているクラス名

※ 今のところ、テーマに設定されているクラス名とスクリーンのモジュールで設定されているクラス名が対応しているかのチェックなどはされません。ユーザーの責任で管理する必要があります。

クラス名 説明
APP_BODY アプリのHTMLでのBODY
※デフォルトのカーキ色部分の色はこの背景色で指定可
APP_BACKGROUND 各スクリーンの背景
APP_HEDER ヘッダ全体
APP_HEDER_TITLE ヘッダのアプリアイコンとアプリ名部分
APP_HEDER_NAME ヘッダのアプリ名部分
APP_HEDER_MENU_BUTTONS ヘッダの右側のアイコン部分

※ 例えばAPP_HEADERの背景色を設定すると、現在は黒になっているヘッダの色を変えられます。

23.スタイルシート管理

※ 画面を構成する各要素にどのようにクラス名などが当てられているか、の資料は別途用意する予定です。

24.ファイル管理

フォルダ名 説明
images スクリーンやレポートのモジュールで使用する画像を格納
import DBテーブルの作成やデータインポートに使用するCSVファイルを格納
javascripts アプリで利用するJavascriptのライブラリファイルを格納
outputs レポートの出力で作成されるファイルを格納
style sheets スタイルシート(CSS)ファイルを格納
templates XLSXレポートのExcelテンプレートファイルを格納
theme スクリーンテーマファイルを格納
users ユーザー毎にフォルダを用意する場合のためのフォルダ

25.アプリログ閲覧

26.アプリ文書