0

Ich habe ein Formular mit einer einzigen Datenquelle erstellt: InventJournalTable.Hinzufügen von Rasterspalten dynamisch

Ich habe auch ein Gitter auf sie und zwei Feld aus der Datenquelle: JournalType und JournalId

Die ActionPane einen Knopf hat und in seinem klickten Event-Handler Ich versuche, die folgend zu tun:

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. 

Das ist, was ich bis jetzt habe ... nur zum Testen .. Ich habe versucht, auf Datenquelle zuzugreifen und einen Bereich hinzuzufügen. Es funktioniert gut, vielleicht funktioniert der Join auch, aber wie kann ich diese beiden Felder hinzufügen?

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(); 
} 

Eine weitere Sache, ich plane eine weitere Schaltfläche hinzufügen namens „Entfernen Details“, die die zweite Datenquelle entfernen wird und das Gitter in den Ausgangszustand zurückkehren.

Bin ich wenigstens auf dem richtigen Weg? Kann ich Hinweise dazu bekommen?

+0

Möchten Sie die Spalten dynamisch hinzufügen müssen? Aus den Anforderungen (1) und (2) klingt es so, als ob Sie 'InventJournalTable' und' InventJournalTrans' auf das Formular ziehen und dann einfach Felder auf das Raster ziehen sollten. Oder ist dies eine Übung, um es dynamisch zu tun und zu einem Abfrageobjekt zu verbinden? –

+0

@AlexKwitny in der Tat, diese Ansicht enthält einige zeitaufwendige berechnete Spalten und ich möchte es nur nach vorne bringen, wenn die Schaltfläche geklickt wird. –

Antwort

5

Anstatt die Datenquelle/Felder/etc dynamisch hinzuzufügen, haben Sie in Erwägung gezogen, sie einfach in das Formular einzufügen, aber die verbundene Datenquelle zu deaktivieren, bis Sie sie benötigen? Scheint mir wie eine einfachere/sauberere Lösung.

Siehe hier: http://olondono.blogspot.com/2008/06/how-to-enable-or-disable-joined.html

+0

Danke, es funktioniert gut. –