0

단일 데이터 소스 인 InventJournalTable으로 양식을 만들었습니다. JournalTypeJournalId동적으로 표 열 추가

ActionPane에 버튼이 그 클릭 된 이벤트 처리기에서 다음 작업을 수행 할 노력하고 있어요 :

1. add a new data source and join it with the current one on JournalId 
2. add to fields from the newly added data source to the current Grid. 

는 또한 데이터 소스에서 그것에 그리드와 두 개의 필드를 추가

이것은 내가 지금까지 가지고있는 것입니다 ... 테스트를 위해서 ... 저는 데이터 소스에 액세스하고 범위를 추가하려고했습니다. 그것은 좋은 작동, 어쩌면 조인이 너무 일하고 있지만 어떻게 그 두 필드를 추가 할 수 있습니까?

void clicked() 
{ 
    Query query; 
    QueryBuildDataSource qbdsInventJournalTable; 
    QueryBuildDataSource qbdsvwInventJournals; 

    super(); 

    query = InventJournalTable_ds.query(); 
    qbdsInventJournalTable = query.dataSourceTable(tableNum(InventJournalTable)); 

    qbdsInventJournalTable.addRange(fieldNum(InventJournalTable, JournalType)).value(queryValue(InventJournalType::LossProfit)); 

    qbdsvwInventJournals = qbdsInventJournalTable.addDataSource(tableNum(vwInventAdjJrnlCostAmount)); 
    qbdsvwInventJournals.addLink(fieldNum(InventJournalTable, JournalId), fieldNum(vwInventAdjJrnlCostAmount, JournalId)); 
    qbdsvwInventJournals.joinMode(JoinMode::OuterJoin); 

    //gridOverview.addDataField(

    InventJournalTable_ds.executeQuery(); 
} 

두 번째 데이터 소스를 제거하고 그리드가 초기 상태로 돌아 가야하는 "세부 정보 삭제"라는 또 다른 버튼을 추가 할 계획입니다.

나는 올바른 길을 가고 있습니까? 이것에 대해 몇 가지 힌트를 얻을 수 있습니까?

+0

가 동적으로 열을 추가해야합니까? 요구 사항 (1)과 (2)에서 폼에'InventJournalTable'과'InventJournalTrans'를 끌어다 놓은 다음 그리드의 필드를 드래그하면됩니다. 또는 동적으로 수행하고 쿼리 개체에 조인하는 연습입니까? –

+0

@AlexKwitny 사실,보기에는 시간이 많이 소요되는 계산 된 열이 포함되어 있으며 단추를 클릭 할 때만 앞으로 가져 오려고합니다. –

답변

5

데이터 소스/필드/등을 동적으로 추가하는 대신 폼에 추가하는 것으로 생각했지만 필요한 때까지 결합 된 데이터 소스를 사용하지 않도록 설정 했습니까? 나에게 더 단순한/깨끗한 솔루션처럼 보입니다.

는 여기를 참조하십시오 : http://olondono.blogspot.com/2008/06/how-to-enable-or-disable-joined.html

+0

고마워, 잘 작동한다. –

관련 문제