수색…


소개

이 항목에서는 Acumatica의 데이터 입력 화면에서 탭을 조건부로 숨기는 두 가지 방법을 살펴 봅니다.

Aspx에서 PXTab 컨트롤의 VisibleExp 속성

VisibleExp 속성은 지정된 탭이 표시되는지 (논리 표현식이 TRUE 일 때) 또는 숨겨 지는지 를 결정하는 부울 식입니다. Aspx 페이지에서 PXTab 컨트롤의 VisibleExp 속성을 지정합니다.

<px:PXTabItem Text="Credit Card Processing Info" BindingContext="form" 
    VisibleExp="DataControls[&quot;chkIsCCPayment&quot;].Value = 1">

VisibleExp 는 PXTab 컨트롤의 BindingContext 속성에 지정된 ID로 컨테이너 내에 배치 된 입력 컨트롤로 구성됩니다. 둘 이상의 컨테이너에서 입력 컨트롤을 사용할 수 없습니다. 특정 입력 컨트롤에 대한 액세스는 DAC 필드의 이름이 아닌 해당 ID로 DataControls 사전을 통해 제공됩니다.

일반적으로 VisibleExp 속성은 하드 코딩 된 입력 컨트롤 값을 가진 매우 간단한 부울 식을 구성하는 데 사용되며 시간에 따라 변경되지 않습니다. 예를 들어 판매 오더 화면 (SO.30.10.00)에서 다음 표현식을 사용하여 전송 유형의 오더에 대한 지급 설정 탭을 숨 깁니다.

<px:PXTabItem Text="Payment Settings" 
    VisibleExp="DataControls[&quot;edOrderType&quot;].Value!=TR" BindingContext="form">

새로운 상태의 리드에 대한 활동 탭을 숨기려면

Leads 화면 (CR.30.10.00)에서 Activities 탭을 숨기려면 BindingContext 속성을 form ( ID를 보유하는 최상위 Lead Summary 폼)으로 설정하고 Lead 상태가 Open이면 False 를 반환하도록 VisibleExp 를 정의합니다 ( 상태 드롭 다운에 edStatus ID가 있음) :

<px:PXTabItem Text="Activities" LoadOnDemand="True" 
    BindingContext="form" VisibleExp="DataControls[&quot;edStatus&quot;].Value != H">

여기에 이미지 설명을 입력하십시오.

데이터보기에서 AllowSelect 속성

Aspx 에 정의 된 VisibleExp 속성과 달리 BLC 또는 BLC 확장 코드를 사용하여 데이터보기의 AllowSelect 속성을 조작합니다. AllowSelect 속성을 사용하면 VisibleExp 속성과 비교하여 더 복잡한 부울 식을 사용할 수 있으며 필요한 경우 데이터베이스 또는 웹 페이지에서 사용할 수없는 다른 소스에서 추가 정보를 검색 할 수 있습니다.

AllowSelect 속성을 사용하여 작업하는 가장 일반적인 세 ​​가지 시나리오는 다음과 같습니다.

  • Cash SaleCash Return 유형의 청구서에 대한 애플리케이션 탭을 숨기려면 최상위 엔티티의 RowSelected 이벤트 핸들러 :

     public class SOInvoiceEntry : ARInvoiceEntry
     {
         ...
         protected override void ARInvoice_RowSelected(PXCache cache, PXRowSelectedEventArgs e)
         {
             ...
    
             Adjustments.AllowSelect =
                 doc.DocType != ARDocType.CashSale &&
                 doc.DocType != ARDocType.CashReturn;
         }
         ...
     }
    
  • 재고 보충재고 하위 기능이 활성화 된 경우에만 Item Warehouse Details 화면의 Subitem Replenment Info 탭을 표시하는 BLC 생성자 :

     public class INItemSiteMaint : PXGraph<INItemSiteMaint, INItemSite>
     {
         ...
         public INItemSiteMaint()
         {
             ...        
    
             bool enableSubItemReplenishment = PXAccess.FeatureInstalled<FeaturesSet.replenishment>() && PXAccess.FeatureInstalled<FeaturesSet.subItem>();
             subitemrecords.AllowSelect = enableSubItemReplenishment;
         }
         ...
     }
    
  • 현재 자산이 감가 상각되지 않고 감가 상각 기록보기 가 고정 자산 환경 설정에서 나란히 설정되어 있지 않은 경우 감가 상각 내역 탭을 숨기려면 최상위 엔티티의 RowSelected 핸들러 :

     public class AssetMaint : PXGraph<AssetMaint, FixedAsset>
     {
         ...
         protected virtual void FixedAsset_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
         {
             ...
    
             AssetHistory.AllowSelect = asset.Depreciable == true && fasetup.Current.DeprHistoryView == FASetup.deprHistoryView.SideBySide;
         }
         ...
     }
    

AllowSelect 속성을 사용하여 BLC 또는 BLC 확장 코드를 통해 탭 가시성을 조건부로 변경하는 경우 해당 PXTab 컨테이너의 Aspx에서 RepaintOnDemand 속성을 false 로 설정해야합니다.

<px:PXTabItem Text="Depreciation History" RepaintOnDemand="false">

RepaintOnDemand 속성은 기본적으로 true 입니다. 이 속성은 PXTab 컨테이너 초기화를 제어합니다. true로 설정하면 PXTab은 사용자가 선택할 때까지 초기화되지 않습니다. 당연히 RepaintOnDemandfalse 로 설정해야 해당 PXTab 컨테이너가 선택되었는지 여부에 관계없이 적절한 동작을 보장 할 수 있습니다.

판매 할 수없는 재고 항목에 대한 상호 참조 탭을 숨기려면

영업 상태가 없는 품목에 대한 재고 품목 화면 (IN.20.25.00)에서 상호 참조 탭을 숨기려면 다음을 수행하십시오.

  1. itemxrefrecords BLC 확장에서 InventoryItem_RowSelected 핸들러를 구현하여 Item StatusNo Sales 로 설정된 경우 itemxrefrecords 데이터 뷰에 대해 AllowSelect 속성을 false 로 설정하십시오.

    public class InventoryItemMaintExt : PXGraphExtension<InventoryItemMaint>
    {
        protected void InventoryItem_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            InventoryItem item = (InventoryItem)e.Row;
            if (item == null) return;
    
            Base.itemxrefrecords.AllowSelect = (item.ItemStatus != InventoryItemStatus.NoSales);
        }
    }
    
  2. 사용자 지정 관리자에서 상호 참조 탭에 대해 RepaintOnDemand 속성을 false 로 설정하고 사용자 지정을 게시합니다. 여기에 이미지 설명을 입력하십시오.

위의 2 가지 간단한 단계를 완료 한 후에 판매 상태가 없는 재고 항목에 대해서는 상호 참조 탭에 액세스 할 수 없습니다.

여기에 이미지 설명을 입력하십시오.

비활성 재고 항목의 특성 탭을 숨기려면

조건부 ** 항목 ** 탭을 재고 항목 화면 (IN.20.25.00)에서 조건부로 숨기려면 다음과 같이하십시오.

  1. InventoryItemMaint BLC 확장에서 InventoryItem_RowSelected 처리기를 구현하여 Item StatusInactive 로 설정된 경우 AnswersCategory 데이터보기에 대해 AllowSelect 속성을 false 로 설정합니다. 또한 CacheAttached 핸들러에 의해 InventoryItem.ImageUrl 필드에 추가 된 PXUIFieldAttribute 에 대해 Visible 속성이 false 로 설정되었습니다.

    public class InventoryItemMaintExt : PXGraphExtension<InventoryItemMaint>
    {
        protected void InventoryItem_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            InventoryItem item = (InventoryItem)e.Row;
            if (item == null) return;
    
            bool showAttributesTab = item.ItemStatus != InventoryItemStatus.Inactive;
            Base.Answers.AllowSelect = Base.Category.AllowSelect = showAttributesTab;
            PXUIFieldAttribute.SetVisible<InventoryItem.imageUrl>(sender, item, showAttributesTab);
        }
    
        [PXMergeAttributes(Method = MergeMethod.Append)]
        [PXUIField(DisplayName = "Image")]
        protected void InventoryItem_ImageURL_CacheAttached(PXCache sender)
        { }
    }
    
  2. 사용자 지정 관리자에서 특성 탭에 대해 RepaintOnDemand 속성을 false 로 설정하고 사용자 지정을 게시합니다. 여기에 이미지 설명을 입력하십시오.

위의 2 단계를 완료하면 비활성 상태 인 재고 항목에 대해 특성 탭에 액세스 할 수 없습니다.

여기에 이미지 설명을 입력하십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow