git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@225 c93665c3-c93d-084d-9b98-7d5f4a9c3376
339 lines
11 KiB
ObjectPascal
339 lines
11 KiB
ObjectPascal
unit uEditorInfMargenArticulo;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, uEditorInformeBase, DB, uDADataTable, JvAppStorage,
|
|
JvAppRegistryStorage, JvComponentBase, JvFormPlacement, ImgList,
|
|
PngImageList, StdActns, ActnList, ComCtrls, TBX, TB2Item, TB2Dock,
|
|
TB2Toolbar, ExtCtrls, JvExControls, JvComponent, JvNavigationPane, uBizInformes,
|
|
uCustomView, uViewBase, uViewInformeBase, uViewInfMargenArticulo,
|
|
Grids, DBGrids, pngimage, JvExComCtrls, JvStatusBar, uInfMargenArticuloController,
|
|
uIEditorInfMargenArticulo, uBizInfMargenArticulo, uInformesController,
|
|
uViewGridBase, TB2ExtItems, TBXExtItems;
|
|
|
|
|
|
type
|
|
TfEditorInfMargenArticulo = class(TfEditorInformeBase, IEditorInfMargenArticulo)
|
|
dsVentasTerminadas: TDADataSource;
|
|
TBXSeparatorItem16: TTBXSeparatorItem;
|
|
tbxiExpandir: TTBXItem;
|
|
tbxiContraer: TTBXItem;
|
|
tbxiAnchoAuto: TTBXItem;
|
|
actExpandir: TAction;
|
|
actContraer: TAction;
|
|
actAnchoAuto: TAction;
|
|
TBXItem37: TTBXItem;
|
|
TBXItem36: TTBXItem;
|
|
TBXItem35: TTBXItem;
|
|
TBXSeparatorItem17: TTBXSeparatorItem;
|
|
frViewInfMargenArticulo1: TfrViewInfMargenArticulo;
|
|
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);
|
|
procedure frViewInfMargenArticulo1bRefrescarClick(Sender: TObject);
|
|
private
|
|
FInformesController: IInformesController;
|
|
procedure GuardarConfiguracion;
|
|
protected
|
|
FDatos : IBizInfMargenArticulo;
|
|
FController : IInfMargenArticuloController;
|
|
FModificado : Boolean;
|
|
procedure OnViewControlChanged(Sender: TObject);
|
|
procedure SetInforme(const Value: IBizInforme); override;
|
|
procedure RellenarCabeceraInforme; override;
|
|
|
|
procedure RestaurarConfiguracion; override;
|
|
|
|
function GetController : IInfMargenArticuloController;
|
|
procedure SetController (const Value : IInfMargenArticuloController);
|
|
|
|
function GetDatos : IBizInfMargenArticulo;
|
|
procedure SetDatos (const Value : IBizInfMargenArticulo);
|
|
|
|
procedure GuardarInterno; override;
|
|
|
|
public
|
|
property Controller: IInfMargenArticuloController read GetController write SetController;
|
|
property Datos : IBizInfMargenArticulo read GetDatos write SetDatos;
|
|
|
|
constructor Create(AOwner: TComponent); override;
|
|
destructor Destroy; override;
|
|
end;
|
|
|
|
|
|
implementation
|
|
|
|
uses
|
|
uROClasses, cxControls, cxGridCustomView, //cxGridCustomTableView,
|
|
cxGridTableView, uCustomEditor, uDataModuleUsuarios, uSistemaFunc,
|
|
uEditorBase;
|
|
|
|
{$R *.dfm}
|
|
|
|
{ TfEditorInfMargenArticulo }
|
|
|
|
procedure TfEditorInfMargenArticulo.SetController(const Value: IInfMargenArticuloController);
|
|
begin
|
|
FController := Value;
|
|
// if Assigned(FController) then
|
|
// (FViewInforme as IViewInfMargenArticulo).Controller := (FController as IInfMargenArticuloController);
|
|
end;
|
|
|
|
procedure TfEditorInfMargenArticulo.SetDatos(const Value: IBizInfMargenArticulo);
|
|
begin
|
|
FDatos := Value;
|
|
|
|
if Assigned(FDatos) then
|
|
begin
|
|
FDatos.DataTable.Active := False; // No se abre la tabla hasta que no se pulse en 'Refrescar'
|
|
dsVentasTerminadas.DataTable := FDatos.DataTable;
|
|
|
|
if Assigned(FViewInforme) then
|
|
(FViewInforme as IViewInfMargenArticulo).Datos := FDatos;
|
|
|
|
// frViewInfMargenArticulo1.OnViewChanged := OnViewControlChanged;
|
|
// with (FInforme as IBizInfMargenArticulo) do
|
|
// begin
|
|
// Items.DataTable.Active := False; // No se abre la tabla hasta que no se pulse en 'Refrescar'
|
|
// dsVentasTerminadas.DataTable := Items.DataTable;
|
|
frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.FocusedView.DataController.DataSource := dsVentasTerminadas;
|
|
end;
|
|
end;
|
|
|
|
procedure TfEditorInfMargenArticulo.SetInforme(const Value: IBizInforme);
|
|
begin
|
|
inherited;
|
|
// RefrescarTituloEditor;
|
|
if Assigned(FInforme) then
|
|
begin
|
|
frViewInfMargenArticulo1.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;
|
|
// frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.FocusedView.DataController.DataSource := dsVentasTerminadas;
|
|
// end;
|
|
end;
|
|
end;
|
|
|
|
procedure TfEditorInfMargenArticulo.actRefrescarExecute(Sender: TObject);
|
|
|
|
begin
|
|
inherited;
|
|
frViewInfMargenArticulo1.Refresh;
|
|
|
|
while (frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.FocusedView.Controller.FocusedRecord is TcxGridGroupRow) do
|
|
begin
|
|
frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.FocusedView.Controller.FocusedRecord.Expand(True);
|
|
if (frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.FocusedView.Controller.FocusedRecordIndex <
|
|
frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.FocusedView.DataController.RowCount - 1) then
|
|
frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.FocusedView.Controller.GoToNext(False, True)
|
|
else
|
|
Exit;
|
|
end;
|
|
end;
|
|
|
|
procedure TfEditorInfMargenArticulo.actExpandirExecute(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.ExpandirTodo;
|
|
end;
|
|
|
|
procedure TfEditorInfMargenArticulo.actContraerExecute(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.ContraerTodo;
|
|
end;
|
|
|
|
procedure TfEditorInfMargenArticulo.actAnchoAutoExecute(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.AjustarAncho;
|
|
end;
|
|
|
|
procedure TfEditorInfMargenArticulo.OnViewControlChanged(
|
|
Sender: TObject);
|
|
begin
|
|
// if FInforme.EsModificable then
|
|
FModificado := True;
|
|
end;
|
|
|
|
procedure TfEditorInfMargenArticulo.CustomEditorCreate(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
FModificado := False;
|
|
end;
|
|
|
|
procedure TfEditorInfMargenArticulo.CustomEditorGetModified(
|
|
Sender: TObject; var Modified: Boolean);
|
|
begin
|
|
inherited;
|
|
Modified := FModificado;
|
|
end;
|
|
|
|
destructor TfEditorInfMargenArticulo.Destroy;
|
|
begin
|
|
FInformesController := Nil;
|
|
FViewInforme := Nil;
|
|
inherited;
|
|
end;
|
|
|
|
function TfEditorInfMargenArticulo.GetController: IInfMargenArticuloController;
|
|
begin
|
|
Result := FController;
|
|
end;
|
|
|
|
function TfEditorInfMargenArticulo.GetDatos: IBizInfMargenArticulo;
|
|
begin
|
|
Result := FDatos;
|
|
end;
|
|
|
|
procedure TfEditorInfMargenArticulo.GuardarConfiguracion;
|
|
var
|
|
Aux : IROStrings;
|
|
Fichero: TextFile;
|
|
NombreFichero: String;
|
|
|
|
begin
|
|
NombreFichero := DarFicheroTemporal;
|
|
frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.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 TfEditorInfMargenArticulo.GuardarInterno;
|
|
begin
|
|
inherited;
|
|
|
|
ShowHourglassCursor;
|
|
|
|
try
|
|
if FModificado then
|
|
GuardarConfiguracion;
|
|
FInformesController.Guardar(FInforme);
|
|
FModificado := False;
|
|
finally
|
|
HideHourglassCursor;
|
|
end;
|
|
|
|
Modified := False;
|
|
end;
|
|
|
|
procedure TfEditorInfMargenArticulo.RestaurarConfiguracion;
|
|
var
|
|
Fichero: TextFile;
|
|
NombreFichero: String;
|
|
begin
|
|
try
|
|
//Creamos un fichero temporal para guardar la configuració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ón
|
|
frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.cxGridView.RestoreFromIniFile(NombreFichero,True,false,[gsoUseFilter,gsoUseSummary]);
|
|
finally
|
|
//Eliminamos el fichero temporal
|
|
DeleteFile(NombreFichero);
|
|
// FreeAndNil(Fichero)
|
|
end;
|
|
end;
|
|
|
|
procedure TfEditorInfMargenArticulo.FormShow(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
if FInforme.DataTable.State <> dsInsert then // No restaurar si estamos insertando
|
|
RestaurarConfiguracion;
|
|
|
|
frViewInfMargenArticulo1.frViewColumnas1.Refresh;
|
|
frViewInfMargenArticulo1.frViewAgrupaciones1.Refresh;
|
|
|
|
if FInforme.DataTable.State = dsInsert then // Si es nuevo obligamos a meter nombre
|
|
actPropiedades.Execute;
|
|
|
|
{
|
|
if not frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.HayColumnasDePromedio then
|
|
begin
|
|
frViewInfMargenArticulo1.TBXMultiDock2.Visible := False;
|
|
actRefrescar.Execute;
|
|
end;
|
|
}
|
|
end;
|
|
|
|
procedure TfEditorInfMargenArticulo.actPrevisualizarExecute(
|
|
Sender: TObject);
|
|
begin
|
|
inherited;
|
|
frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.Preview;
|
|
end;
|
|
|
|
procedure TfEditorInfMargenArticulo.actImprimirExecute(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.Print;
|
|
end;
|
|
|
|
procedure TfEditorInfMargenArticulo.actConfPaginaExecute(
|
|
Sender: TObject);
|
|
begin
|
|
inherited;
|
|
frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.PrintSetup;
|
|
end;
|
|
|
|
procedure TfEditorInfMargenArticulo.frViewInfMargenArticulo1bRefrescarClick(
|
|
Sender: TObject);
|
|
begin
|
|
inherited;
|
|
frViewInfMargenArticulo1.actRefrescarExecute(Sender);
|
|
end;
|
|
|
|
constructor TfEditorInfMargenArticulo.Create(AOwner: TComponent);
|
|
begin
|
|
inherited;
|
|
FInformesController := TInformesController.Create;
|
|
FViewInforme := frViewInfMargenArticulo1;
|
|
end;
|
|
|
|
procedure TfEditorInfMargenArticulo.RellenarCabeceraInforme;
|
|
begin
|
|
inherited;
|
|
with frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.dxPrintStyleManager1Style1.PrinterPage.PageHeader do
|
|
begin
|
|
LeftTitle.Clear;
|
|
// LeftTitle.Add(FInforme.NOMBRE);
|
|
LeftTitle.Add(FInforme.DESCRIPCION);
|
|
|
|
RightTitle.Clear;
|
|
// RightTitle.Add(DateToStr(frViewInfMargenArticulo1.frViewPeriodoFechas1.edtFechaIni.Date) +
|
|
// ' - ' + DateToStr(frViewInfMargenArticulo1.frViewPeriodoFechas1.edtFechaFin.Date));
|
|
// RightTitle.Add(frViewInfMargenArticulo1.frViewInfMargenArticuloGrid1.FocusedView.DataController.Filter.FilterText);
|
|
end;
|
|
end;
|
|
|
|
end.
|
|
|