以下の私の回答でルックアップフィールドを設定する方法を尋ねていると思います。ただし、ルックアップ フィールドを削除する方法を尋ねている場合は、PageLayout を編集する必要がありますが、編集ページからもフィールドが削除されます。編集ページには項目が必要で、作成ページには項目が必要ない場合は、オブジェクト用に新しい Visualforce の作成ページを作成し、そのページへのリダイレクトを設定する必要があります。
作成ページは、id
パラメーターのない編集ページです。あなたが持っているコードはうまくいくはずです:
PageReference ref = new PageReference('/a00/e');
を介して新しいページに送信されるパラメータを変更するPageReference
には、 メソッドを使用しgetParameters()
ます。以下の例では、アカウント ルックアップのパラメーターを入力します (CF00NC0000004htI5
開発版のフィールド ID です)。
PageReference.getParameters().put('CF00NC0000004htI5', 'sForce');
フィールド ID は、[設定] > [作成] > [オブジェクト] > [オブジェクト] > [フィールド] に移動して見つけることができます。そこに移動したら、ページ アドレス (URL) で フィールド ID を探します/
(ただし、 がある?
場合は の前?
)。たとえば、私のフィールド URL は次のとおりhttps://instance.salesforce.com/00NC0000004htI5?setupid=CustomObjects
です。ID を取得したら、そのCF
前に追加します。
ルックアップ フィールドの場合は、CF
+FieldId+_lktp
パラメータも設定できます。これにより、参照されるレコードの Id が設定されます。
次のページを取得するために使用している完全な方法を次に示します。
public PageReference NextPage()
{
Account a = [Select Id, Name From Account Where Name like '%sForce%' Limit 1];
PageReference myPage = new PageReference('/a03/e');
// set the ID on a lookup field
myPage.getParameters().put('CF00NC0000004htI5_lktp', a.Id);
// set the Name on a lookup field
myPage.getParameters().put('CF00NC0000004htI5', a.Name);
myPage.setRedirect(true);
return myPage;
}