cxgrid view banded
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
cxgrid view banded
Merhaba arkadaşlar
hepinize kolay gelsin..
formda aradım ama bulamadım.. demolarda var ama incelediğim halde birşey anlamadım..
sorunum cxgridDBBandedTable view kullanarak görüntülerdiğim tablonun istediğim alanlarını tablonun altında bir banda toplamlarını yazmakk
yanı tabloda alacak ve borc fieldları var bunların toplamını en altta yazmak istiyorum
teşekkur ederim.. saygılarımla..
hepinize kolay gelsin..
formda aradım ama bulamadım.. demolarda var ama incelediğim halde birşey anlamadım..
sorunum cxgridDBBandedTable view kullanarak görüntülerdiğim tablonun istediğim alanlarını tablonun altında bir banda toplamlarını yazmakk
yanı tabloda alacak ve borc fieldları var bunların toplamını en altta yazmak istiyorum
teşekkur ederim.. saygılarımla..
cxGrid1DBBandedTableView1.DataController.Summary.OnAfterSummary eventine kod yazman gerekiyor. Ben kendi yazdığım örnek bir kodu gönderiyorum. Onu inceleyerek sen de kendine göre kod yazabilirsin:
İyi çalışmalar...
Kod: Tümünü seç
procedure TMyMainDataEntranceForm.cxGrid1DBBandedTableView1DataControllerSummaryAfterSummary(
ASender: TcxDataSummary);
var
I, J: Integer;
Fmt: string;
begin
try
if not Assigned(DataSource1.DataSet) then Exit;
if not DataSource1.DataSet.Active then Exit;
for I := 0 to ASender.FooterSummaryItems.Count - 1 do
try
Fmt := '#,#0';
if TcxGridDBBandedColumn(ASender.FooterSummaryItems[I].ItemLink).DataBinding.FieldName <> '' then
if (TheFormatFloatStr <> '') and (TcxGridDBBandedColumn(ASender.FooterSummaryItems[I].ItemLink).DataBinding.Field.DataType in [ftFloat, ftCurrency, ftBCD, ftFMTBcd]) then
begin
if MyDividePrecision <> 0 then
try
ASender.FooterSummaryValues[I] := StrToFloat(ASender.FooterSummaryValues[I]) * IntPower(10, -MyDividePrecision);
except
on Ex: Exception do AddErrorMessageForProgrammer('cxGrid1DBBandedTableView1DataControllerSummaryAfterSummary', Ex.Message);
end;
Fmt := TheFormatFloatStr;
end;
if TcxGridDBBandedColumn(ASender.FooterSummaryItems[I].ItemLink).DataBinding.FieldName = '' then
if (TheFormatFloatStr <> '') and ((TcxGridDBBandedColumn(ASender.FooterSummaryItems[I].ItemLink).DataBinding.ValueTypeClass = TcxFloatValueType) or
(TcxGridDBBandedColumn(ASender.FooterSummaryItems[I].ItemLink).DataBinding.ValueTypeClass = TcxFMTBcdValueType)) then
begin
if MyDividePrecision <> 0 then
try
ASender.FooterSummaryValues[I] := StrToFloat(ASender.FooterSummaryValues[I]) * IntPower(10, -MyDividePrecision);
except
on Ex: Exception do AddErrorMessageForProgrammer('cxGrid1DBBandedTableView1DataControllerSummaryAfterSummary', Ex.Message);
end;
Fmt := TheFormatFloatStr;
end;
case ASender.FooterSummaryItems[I].Kind of
skSum : ASender.FooterSummaryItems[I].Format := Fmt;
skMin : ASender.FooterSummaryItems[I].Format := 'Mn ' + Fmt;
skMax : ASender.FooterSummaryItems[I].Format := 'Mx ' + Fmt;
skAverage: ASender.FooterSummaryItems[I].Format := 'Av ' + Fmt;
else
ASender.FooterSummaryItems[I].Format := 'Ct #,#0';
end;
except
on Ex: Exception do AddErrorMessageForProgrammer('cxGrid1DBBandedTableView1DataControllerSummaryAfterSummary', Ex.Message);
end;
for I := 0 to ASender.DefaultGroupSummaryItems.Count - 1 do
try
Fmt := '#,#0';
if TcxGridDBBandedColumn(ASender.DefaultGroupSummaryItems[I].ItemLink).DataBinding.FieldName <> '' then
if TcxGridDBBandedColumn(ASender.DefaultGroupSummaryItems[I].ItemLink).DataBinding.Field.DataType in [ftFloat, ftCurrency, ftBCD, ftFMTBcd] then
begin
if MyDividePrecision <> 0 then
try
with cxGrid1DBBandedTableView1.DataController.Groups do
for J := 0 to ChildCount[-1] do ASender.GroupSummaryValues[J, I] := StrToFloat(ASender.GroupSummaryValues[J, I]) * IntPower(10, -MyDividePrecision);
except
on Ex: Exception do AddErrorMessageForProgrammer('cxGrid1DBBandedTableView1DataControllerSummaryAfterSummary', Ex.Message);
end;
Fmt := TheFormatFloatStr;
end;
if TcxGridDBBandedColumn(ASender.DefaultGroupSummaryItems[I].ItemLink).DataBinding.FieldName = '' then
if (TcxGridDBBandedColumn(ASender.DefaultGroupSummaryItems[I].ItemLink).DataBinding.ValueTypeClass = TcxFloatValueType) or
(TcxGridDBBandedColumn(ASender.DefaultGroupSummaryItems[I].ItemLink).DataBinding.ValueTypeClass = TcxFMTBcdValueType) then
begin
if MyDividePrecision <> 0 then
try
with cxGrid1DBBandedTableView1.DataController.Groups do
for J := 0 to ChildCount[-1] do ASender.GroupSummaryValues[J, I] := StrToFloat(ASender.GroupSummaryValues[J, I]) * IntPower(10, -MyDividePrecision);
except
on Ex: Exception do AddErrorMessageForProgrammer('cxGrid1DBBandedTableView1DataControllerSummaryAfterSummary', Ex.Message);
end;
Fmt := TheFormatFloatStr;
end;
case ASender.DefaultGroupSummaryItems[I].Kind of
skSum : ASender.DefaultGroupSummaryItems[I].Format := Fmt;
skMin : ASender.DefaultGroupSummaryItems[I].Format := 'Mn ' + Fmt;
skMax : ASender.DefaultGroupSummaryItems[I].Format := 'Mx ' + Fmt;
skAverage: ASender.DefaultGroupSummaryItems[I].Format := 'Av ' + Fmt;
else
ASender.DefaultGroupSummaryItems[I].Format := 'Ct #,#0';
end;
except
on Ex: Exception do AddErrorMessageForProgrammer('cxGrid1DBBandedTableView1DataControllerSummaryAfterSummary', Ex.Message);
end;
except
on Ex: Exception do MeX('cxGrid1DBBandedTableView1DataControllerSummaryAfterSummary: ' + Ex.Message);
end;
end;