292 lines
9.4 KiB
ObjectPascal
292 lines
9.4 KiB
ObjectPascal
|
|
unit uEditorInfVentasAlbArticulo;
|
|||
|
|
|
|||
|
|
interface
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|||
|
|
Dialogs, uEditorInformeBaseInforme, DB, uDADataTable, JvAppStorage,
|
|||
|
|
JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList,
|
|||
|
|
PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock,
|
|||
|
|
TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uBizInformes,
|
|||
|
|
uCustomView, uViewBase, uViewInformeBase, uViewInfVentasAlbArticulo,
|
|||
|
|
Grids, DBGrids, pngimage, JvExComCtrls, JvStatusBar, uInfVentasAlbArticuloController,
|
|||
|
|
uIEditorInfVentasAlbArticulo, uBizInfVentasArticulo, uInformesController,
|
|||
|
|
uViewGridBase, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
|
|||
|
|
cxDataStorage, cxEdit, cxDBData, cxGridCustomTableView, cxGridTableView,
|
|||
|
|
cxGridDBTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView,
|
|||
|
|
cxGrid, TB2ExtItems, TBXExtItems, uDAInterfaces, cxContainer, cxLabel;
|
|||
|
|
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
TfEditorInfVentasAlbArticulo = class(TfEditorInformeBaseInforme, IEditorInfVentasAlbArticulo)
|
|||
|
|
TBXSeparatorItem16: TTBXSeparatorItem;
|
|||
|
|
tbxiExpandir: TTBXItem;
|
|||
|
|
tbxiContraer: TTBXItem;
|
|||
|
|
tbxiAnchoAuto: TTBXItem;
|
|||
|
|
actExpandir: TAction;
|
|||
|
|
actContraer: TAction;
|
|||
|
|
actAnchoAuto: TAction;
|
|||
|
|
TBXItem37: TTBXItem;
|
|||
|
|
TBXItem36: TTBXItem;
|
|||
|
|
TBXItem35: TTBXItem;
|
|||
|
|
TBXSeparatorItem17: TTBXSeparatorItem;
|
|||
|
|
frViewInfVentasAlbArticulo1: TfrViewInfVentasAlbArticulo;
|
|||
|
|
procedure actRefrescarExecute(Sender: TObject);
|
|||
|
|
procedure actExpandirExecute(Sender: TObject);
|
|||
|
|
procedure actContraerExecute(Sender: TObject);
|
|||
|
|
procedure actAnchoAutoExecute(Sender: TObject);
|
|||
|
|
procedure CustomEditorCreate(Sender: TObject);
|
|||
|
|
procedure CustomEditorGetModified(Sender: TObject; var Modified: Boolean);
|
|||
|
|
procedure FormShow(Sender: TObject);
|
|||
|
|
procedure actPrevisualizarExecute(Sender: TObject);
|
|||
|
|
procedure actImprimirExecute(Sender: TObject);
|
|||
|
|
procedure actConfPaginaExecute(Sender: TObject);
|
|||
|
|
private
|
|||
|
|
FInformesController: IInformesController;
|
|||
|
|
procedure RestaurarConfiguracion;
|
|||
|
|
procedure GuardarConfiguracion;
|
|||
|
|
protected
|
|||
|
|
FController : IInfVentasAlbArticuloController;
|
|||
|
|
FModificado : Boolean;
|
|||
|
|
procedure OnViewControlChanged(Sender: TObject);
|
|||
|
|
procedure SetInforme(const Value: IBizInforme); override;
|
|||
|
|
procedure RellenarCabeceraInforme; override;
|
|||
|
|
|
|||
|
|
function GetController : IInfVentasAlbArticuloController;
|
|||
|
|
procedure SetController (const Value : IInfVentasAlbArticuloController);
|
|||
|
|
|
|||
|
|
procedure GuardarInterno; override;
|
|||
|
|
|
|||
|
|
public
|
|||
|
|
property Controller: IInfVentasAlbArticuloController read GetController write SetController;
|
|||
|
|
|
|||
|
|
constructor Create(AOwner: TComponent); override;
|
|||
|
|
destructor Destroy; override;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
uROClasses, //cxControls, cxGridCustomView, //cxGridCustomTableView,
|
|||
|
|
//cxGridTableView,
|
|||
|
|
uCustomEditor, uDataModuleUsuarios, uSistemaFunc;
|
|||
|
|
|
|||
|
|
{$R *.dfm}
|
|||
|
|
|
|||
|
|
{ TfEditorInfVentasAlbArticulo }
|
|||
|
|
|
|||
|
|
procedure TfEditorInfVentasAlbArticulo.SetController(const Value: IInfVentasAlbArticuloController);
|
|||
|
|
begin
|
|||
|
|
FController := Value;
|
|||
|
|
if Assigned(FController) then
|
|||
|
|
frViewInfVentasAlbArticulo1.Controller := (FController as IInfVentasAlbArticuloController);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorInfVentasAlbArticulo.SetInforme(const Value: IBizInforme);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
// RefrescarTituloEditor;
|
|||
|
|
if Assigned(FInforme) then
|
|||
|
|
begin
|
|||
|
|
frViewInfVentasAlbArticulo1.OnViewChanged := OnViewControlChanged;
|
|||
|
|
// with (FInforme as IBizInforme) do
|
|||
|
|
// begin
|
|||
|
|
// Items.DataTable.Active := False; // No se abre la tabla hasta que no se pulse en 'Refrescar'
|
|||
|
|
// dsVentasTerminadas.DataTable := Items.DataTable;
|
|||
|
|
// frViewInfVentasAlbArticulo1.frViewInfVentasAlbArticuloGrid1.FocusedView.DataController.DataSource := dsVentasTerminadas;
|
|||
|
|
// end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorInfVentasAlbArticulo.actRefrescarExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
frViewInfVentasAlbArticulo1.Refresh;
|
|||
|
|
while (frViewInfVentasAlbArticulo1.frViewInfVentasAlbArticuloGrid1.FocusedView.Controller.FocusedRecord is TcxGridGroupRow) do
|
|||
|
|
begin
|
|||
|
|
frViewInfVentasAlbArticulo1.frViewInfVentasAlbArticuloGrid1.FocusedView.Controller.FocusedRecord.Expand(True);
|
|||
|
|
if (frViewInfVentasAlbArticulo1.frViewInfVentasAlbArticuloGrid1.FocusedView.Controller.FocusedRecordIndex <
|
|||
|
|
frViewInfVentasAlbArticulo1.frViewInfVentasAlbArticuloGrid1.FocusedView.DataController.RowCount - 1) then
|
|||
|
|
frViewInfVentasAlbArticulo1.frViewInfVentasAlbArticuloGrid1.FocusedView.Controller.GoToNext(False, True)
|
|||
|
|
else
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorInfVentasAlbArticulo.actExpandirExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
frViewInfVentasAlbArticulo1.frViewInfVentasAlbArticuloGrid1.ExpandirTodo;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorInfVentasAlbArticulo.actContraerExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
frViewInfVentasAlbArticulo1.frViewInfVentasAlbArticuloGrid1.ContraerTodo;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorInfVentasAlbArticulo.actAnchoAutoExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
frViewInfVentasAlbArticulo1.frViewInfVentasAlbArticuloGrid1.AjustarAncho;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorInfVentasAlbArticulo.OnViewControlChanged(
|
|||
|
|
Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
// if FInforme.EsModificable then
|
|||
|
|
FModificado := True;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorInfVentasAlbArticulo.CustomEditorCreate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
FModificado := False;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorInfVentasAlbArticulo.CustomEditorGetModified(
|
|||
|
|
Sender: TObject; var Modified: Boolean);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
Modified := FModificado;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
destructor TfEditorInfVentasAlbArticulo.Destroy;
|
|||
|
|
begin
|
|||
|
|
FInformesController := Nil;
|
|||
|
|
FViewInforme := Nil;
|
|||
|
|
inherited;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfEditorInfVentasAlbArticulo.GetController: IInfVentasAlbArticuloController;
|
|||
|
|
begin
|
|||
|
|
Result := FController;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorInfVentasAlbArticulo.GuardarConfiguracion;
|
|||
|
|
var
|
|||
|
|
Aux : IROStrings;
|
|||
|
|
Fichero: TextFile;
|
|||
|
|
NombreFichero: String;
|
|||
|
|
|
|||
|
|
begin
|
|||
|
|
NombreFichero := DarFicheroTemporal;
|
|||
|
|
frViewInfVentasAlbArticulo1.frViewInfVentasAlbArticuloGrid1.cxGridView.StoreToIniFile(NombreFichero, true, [gsoUseFilter,gsoUseSummary]);
|
|||
|
|
|
|||
|
|
with TStringList.Create do
|
|||
|
|
try
|
|||
|
|
LoadFromFile(NombreFichero);
|
|||
|
|
Aux := NewROStrings();
|
|||
|
|
Aux.Add(Text);
|
|||
|
|
|
|||
|
|
{ if not (FInforme.DataTable.State in dsEditModes) then
|
|||
|
|
FInforme.Edit;
|
|||
|
|
FInforme.VISTA := Aux;
|
|||
|
|
}
|
|||
|
|
finally
|
|||
|
|
Free;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorInfVentasAlbArticulo.GuardarInterno;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
|
|||
|
|
ShowHourglassCursor;
|
|||
|
|
|
|||
|
|
try
|
|||
|
|
if FModificado then
|
|||
|
|
GuardarConfiguracion;
|
|||
|
|
FInformesController.Guardar(FInforme);
|
|||
|
|
FModificado := False;
|
|||
|
|
finally
|
|||
|
|
HideHourglassCursor;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
Modified := False;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorInfVentasAlbArticulo.RestaurarConfiguracion;
|
|||
|
|
var
|
|||
|
|
Fichero: TextFile;
|
|||
|
|
NombreFichero: String;
|
|||
|
|
begin
|
|||
|
|
try
|
|||
|
|
//Creamos un fichero temporal para guardar la configuraci<63>n del informe que viene dada
|
|||
|
|
//por su campo vista, para luego restaurarla en el grid a partir de dicho fichero porque el Stream falla
|
|||
|
|
NombreFichero := DarFicheroTemporal;
|
|||
|
|
AssignFile(Fichero, NombreFichero);
|
|||
|
|
Rewrite(Fichero);
|
|||
|
|
Writeln(Fichero, FInforme.VISTA.Text);
|
|||
|
|
CloseFile(Fichero);
|
|||
|
|
|
|||
|
|
//Restauramos la configuraci<63>n
|
|||
|
|
frViewInfVentasAlbArticulo1.frViewInfVentasAlbArticuloGrid1.cxGridView.RestoreFromIniFile(NombreFichero,True,false,[gsoUseFilter,gsoUseSummary]);
|
|||
|
|
|
|||
|
|
finally
|
|||
|
|
//Eliminamos el fichero temporal
|
|||
|
|
DeleteFile(NombreFichero);
|
|||
|
|
// FreeAndNil(Fichero)
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorInfVentasAlbArticulo.FormShow(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
if FInforme.DataTable.State <> dsInsert then // No restaurar si estamos insertando
|
|||
|
|
RestaurarConfiguracion;
|
|||
|
|
|
|||
|
|
frViewInfVentasAlbArticulo1.frViewColumnas1.Refresh;
|
|||
|
|
frViewInfVentasAlbArticulo1.frViewAgrupaciones1.Refresh;
|
|||
|
|
|
|||
|
|
if FInforme.DataTable.State = dsInsert then // Si es nuevo obligamos a meter nombre
|
|||
|
|
actPropiedades.Execute;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorInfVentasAlbArticulo.actPrevisualizarExecute(
|
|||
|
|
Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
frViewInfVentasAlbArticulo1.frViewInfVentasAlbArticuloGrid1.Preview;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorInfVentasAlbArticulo.actImprimirExecute(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
frViewInfVentasAlbArticulo1.frViewInfVentasAlbArticuloGrid1.Print;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorInfVentasAlbArticulo.actConfPaginaExecute(
|
|||
|
|
Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
frViewInfVentasAlbArticulo1.frViewInfVentasAlbArticuloGrid1.PrintSetup;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
constructor TfEditorInfVentasAlbArticulo.Create(AOwner: TComponent);
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
FInformesController := TInformesController.Create;
|
|||
|
|
FViewInforme := frViewInfVentasAlbArticulo1;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfEditorInfVentasAlbArticulo.RellenarCabeceraInforme;
|
|||
|
|
begin
|
|||
|
|
inherited;
|
|||
|
|
with frViewInfVentasAlbArticulo1.frViewInfVentasAlbArticuloGrid1.dxPrintStyleManager1Style1.PrinterPage.PageHeader do
|
|||
|
|
begin
|
|||
|
|
LeftTitle.Clear;
|
|||
|
|
// LeftTitle.Add(FInforme.NOMBRE);
|
|||
|
|
LeftTitle.Add(FInforme.DESCRIPCION);
|
|||
|
|
|
|||
|
|
RightTitle.Clear;
|
|||
|
|
RightTitle.Add(DateToStr(frViewInfVentasAlbArticulo1.frViewPeriodoFechasInforme1.edtFechaIni.Date) +
|
|||
|
|
' - ' + DateToStr(frViewInfVentasAlbArticulo1.frViewPeriodoFechasInforme1.edtFechaFin.Date));
|
|||
|
|
RightTitle.Add(frViewInfVentasAlbArticulo1.frViewInfVentasAlbArticuloGrid1.FocusedView.DataController.Filter.FilterText);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end.
|
|||
|
|
|