1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
procedure Print();
var
AscFields, DescFields, S: string;
IndexPrint: string;
I: integer;
Index: integer;
cds: TClientDataSet;
begin
S := '';
AscFields := '';
DescFields := '';
IndexPrint := 'GoodsSaleReportIndex';
if (cxgrdbtvGoodsSaleReport.DataController.DataSource.DataSet is TClientDataSet) then
begin
Cds := cxgrdbtvGoodsSaleReport.DataController.DataSource.DataSet as TClientDataSet;
for I := 0 to cxgrdbtvGoodsSaleReport.SortedItemCount - 1 do
begin
Index := cxgrdbtvGoodsSaleReport.SortedItems[I].Index;
S := cxgrdbtvGoodsSaleReport.Columns[Index].DataBinding.Field.FieldName + ';';
AscFields := AscFields + S;
if cxgrdbtvGoodsSaleReport.SortedItems[I].SortOrder = soDescending then
DescFields := DescFields + S ;
end;
cds.IndexDefs.Update;
if cds.IndexDefs.IndexOf(IndexPrint) >= 0 then
begin
cds.DeleteIndex(IndexPrint);
end;
cds.AddIndex(IndexPrint, AscFields, [], DescFields);
cds.IndexName := IndexPrint;
end;
self.PrintReport();
end;
|