git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.DevExpressVCL@26 05c56307-c608-d34a-929d-697000501d7a
215 lines
7.5 KiB
C++
215 lines
7.5 KiB
C++
//---------------------------------------------------------------------------
|
|
|
|
#include <vcl.h>
|
|
#include "shellapi.hpp"
|
|
#pragma hdrstop
|
|
|
|
#include "ViewNestedBandsDemoMain.h"
|
|
#include "ViewNestedBandsDemoData.h"
|
|
#include "AboutDemoForm.h"
|
|
//---------------------------------------------------------------------------
|
|
#pragma package(smart_init)
|
|
#pragma link "cxClasses"
|
|
#pragma link "cxControls"
|
|
#pragma link "cxCustomData"
|
|
#pragma link "cxData"
|
|
#pragma link "cxDBData"
|
|
#pragma link "cxEdit"
|
|
#pragma link "cxFilter"
|
|
#pragma link "cxGraphics"
|
|
#pragma link "cxGrid"
|
|
#pragma link "cxGridCustomTableView"
|
|
#pragma link "cxGridCustomView"
|
|
#pragma link "cxGridDBTableView"
|
|
#pragma link "cxGridLevel"
|
|
#pragma link "cxGridTableView"
|
|
#pragma link "cxStyles"
|
|
#pragma link "cxButtons"
|
|
#pragma link "cxCheckBox"
|
|
#pragma link "cxContainer"
|
|
#pragma link "cxGridCardView"
|
|
#pragma link "cxGridDBCardView"
|
|
#pragma link "cxLookAndFeelPainters"
|
|
#pragma link "cxMaskEdit"
|
|
#pragma link "cxSpinEdit"
|
|
#pragma link "cxTextEdit"
|
|
#pragma link "cxLookAndFeels"
|
|
#pragma link "cxGridBandedTableView"
|
|
#pragma link "cxGridDBBandedTableView"
|
|
#pragma resource "*.dfm"
|
|
|
|
|
|
/* TcxNestedBandInfo */
|
|
//---------------------------------------------------------------------------
|
|
__fastcall TcxNestedBandInfo::TcxNestedBandInfo(TcxGridBand *ABand)
|
|
{
|
|
FBand = ABand;
|
|
FParentBand = ABand->Bands->Items[ABand->Position->BandIndex];
|
|
FCaption = ABand->Caption;
|
|
FColumnIndex = ABand->Position->ColIndex;
|
|
}
|
|
|
|
//---------------------------------------------------------------------------
|
|
void __fastcall TcxNestedBandInfo::RestoreBand()
|
|
{
|
|
FBand->Caption = FCaption;
|
|
FBand->Position->BandIndex = FParentBand->Index;
|
|
FBand->Position->ColIndex = FColumnIndex;
|
|
}
|
|
|
|
TViewNestedBandsDemoMainForm *ViewNestedBandsDemoMainForm;
|
|
//---------------------------------------------------------------------------
|
|
__fastcall TViewNestedBandsDemoMainForm::TViewNestedBandsDemoMainForm(TComponent* Owner)
|
|
: TForm(Owner)
|
|
{
|
|
FNestedBands = new TList();
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
__fastcall TViewNestedBandsDemoMainForm::~TViewNestedBandsDemoMainForm(void)
|
|
{
|
|
ReleaseNestedBandInfos();
|
|
delete FNestedBands;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TViewNestedBandsDemoMainForm::miAboutClick(TObject *Sender)
|
|
{
|
|
ShowAboutDemoForm();
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TViewNestedBandsDemoMainForm::miExitClick(TObject *Sender)
|
|
{
|
|
Close();
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TViewNestedBandsDemoMainForm:: miNestedBandsClick(TObject *Sender)
|
|
{
|
|
((TMenuItem*)Sender)->Checked = !((TMenuItem*)Sender)->Checked;
|
|
AdjustNestedBands(((TMenuItem*)Sender)->Checked);
|
|
bvOrders->OptionsCustomize->NestedBands =((TMenuItem*)Sender)->Checked;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TViewNestedBandsDemoMainForm:: miBandsQuickCustomizationClick(TObject *Sender)
|
|
{
|
|
((TMenuItem*)Sender)->Checked = !((TMenuItem*)Sender)->Checked;
|
|
bvOrders->OptionsCustomize->BandsQuickCustomization =((TMenuItem*)Sender)->Checked;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TViewNestedBandsDemoMainForm:: miColumnsQuickCustomizationClick(TObject *Sender)
|
|
{
|
|
((TMenuItem*)Sender)->Checked = !((TMenuItem*)Sender)->Checked;
|
|
bvOrders->OptionsCustomize->ColumnsQuickCustomization =((TMenuItem*)Sender)->Checked;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void __fastcall TViewNestedBandsDemoMainForm:: miCellMergingClick(TObject *Sender)
|
|
{
|
|
((TMenuItem*)Sender)->Checked = !((TMenuItem*)Sender)->Checked;
|
|
AdjustCellMerging(((TMenuItem*)Sender)->Checked);
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void TViewNestedBandsDemoMainForm::AddNestedBandInfo(TcxGridBand *ABand)
|
|
{
|
|
FNestedBands->Add(new TcxNestedBandInfo(ABand));
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void TViewNestedBandsDemoMainForm::AdjustCellMerging(bool AUseCelMerging)
|
|
{
|
|
bvOrders->BeginUpdate();
|
|
try{
|
|
clnCustomerID->Options->CellMerging = AUseCelMerging;
|
|
clnOrdersProductID->Options->CellMerging = AUseCelMerging;
|
|
clnPurchaseDate->Options->CellMerging = AUseCelMerging;
|
|
clnPaymentType->Options->CellMerging = AUseCelMerging;
|
|
clnCustomerCompany->Options->CellMerging = AUseCelMerging;
|
|
clnCustomerAddres->Options->CellMerging = AUseCelMerging;
|
|
clnCustomerFax->Options->CellMerging = AUseCelMerging;
|
|
clnCustomerPhone->Options->CellMerging = AUseCelMerging;
|
|
clnCustomerOccupation->Options->CellMerging = AUseCelMerging;
|
|
clnCustomerZipCode->Options->CellMerging = AUseCelMerging;
|
|
clnCarCyl->Options->CellMerging = AUseCelMerging;
|
|
clnCarHP->Options->CellMerging = AUseCelMerging;
|
|
clnCarLiter->Options->CellMerging = AUseCelMerging;
|
|
clnCarMPG_City->Options->CellMerging = AUseCelMerging;
|
|
clnCarMPG_Highway->Options->CellMerging = AUseCelMerging;
|
|
clnCarTransMissAuto->Options->CellMerging = AUseCelMerging;
|
|
clnCarTransmissSpeedCount->Options->CellMerging = AUseCelMerging;
|
|
}
|
|
__finally{
|
|
bvOrders->EndUpdate();
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void TViewNestedBandsDemoMainForm::AdjustNestedBands(bool AUseNestedBands)
|
|
{
|
|
if (AUseNestedBands)
|
|
ShowNestedBands();
|
|
else
|
|
HideNestedBands();
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void TViewNestedBandsDemoMainForm::ChangeBandVisibility(int AIndex, bool AVisible)
|
|
{
|
|
bvOrders->Bands->Items[AIndex]->Visible = AVisible;
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void TViewNestedBandsDemoMainForm::HideNestedBands()
|
|
{
|
|
ReleaseNestedBandInfos();
|
|
bvOrders->BeginUpdate();
|
|
try{
|
|
for (int I = 0; I < bvOrders->Bands->Count; I++)
|
|
if (bvOrders->Bands->Items[I]->Position->BandIndex != -1){
|
|
AddNestedBandInfo(bvOrders->Bands->Items[I]);
|
|
ChangeBandVisibility(bvOrders->Bands->Items[I]->Position->BandIndex, false);
|
|
bvOrders->Bands->Items[I]->Caption =
|
|
bvOrders->Bands->Items[bvOrders->Bands->Items[I]->Position->BandIndex]->Caption + "'s " +
|
|
bvOrders->Bands->Items[I]->Caption;
|
|
bvOrders->Bands->Items[I]->Position->BandIndex = -1;
|
|
}
|
|
}
|
|
__finally{
|
|
bvOrders->EndUpdate();
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void TViewNestedBandsDemoMainForm::ReleaseNestedBandInfos()
|
|
{
|
|
for (int I = 0; I < FNestedBands->Count; I++)
|
|
if (FNestedBands->Items[I] != NULL)
|
|
delete (TcxNestedBandInfo*)FNestedBands->Items[I];
|
|
FNestedBands->Clear();
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
void TViewNestedBandsDemoMainForm::ShowNestedBands()
|
|
{
|
|
bvOrders->BeginUpdate();
|
|
try{
|
|
for (int I = 0; I < FNestedBands->Count; I++)
|
|
if (FNestedBands->Items[I] != NULL){
|
|
((TcxNestedBandInfo*)FNestedBands->Items[I])->RestoreBand();
|
|
ChangeBandVisibility(
|
|
((TcxNestedBandInfo*)FNestedBands->Items[I])->ParentBand->Index, true);
|
|
}
|
|
ReleaseNestedBandInfos();
|
|
}
|
|
__finally{
|
|
bvOrders->EndUpdate();
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
|
|
|