アプリでのツリーを使用したデータの表示
この例のアプリは、スプレッドシートから患者データをインポートしてツリーに表示します。ツリーには病院と患者の階層が表示されます。ツリー内の患者ノードを選択すると、患者情報が表示されます。アプリのユーザーが患者データを編集すると、アプリはユーザーに変更を確認してから、格納されているデータを更新します。
この例では、次のアプリ作成タスクを示します。
データの読み込みおよび格納を行う。
ツリーを使用してデータを整理する。
確認ダイアログ ボックスを作成する。
データの読み込みおよび格納
データをツリーに表示するには、まず患者データを格納するプライベート プロパティ 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] 編集フィールドを変更しようとすると、確認ダイアログ ボックスが表示されます。
参考
関数
uitree
|uitreenode
|uiconfirm
|readtable