Main Content

アプリでのツリーを使用したデータの表示

この例のアプリは、スプレッドシートから患者データをインポートしてツリーに表示します。ツリーには病院と患者の階層が表示されます。ツリー内の患者ノードを選択すると、患者情報が表示されます。アプリのユーザーが患者データを編集すると、アプリはユーザーに変更を確認してから、格納されているデータを更新します。

この例では、次のアプリ作成タスクを示します。

  • データの読み込みおよび格納を行う。

  • ツリーを使用してデータを整理する。

  • 確認ダイアログ ボックスを作成する。

データの読み込みおよび格納

データをツリーに表示するには、まず患者データを格納するプライベート プロパティ Data を作成します。startupFcn コールバックで、データをスプレッドシートから table に読み込みます。次に、患者データを Data プロパティに格納して、アプリ コードのさまざまな部分からアクセスできるようにします。

t = readtable("patients.xls");
app.Data = t;

ツリーを使用したデータの整理および表示

格納されているデータを表示するためのノードを含むツリーを作成します。このセクションでは、ノードが手動で作成されるのか、格納されているデータから動的に作成されるのかに応じて使用する、ツリー コンポーネントにノードを追加する次の 2 つの方法について説明します。

  • [設計ビュー] で対話的にノードを作成する。

  • コールバック関数でプログラムによってノードを作成する。

[設計ビュー] で、ツリー コンポーネントをアプリのキャンバスにドラッグします。ツリーにさらにノードを追加するには、ノードの 1 つを選択し、ツリーの左側に表示されたプラス ボタンを押します。この方法を使用して 3 つの病院ノードを作成します。

ユーザーの操作や格納されているデータに依存するノードについて、実行時に startupFcn コードで動的にツリー ノードを追加することもできます。たとえば、このアプリは実行時に、格納されている患者データに基づいて各病院ノードの下に子ノードを動的に追加します。同じ病院のすべての患者をクエリし、対応する親ノードの下に患者ノードを作成します。たとえば、[CountyGeneralHospital] ツリー ノードの下に、この病院の患者のすべての子ノードを追加します。

uitreenode(app.CountyGeneralHospitalNode,"Text",lastname);

ダイアログ ボックスを使用したユーザー編集の確認

ユーザーによる table データの編集を確認するには、uiconfirm を使用して確認ダイアログ ボックスを作成します。たとえば、AgeEditFieldValueChanged コールバック関数で、データの変更を確認し、変更が確認された場合に格納されているデータを更新します。

confirm = uiconfirm(app.PatientsMedicalSurveyUIFigure,"Change Patient Age?","Confirm Change");
patientName = app.Tree.SelectedNodes.Text;
if strcmp(confirm,'OK')
     app.Data.Age(patientName) = app.AgeEditField.Value;
% Otherwise, revert change
else
     app.AgeEditField.Value = app.Data.Age(patientName);
end

[Age] 編集フィールドを変更しようとすると、確認ダイアログ ボックスが表示されます。

参考

関数

プロパティ

関連するトピック