lightning-tree-grid
URL のラベル
typeAttributes: { label: 'View', name: 'view' }
別Windowに遷移する
typeAttributes: {label: { fieldName: 'Invoice_Number__c' }, target: '_top'}},
下方向へは1階層しか検索できないので、クエリーは分けざるを得ないと思います。
まずは1階層と2階層目の関係をList変数に取得します。
LIST = [SELECT Id, (SELECT Id FROM B) FROM A];
それから、for文でこのlist変数をループさせて、2階層目のIdを取得してSet変数に保存します。
次にSet変数に一致する2階層目とその下の3階層目を検索します。
LIST = [SELECT Id, (SELECT Id FROM C) FROM B WHERE Id =: SetBId];
ここでもforでループさせて検索結果を Map(Id,List) の変数に格納します。
こうすることで、MapにBのIdを与えれば、その下のCをList変数の形で参照できます。
ここまで準備しておいて、またListをforでループさせて、
BのIdを取得します。ここで、先程のMap変数を使ってCの情報を取得できます。
このループでJsonを組み立てていけば、欲しい形のフォーマットになるのではと思います。
ただ、あんまりレコードが多いと制限に抵触するかもしれません。
- LWCで作成したTreeGridで タブからタブに遷移する際にパラメータを持たせたい
- 親から孫までの関係を持ったデータを「子から親を辿る形」で取得するSOQL
- LWCのTreegridにハイパーリンクを設定した数式項目をを表示したい
- リンク項目の色を変える
- lightning-datatableタグ内にSOQLで検索した親レコードの情報を出力したい。
一番簡単な方法は BオブジェクトにA__r.Nameの数式項目を作ることだと思います。
別の方法としては以下のようにList>の変数を使って、値をセットすれば自由に何でも指定できます。この変数をlightning-datatableに渡せば表示できると思います。
List<Map<String,Object>> myDataList = new List<Map<String,Object>>();
for (fkd_Property__c myRecord : myPropertyList) {
Map<String, Object> myMap = new Map<String, Object>();
myMap.put('Id',myRecord.Id);
myMap.put('submission_name__c',myRecord.customer_id__r.customer_code__c + ':' + myRecord.customer_id__r.Name);
myDataList.add(myMap);
}