案件(CR304000)画面に関連エンティティフィールドを追加する例を示します。このサンプルで使用されているPXRefNoteSelectorコントロールは、Acumatica Customization Managerのレイアウトエディタでは現在サポートされていません。私は機会を使って例を簡素化し、短縮しました。残念ながら、今のところ関連する項目はカスタム画面にしか追加できません。
今度は、サンプルに前進しましょう:
はUsrRefNoteIDと結合していないRelatedEntityフィールドをバインドするデータベースを宣言するCROpportunity DACの拡張を実装します。関連エンティティのたNoteIDはUsrRefNoteIDに格納され、RelatedEntityは、関連するエンティティのわかりやすい説明を表示するために使用されます。
public class CROpportunityExt : PXCacheExtension<CROpportunity>
{
#region UsrRefNoteID
public abstract class usrRefNoteID : IBqlField { }
protected Guid? _UsrRefNoteID;
[PXDBGuid]
[PXParent(typeof(Select<CRActivityStatistics,
Where<CRActivityStatistics.noteID, Equal<Current<CROpportunityExt.usrRefNoteID>>>>), LeaveChildren = true)]
public Guid? UsrRefNoteID
{
get
{
return _UsrRefNoteID;
}
set
{
_UsrRefNoteID = value;
}
}
#endregion
#region Source
public abstract class relatedEntity : IBqlField { }
[PXString(IsUnicode = true)]
[PXUIField(DisplayName = "Related Entity Description", Enabled = false)]
[PXFormula(typeof(EntityDescription<CROpportunityExt.usrRefNoteID>))]
public string RelatedEntity { get; set; }
#endregion
}
PXRefNoteSelectorAttributeとその主な機会データビューを飾るためにOpportunityMaint BLCの拡張子を作成します。 PXRefNoteSelectorAttributeは、カスタム関連するエンティティのフィールド上で動作するには、[編集](鉛筆)と検索ボタンのために必要とされています。ASPXページ
public class OpportunityMaintExt : PXGraphExtension<OpportunityMaint>
{
[PXCopyPasteHiddenFields(typeof(CROpportunity.resolution))]
[PXViewName(Messages.Opportunity)]
[PXRefNoteSelector(typeof(CROpportunity), typeof(CROpportunityExt.usrRefNoteID))]
public PXSelect<CROpportunity> Opportunity;
}
、 RelatedEntityに設定のDataFieldプロパティでPXRefNoteSelectorコントロールを追加しますおよび注IDDataField~UsrRefNoteID。によって生成EditButton、LookupButtonとLookupPanelタグ、(以下のコードスニペットに機会)をPXRefNoteSelector属性で装飾一次データビュー名を使用し
<pxa:PXRefNoteSelector ID="edRefEntity" runat="server" DataField="RelatedEntity" NoteIDDataField="UsrRefNoteID"
MaxValue="0" MinValue="0" ValueType="Guid" CommitChanges="true">
<EditButton CommandName="Opportunity$Navigate_ByRefNote" CommandSourceID="ds" />
<LookupButton CommandName="Opportunity$Select_RefNote" CommandSourceID="ds" />
<LookupPanel DataMember="Opportunity$RefNoteView" DataSourceID="ds" TypeDataField="Type" IDDataField="NoteID" />
</pxa:PXRefNoteSelector>
隠す3つのアクションの フォームツールバーのPXRefNoteSelector属性あなたはまた、独自のEntityDescriptionオペレータを実装する必要があるかもしれません
<CallbackCommands>
...
<px:PXDSCallbackCommand Name="Opportunity$Navigate_ByRefNote" Visible="False" />
<px:PXDSCallbackCommand Name="Opportunity$Select_RefNote" Visible="False" />
<px:PXDSCallbackCommand Name="Opportunity$Attach_RefNote" Visible="False" />
</CallbackCommands>
:上記の手順のようにPXRefNoteSelector属性(以下のコードスニペットで機会)で飾られた同じ一次データビュー名を使用します一度この例が作成されてから、それは内部アクセス修飾子を持っていたとPX.Objects.dllの外では使用できませんでした:
public class EntityDescription<RefNoteID> : BqlFormulaEvaluator<RefNoteID>, IBqlOperand
where RefNoteID : IBqlField
{
public override object Evaluate(PXCache cache, object item, Dictionary<Type, object> pars)
{
Guid? refNoteID = (Guid?)pars[typeof(RefNoteID)];
return new EntityHelper(cache.Graph).GetEntityDescription(refNoteID, item.GetType());
}
}
そして最後に...ブランドの新しい関連するエンティティフィールドでカスタマイズ機会画面のスクリーンショット:
あなたは単に鉛筆アイコン(フォーム)/ハイパーリンクを(追加するために探していますグリッド列)をクリックすると別のページに移動するフィールドに移動しますか?この投稿が必要なものを提供するかどうかを確認してください:http://stackoverflow.com/questions/26387291/how-to-create-a-hyperlink-user-field/34190669#34190669 – Brendan