{ =============================================================================== Copyright (©) 2002. Rodax Software. =============================================================================== Los contenidos de este fichero son propiedad de Rodax Software titular del copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado, en su totalidad o en parte, con el permiso escrito de Rodax Software, o de acuerdo con los términos y condiciones establecidas en el acuerdo/contrato bajo el que se suministra. ----------------------------------------------------------------------------- Web: www.rodax-software.com =============================================================================== Fecha primera versión: 31-12-2002 Versión actual: 1.0.1 Fecha versión actual: 30-01-2004 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- 30-01-2004 Se utiliza el trimestre por defecto. =============================================================================== } unit ImprimirLibro; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, RDXFRAME, StdCtrls, RdxComboBox, RdxBotones, RdxCampos, ExtCtrls, RdxBarras, RdxTitulos, InformeLibro, Configuracion, Grids, DBGrids, RdxPaneles, RdxRadioButton, VistaPrevia, AdvPanel, cxDBEdit, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxButtonEdit, cxDropDownEdit, cxCalendar, DB, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, IBCustomDataSet, RdxShape, TablaTrimestres, Entidades, cxGraphics; type TfrImprimirLibro = class(TRdxFrame) pnlVistaPrevia: TPanel; pnlCuerpo: TPanel; pnlInforme: TAdvPanel; pnlTitulo: TRdxPanelTituloOperacion; eLibro: TLabel; dsLibros: TDataSource; cbxLibro: TcxComboBox; RdxShape1: TRdxShape; rbTrimestre: TRdxRadioButton; cbxTrimestres: TcxComboBox; rbFechas: TRdxRadioButton; FechaInicial: TcxDateEdit; eFechaFin: TLabel; FechaFinal: TcxDateEdit; procedure bCancelarClick(Sender: TObject); procedure bImprimirClick(Sender: TObject); procedure rbTrimestreClick(Sender: TObject); procedure rbFechasClick(Sender: TObject); procedure cbxTrimestresPropertiesEditValueChanged(Sender: TObject); procedure FechaInicialPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); procedure FechaFinalPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); procedure cbxLibroPropertiesEditValueChanged(Sender: TObject); private FTipoLibro : Variant; FFechaInicial : TDateTime; FFechaFinal : TDateTime; FInformeLibro : TdmInformeLibro; FVistaPrevia : TfrVistaPrevia; FListaTipoLibro : TStringList; FListaLibroTipo: TStringList; FListaTrimestres : TListaTrimestres; procedure Refresco; protected procedure SetTipoLibro (const Value : Variant); procedure SetFechaFinal(const Value: TDateTime); procedure SetFechaInicial(const Value: TDateTime); function CloseFrame : Boolean; override; function CambiarEntidad(EntidadAnterior, Entidad : TRdxEntidad): Boolean; override; public constructor Create(AOwner : TComponent); override; destructor Destroy; override; property TipoLibro: Variant read FTipoLibro write SetTipoLibro; property FechaIni: TDateTime read FFechaInicial write SetFechaInicial; property FechaFin: TDateTime read FFechaFinal write SetFechaFinal; published end; var frImprimirLibro: TfrImprimirLibro; implementation {$R *.DFM} uses Variants, RdxFrameFacturasCliente, FacturasClientes, DateFunc, Clientes, TablaFacturasCliente, Mensajes, StrFunc, InformeBase, TablaLibros, BaseDatos, Literales, cxDateUtils; constructor TfrImprimirLibro.Create(AOwner : TComponent); begin inherited Create(AOwner); Entidad := entListadoLibros; FVistaPrevia := TfrVistaPrevia.Create(Self); FVistaPrevia.Parent := pnlVistaPrevia; FInformeLibro := TdmInformeLibro.Create(Self); FInformeLibro.Preview := FVistaPrevia.Preview; FListaLibroTipo := TStringList.Create; FListaTipoLibro := TStringList.Create; dmTablaLibros.darLibros(FListaLibroTipo, FListaTipoLibro); cbxLibro.Properties.Items := dmTablaLibros.darLibros; cbxLibro.EditText := cbxLibro.Properties.Items[0]; FListaTrimestres := TListaTrimestres.Create(tlcTriTodos); cbxTrimestres.ItemIndex := FListaTrimestres.cargarLista(cbxTrimestres.Properties.Items); end; procedure TfrImprimirLibro.bCancelarClick(Sender: TObject); begin CloseFrame; end; destructor TfrImprimirLibro.Destroy; begin FInformeLibro.Free; FListaTipoLibro.Free; FListaLibroTipo.Free; FListaTrimestres.Free; FListaTrimestres := Nil; inherited; end; procedure TfrImprimirLibro.bImprimirClick(Sender: TObject); begin FInformeLibro.Imprimir; end; function TfrImprimirLibro.CloseFrame: Boolean; begin FInformeLibro.Preview := NIL; (FVistaPrevia as TRdxFrame).CloseFrame; Result := inherited CloseFrame; end; procedure TfrImprimirLibro.Refresco; begin FInformeLibro.FechaInicio := FechaInicial.Date; FInformeLibro.FechaFin := FechaFinal.Date; FInformeLibro.TipoLibro := TipoLibro; FInformeLibro.Previsualizar; end; procedure TfrImprimirLibro.SetTipoLibro(const Value: Variant); begin if not esCadenaVacia(Value) and (TipoLibro <> Value) then begin FTipoLibro := Value; cbxLibro.ItemIndex := cbxLibro.Properties.Items.IndexOf(FListaTipoLibro.Values[Value]); Refresco; end; end; procedure TfrImprimirLibro.SetFechaFinal(const Value: TDateTime); begin FFechaFinal := Value; FechaFinal.Date := FechaFin; end; procedure TfrImprimirLibro.SetFechaInicial(const Value: TDateTime); begin FFechaInicial := Value; FechaInicial.Date := FechaIni; end; procedure TfrImprimirLibro.rbTrimestreClick(Sender: TObject); begin cbxTrimestres.Enabled := True; FechaInicial.Enabled := False; FechaFinal.Enabled := False; cbxTrimestresPropertiesEditValueChanged(Sender); end; procedure TfrImprimirLibro.rbFechasClick(Sender: TObject); begin cbxTrimestres.Enabled := False; FechaInicial.Enabled := True; FechaFinal.Enabled := True; end; procedure TfrImprimirLibro.cbxTrimestresPropertiesEditValueChanged( Sender: TObject); var i : integer; FCodigoTrimestre : String; begin FCodigoTrimestre := FListaTrimestres.getCodItem(cbxTrimestres.ItemIndex); FechaInicial.Date := dmTablaTrimestres.darFechaIniTrimestre(FCodigoTrimestre); FechaFinal.Date := dmTablaTrimestres.darFechaFinTrimestre(FCodigoTrimestre); Refresco; end; procedure TfrImprimirLibro.FechaInicialPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); var ADate : TDateTime; begin try if DisplayValue > FechaFinal.Date then begin ErrorText := msgFechasMal; Error := True; Exit; end; TextToDateEx(DisplayValue, ADate); FechaInicial.Date := ADate; Refresco; except Error := True; ErrorText := msgFechaNoValida; end; end; procedure TfrImprimirLibro.FechaFinalPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); var ADate : TDateTime; begin try if DisplayValue < FechaInicial.Date then begin ErrorText := msgFechasMal; Error := True; Exit; end; TextToDateEx(DisplayValue, ADate); FechaFinal.Date := ADate; Refresco; except Error := True; ErrorText := msgFechaNoValida; end; end; procedure TfrImprimirLibro.cbxLibroPropertiesEditValueChanged( Sender: TObject); begin TipoLibro := FListaLibroTipo.Values[cbxLibro.Text]; end; function TfrImprimirLibro.CambiarEntidad(EntidadAnterior, Entidad: TRdxEntidad): Boolean; begin inherited CambiarEntidad(EntidadAnterior, Entidad); ConfigurarFrame(Self, Self.Entidad); end; end.