You need to sign in to do that
Don't have an account?
thsr
lookupについて
取引先:テキストボックス lookupボタン テキストボックス
上記のように、参照関係項目を作成し、lookupボタンを押下、選択したら、
左のテキストボックスに取引先IDを、右のテキストボックスに取引先名を入れたいのですが、
実現方法を教えていただけますか?
デフォルト機能は 左のテキストボックスに取引先IDを入れるのが確認しましたが、
よろしくお願いいたします。
おそらく VisualforceのactionSupport コンポーネントを利用すると可能と思います。
ルックアップボタンでサブウィドウを開き取引先を選択すると左に「取引先名」、右のテキストボックスに「取引先のID」が
表示されるサンプルです。
準備:
1.Accountの子供のカスタムオブジェクト AccountChaildを作成
2.1のオブジェクトにAccountParent というAccountの参照項目を追加
3.以下のコードで動作を確認してみてください。
===(拡張Controller)
public class discus43Ext {
private final AccountChaild__c obj;
public discus43Ext(ApexPages.StandardController stdController) {
this.obj = (AccountChaild__c)stdController.getRecord();
}
public String AccountParentId{get; set;}
public PageReference doAccountId(){
AccountParentId = obj.AccountParent__c;
return null;
}
}
===(VF page)
<apex:page standardController="AccountChaild__c" extensions="discus43Ext">
<apex:form >
取引先名
<apex:inputField value="{!AccountChaild__c.AccountParent__c}">
<apex:actionSupport event="onfocus"
action="{!doAccountId}"
rerender="accid" />
</apex:inputField>
取引先ID
<apex:outputpanel id="accid">
<apex:inputText value="{!AccountParentId}" />
</apex:outputpanel>
</apex:form>
</apex:page>
All Answers
おそらく VisualforceのactionSupport コンポーネントを利用すると可能と思います。
ルックアップボタンでサブウィドウを開き取引先を選択すると左に「取引先名」、右のテキストボックスに「取引先のID」が
表示されるサンプルです。
準備:
1.Accountの子供のカスタムオブジェクト AccountChaildを作成
2.1のオブジェクトにAccountParent というAccountの参照項目を追加
3.以下のコードで動作を確認してみてください。
===(拡張Controller)
public class discus43Ext {
private final AccountChaild__c obj;
public discus43Ext(ApexPages.StandardController stdController) {
this.obj = (AccountChaild__c)stdController.getRecord();
}
public String AccountParentId{get; set;}
public PageReference doAccountId(){
AccountParentId = obj.AccountParent__c;
return null;
}
}
===(VF page)
<apex:page standardController="AccountChaild__c" extensions="discus43Ext">
<apex:form >
取引先名
<apex:inputField value="{!AccountChaild__c.AccountParent__c}">
<apex:actionSupport event="onfocus"
action="{!doAccountId}"
rerender="accid" />
</apex:inputField>
取引先ID
<apex:outputpanel id="accid">
<apex:inputText value="{!AccountParentId}" />
</apex:outputpanel>
</apex:form>
</apex:page>
ご回答ありがとうございます。
とても参考になりました。
またよろしくお願いいたします。
すみません、一個追加質問させてください。
いただいたVF pageのソースに必須項目(AccountChaild__cにsuryo__cを追加)を表示しようとすると、取引先IDがうまく表示されなくなりますが、
解決方法をご存知でしたら、教えていただけますか?よろしくお願いいたします。
===(VF page)
<apex:page standardController="AccountChaild__c" extensions="discus43Ext">
<apex:form >
<apex:inputField id="suryo" value="{!AccountChaild__c.suryo__c}"/>
取引先名
<apex:inputField value="{!AccountChaild__c.AccountParent__c}">
<apex:actionSupport event="onfocus"
action="{!doAccountId}"
rerender="accid" />
</apex:inputField>
取引先ID
<apex:outputpanel id="accid">
<apex:inputText value="{!AccountParentId}" />
</apex:outputpanel>
</apex:form>
</apex:page>
inputField はカスタムフィールドの属性を反映します。必須項目となっているため、拡張コントローラ
でのdoAccountIdメソッド処理の前にエラー発生し処理が実行されていません。
<apex:pageMessages></apex:pageMessages> を追加してエラーの内容を確認してみてください。
解決方法はカスタムフィールドの必須項目の属性をはずして入力チェック処理を
拡張コントローラ(discus43Extクラス)側で実装することです。
<apex:page standardController="AccountChaild__c" extensions="discus43Ext">
<apex:form >
<apex:inputField id="suryo" value="{!AccountChaild__c.suryo__c}"/>
取引先名
<apex:inputField value="{!AccountChaild__c.AccountParent__c}">
<apex:actionSupport event="onfocus"
action="{!doAccountId}"
rerender="accid" />
</apex:inputField>
取引先ID
<apex:outputpanel id="accid">
<apex:inputText value="{!AccountParentId}" />
<apex:pageMessages></apex:pageMessages>
</apex:outputpanel>
</apex:form>
</apex:page>
ご回答ありがとうございます。
なるほど!
わかりました。
またよろしくお願いいたします。