//--------------------------------------------------------------------------- #include #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "AdvGrid" #pragma link "BaseGrid" #pragma link "DBAdvGrid" #pragma link "AdvPageControl" #pragma link "DBAdvNavigator" #pragma link "AdvPanel" #pragma resource "*.dfm" #define TDBADVGRID_FIXED 1 #define INCLUDE_PARENTS TDBADVGRID_FIXED TMainForm *MainForm; //--------------------------------------------------------------------------- __fastcall TMainForm::TMainForm(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TMainForm::buildTransactionSpecificationValueTree( TDBAdvGrid & grid, TADOQuery & query ) { grid.BeginUpdate(); const int currentRow = query.RecNo; try { int children = 0; const int rows = query.RecordCount; for ( int where = 1; where <= rows; ++where ) { query.RecNo = where; if ( ( children = query.FieldByName( "CHILD_COUNT" )->AsInteger ) > 0 ) { grid.AddNode( where, 1 + children ); } } } __finally { grid.ContractAll(); query.RecNo = currentRow; grid.EndUpdate(); } } //--------------------------------------------------------------------------- void __fastcall TMainForm::populatePayloadStructureTab( const AnsiString & structure ) { AnsiString sqlStatement; PayloadStructureTabSheet->TabVisible = true; PayloadStructureTabSheet->Caption = structure; TxnValuesQuery->Close(); #if TDBADVGRID_FIXED NewPayloadStructureGrid->RemoveAllNodes(); #endif sqlStatement.sprintf( "SELECT " "XPATH," "FIELDNAME," "FIELDVALUE," "USER_SUPPLIED," "ORDINAL," "CHILD_COUNT " "FROM " "TXNSPEC_VALUES " #if !INCLUDE_PARENTS "WHERE " "CHILD_COUNT=0 " #endif "ORDER BY " "ORDINAL" ); TxnValuesQuery->SQL->Text = sqlStatement; TxnValuesQuery->Open(); #if TDBADVGRID_FIXED buildTransactionSpecificationValueTree( *NewPayloadStructureGrid, *TxnValuesQuery ); #endif } //--------------------------------------------------------------------------- void __fastcall TMainForm::FormShow(TObject *Sender) { IntegrationDBConnection->Open( "Admin", "" ); populatePayloadStructureTab( "TDBAdvGrid Test" ); } //---------------------------------------------------------------------------