🐴

Salesforce:親オブジェクトから子オブジェクトを Visualforce ページに出力する

2021/01/03に公開約1,200字2件のコメント

実装例

<apex:repeat value="{!customObj}"var="parents">
	<apex:repeat value="{!parents.Children__r}" var="childs">
		{!childs.Name}
		<br/>
	</apex:repeat>
</apex:repeat>

補足
 customObj : 親カスタムオブジェクト
 Children : 子オブジェクト親から子オブジェクトを参照する場合「XXXX__r」 という記述になる

試したけどできなかった

親から子を参照する際の項目が無いと言われる感じのエラーが起きてた

The value of attribute "value" associated with an element type "apex:repeat" must not contain the '<' character.

子オブジェクトの主従関係項目を指定してもだめ。
とりあえず子→親の参照ができるか確認してみた。
下記でできた。

<apex:page standardController="Custom_Children__c">
	<apex:repeat value="{!Custom_Children__c }" var="parents">
		<apex:repeat value="{!parents.r_parent__c}" var="childs">
			{!childs}<br/>
		</apex:repeat>
	</apex:repeat>
</apex:page>

親と子を入れ替えてみるがまたもできず。

ググって見るとフレクトさんのブログがHit

セールスフォースの豆知識

親オブジェクトから子オブジェクトへは、 子リレーション名を使用してリレーションを辿ります。

コレダ!!

子オブジェクトの主従関係項目→[編集]からリレーション名を確認し下記コードに変えたところ、問題なく表示できた。

<apex:page standardController="Custom_Parent__c">
	<apex:repeat value="{!Custom_Parent__c }" var="parents">
		<apex:repeat value="{!parents.parent_item__r}" var="childs">
			{!childs.Name}
		  <br/>
		</apex:repeat>
	</apex:repeat>
    
</apex:page>

Discussion

初めまして
barusuさんが記載されているとことで躓いており、
よくわからなかったので、質問させていただきます。

以下の画像のようの項目設定になっておりましたら、
上記コードでどう対応されるのかを教えていただきたいです。
(長くなってしまい申し訳ありません。。

反応が遅くなりすみません。
こちらのコメント確認しました!

やりたいことについて詳しく教えて頂ければお力になれそうです。
画像を見る限りだと、下の画像の経費明細オブジェクトの項目:[経費精算]は親オブジェクトになっている理解で合ってますかね?

ログインするとコメントできます