2016-08-04 2 views
-1

클래스의 양식을 새로 고침하고 싶습니다. 나는 insert() statemant 후 refreh을 원한다. 이 문제에 대한 더 나은 해결책이 있습니까?insert() 후 클래스에서 양식 새로 고침

여기 내 코드입니다 : 삽입이 완료되고 잠시 후

try { 
    do { 
     row++; 
     this.readRow(row, cells); 
     ttsbegin; 
     this.insert(); 
     ttscommit; 
     type = cells.item(row+1, 1).value().variantType(); 
    } 
    while (type != COMVariantType::VT_EMPTY); 
         <-------- 

이 위치에 어디 것 새로 고침.

+0

내가 게시 한 작은 스 니펫을 기반으로하여 귀하의 코드 아키텍처를 추측 할 수 없기 때문에 나는 내 대답을 매우 보편적으로 유지해야했습니다. 내 대답이 너무 일반 경우 다음 코드를 게시하십시오 (예 : 만들고 양식에서 클래스를 호출하는 등 어떻게 당신이 사용하는 테이블) – DAXaholic

+0

나는이 메서드에서 main 메서드 (실행) 내가 어떻게 readRow 및 삽입 방법. 폼의 단추로 run 메서드를 호출합니다. 버튼은 Excel 시트 가져 오기를 시작합니다. –

답변

2

일반적으로 새로 고침을 원하는 양식의 데이터 소스에 대한 참조를 전달한 다음 새로 고침 된 레코드가 표시되도록 새로 고치려면 research을 호출하십시오.

또는 IMHO가 깨끗하지는 않지만 양식의 데이터 소스 버퍼를 클래스에 전달한 다음 isFormDataSource을 통해 확인한 후 버퍼의 dataSource 메소드를 통해 데이터 소스에 액세스하고 새로 고침하십시오.

세 번째 방법은 위에서 설명한대로 데이터 소스를 새로 고치는 용도로만 전용 메서드를 구현하는 것입니다. 클래스의 인스턴스를 만들 때 폼에 대한 참조를 전달하면 필요할 때 해당 메서드를 호출 할 수 있습니다.

업데이트 : 클래스에서 양식에 정의 된 메서드를 호출하는 방법을 보려면 Tutorial_Apply 클래스를보고 양식에 구현 된 applyText 메서드를 호출하는 방법을 보여주는 양식 Tutorial_Form_Apply을 참조하십시오. 마찬가지로 데이터 소스에 research을 호출하는 refreshData 메서드를 정의 할 수 있습니다.

+0

나는 마지막 방법이 최선의 방법이라고 생각한다. 하지만 저는 AX에 익숙하지 않으므로 이것을 할 생각이 없습니다. –

+0

내 양식을 새로 고치는 특별한 방법이 필요합니까? 내 양식에 init 및 classDeclaration라는 두 가지 메소드가 있습니다. –

+0

클래스에서 호출하려는 메소드가 필요합니다 (예 : 그것을 refreshData라고 부르 자. 그런 다음 양식의 데이터 소스에 대한 연구를 호출합니다. 내가 언급 한 것처럼 더 많은 코드를 보여 주면 더 구체적 일 수있다. – DAXaholic

관련 문제