| Class Tfrmxtab (unit cross32) |
TForm
| Constructors |
| Functions |
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure QRBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
procedure QRSubDetail2BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
procedure QuickRep1BeforePrint(Sender: TQuickRep;
var PrintReport: Boolean);| Properties |
| Events |
| Variables |
QRBand1 : TQRBand;
QRDBText1 : TQRDBText;
QRDBText2 : TQRDBText;
QRGroup1 : TQRGroup;
QRLabel1 : TQRLabel;
QRLabel2 : TQRLabel;
QRLabel3 : TQRLabel;
QRLabel4 : TQRLabel;
QRLabel5 : TQRLabel;
QRLabel6 : TQRLabel;
QRMemo1 : TQRMemo;
QRSubDetail1 : TQRSubDetail;
QRSubDetail2 : TQRSubDetail;
Query1 : TQuery;
Query1Customers : TIntegerField;
Query1State : TStringField;
QuickRep1 : TQuickRep;
TitleBand1 : TQRBand;
Matrix : array [1..50,1..2] of string;
qrlCustomers : array [0..10] of TQRLabel;
qrlStates : array [0..10] of TQRLabel;
Row : integer;| Constructors |
| Functions |
procedure FormCreate(Sender: TObject);Now we "rotate" the data to ouput the crosstab report
procedure FormDestroy(Sender: TObject);
procedure QRBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
procedure QRSubDetail2BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
procedure QuickRep1BeforePrint(Sender: TQuickRep;
var PrintReport: Boolean);Now we fill our array, each state gets it's own row. We are basicly building a copy of the dataset in memory, because it's faster to navigate the array when dong a crosstab report.
| Properties |
| Events |
| Variables |
QRBand1 : TQRBand;
QRDBText1 : TQRDBText;
QRDBText2 : TQRDBText;
QRGroup1 : TQRGroup;
QRLabel1 : TQRLabel;
QRLabel2 : TQRLabel;
QRLabel3 : TQRLabel;
QRLabel4 : TQRLabel;
QRLabel5 : TQRLabel;
QRLabel6 : TQRLabel;
QRMemo1 : TQRMemo;
QRSubDetail1 : TQRSubDetail;
QRSubDetail2 : TQRSubDetail;
Query1 : TQuery;
Query1Customers : TIntegerField;
Query1State : TStringField;
QuickRep1 : TQuickRep;
TitleBand1 : TQRBand;
Matrix : array [1..50,1..2] of string;Public declarations } { Define a matix array for 50 states with 2 columns
qrlCustomers : array [0..10] of TQRLabel;
qrlStates : array [0..10] of TQRLabel;
Row : integer;