This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
LuisLeon_FactuGES2/Source/Modulos/Informe ventas por articulo/Views/uEditorInfVentasAlbArticulo.pas
2011-10-03 17:47:25 +00:00

292 lines
9.4 KiB
ObjectPascal
Raw Blame History

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.