2017-04-05 17 views
0

アクティビティ/タスク画面(cr306020)には、関連エンティティの画面を開くためのPXSelectorルックアップと鉛筆付きの「関連エンティティ」フィールドがあります:フィールドに「関連エンティティ」ルックアップを配置する方法

enter image description here

私は、カスタムフィールドのためにこれを行う方法があるかどうかを知りたいのです。フィールドのソースコード(DACのEPActivity.Source)を見てきましたが、これらの属性をそのフィールドに配置するものは何もありません。 PXSelectorなどはありません。

+0

あなたは単に鉛筆アイコン(フォーム)/ハイパーリンクを(追加するために探していますグリッド列)をクリックすると別のページに移動するフィールドに移動しますか?この投稿が必要なものを提供するかどうかを確認してください:http://stackoverflow.com/questions/26387291/how-to-create-a-hyperlink-user-field/34190669#34190669 – Brendan

答えて

0

案件(CR304000)画面に関連エンティティフィールドを追加する例を示します。このサンプルで使用されているPXRefNoteSelectorコントロールは、Acumatica Customization Managerのレイアウトエディタでは現在サポートされていません。私は機会を使って例を簡素化し、短縮しました。残念ながら、今のところ関連する項目はカスタム画面にしか追加できません。

今度は、サンプルに前進しましょう:

  1. 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 
    } 
    
  2. 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; 
    } 
    
  3. 、 RelatedEntityに設定のDataFieldプロパティでPXRefNoteSelectorコントロールを追加しますおよび注IDDataField~UsrRefNoteID。によって生成EditButtonLookupButtonLookupPanelタグ、(以下のコードスニペットに機会)を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> 
    
  4. 隠す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()); 
    } 
} 

そして最後に...ブランドの新しい関連するエンティティフィールドでカスタマイズ機会画面のスクリーンショット:

enter image description here

+0

ありがとう、ルスラン - 私はそれを与えるでしょうすぐに試してみてください。 – pmfith

関連する問題