145 lines
4.9 KiB
ObjectPascal
145 lines
4.9 KiB
ObjectPascal
|
|
unit uViewControGridResumenVentas;
|
|||
|
|
|
|||
|
|
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, cxSpinEdit, uViewGrid, cxMemo,
|
|||
|
|
cxEditRepositoryItems, uDAInterfaces;
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
IViewControlGridResumenVentas = interface(IViewGrid)
|
|||
|
|
['{E6D7FF0F-7E64-4E8C-8844-CAC011A62CDE}']
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
TfrViewControlGridResumenVentas = class(TfrViewGrid, IViewControlGridResumenVentas)
|
|||
|
|
dxComponentPrinterLink1: TdxGridReportLink;
|
|||
|
|
cxEditRepository1: TcxEditRepository;
|
|||
|
|
cxEditDia: TcxEditRepositoryTextItem;
|
|||
|
|
cxEditImporte: TcxEditRepositoryCurrencyItem;
|
|||
|
|
cxStyleDia: TcxStyle;
|
|||
|
|
cxStyleTotal: TcxStyle;
|
|||
|
|
cxStyleImporte: TcxStyle;
|
|||
|
|
procedure cxGridViewCustomDrawCell(Sender: TcxCustomGridTableView;
|
|||
|
|
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
|
|||
|
|
var ADone: Boolean);
|
|||
|
|
procedure dsDataSourceStateChange(Sender: TObject);
|
|||
|
|
private
|
|||
|
|
procedure LimpiarGrid;
|
|||
|
|
procedure GenerarGrid;
|
|||
|
|
public
|
|||
|
|
procedure Preview(Mes: String; Ano: String); overload;
|
|||
|
|
procedure Print(Mes: String; Ano: String); overload;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
{$R *.dfm}
|
|||
|
|
|
|||
|
|
uses schVentasTerminadasClient_Intf, uViewGridBase;
|
|||
|
|
|
|||
|
|
{ TfrViewControlGridResumenVentas }
|
|||
|
|
|
|||
|
|
procedure TfrViewControlGridResumenVentas.Preview(Mes: String; Ano: String);
|
|||
|
|
begin
|
|||
|
|
inherited Preview;
|
|||
|
|
dxComponentPrinterLink1.ReportTitle.Text := 'Ventas terminadas ' + Mes + ' de ' + Ano;
|
|||
|
|
dxComponentPrinterLink1.Preview;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewControlGridResumenVentas.cxGridViewCustomDrawCell(
|
|||
|
|
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
|
|||
|
|
begin
|
|||
|
|
if not VarIsNull(AViewInfo.Value) then
|
|||
|
|
if Pos('-', AViewInfo.Value) > 0 then
|
|||
|
|
ACanvas.Canvas.Font.Color := $000000CC;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewControlGridResumenVentas.dsDataSourceStateChange(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if dsDataSource.State = dsInactive then
|
|||
|
|
LimpiarGrid
|
|||
|
|
else
|
|||
|
|
GenerarGrid;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewControlGridResumenVentas.GenerarGrid;
|
|||
|
|
var
|
|||
|
|
i, AuxPos, AuxLen: Integer;
|
|||
|
|
|
|||
|
|
begin
|
|||
|
|
cxGridView.BeginUpdate;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
cxGridView.DataController.CreateAllItems;
|
|||
|
|
|
|||
|
|
for i := 0 to cxGridView.ColumnCount - 1 do
|
|||
|
|
begin
|
|||
|
|
case i of
|
|||
|
|
0: cxGridView.Columns[i].Visible := False;
|
|||
|
|
1: begin
|
|||
|
|
cxGridView.Columns[i].Styles.Content := cxStyleDia;
|
|||
|
|
cxGridView.Columns[i].Properties := cxEditDia.Properties;
|
|||
|
|
cxGridView.Columns[i].HeaderAlignmentHorz := taRightJustify;
|
|||
|
|
cxGridView.Columns[i].FooterAlignmentHorz := taRightJustify;
|
|||
|
|
cxGridView.Columns[i].Width := 30;
|
|||
|
|
cxGridView.Columns[i].SortIndex := 0;
|
|||
|
|
cxGridView.Columns[i].SortOrder := soAscending;
|
|||
|
|
|
|||
|
|
end;
|
|||
|
|
else begin
|
|||
|
|
cxGridView.Columns[i].Styles.Content := cxStyleImporte;
|
|||
|
|
cxGridView.Columns[i].PropertiesClassName := 'TcxCurrencyEditProperties';
|
|||
|
|
cxGridView.Columns[i].Properties := cxEditImporte.Properties;
|
|||
|
|
cxGridView.Columns[i].Summary.FooterKind := skSum;
|
|||
|
|
cxGridView.Columns[i].Summary.FooterFormat := ',0.## <20>;-,0.## <20>';
|
|||
|
|
cxGridView.Columns[i].HeaderAlignmentHorz := taRightJustify;
|
|||
|
|
cxGridView.Columns[i].FooterAlignmentHorz := taRightJustify;
|
|||
|
|
cxGridView.Columns[i].Width := 175;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
if i = 2 then
|
|||
|
|
begin
|
|||
|
|
cxGridView.Columns[i].HeaderAlignmentHorz := taLeftJustify;
|
|||
|
|
cxGridView.Columns[i].Styles.Content := cxStyleTotal;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
//Dejamos de la descripci<63>n del centro lo m<>s corta y representativa posible
|
|||
|
|
AuxPos := Pos('INGLES', cxGridView.Columns[i].Caption);
|
|||
|
|
if AuxPos > 0 then AuxPos := AuxPos + 6;
|
|||
|
|
AuxLen := Length(cxGridView.Columns[i].Caption) - AuxPos;
|
|||
|
|
cxGridView.Columns[i].Caption := Trim(Copy(cxGridView.Columns[i].Caption, AuxPos, AuxLen));
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
finally
|
|||
|
|
cxGridView.EndUpdate;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewControlGridResumenVentas.LimpiarGrid;
|
|||
|
|
begin
|
|||
|
|
cxGridView.BeginUpdate;
|
|||
|
|
try
|
|||
|
|
cxGridView.ClearItems;
|
|||
|
|
finally
|
|||
|
|
cxGridView.EndUpdate;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrViewControlGridResumenVentas.Print(Mes, Ano: String);
|
|||
|
|
begin
|
|||
|
|
inherited Print;
|
|||
|
|
dxComponentPrinterLink1.ReportTitle.Text := 'Ventas terminadas ' + Mes + ' de ' + Ano;
|
|||
|
|
dxComponentPrinterLink1.Print(True, Nil);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end.
|
|||
|
|
|