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.
|
||
|