2013-02-25 2 views
0

QBFC를 사용하여 빠른 책에서 항목 데이터를 내 프로젝트로 가져옵니다.QBFC를 사용하여 빠른 책에서 각 항목의 수를 찾는 방법

코드 사용 : 1 빠른 책에서 얼마나 많은 항목을 찾을 수 있습니까?

I 빠른 책에서 각 항목 유형을 찾아야하는 요구 사항이 있습니다.

그러나 사용하여 코드 : 내가 particulat 항목에 얼마나 많은 항목 (예 : 경호 국)을 찾을 수 없습니다입니다

코드 : 1

IORItemRet itemRet = default(IORItemRet); 
IORItemRetList itemRetList = default(IORItemRetList); 
IResponse response = responseSet.ResponseList.GetAt(0); 
if ((response.Detail != null)) 
{ 
    itemRetList = (IORItemRetList)response.Detail; 
    if ((itemRetList != null)) 
    { 
     int i = 0; 
     for (int j = 0; j <= itemRetList.Count - 1; j++) 
     { 
     } 
    } 
} 

코드 : 2

IItemServiceRet itemSeriveRet = default(IItemServiceRet); 
IItemServiceRetList itemServiceRetList = default(IItemServiceRetList); 
IResponse response = responseSet.ResponseList.GetAt(0); 
if ((response.Detail != null)) 
{ 
    itemServiceRetList = (IItemServiceRetList)response.Detail; //Com object Error 
    if ((itemServiceRetList != null)) 
    { 
     int i = 0; 
     for (int j = 0; j <= itemServiceRetList.Count - 1; j++) 
     { 
     } 
    } 
} 

// Com 개체 오류

'System .__ ComObject'형식의 COM 개체를 인터페이스 유형 'Interop'에 캐스팅 할 수 없습니다. .QBFC10.IItemServiceRetList '. 다음 오류로 인해 IID '{C53D1081-9FE4-4569-9181-A9D7E0155907}'인터페이스의 COM 구성 요소에서 QueryInterface 호출이 실패했기 때문에이 작업이 실패했습니다. 해당 인터페이스가 지원되지 않습니다 (HRESULT : 0x80004002 (E_NOINTERFACE 예외)). .

빠른 책 코드 당신이 response.Detail가 null가 아닌 것으로 확인되어 나타납니다에서

+0

어떤 유형의 요청을 보내십니까? ItemQueryRq? –

답변

0

에서 각 항목의 수를 찾는 방법을 지금 나를 보자. 하지만 당신은 또한 response.StatusCode 및 responseType 값을 확인하고 있습니까? 오류가 발생하면 IORItemRetList 인터페이스를 구현하지 않을 수도있는 응답을 다시받을 가능성이 있습니다. On Screen Reference에서 아래 코드를 참조하십시오. SDK를 프로그래머 가이드에서

this is safe because we checked with response.Type check above

(P.107)는 말한다 : 위의 코드에서 코멘트에

IResponse response = responseList.GetAt(i); 
//check the status code of the response, 0=ok, >0 is warning 
if (response.StatusCode >= 0) 
{ 
    //the request-specific response is in the details, make sure we have some 
    if (response.Detail != null) 
    { 
    //make sure the response is the type we're expecting 
    ENResponseType responseType = (ENResponseType)response.Type.GetValue(); 
    if (responseType == ENResponseType.rtItemQueryRs) 
    { 
     //upcast to more specific type here, this is safe because we checked with response.Type check above 
     IORItemRetList OR = (IORItemRetList)response.Detail; 
     WalkOR(OR); 
    } 
    } 
} 

...a response object that is a query response contains a Ret list object that contains potentially multiple Ret objects. A response object that is not a query response contains only one Ret object and no Ret list. This difference is crucial when it comes to processing the response data.

당신은 인터페이스 수표를 일단 for 루프가 제대로 작동해야합니다.

관련 문제