2017-10-05 17 views
1

어떤 화면의 탭 중 하나에 GI를 표시하려고합니다.모든 화면의 탭에 GI 표시

예를 들어 OrderMargin에 대한 새 사용자 지정 GI가 있는데, 이는 특정 주문에 대해서만 Order Margin을 표시 할 새 탭의 SO 화면에 표시하려고합니다.

OrderMargin은 SOOrder, SOLine 및 InventoryItem 테이블 조인을 사용하는 간단한 GI이고 마진 계산이 필요한 몇 개의 열 필수 열입니다.

누구든지 제안 할 수 있습니까?

답변

2

의 당신이이 숨겨진 매개 변수 SalesOrderMargin라는 GI를 만들었습니다 가정 해 봅시다 :

  1. 선언 : enter image description here

    는 아래의 단계를 수행해야한다, 판매 주문 페이지에이 GI를 삽입하려면 SOOrder 새로운 언 바운드 필드는 SalesOrderMargin GI에 대한 절대 URL을 반환합니다 :

    public class SOOrderExt : PXCacheExtension<SOOrder> 
    { 
        public abstract class marginGiUrl : IBqlField { } 
        [PXString] 
        [PXUIField(Visible = false)] 
        public string MarginGiUrl 
        { 
         get 
         { 
          if (string.IsNullOrEmpty(Base.OrderType) || 
           string.IsNullOrEmpty(Base.OrderNbr)) return string.Empty; 
    
          string inqName = "SalesOrderMargin"; 
          var url = new StringBuilder(PXGenericInqGrph.INQUIRY_URL) 
           .Append("?name=").Append(inqName) 
           .Append("&SOOrderType=").Append(Base.OrderType); 
           .Append("&SOOrderNbr=").Append(Base.OrderNbr); 
           .Append("&hidePageTitle=true"); 
          return PX.Common.PXUrl.SiteUrlWithPath().TrimEnd('/') + 
           url.ToString().Remove(0, 1); 
         } 
        } 
    } 
    
  2. 를 판매 판매 주문 '최고 수준의 PXFormView 컨테이너 어딘가에 1 단계에서 선언 된 사용자 정의 SOOrder 언 바운드 필드

    <px:PXTabItem Text="Margins" > 
        <Template> 
         <px:PXSmartPanel runat="server" ID="panelMarginGI" RenderIFrame="True" 
          AutoSize-Enabled="true" SkinID="Frame" LoadOnDemand="true"/> 
        </Template> 
    </px:PXTabItem> 
    
  3. 장소 입력 제어 :의 주문 화면은 iframe을로 렌더링하도록 설정된 PXSmartPanel 용기와 새 탭을 추가 (입력 제어는 항상 사용자로부터 숨겨집니다 만 PXSmartPanel의 소스 URL 할당 할 필요) : 자바 스크립트 코드를 삽입 SO301000.aspx에서

    <px:PXFormView ID="form" runat="server" DataSourceID="ds" Width="100%" 
        DataMember="Document" Caption="Order Summary"...> 
        <Template> 
         ... 
         <px:PXTextEdit ID="edMarginGiUrl" runat="server" DataField="MarginGiUrl" /> 
        </Template> 
    </px:PXFormView> 
    
  4. 가 PXSmartPanel의 소스 URL을 지정하려면

  5. commandResult 자바 스크립트 함수를 호출 할 PXDataSource의 CommandPerformed 이벤트 구독하기 :

    <px:PXDataSource ID="ds" runat="server" Visible="True" Width="100%" TypeName="PX.Objects.SO.SOOrderEntry" PrimaryView="Document"> 
        <ClientEvents CommandPerformed="commandResult" /> 
        ... 
    </px:PXDataSource> 
    

을 그리고 이것은 당신의 SalesOrderMargin GI가 판매 주문 화면에 표시하는 방법입니다 : enter image description here