ラベル ZOHO Creator の投稿を表示しています。 すべての投稿を表示
ラベル ZOHO Creator の投稿を表示しています。 すべての投稿を表示

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

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

2008年1月24日木曜日

ZOHO Creator でメールフォームを作成する

要件

次の項目を持つ、メールフォームを作成したい。

  • 名前
  • メールアドレス
  • 内容

ただし、メールフォームで投稿されたら、その内容がメールで通知されること。

 

方法

新規アプリケーションの作成

ZOHO Creator にアクセスし、「新規アプリケーションの作成」ボタンを押す。

080124-027

 

アプリケーション名と、フォーム名を適当に入力する。

080124-031

 

投稿されたメールフォームの内容が公開されてしまわないように、「非公開」にチェックがされていることを確認し、「作成する」ボタンを押す。

080124-030

 

入力フィールドの作成

フォームをデザインするための画面が表示される。

はじめに「名前」フィールドを作成する。左側のペインから、「テキスト」フィールドの中の「一行」を選んで、右側のペインに D&D する。

080124-032

 

フィールドを設定するためのダイアログが表示されるので、ラベル名を入力する。入力を必須にするために、「オプション」をクリックし、検証の設定 > 入力必須フィールド にチェックを入れた。

080124-033

 

同様に、「メールアドレス」と「内容」のフィールドを追加した。

080124-034

 

投稿された内容をメールで通知

メールフォームにおいて、「追加アクション」のセレクトボックスから「メール通知の設定」を選択する。

080124-035

 

設定ダイアログが表示されるので、投稿された内容の送信先を入力する。「宛先」「件名」を入力し、「言語」は「日本語」を選択する。投稿された内容が全てメールで読めるようにするため、「ユーザの送信したデータを表示する」にチェックをつけた。

080124-038

 

投稿された内容がメールで届けられた場合、返信はメールフォームで入力されたメールアドレスにしたい。「返信先」のフィールドの横にあるセレクトボックスを押し、「Email Fields: メールアドレス」を選択し、追加ボタンを押す。

080124-037

 

コードの取得

作成したメールフォームをサイトに埋め込むためのコードを取得する。

フォームのデザイン画面において、「アクセスモードへ」のボタンを押す。

080124-039

 

追加アクション > Webサイトへ組み込み を選択する。

080124-040

 

作成したメールフォームは、「非公開」の設定がしてあるので、普通にアクセスすることができない。そこで、「ログインなしで、フォームにアクセスするためには、ここをクリック」のリンクをクリックする。

080124-041

 

コードが表示されるので、コピーしてサイトに貼り付ける。

080124-042

 

結果

Blogger の場合

Blogger においては、記事の投稿で「HTML 編集」に貼り付ける。作成したページに対して、テンプレート > ページ要素の追加 で「リンクリスト」「テキスト」「HTML/JavaScript」を利用してリンクを作成するとよい。

2007年9月27日木曜日

ZOHO Creator で、レコードを作成した日付を自動的に入力する

レコードが作成されたときのイベント処理に、現在の日付を取得する関数をフィールドに設定する。

  1. Forms タブにおいて、Date型のフィールドを作成する
  2. 上記のフィールドの編集(Edit this Field) > Options > Filed name for script において、スクリプトで利用するためのフィールド名を付けておく。
  3. Script タブに切替え、Form Action > On Add > On Load において、Control Flow > Set Variable をスクリプトに配置する。
  4. 上記のスクリプト上で、Edit ボタンを押す。
  5. 先ほど設定したフィールド名を選択する。
  6. Zoho Variables タブを選択し、Date variables > zoho.currentdate を選択して、Done ボタンを押す。
  7. Save Script ボタンを押す。