2016-06-09 6 views
2

3 개의 그리드, 하나의 그리드가 머리로, 다른 하나가 세부 사항으로, 그리드를 처음 선택하면 2 개의 그리드를 새로 고침하고 싶습니다. AutoCallBack을 사용해 보았지만 여전히 1 그리드 만 새로 고침 할 수 있습니다. 자동으로 호출하는 방법은 무엇입니까?Acumatica : 다중 대상이 포함 된 자동 콜백

+0

grid2에서 grid1에 선택된 레코드와 관련된 레코드를 표시하도록 하시겠습니까? 따라서 사용자가 grid1에서 일부 레코드를 선택하면 grid2에서 레코드를 다시로드해야합니까? –

답변

4

이렇게하는 데는 몇 가지 방법이 있지만 조직 - 조직 구조 아래의 "배정 및 승인 맵"을 보는 것이 좋습니다.

"규칙"그리드를 클릭하면 "조건"그리드가 자동으로 새로 고침됩니다.

이 낮은/세부 그리드 두 가지 AutoCallback 상단의 명령 항목

1)/2 그리드 ) PARAMATERS 의해 주로 제어된다.

예를 들어, 화면에서 두 그리드 "topGrid"및 "bottomGrid"

topGrid 존재 참조 갖는다는 topgrid 행은 bottomGrid로 리프레시를 발행 할 것이다

<AutoCallBack Target="tree" Command="Refresh" ActiveBehavior="True"> 
    <Behavior RepaintControlsIDs="formRuleType,bottomGrid" ></Behavior> 
</AutoCallBack> 

이며 다음과 같다 선택/변경됨. 행을 현재 선택한 행으로 (유지 '현재'선택으로 topGrid의 정의에서 "KeepPosition"와 "SyncPosition"플래그는 게시물을 강제

을 이제 하단 그리드는 다음과 같습니다.

<Parameters> 
    <px:PXControlParam ControlID="topGrid" Name="routeID" PropertyName="DataValues[&quot;AssignmentRouteID&quot;]" Type="Int32" ></px:PXControlParam> 
</Parameters> 
는 "bottomGrid는"그것은 topgrid의 "AssignmentRouteID"에서 값의 당긴다 "routeID"라는 이름의 PARM을 가지고 있다고 말한다.

당신이 차 DataMember를이 "규칙"입니다합니다 (bottomGrid의 BQL 보면 다음 정의가 표시됩니다.

protected virtual IEnumerable rules([PXDBInt] int? routeID) 
{ 

정의는 헤드 그리드 행을 선택 당신이 당신의 세부 그리드를 새로 고침 할 수 있습니다이 방법을 사용하여 정확한 기록

를 반환하는 SELECT 문에 사용할 여기에 그것을 통과, 정의 PARAM을 사용합니다. 동시에 디테일 그리드는 select 문에 대한 매개 변수로 헤드 그리드의 값을 사용합니다.

+0

작품, 고마워요. – Distor4by