2017-10-26 10 views
0

BLC/그래프 로직 내부의 일반 문의에서 제공 한 결과의 데이터 세트 또는 배열을 가져와야합니다.BLC/그래프 코드의 일반 문의에서 데이터 세트/배열 반환

나는 다음과 같은 예를 들었지만 분명히 카운트를 반환합니다.

dataGraph.Views["Results"].SelectMulti()[0] 

것은이 반환하지 않습니다 : 나는 반환 변수에 인덱스를 사용하는 경우

public class SOOrderEntryExt : PXGraphExtension<SOOrderEntry> 
{ 
public PXAction<SOOrder> Test; 
[PXButton] 
[PXUIField] 
protected void test() 
{ 
    var dataGraph = PXGenericInqGrph.CreateInstance("GI000010"); 
    if (dataGraph != null) 
    { 
     var count = dataGraph.Views["Results"].SelectMulti().Count; 
    } 
} 
} 

, 나는 예를 들어, GI에서 실제 데이터의 행과 유사 아무것도하지 않는 실제 데이터. dataGraph.Views [ "Results"] 객체가 제공하는 여러 메소드/속성을 시도했지만 필요한 결과를 얻지 못했습니다.

일반 검색의 실제 결과 집합이나 단순히 데이터 집합을 반환하는 메서드 나 속성이 있습니까?

답변

1

결과 목록이 표시됩니다. 각 목록 요소에는 GI 결과의 1 행 (각 조인 된 테이블)과 관련된 레코드가 포함됩니다. GI에 포함 된 필드들만이 내가 믿는 가치를 가질 것입니다.

public PXAction<SOOrder> Test; 
[PXButton] 
[PXUIField] 
protected void test() 
{ 
    // Using "Invoiced Items" (GI000008) GI in 2017R2 
    var dataGraph = PXGenericInqGrph.CreateInstance("GI000008"); 
    if (dataGraph == null) 
    { 
     return; 
    } 

    var resultList = dataGraph.Results.Select().FirstTableItems.ToList(); 

    foreach (GenericResult genericResult in resultList) 
    { 
     // Note: not all values are pulled into the DAC, only those used in the query 
     var arInvoice = GetDac<PX.Objects.AR.ARInvoice>(genericResult); 
     var arTran = GetDac<PX.Objects.AR.ARTran>(genericResult); 
     var customer = GetDac<PX.Objects.AR.Customer>(genericResult); 
     var customerClass = GetDac<PX.Objects.AR.Customer>(genericResult); 
     var address = GetDac<PX.Objects.AR.Customer>(genericResult); 
     var bAccount = GetDac<PX.Objects.CR.BAccount>(genericResult); 
     var inventoryItem = GetDac<PX.Objects.IN.InventoryItem>(genericResult); 

     var formulaValues = genericResult.Values.Last(); 
    } 
} 

protected virtual T GetDac<T>(GenericResult genericResult) where T : class, PX.Data.IBqlTable 
{ 
    // Example: 
    //var customer = (PX.Objects.AR.Customer)genericResult.Values["Customer"] 
    return (T)(genericResult?.Values != null && 
     genericResult.Values.ContainsKey(typeof(T).Name) 
     ? genericResult.Values[typeof(T).Name] 
     : null); 
} 
+0

- PMF 나는 그것을 시도했지만 SelectMulti로 얻은 것과 같은 것을 얻는다. 여기서, 결과는 : 는 resultList [0] 레코드 (1) : GLTran [0] : {GL 트랜잭션 [모듈 : GL, batchNbr : GL013332, lineNbr : 23]} 이러한 결과는 저 아무 의미 . 저는 GI에서 실제 데이터를 찾고 있습니다. – pmfith

+0

은 Acumatica와 함께 제공되는 맞춤 GI 또는 표준 GI입니까? 필자는 사용자 정의 GI에 대해 테스트했으며 목록에는 예상되는 22 개 항목이있었습니다. (2017R2에서 테스트 됨) – Brendan

+0

또한, 확인을 위해 다른 GI에서 유효한 결과를 얻을 수 있습니까? – Brendan