03. [J] 独自ソリューションで BlackBox を使用する

https://paper.dropbox.com/doc/03.-Using-BlackBoxes-in-your-own-solutions--BtNFhIr1jj5aGiRrqu42JyqqAg-kSGiOAKvPkQKyhkd6AY5S

03. 独自ソリューションで BlackBox を使用する

<— Reactor Home J

私たちの Demo BlackBoxes を見た後、それらの 1 つを取り、それを独自のソリューションで使用したいと思うでしょう。 Reactor BlackBox は非常に移植性が高いため、これは簡単です。

この記事を始める前に、Reactor のチュートリアルを読むことをお勧めします。 これは非常に簡単なプロセスであり、すべて Reactor アプリケーション内で利用できます。 初めて開いたときに起動しますが、サポート画面からいつでも再起動できます。

この目的のために、Demo BlackBox の 1 つである xGanttChart を使用します。 これを開始する前に-完全な開示。 これをゼロからコーディングしたわけではありません。- 実際、BlackBox をゼロからコーディングしたわけではありません。- 優れた JavaScript ライブラリがすべて揃っているため、その必要はありません!

この BlackBox は dhtmlxGantt ライブラリを使用しています。

https://dhtmlx.com/docs/products/dhtmlxGantt/

BlackBox は一連のレコード (アイテム、タスク、スケジュールなど) を受け取り、それらを視覚的なガントチャートに表示します。 ガントチャートとは何かわかりませんか? プロジェクトのスケジュールを示す最も単純な形式で、基本的には横棒グラフであり、アイテムの調整と追跡に使用されます。 当社のガントチャートは、これらのアイテム間の依存関係を表すこともでき、大きなアイテム内の小さなアイテムをグループ化する機能を提供します。

ご覧のとおり、横軸は時間を表し、縦軸はさまざまなスケジュールを表しています。 ある項目から別の項目につながる矢印は、依存関係を示しています。 たとえば、上のスクリーンショットでは、完全な医療が行われるまで、収縮を伴うセッションは発生しません。 ある種の分類 (優先度、リソースなど) に従って項目に色を付けることもできます。

まず、この BlackBox が使用するパラメーターを確認し、[関数] をクリックして、定義のプレビューを見てみましょう。

プレビューで提供されるパラメーターを見てみましょう。

ご覧のとおり、パラメーターは次の 3 つのカテゴリに分類されます。

  • Date Range (ChartStartDate, ChartEndDate)

  • Schedules (id_field, description_field, barcolour_field, startts_field, endts_field, order_field, progress_field, parentid_field)

  • Links (id, id_source, id_target, type)

ここで、この種のデータを含む新しいソリューションに BlackBox を組み込んでみます。 2 つのテーブルを使用して新しいソリューションを作成します。 スケジュールとリンク - 下記のフィールドがあります。

次に、単一のオブジェクトを含む新しいレイアウトを作成します。 Webビューア。 Web ビューアのコンテンツは、新しいフィールドがプラグインされた xGantt 関数である必要があります。

この小さなヤツをクリックして、プレビューから Web ビューアの計算をコピーすることもできます。

手元のソリューションに貼り付けた後、独自のフィールド名とテーブルの出現箇所を指すようにパラメーターを変更する必要があります。 私たちのデモとまったく同じ名前を付けない限り.

フィールド参照を GetFieldName() でラップしたい場合があります。 どうして? 将来性のためです。説明フィールドに”Schedule::Description"と入力することもできますが、ある日そのフィールドの名前を変更すると、ガントチャートが壊れてしまうため、パラメータを新しい名前で更新する必要があります。 GetFieldName をフィールド参照にラップすることで、物事を動的に保ちます。 したがって、フィールド名が変更されると、Web ビューアでも変更されます。

最初の 2 つのパラメーターは、チャートの日付範囲を設定します。

各テーブルに追加する必要があるフィールドもあります: zModID. これは、自動入力が設定されたタイムスタンプ フィールドです: 変更タイムスタンプ。

このフィールドは、このようなポーリングを利用する BlackBox に使用されます。 これにより、(Webビューアの外部で) 編集、作成、または削除されたすべてのデータが Webビューアに反映されます。 基本的に、データをライブにします。 つまり、変更は多かれ少なかれ即座に更新され、感覚を与えることはありません。 このフィールドをパラメーターとして入力しないでください。Reactor は自動的にそれを検出し、それを使用してポーリングを管理します。

開始するために、Schedule レコードを追加しましょう。

クリックして Web ビューアに戻ります。

そして、そこにあります!

スケジュールをさらに追加し、それらをリンクすることもできます。

青は好きではないですか? データに入り、スケジュールの色を変更します:

変更したデータはガントチャートに反映されます!

これで、ガントチャートを独自のソリューションに組み込むことができました。 次のステップは、BlackBox がチャートを描画する前にインストールされていることを確認することです。

たとえば、Reactor アプリケーションを開いたことがない人に新しいソリューションを配布した場合、FileMaker Pro はあなたが何について話しているのかわかりません。 それはあなたが意味不明なことを話していると思うでしょう。

そのため、次の 2 つをインストールする手段を提供する必要があります。

  • Reactor プラグイン

  • xGanttChart の Blackbox

したがって、これらを格納する 2 つのオブジェクト フィールドを作成します。 これを行う最善の方法は、単一のレコードを含むテーブルを作成することです。これらのいずれかを既に持っている可能性があります。通常は、一般的な設定を保存するために使用されます。

Reactor Core アプリケーションにアクセスして、これらのファイルを取得しましょう。

Reactor プラグインはプラグイン画面から入手できます。

そして、ソリューションをデプロイしようとしているシステムに適した Reactor プラグインを入手してください。 オブジェクトフィールドをクリックして内容をクリップボードにコピーするか、ダウンロードボタンをクリックしてコンピュータ上の場所に保存することができます。

次に、独自のソリューションに戻り、Reactor プラグインの新しいオブジェクト フィールドにファイルを貼り付け/挿入します (最初に単一のレコードを作成したことを確認してください)。

ここで、Reactor Core アプリケーションに戻り、xGanttChart BlackBox に向かい、画面の右側に目を向けます。

これが BlackBox ファイルです。 それをクリックして、コンピューター上の場所に保存します (拡張子は必ず .rbb にしてください)。

次に、独自のソリューションに戻り、他のオブジェクトフィールドにファイルを挿入します。

やったね! 次に、それらがインストールされていることを確認する必要があります。 ソリューションを開くたびに実行されるスクリプトを作成することをお勧めします。

複数の OS のシナリオにデプロイする場合は、Reactor プラグインの 3 つのバージョンすべてを取得し、このスクリプト ブロックのバージョンを記述して、適切なバージョンをインストールします。

BlackBox ファイルでこれを行う必要はありません。既にクロスプラットフォーム互換性があります。

やったね! Demo BlackBox を独自のソリューションに組み込み、Reactor プラグインと BlackBox の準備が整っていることを確認するメカニズムができました。

<— Reactor Home J