2008年2月12日火曜日

ZOHO Creator で数値フィールドを自動で連番

ZOHO Creator には、レコードを作成するたびに、数値フィールド上で連番を作成する機能がないようだ。そこで、Deluge Scripting を利用して、現在保存されてる最大値よりも 1 だけ大きい値が、入力画面に自動で表示するようにした。

 

方法

対象のフォームにおいて、スクリプトタブを選択する。

080212-001

 

SQL が利用できれば、MAX 関数を使って、対象のフィールドにおける最大値を取得し、+ 1 する。しかし、SQL は利用できないようだ。

そこで、対象のレコードを全て走査し、その中で最大値のものを見つけ、+ 1 することにした。

 

スクリプトビルダー

ZOHO Creator でおもしろいのは、スクリプトを書くための「スクリプトビルダー」というものが用意されているところ。変数の設定ですら、ドラッグ&ドロップとクリックで行うことに驚いた。ブラウザ上で、こんな芸当ができるなんて...(@_@;)

080212-002

 

特定のフォームに関連付けられたデータの集合を走査するためには、 for each Record を使う。

080212-005

 

Edit ボタンを押すと、スクリプトの文を設定するためのダイアログが表示される。

080212-004

ここでは、次の手順で設定を行う。

  1. 走査するデータと関連付けらたフォームを選択
  2. コレクションから取り出したレコードを保持する変数を定義
  3. データを抽出するための基準を設定する。

(今回は、全てのレコードを走査するので、抽出のための基準は設定しない。)

 

これを全部、ダイアログで設定するというのには違和感を覚えたけれど、おもしろい。^^; てゆうか、すごすぎ... 慣れてきたら、スクリプトビルダーではなくて、フリースクリプトの方を利用すればよい。

080212-006

 

変数の参照

制御構造や、変数の設定、コレクション (レコードの集合) の走査において、共通に表示されるタブがある。

080212-007

それぞれの左のタブから、次のものを参照することができる。

  1. フォームのフィールド
  2. スクリプト上で定義した変数
  3. ZOHO における特別な変数 (ex. 現在の時刻)
  4. スクリプト上で定義したコレクション
  5. 組み込みの関数

 

連番を表示するスクリプト

maxID = 0;
for each 変数 in フォーム名
{
    if (変数.フィールド  >  maxID)
    {
        maxID = 変数.フィールド;
    }
}
input.対象フィールド = (maxID  +  1);

080212-009

上記を、フォームのアクション > 追加時 > 読込時 に設定した。

1人だけでアプリケーションを使うなら、これでよい。しかし、複数の人で同時に利用するとなると、データの登録時に、最大値がバッティングしてしまう。そこで、 追加時 > 検証 において、同じコードを実行するようにした。

(どこかに共通に利用するスクリプトを保存できないかなぁ... (?_?))

3コメント:

清水麻美 さんのコメント...

すぐに忘れる脳みそのためのメモ
kouma様

突然の投稿、失礼いたします。
アドベントネット株式会社
Zoho推進チームの清水と申します。

Zoho Creator に関するブログ記事を拝見して
ご連絡を差し上げました。

本記事、および、下記の記事を、
弊社Zoho HP、または、Zohoブログでご紹介させて頂けないでしょうか?
http://jutememo.blogspot.com/2008/02/zoho-creator.html
http://jutememo.blogspot.com/2008/01/zoho-creator.html
http://jutememo.blogspot.com/2007/07/zoho-creator-excel.html
http://jutememo.blogspot.com/2007/09/zoho-creator.html

Zoho Creator の使い方や活用法を
丁寧にご紹介されているので
Zohoサイトにて他のユーザの方にも
情報を提供させて頂ければ嬉しく思います。

弊社のサイトのアドレスは下記です。
HP:http://zoho.jp/
ブログ:http://blogs.zoho.jp


不躾なお願いで恐縮ですが
ご検討、ご回答頂けますと幸いです。
何卒よろしくお願いいたします。
――――――――――――――――――――
アドベントネット株式会社
Zoho推進チーム 清水
URL : http://www.zoho.jp/
――――――――――――――――――――

kouma さんのコメント...

Web 上に公開しているものですので、一般的な慣例に従っていただく限り、どうぞご自由にお使いください。

Zoho推進チーム さんのコメント...

子馬さん

ご回答ありがとうございました。
下記ページに紹介させていただきましたので、ご報告いたします。
http://www.zoho.jp/service/zoho-creator/testimonial.html

今後もZohoサービスをご愛顧よろしくお願いいたします。

アドベントネット
清水