git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@82 c93665c3-c93d-084d-9b98-7d5f4a9c3376
404 lines
13 KiB
ObjectPascal
404 lines
13 KiB
ObjectPascal
unit uViewInfVentasArticuloGrid;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||
Dialogs, uViewInformeBaseGrid, DB, uDADataTable, cxStyles, cxCustomData,
|
||
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData,
|
||
cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView,
|
||
cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid,
|
||
cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap,
|
||
dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns,
|
||
dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg,
|
||
cxDropDownEdit, StdCtrls, cxSpinEdit;
|
||
|
||
type
|
||
IViewInfVentasArticuloGrid = interface(IViewInformeBaseGrid)
|
||
['{5B66E9E4-4789-4ECE-99EF-337A52D10460}']
|
||
end;
|
||
|
||
TfrViewInfVentasArticuloGrid = class(TfrViewInformeBaseGrid, IViewInfVentasArticuloGrid)
|
||
cxGrid: TcxGrid;
|
||
cxGridView: TcxGridDBTableView;
|
||
cxGridLevel: TcxGridLevel;
|
||
cxStyleRepository1: TcxStyleRepository;
|
||
cxStyleRed: TcxStyle;
|
||
cxStyleBlue: TcxStyle;
|
||
cxStyleFilterBox: TcxStyle;
|
||
cxGridViewRecID: TcxGridDBColumn;
|
||
cxGridViewID_FACTURA: TcxGridDBColumn;
|
||
cxGridViewID_EMPRESA: TcxGridDBColumn;
|
||
cxGridViewREFERENCIA_FACTURA: TcxGridDBColumn;
|
||
cxGridViewFECHA_FACTURA: TcxGridDBColumn;
|
||
cxGridViewIMPORTE_TOTAL_FACTURA: TcxGridDBColumn;
|
||
cxGridViewID_COMISION_FACTURA: TcxGridDBColumn;
|
||
cxGridViewID_ARTICULO: TcxGridDBColumn;
|
||
cxGridViewFAMILIA: TcxGridDBColumn;
|
||
cxGridViewREFERENCIA: TcxGridDBColumn;
|
||
cxGridViewREFERENCIA_PROV: TcxGridDBColumn;
|
||
cxGridViewDESCRIPCION: TcxGridDBColumn;
|
||
cxGridViewCOMISIONABLE: TcxGridDBColumn;
|
||
cxGridViewINVENTARIABLE: TcxGridDBColumn;
|
||
cxGridViewPRECIO_COSTE: TcxGridDBColumn;
|
||
cxGridViewDESCUENTO_PROVEEDOR: TcxGridDBColumn;
|
||
cxGridViewPRECIO_NETO: TcxGridDBColumn;
|
||
cxGridViewPRECIO_PORTE: TcxGridDBColumn;
|
||
cxGridViewCANTIDAD: TcxGridDBColumn;
|
||
cxGridViewIMPORTE_UNIDAD: TcxGridDBColumn;
|
||
cxGridViewDESCUENTO_CLIENTE: TcxGridDBColumn;
|
||
cxGridViewIMPORTE_TOTAL: TcxGridDBColumn;
|
||
cxGridViewNIF_CIF_PROVEEDOR: TcxGridDBColumn;
|
||
cxGridViewNOMBRE_PROVEEDOR: TcxGridDBColumn;
|
||
cxGridViewCALLE_PROVEEDOR: TcxGridDBColumn;
|
||
cxGridViewPOBLACION_PROVEEDOR: TcxGridDBColumn;
|
||
cxGridViewPROVINCIA_PROVEEDOR: TcxGridDBColumn;
|
||
cxGridViewNIF_CIF_CLIENTE: TcxGridDBColumn;
|
||
cxGridViewNOMBRE_CLIENTE: TcxGridDBColumn;
|
||
cxGridViewNOMBRE_COMERCIAL_CLIENTE: TcxGridDBColumn;
|
||
cxGridViewCALLE_CLIENTE: TcxGridDBColumn;
|
||
cxGridViewPOBLACION_CLIENTE: TcxGridDBColumn;
|
||
cxGridViewPROVINCIA_CLIENTE: TcxGridDBColumn;
|
||
cxGridViewNIF_CIF_AGENTE: TcxGridDBColumn;
|
||
cxGridViewNOMBRE_AGENTE: TcxGridDBColumn;
|
||
cxGridViewCALLE_AGENTE: TcxGridDBColumn;
|
||
cxGridViewPOBLACION_AGENTE: TcxGridDBColumn;
|
||
cxGridViewPROVINCIA_AGENTE: TcxGridDBColumn;
|
||
cxGridViewCOMISION_AGENTE: TcxGridDBColumn;
|
||
cxGridViewIMPORTE_COMISION_AGENTE: TcxGridDBColumn;
|
||
procedure cxGridViewStylesGetContentStyle(
|
||
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
|
||
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
|
||
procedure cxGridViewColumnPosChanged(Sender: TcxGridTableView;
|
||
AColumn: TcxGridColumn);
|
||
procedure cxGridViewColumnSizeChanged(Sender: TcxGridTableView;
|
||
AColumn: TcxGridColumn);
|
||
procedure cxGridViewDataControllerGroupingChanged(Sender: TObject);
|
||
procedure cxGridViewDataControllerSortingChanged(Sender: TObject);
|
||
procedure cxGridViewDataControllerSummaryAfterSummary(
|
||
ASender: TcxDataSummary);
|
||
// procedure cxGridViewCENTROPropertiesInitPopup(Sender: TObject);
|
||
// procedure cxGridViewVENDEDORPropertiesInitPopup(Sender: TObject);
|
||
// procedure cxGridViewPRODUCTOPropertiesInitPopup(Sender: TObject);
|
||
procedure cxGridViewDataControllerFilterChanged(Sender: TObject);
|
||
// procedure cxGridViewDIASEMANAPropertiesInitPopup(Sender: TObject);
|
||
// procedure cxGridViewMESPropertiesInitPopup(Sender: TObject);
|
||
// procedure cxGridViewGRUPOPRODUCTOPropertiesInitPopup(Sender: TObject);
|
||
// procedure cxGridViewTIPOPRODUCTOPropertiesInitPopup(Sender: TObject);
|
||
// procedure cxGridViewCOLECCIONPropertiesInitPopup(Sender: TObject);
|
||
procedure cxGridViewDataControllerCompare(
|
||
ADataController: TcxCustomDataController; ARecordIndex1,
|
||
ARecordIndex2, AItemIndex: Integer; const V1, V2: Variant;
|
||
var Compare: Integer);
|
||
protected
|
||
procedure ActivarEventos; override;
|
||
procedure DesactivarEventos; override;
|
||
function GetFocusedView : TcxGridDBTableView; override;
|
||
public
|
||
procedure Refresh; override;
|
||
constructor Create(AOwner: TComponent); override;
|
||
end;
|
||
|
||
implementation
|
||
|
||
uses
|
||
cxVariants, uDateUtils;
|
||
|
||
{$R *.dfm}
|
||
|
||
{ TfrInfVentasArticuloGrid }
|
||
|
||
function TfrViewInfVentasArticuloGrid.GetFocusedView: TcxGridDBTableView;
|
||
begin
|
||
Result := cxGridView;
|
||
end;
|
||
|
||
procedure TfrViewInfVentasArticuloGrid.Refresh;
|
||
var
|
||
FocusedRow, TopRow : Integer;
|
||
begin
|
||
inherited;
|
||
{ Refrescar las filas del grid a partir del dataset y colocar la fila
|
||
seleccionada donde estaba }
|
||
if FocusedView.DataController.DataSource.DataSet.State = dsBrowse then
|
||
begin
|
||
TopRow := FocusedView.Controller.TopRowIndex;
|
||
FocusedRow := FocusedView.DataController.FocusedRowIndex;
|
||
|
||
FocusedView.DataController.UpdateItems(False); // <- Refresco
|
||
|
||
FocusedView.DataController.FocusedRowIndex := FocusedRow;
|
||
FocusedView.Controller.TopRowIndex := TopRow;
|
||
|
||
{ Esta chapuzilla es para que se rellenen los combobox de los filtros
|
||
por que el cxFilterControl no coge los valores la 1<> vez si los
|
||
combos est<73>n vac<61>os. }
|
||
{ TcxComboBoxProperties(cxGridViewPRODUCTO.Properties).OnInitPopup(nil);
|
||
TcxComboBoxProperties(cxGridViewCENTRO.Properties).OnInitPopup(nil);
|
||
TcxComboBoxProperties(cxGridViewVENDEDOR.Properties).OnInitPopup(nil);
|
||
TcxComboBoxProperties(cxGridViewDIASEMANA.Properties).OnInitPopup(nil);
|
||
TcxComboBoxProperties(cxGridViewMES.Properties).OnInitPopup(nil);
|
||
TcxComboBoxProperties(cxGridViewGRUPOPRODUCTO.Properties).OnInitPopup(nil);
|
||
TcxComboBoxProperties(cxGridViewTIPOPRODUCTO.Properties).OnInitPopup(nil);
|
||
TcxComboBoxProperties(cxGridViewCOLECCION.Properties).OnInitPopup(nil);
|
||
}
|
||
end;
|
||
end;
|
||
|
||
procedure TfrViewInfVentasArticuloGrid.cxGridViewStylesGetContentStyle(
|
||
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
|
||
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
|
||
var
|
||
AColumn : TcxGridDBColumn;
|
||
AFecha : TDateTime;
|
||
begin
|
||
inherited;
|
||
|
||
// La fila es la cabecera de un grupo
|
||
{ if ARecord.Expandable then
|
||
Exit;
|
||
|
||
AColumn := FocusedView.GetColumnByFieldName('FECHA');
|
||
if Assigned(AColumn) and (AColumn.Visible) then
|
||
begin
|
||
try
|
||
AFecha := VarToDateTime(ARecord.Values[AColumn.Index]);
|
||
except
|
||
on Exception do
|
||
ShowMessage(VarToStr(ARecord.Values[AColumn.Index]));
|
||
end;
|
||
|
||
if DaysBetween(Now, AFecha) > 14 then
|
||
AStyle := cxStyleRed
|
||
else
|
||
if DaysBetween(Now, AFecha) > 7 then
|
||
AStyle := cxStyleBlue
|
||
end; }
|
||
end;
|
||
|
||
procedure TfrViewInfVentasArticuloGrid.cxGridViewColumnPosChanged(
|
||
Sender: TcxGridTableView; AColumn: TcxGridColumn);
|
||
begin
|
||
inherited;
|
||
if Assigned(FOnViewChanged) then
|
||
FOnViewChanged(Self);
|
||
end;
|
||
|
||
procedure TfrViewInfVentasArticuloGrid.cxGridViewColumnSizeChanged(
|
||
Sender: TcxGridTableView; AColumn: TcxGridColumn);
|
||
begin
|
||
inherited;
|
||
if Assigned(FOnViewChanged) then
|
||
FOnViewChanged(Self);
|
||
end;
|
||
|
||
procedure TfrViewInfVentasArticuloGrid.cxGridViewDataControllerGroupingChanged(
|
||
Sender: TObject);
|
||
begin
|
||
inherited;
|
||
if Assigned(FOnViewChanged) then
|
||
FOnViewChanged(Self);
|
||
end;
|
||
|
||
procedure TfrViewInfVentasArticuloGrid.cxGridViewDataControllerSortingChanged(
|
||
Sender: TObject);
|
||
begin
|
||
inherited;
|
||
if Assigned(FOnViewChanged) then
|
||
FOnViewChanged(Self);
|
||
end;
|
||
|
||
procedure TfrViewInfVentasArticuloGrid.cxGridViewDataControllerSummaryAfterSummary(
|
||
ASender: TcxDataSummary);
|
||
begin
|
||
inherited;
|
||
if Assigned(FOnViewChanged) then
|
||
FOnViewChanged(Self);
|
||
end;
|
||
|
||
{
|
||
procedure TfrViewInfVentasArticuloGrid.cxGridViewCENTROPropertiesInitPopup(
|
||
Sender: TObject);
|
||
begin
|
||
inherited;
|
||
with TcxComboBoxProperties(cxGridViewCENTRO.Properties) do
|
||
begin
|
||
Items.Clear;
|
||
Items.AddStrings(FilterValueList[cxGridViewCENTRO.Index]);
|
||
Items.Delete(1); // "Personalizado"
|
||
Items.Delete(0); // "Todos"
|
||
end;
|
||
end;
|
||
|
||
procedure TfrViewInfVentasArticuloGrid.cxGridViewVENDEDORPropertiesInitPopup(
|
||
Sender: TObject);
|
||
begin
|
||
inherited;
|
||
with TcxComboBoxProperties(cxGridViewVENDEDOR.Properties) do
|
||
begin
|
||
Items.Clear;
|
||
Items.AddStrings(FilterValueList[cxGridViewVENDEDOR.Index]);
|
||
Items.Delete(1); // "Personalizado"
|
||
Items.Delete(0); // "Todos"
|
||
end;
|
||
end;
|
||
|
||
procedure TfrViewInfVentasArticuloGrid.cxGridViewPRODUCTOPropertiesInitPopup(
|
||
Sender: TObject);
|
||
begin
|
||
inherited;
|
||
with TcxComboBoxProperties(cxGridViewPRODUCTO.Properties) do
|
||
begin
|
||
Items.Clear;
|
||
Items.AddStrings(FilterValueList[cxGridViewPRODUCTO.Index]);
|
||
Items.Delete(1); // "Personalizado"
|
||
Items.Delete(0); // "Todos"
|
||
end;
|
||
end;
|
||
}
|
||
|
||
procedure TfrViewInfVentasArticuloGrid.cxGridViewDataControllerFilterChanged(
|
||
Sender: TObject);
|
||
begin
|
||
if Assigned(FOnFilterChanged) then
|
||
FOnFilterChanged(Self);
|
||
end;
|
||
|
||
constructor TfrViewInfVentasArticuloGrid.Create(AOwner: TComponent);
|
||
begin
|
||
inherited;
|
||
end;
|
||
|
||
procedure TfrViewInfVentasArticuloGrid.ActivarEventos;
|
||
begin
|
||
inherited;
|
||
with cxGridView do
|
||
begin
|
||
DataController.Filter.OnChanged := cxGridViewDataControllerFilterChanged;
|
||
DataController.Summary.OnAfterSummary := cxGridViewDataControllerSummaryAfterSummary;
|
||
DataController.OnGroupingChanged := cxGridViewDataControllerGroupingChanged;
|
||
DataController.OnSortingChanged := cxGridViewDataControllerSortingChanged;
|
||
OnColumnPosChanged := cxGridViewColumnPosChanged;
|
||
OnColumnSizeChanged := cxGridViewColumnSizeChanged;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrViewInfVentasArticuloGrid.DesactivarEventos;
|
||
begin
|
||
inherited;
|
||
with cxGridView do
|
||
begin
|
||
DataController.Filter.OnChanged := nil;
|
||
DataController.Summary.OnAfterSummary := nil;
|
||
DataController.OnGroupingChanged := nil;
|
||
DataController.OnSortingChanged := nil;
|
||
OnColumnPosChanged := nil;
|
||
OnColumnSizeChanged := nil;
|
||
end;
|
||
end;
|
||
|
||
{
|
||
procedure TfrViewInfVentasArticuloGrid.cxGridViewDIASEMANAPropertiesInitPopup(
|
||
Sender: TObject);
|
||
begin
|
||
inherited;
|
||
with TcxComboBoxProperties(cxGridViewDIASEMANA.Properties) do
|
||
begin
|
||
Items.Clear;
|
||
Items.AddStrings(FilterValueList[cxGridViewDIASEMANA.Index]);
|
||
Items.Delete(1); // "Personalizado"
|
||
Items.Delete(0); // "Todos"
|
||
end;
|
||
end;
|
||
}
|
||
|
||
{
|
||
procedure TfrViewInfVentasArticuloGrid.cxGridViewMESPropertiesInitPopup(
|
||
Sender: TObject);
|
||
begin
|
||
inherited;
|
||
with TcxComboBoxProperties(cxGridViewMES.Properties) do
|
||
begin
|
||
Items.Clear;
|
||
Items.AddStrings(FilterValueList[cxGridViewMES.Index]);
|
||
Items.Delete(1); // "Personalizado"
|
||
Items.Delete(0); // "Todos"
|
||
end;
|
||
end;
|
||
|
||
procedure TfrViewInfVentasArticuloGrid.cxGridViewGRUPOPRODUCTOPropertiesInitPopup(
|
||
Sender: TObject);
|
||
begin
|
||
inherited;
|
||
with TcxComboBoxProperties(cxGridViewGRUPOPRODUCTO.Properties) do
|
||
begin
|
||
Items.Clear;
|
||
Items.AddStrings(FilterValueList[cxGridViewGRUPOPRODUCTO.Index]);
|
||
Items.Delete(1); // "Personalizado"
|
||
Items.Delete(0); // "Todos"
|
||
end;
|
||
end;
|
||
|
||
procedure TfrViewInfVentasArticuloGrid.cxGridViewTIPOPRODUCTOPropertiesInitPopup(
|
||
Sender: TObject);
|
||
begin
|
||
inherited;
|
||
with TcxComboBoxProperties(cxGridViewTIPOPRODUCTO.Properties) do
|
||
begin
|
||
Items.Clear;
|
||
Items.AddStrings(FilterValueList[cxGridViewTIPOPRODUCTO.Index]);
|
||
Items.Delete(1); // "Personalizado"
|
||
Items.Delete(0); // "Todos"
|
||
end;
|
||
end;
|
||
|
||
procedure TfrViewInfVentasArticuloGrid.cxGridViewCOLECCIONPropertiesInitPopup(
|
||
Sender: TObject);
|
||
begin
|
||
inherited;
|
||
with TcxComboBoxProperties(cxGridViewCOLECCION.Properties) do
|
||
begin
|
||
Items.Clear;
|
||
Items.AddStrings(FilterValueList[cxGridViewCOLECCION.Index]);
|
||
Items.Delete(1); // "Personalizado"
|
||
Items.Delete(0); // "Todos"
|
||
end;
|
||
end;
|
||
}
|
||
|
||
procedure TfrViewInfVentasArticuloGrid.cxGridViewDataControllerCompare(
|
||
ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
|
||
AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
|
||
var
|
||
AValue1,
|
||
AValue2 : Variant;
|
||
begin
|
||
// Por defecto
|
||
{
|
||
Compare := VarCompare(V1, V2);
|
||
try
|
||
if (AItemIndex = cxGridViewDIASEMANA.Index) then
|
||
begin
|
||
AValue1 := ADataController.Values[ARecordIndex1, cxGridViewDIASEMANA.Index];
|
||
AValue2 := ADataController.Values[ARecordIndex2, cxGridViewDIASEMANA.Index];
|
||
if (not VarIsNull(AValue1)) and (not VarIsNull(AValue2)) then
|
||
Compare := VarCompare(NumberDayOfTheWeek(AValue1), NumberDayOfTheWeek(AValue2))
|
||
end
|
||
else begin
|
||
if (AItemIndex = cxGridViewMES.Index) then
|
||
begin
|
||
AValue1 := ADataController.Values[ARecordIndex1, cxGridViewMES.Index];
|
||
AValue2 := ADataController.Values[ARecordIndex2, cxGridViewMES.Index];
|
||
if (not VarIsNull(AValue1)) and (not VarIsNull(AValue2)) then
|
||
Compare := VarCompare(NumberMonthOfTheYear(AValue1), NumberMonthOfTheYear(AValue2))
|
||
end
|
||
end;
|
||
except
|
||
//ShowMessage(VarToStr(ARecordIndex1) + ' ' + VarToStr(ARecordIndex1));
|
||
end;
|
||
}
|
||
end;
|
||
|
||
end.
|
||
|