Varela_PuntosVenta/Source/Modulos/VentasProceso/Cliente/uViewControGridlVentaProceso.pas

355 lines
12 KiB
ObjectPascal
Raw Blame History

unit uViewControGridlVentaProceso;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewControlGrid, 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;
type
IViewControlGridVentaProceso = interface(IViewControlGrid)
['{537E8507-695E-4345-AAEE-F573C113A2CF}']
end;
TfrViewControlGridVentaProceso = class(TfrViewControlGrid, IViewControlGridVentaProceso)
cxGrid: TcxGrid;
cxGridView: TcxGridDBTableView;
cxGridViewFECHA: TcxGridDBColumn;
cxGridViewDIA: TcxGridDBColumn;
cxGridViewDIASEMANA: TcxGridDBColumn;
cxGridViewMES: TcxGridDBColumn;
cxGridViewANO: TcxGridDBColumn;
cxGridViewCENTRO: TcxGridDBColumn;
cxGridViewVENDEDOR: TcxGridDBColumn;
cxGridViewCODIGO: TcxGridDBColumn;
cxGridViewPRODUCTO: TcxGridDBColumn;
cxGridViewGRUPOPRODUCTO: TcxGridDBColumn;
cxGridViewTIPOPRODUCTO: TcxGridDBColumn;
cxGridViewCOLECCION: TcxGridDBColumn;
cxGridViewNUMTALON: TcxGridDBColumn;
cxGridViewCOLOR: TcxGridDBColumn;
cxGridViewTALLA: TcxGridDBColumn;
cxGridViewIMPORTE: TcxGridDBColumn;
cxGridViewINICIO: TcxGridDBColumn;
cxGridViewFINAL: TcxGridDBColumn;
cxGridLevel: TcxGridLevel;
cxStyleRepository1: TcxStyleRepository;
cxStyleRed: TcxStyle;
cxStyleBlue: TcxStyle;
cxStyleFilterBox: TcxStyle;
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 cxGridViewNUMTALONPropertiesInitPopup(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);
protected
procedure ActivarEventos; override;
procedure DesactivarEventos; override;
function GetFocusedView : TcxGridDBTableView; override;
public
procedure Refresh; override;
constructor Create(AOwner: TComponent); override;
end;
implementation
uses
cxVariants, DateUtils, uDataModuleVentasProceso;
{$R *.dfm}
{ TfrViewControlGridVentaProceso }
function TfrViewControlGridVentaProceso.GetFocusedView: TcxGridDBTableView;
begin
Result := cxGridView;
end;
procedure TfrViewControlGridVentaProceso.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(cxGridViewNUMTALON.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 TfrViewControlGridVentaProceso.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)
//Esta opci<63>n se a<>ade para evitar un error cuando fecha sea nula, en tal caso, comprobar la vista RDX_V_VENTASEDI_RESUELTAS
//porque esta devolviendo tuplas sin valor en la columna PRODUTO
and not VarIsNull(ARecord.Values[AColumn.Index]) 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 TfrViewControlGridVentaProceso.cxGridViewColumnPosChanged(
Sender: TcxGridTableView; AColumn: TcxGridColumn);
begin
inherited;
if Assigned(FOnViewChanged) then
FOnViewChanged(Self);
end;
procedure TfrViewControlGridVentaProceso.cxGridViewColumnSizeChanged(
Sender: TcxGridTableView; AColumn: TcxGridColumn);
begin
inherited;
if Assigned(FOnViewChanged) then
FOnViewChanged(Self);
end;
procedure TfrViewControlGridVentaProceso.cxGridViewDataControllerGroupingChanged(
Sender: TObject);
begin
inherited;
if Assigned(FOnViewChanged) then
FOnViewChanged(Self);
end;
procedure TfrViewControlGridVentaProceso.cxGridViewDataControllerSortingChanged(
Sender: TObject);
begin
inherited;
if Assigned(FOnViewChanged) then
FOnViewChanged(Self);
end;
procedure TfrViewControlGridVentaProceso.cxGridViewDataControllerSummaryAfterSummary(
ASender: TcxDataSummary);
begin
inherited;
if Assigned(FOnViewChanged) then
FOnViewChanged(Self);
end;
procedure TfrViewControlGridVentaProceso.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 TfrViewControlGridVentaProceso.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 TfrViewControlGridVentaProceso.cxGridViewNUMTALONPropertiesInitPopup(
Sender: TObject);
begin
inherited;
with TcxComboBoxProperties(cxGridViewNUMTALON.Properties) do
begin
Items.Clear;
Items.AddStrings(FilterValueList[cxGridViewNUMTALON.Index]);
Items.Delete(1); // "Personalizado"
Items.Delete(0); // "Todos"
end;
end;
procedure TfrViewControlGridVentaProceso.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 TfrViewControlGridVentaProceso.cxGridViewDataControllerFilterChanged(
Sender: TObject);
begin
if Assigned(FOnFilterChanged) then
FOnFilterChanged(Self);
end;
constructor TfrViewControlGridVentaProceso.Create(AOwner: TComponent);
begin
inherited;
end;
procedure TfrViewControlGridVentaProceso.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 TfrViewControlGridVentaProceso.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 TfrViewControlGridVentaProceso.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 TfrViewControlGridVentaProceso.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 TfrViewControlGridVentaProceso.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 TfrViewControlGridVentaProceso.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 TfrViewControlGridVentaProceso.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;
end.