Arreglo de cálculo de porcentaje de márgenes en informe de margen por artículo.
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@253 c93665c3-c93d-084d-9b98-7d5f4a9c3376
This commit is contained in:
parent
762c3c5ddb
commit
b8e251ab7e
@ -1,17 +1,19 @@
|
|||||||
inherited frViewInfMargenArticuloGrid: TfrViewInfMargenArticuloGrid
|
inherited frViewInfMargenArticuloGrid: TfrViewInfMargenArticuloGrid
|
||||||
Width = 583
|
Width = 774
|
||||||
Height = 378
|
Height = 480
|
||||||
ExplicitWidth = 583
|
ExplicitWidth = 774
|
||||||
ExplicitHeight = 378
|
ExplicitHeight = 480
|
||||||
object cxGrid: TcxGrid [0]
|
object cxGrid: TcxGrid [0]
|
||||||
Left = 0
|
Left = 0
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 583
|
Width = 774
|
||||||
Height = 378
|
Height = 480
|
||||||
Align = alClient
|
Align = alClient
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
LookAndFeel.Kind = lfStandard
|
LookAndFeel.Kind = lfStandard
|
||||||
LookAndFeel.NativeStyle = True
|
LookAndFeel.NativeStyle = True
|
||||||
|
ExplicitWidth = 583
|
||||||
|
ExplicitHeight = 378
|
||||||
object cxGridView: TcxGridDBTableView
|
object cxGridView: TcxGridDBTableView
|
||||||
NavigatorButtons.ConfirmDelete = False
|
NavigatorButtons.ConfirmDelete = False
|
||||||
FilterBox.CustomizeDialog = False
|
FilterBox.CustomizeDialog = False
|
||||||
@ -20,6 +22,7 @@ inherited frViewInfMargenArticuloGrid: TfrViewInfMargenArticuloGrid
|
|||||||
DataController.Filter.OnChanged = cxGridViewDataControllerFilterChanged
|
DataController.Filter.OnChanged = cxGridViewDataControllerFilterChanged
|
||||||
DataController.KeyFieldNames = 'RecID'
|
DataController.KeyFieldNames = 'RecID'
|
||||||
DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText]
|
DataController.Options = [dcoAnsiSort, dcoAssignGroupingValues, dcoAssignMasterDetailKeys, dcoSaveExpanding, dcoSortByDisplayText]
|
||||||
|
DataController.Summary.DefaultGroupSummaryItems.OnSummary = cxGridViewDataControllerSummaryDefaultGroupSummaryItemsSummary
|
||||||
DataController.Summary.DefaultGroupSummaryItems = <
|
DataController.Summary.DefaultGroupSummaryItems = <
|
||||||
item
|
item
|
||||||
Format = ',0.00 %;-,0.00 %'
|
Format = ',0.00 %;-,0.00 %'
|
||||||
|
|||||||
@ -95,11 +95,15 @@ type
|
|||||||
AColumn: TcxGridColumn);
|
AColumn: TcxGridColumn);
|
||||||
procedure cxGridViewDataControllerGroupingChanged(Sender: TObject);
|
procedure cxGridViewDataControllerGroupingChanged(Sender: TObject);
|
||||||
procedure cxGridViewDataControllerSortingChanged(Sender: TObject);
|
procedure cxGridViewDataControllerSortingChanged(Sender: TObject);
|
||||||
procedure cxGridViewDataControllerSummaryAfterSummary(ASender: TcxDataSummary);
|
|
||||||
procedure cxGridViewDataControllerFilterChanged(Sender: TObject);
|
procedure cxGridViewDataControllerFilterChanged(Sender: TObject);
|
||||||
procedure cxGridViewDataControllerSummaryFooterSummaryItemsSummary(
|
procedure cxGridViewDataControllerSummaryFooterSummaryItemsSummary(
|
||||||
ASender: TcxDataSummaryItems; Arguments: TcxSummaryEventArguments;
|
ASender: TcxDataSummaryItems; Arguments: TcxSummaryEventArguments;
|
||||||
var OutArguments: TcxSummaryEventOutArguments);
|
var OutArguments: TcxSummaryEventOutArguments);
|
||||||
|
procedure cxGridViewDataControllerSummaryAfterSummary(
|
||||||
|
ASender: TcxDataSummary);
|
||||||
|
procedure cxGridViewDataControllerSummaryDefaultGroupSummaryItemsSummary(
|
||||||
|
ASender: TcxDataSummaryItems; Arguments: TcxSummaryEventArguments;
|
||||||
|
var OutArguments: TcxSummaryEventOutArguments);
|
||||||
protected
|
protected
|
||||||
procedure ActivarEventos; override;
|
procedure ActivarEventos; override;
|
||||||
procedure DesactivarEventos; override;
|
procedure DesactivarEventos; override;
|
||||||
@ -113,7 +117,7 @@ type
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
cxVariants, uDateUtils;
|
cxVariants, uDateUtils, cxGridDBDataDefinitions;
|
||||||
|
|
||||||
{$R *.dfm}
|
{$R *.dfm}
|
||||||
|
|
||||||
@ -230,12 +234,76 @@ end;
|
|||||||
|
|
||||||
procedure TfrViewInfMargenArticuloGrid.cxGridViewDataControllerSummaryAfterSummary(
|
procedure TfrViewInfMargenArticuloGrid.cxGridViewDataControllerSummaryAfterSummary(
|
||||||
ASender: TcxDataSummary);
|
ASender: TcxDataSummary);
|
||||||
begin
|
|
||||||
inherited;
|
|
||||||
|
|
||||||
//
|
procedure CalcGropSummaries;
|
||||||
|
|
||||||
|
function Groups: TcxDataControllerGroups;
|
||||||
|
begin
|
||||||
|
Result := cxGridView.DataController.Groups;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure CalcGroupSummary(ADataGroupIndex: Integer);
|
||||||
|
var
|
||||||
|
V1, V2, AResult: Variant;
|
||||||
|
ASummaryItems: TcxDataSummaryItems;
|
||||||
|
begin
|
||||||
|
ASummaryItems := ASender.GroupSummaryItems[Groups.Level[ADataGroupIndex]];
|
||||||
|
|
||||||
|
V1 := ASender.GroupSummaryValues[ADataGroupIndex,
|
||||||
|
ASummaryItems.IndexOfItemLink(cxGridViewIMP_TOTAL)];
|
||||||
|
|
||||||
|
V2 := ASender.GroupSummaryValues[ADataGroupIndex,
|
||||||
|
ASummaryItems.IndexOfItemLink(cxGridViewIMP_MARGEN_PRO_COMP_TOTAL)];
|
||||||
|
|
||||||
|
AResult := 0;
|
||||||
|
|
||||||
|
if (V1 > 0) then
|
||||||
|
begin
|
||||||
|
AResult := (V2 * 100) / V1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
ASender.GroupSummaryValues[ADataGroupIndex,
|
||||||
|
ASummaryItems.IndexOfItemLink(cxGridViewPOR_MARGEN_PRO_COMP)] := AResult
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure CalcGroupSummariesByDataGroupIndex(ADataGroupIndex: Integer);
|
||||||
|
var
|
||||||
|
I: Integer;
|
||||||
|
begin
|
||||||
|
if Groups.Level[ADataGroupIndex] >= Groups.GroupingItemCount - 1 then
|
||||||
|
Exit;
|
||||||
|
for I := 0 to Groups.ChildCount[ADataGroupIndex] - 1 do
|
||||||
|
begin
|
||||||
|
CalcGroupSummary(Groups.ChildDataGroupIndex[ADataGroupIndex, I]);
|
||||||
|
CalcGroupSummariesByDataGroupIndex(Groups.ChildDataGroupIndex[ADataGroupIndex, I]);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
begin
|
||||||
|
CalcGroupSummariesByDataGroupIndex(-1);
|
||||||
|
end;
|
||||||
|
|
||||||
|
begin
|
||||||
|
if ASender.DataController.RecordCount > 0 then
|
||||||
|
begin
|
||||||
|
DesactivarEventos;
|
||||||
|
try
|
||||||
|
CalcGropSummaries;
|
||||||
|
finally
|
||||||
|
ActivarEventos;
|
||||||
if Assigned(FOnViewChanged) then
|
if Assigned(FOnViewChanged) then
|
||||||
FOnViewChanged(Self);
|
FOnViewChanged(Self);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfrViewInfMargenArticuloGrid.cxGridViewDataControllerSummaryDefaultGroupSummaryItemsSummary(
|
||||||
|
ASender: TcxDataSummaryItems; Arguments: TcxSummaryEventArguments;
|
||||||
|
var OutArguments: TcxSummaryEventOutArguments);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
if Arguments.SummaryItem.ItemLink = cxGridViewPOR_MARGEN_PRO_COMP then
|
||||||
|
OutArguments.Value := 111;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrViewInfMargenArticuloGrid.cxGridViewDataControllerSummaryFooterSummaryItemsSummary(
|
procedure TfrViewInfMargenArticuloGrid.cxGridViewDataControllerSummaryFooterSummaryItemsSummary(
|
||||||
@ -251,7 +319,7 @@ begin
|
|||||||
if cxGridViewIMP_TOTAL.Visible
|
if cxGridViewIMP_TOTAL.Visible
|
||||||
and cxGridViewIMP_MARGEN_PRO_COMP_TOTAL.Visible then
|
and cxGridViewIMP_MARGEN_PRO_COMP_TOTAL.Visible then
|
||||||
begin
|
begin
|
||||||
ACalculo:=0;
|
ACalculo := 0;
|
||||||
AIndex := ASender.IndexOfItemLink(cxGridViewIMP_MARGEN_PRO_COMP_TOTAL);
|
AIndex := ASender.IndexOfItemLink(cxGridViewIMP_MARGEN_PRO_COMP_TOTAL);
|
||||||
if not VarIsNull(cxGridView.DataController.Summary.FooterSummaryValues[AIndex]) then
|
if not VarIsNull(cxGridView.DataController.Summary.FooterSummaryValues[AIndex]) then
|
||||||
ACalculo := cxGridView.DataController.Summary.FooterSummaryValues[AIndex] * 100;
|
ACalculo := cxGridView.DataController.Summary.FooterSummaryValues[AIndex] * 100;
|
||||||
|
|||||||
Reference in New Issue
Block a user