Reports ヘルプ

SkyDesk Creatorで入力フォームの作成

SkyDesk Creatorは、SkyDeskで人気のあるオンラインデータベース作成アプリです。 SkyDesk Creatorを使って、さまざまな種類のデータをフォームに格納できる便利なWebアプリが簡単に作成できます。SkyDesk Reportsは、SkyDesk Creatorを利用して、データを入力するフォームを作成し、SkyDesk Reportsのワークスペースのテーブルに追加します。SkyDesk Creatorで作成したWebフォームは、個人的に利用したり、共有データのために非公開で同僚やユーザーに共有したり、Webサイトのフォームとして公開して、ユーザーに登録を許可することもできます。 Webフォームを経由して送信されたデータは、SkyDesk Reportsのテーブルに格納され、解析やレポートに使用されます。

次のセクションでは、SkyDesk Creatorを利用したSkyDesk Reportsにデータを入力するWebフォームの作成方法について説明します。

SkyDesk Creatorでフォームの新規作成

SkyDeskに下記のようなSkyDesk Reportsのワークスペースの「Sales」テーブルが、「StoreSales 」という名前のワークスペースにあるとします。これを使ってデータを入力するWebフォームを作成します。下記の手順で実施します。

  • SkyDesk Reportsと同じ認証情報を使って、 SkyDesk Creator (creator.skydesk.jp) にサインインします。
  • SkyDesk Creatorに、すでにアプリを作成済みの場合、既存のアプリを開きます。作成していない場合、ホームから[ アプリケーションの作成] ボタンをクリックして、新しいアプリを作成します。
  • 新規のアプリケーションを作成すると、下記のように[アプリケーション名]の入力画面が表示されます。

  • 既存のアプリを開く場合、[アプリケーションの編集]をクリックして、編集モードを開きます。[フォーム]タブから[新しいフォーム]をクリックして新しいフォームを作成します。
  • 開いたタブで、[ フォームの追加 ]アイコンを選択して、フォーム名を[フォーム名] ( 例) Sales Form )のテキストボックスに下記のように指定します。

  • [データはSkyDesk Creatorに保存されます]のチェックボックスの選択を外して、[作成] をクリックします。 デフォルトでは、SkyDesk Creatorは、 フォームを経由して送信されたデータを格納するサーバーでテーブルを生成します。送信されたデータをSkyDesk Creatorのテーブルに代わって、SkyDesk Reportsのテーブルに保存するには、この項目の選択を外してください。

    メモ:

    • SkyDesk Creatorに[データを格納] するオプションは、最初から新しいアプリを作成した時には表示されません。このオプションは、既存のアプリで新しいフォームを作成した時にだけ表示されます。この場合、 最初に作成したブランクのフォームの代わりに、別のフォームを作成して手順に従います。
  • [Sales Form]という名前の白紙の[Form]が作成され、フォームタブに表示されます。
  • 左の[フィールドの挿入]ボックスから、フォームで収集するデータの種類に合うフィールドをドラッグ&ドロップします。

  • 表示されたダイアログにこのフィールドの名前を入力して、[作成]をクリックします。
  • 対象のフィールドを作成後、右下から リンクをクリックして、フォームにボタンを追加します。
  • ボタン名(Add to SkyDesk Reports Database)を指定 して、[ボタンの種類]に[送信 ]を選択します。
  • [作成]をクリック すると、フォームが下記のように表示されます。

クリック時スクリプト

フォームの作成後、ボタンのクリック時に実行する簡単な Delugeスクリプト を記述する必要があります。 Delugeスクリプトは、対象のロジックをフォームに有効にして、アクションを実行するオンラインのスクリプト言語です。

データを追加するクリック時スクリプト

フォームを経由して、データを送信し、SkyDesk Reportsのテーブルに新しい列として格納するには、createRow() taskを使って、Deluge スクリプトを記述します。
構文: データを追加するためのDelugeタスクの一般化フォーマットは以下になります。

<return value as map> = zoho.reports.createRow(<Database Name>,<Table Name>,<Data as map>);

<Database Name> は、SkyDesk Reportsのワークスペース名です。
<Table Name>は、SkyDesk Reportsのワークスペースに関連するテーブルの名前です。
<Data as map> ぺアの値のキーを持つマップ変数です。マップキーは、SkyDesk Reportsのテーブルの列の名前で、マップ変数は、SkyDesk Creator のフォームに送信されたフィールドの値です。
<return value as map> は、SkyDesk Reportsに返されたレスポンスを含むマップオブジェクトです。

上記の例を使って、データを追加する createRow() の使い方を説明します。対象のフィールドを配置すると、[Sales Form]に[ Add to SkyDesk Reports Database ] ボタンが追加されます。

  • [Add to SkyDesk Reports Database] ボタンを追加して、フィールドのプロパティタブから[アクションの設定]リンクをクリックします。スクリプトビルダーが[Script タブ]で起動します。
  • スクリプトエディターの右下から、スクリプトエディターの右下から[フリーフロースクリプト]モードに切り替えます。
  • 下記のスクリプトエディターのように、Delugeスクリプトを記述して、[スクリプトの保存]をクリックします。

    creatingMap = map();
    creatingMap.put("Date", input.Date_field);
    creatingMap.put("Region", input.Region);
    creatingMap.put("Product Category", input.Product_Category);
    creatingMap.put("Product", input.Product);
    creatingMap.put("Customer Name", input.Customer_Name);
    creatingMap.put("Sales", input.Sales.toString());
    creatingMap.put("Cost", input.Cost.toString());
    mapResponse = zoho.reports.createRow("StoreSales", "Sales", creatingMap);

上記のDeluge スクリプトでは、

creatingMap は、列名(Date、Region、Product Category、Product、Customer Name、Sales、Cost)を持つマップ変数と[ Sales Form]経由で送信された関連する値です。

mapResponse は、 行に追加された値として、SkyDesk Reportsによって返されたXML文字列を持つ変数です。

データを入力して、[Sales Form]の[Add to SkyDesk Reports Database]ボタンをクリックします。 指定したDeluge スクリプトが実行され、 SkyDesk Reportsの[Sales]テーブルに、新しい行として送信されたデータが追加されます。

データを更新するクリック時スクリプト

SkyDesk Creatorのフォームを使って、SkyDesk Reportsのテーブルの既存のデータを更新できます。 SkyDesk Creatorで作成されたフォームを使って、SkyDesk Reportsの行を更新するには、 Deluge スクリプトtask update data() を記述する必要があります。 SkyDesk Reportsの列を更新するためのDelugeタスクの形式は、以下になります。
構文:

<return value as map> = zoho.reports.updatedata(<Database Name>,<Table Name>, CreatingMap, <Criteria>);

<Database Name>は、SkyDesk Reportsのワークスペース名です。
<Table Name>は、SkyDesk Reportsのワークスペースに関連するテーブルの名前です。
<Data as map> ペアの値のキーを持つマップ変数です。マップキーは、SkyDesk Reportsのテーブルの列の名前で、マップ変数は、SkyDesk Creator のフォームに送信されたフィールドの値です。
<Criteria>は、 {<colName> <operator> <colValue>}形式になります。 例えば、("Region"='East')、フォーマットの条件に関する詳細は、こちら をクリックしてください。
<return value as map> は、SkyDesk Reportsによって返されたレスポンスを含むマップオブジェクトです。 下記の例では、Salesフォームを経由して送信された SkyDesk ReportsのStoreSalesワークスペースの[ Sales]テーブルにある既存の行を更新するために、下記を実施します。

  • 上記で説明した手順と同様に、ボタン (更新ボタンと呼びます)を[Sales Form]に追加します。
  • [更新]ボタンにマウスオーバーして、[アクションの設定]リンクをクリックします。スクリプトビルダーが[Script タブ]で起動します。
  • スクリプトエディターの右上から[フリーフロースクリプト]モードに切り替えます。
  • 下記のスクリプトエディターのように、Delugeスクリプトを記述して、[スクリプトの保存]をクリックします。

creatingMap = map();
creatingMap.put("Date", input.Date_field);
creatingMap.put("Region", input.Region);
creatingMap.put("Product Category", input.Product_Category);
creatingMap.put("Product", input.Product);
creatingMap.put("Customer Name", input.Customer_Name);
creatingMap.put("Sales", input.Sales.toString());
creatingMap.put("Cost", input.Cost.toString());
mapResponse = zoho.reports.updatedata("StoreSales", "Sales", creatingMap, "Region = 'East' and Sales =10000 ");

ユーザーが、データを[Sales Form]に入力し、[更新]ボタンをクリックします。指定したDeluge スクリプトが実行され、 [East]の地域情報を持ち、[10000の売り上げがある[StoreSales] ]ワークスペースの[Sales]テーブルのすべての行が、送信されたデータで更新されます。

行を削除するクリック時スクリプト

SkyDesk Reportsのテーブルの特定の行を削除するには、Delugeスクリプト deleterow()taskを記述します。

構文 : SkyDesk Reportsで行を削除するタスクの形式は、以下になります。

<return value as map> = zoho.reports.deleteRow(<Database Name>,<Table Name>, <Criteria>);

<Database Name> は、SkyDesk Reportsのワークスペース名です。
<Table Name> は、SkyDesk Reportsのワークスペースに関連するテーブルの名前です。
<Criteria> は、 {<colName> <operator> <colValue>} 形式になります。 例えば、 ("Region"='East')、フォーマットの条件に関する詳細は、こちら をクリックしてください。
<return value as map>は、SkyDesk Reportsによって返されたレスポンスを含むマップオブジェクトです。
例えば、SkyDesk Reportsの StoreSalesワークスペースにある[Sales ]テーブルから、[West]地域の売り上げデータをすべて削除するには、スクリプトビルダーに、下記のDelugeスクリプトの記述が必要です。

s = zoho.reports.deleteRow("StoreSales", "Sales", "Region='West'");

フォームにデータを入力

フォームのデータを入力、 SkyDesk Reportsのテーブルに入力されたデータを追加、更新するには、右上から[このアプリケーションにアクセス ]を選択します。 アプリにアクセスすると、作成した[ Sales Form]フォームが下記のように表示されます。

関連のフィールドに対象のデータを入力して、ボタンをクリックします。 SkyDesk Reportsの関連するテーブルの値が、追加/更新されます。

SkyDesk Reportsのテーブルのデータの確認

フォームが正しく送信されると、データは新しい行としてStoreSalesワークスペースの[Sales]テーブルに追加されます。[ Add to SkyDesk Reports Database]ボタンをクリックすると、下記のように表示されます。
.

同様に、ユーザーが[更新]ボタンをクリックすると、SkyDesk Reports のテーブルの条件に一致したすべての行は、送信されたデータで更新されます。

フォームの共有と組み込み

デフォルトでは、アプリのオーナーだけが、非公開のアプリのフォームのアクセス可能です。ユーザーにフォームへのアクセスを有効にするには、フォームをユーザーに共有するか、Webサイト/ブログに組み込み、権限を設定します。

フォームの共有

[共有]タブで、ユーザーのメールアドレスを使って、ビューを共有できます。フォームの共有方法と、各ユーザーレベルの権限の設定についての詳細は、SkyDesk Creatorのヘルプの共有 を参照してください。
共有ユーザーが、共有メールアドレスのSkyDeskアカウントを持っている場合、SkyDesk Creatorにサインインするだけで、アプリにアクセスできます。共有ユーザーが、SkyDesk アカウントを持っていない場合は、招待メールに指定されたメールアドレスで アカウントを作成 します。
サインイン後、ホームから[共有されたワークスペース]タブをクリックして、関連のアプリを選択すると、共有されたフォームにアクセスできます。別の方法では、フォームの共有の際に送信された招待メールのリンクをクリックすると、ユーザーが直接フォームにアクセスできます。

フォームの組み込み

Web ページのHTMLコンテンツにHTMLコードを貼り付けると、フォームをWebページや、Webアプリ、ブログに組み込むこともできます。 これらのコードを入れることで、Webページがブラウザに読み込まれるたびに、 組み込まれたフォームが表示されます。
HTML コードは、以下の手順で生成できます。フォームのヘッダーから、その他のアクション -> Webサイトに組み込むを選択します。

このHTMLコードを組み込みフォームを表示するWebページのHTMLコンテンツの関連のセクションに貼り付けます。 下記の画面は、Webページに組み込まれた[Sales Form]を表示しています。


フォームの組み込み方法と可能な設定についての詳細は、SkyDesk CreatorのヘルプのWebサイトに フォームとビューの組み込み を参照してください。

関連トピックス

SkyDesk Reportsソリューション

Top