![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#4
|
|||
|
|||
|
Espero que te sirva, te lo envio por partes:
unit RptConsultaMantRB; interface uses Forms, SysUtils, Dialogs, Graphics, Provider, SqlExpr, DBXpress, SimpleDS, DB, TXComp, ppDB, ppDBPipe, DBClient, DBLocal, DBLocalS, ppParameter, ppVar, ppBands, ppMemo, ppStrtch, ppRegion, ppCtrls, ppPrnabl, ppClass, ppCache, Classes, ppComm, ppRelatv, ppProd, ppReport, ppTypes, Printers, ppRichTx, Parser10, ppWWRichEd, //ppVar, ppBands, ppMemo, ppStrtch, ppRegion, ppCtrls, ppPrnabl, ppClass, ppCache, Classes, ppComm, ppRelatv, ppProd, ppReport, Printers, //ppRichTx, ppWWRichEd, Parser10, ppChrt, ppTypes, ppParameter, TXRB; type TFormRptConsultaMantenimientos = class(TForm) ppReportConsultaMant: TppReport; DSTablaConsulta: TDataSource; ppCabecera: TppHeaderBand; ppDetalle: TppDetailBand; ppPiePagina: TppFooterBand; ppLabelTituloListado: TppLabel; ppSystemVariable1: TppSystemVariable; ppSystemVariable2: TppSystemVariable; ppLine1: TppLine; ppLine2: TppLine; ppLabel2: TppLabel; ppVariable1: TppVariable; Calculadora: TParser; tContabilidades: TSQLClientDataSet; tEmpresasContables: TSQLClientDataSet; tLogoClientes: TSQLClientDataSet; tEmpresasComercial: TSQLClientDataSet; tParamClientes: TSQLClientDataSet; ppDBPipeline1: TppDBPipeline; ppLabel1: TppLabel; ppVariable2: TppVariable; ExtraOptions1: TExtraOptions; tSQLConexionGeneral: TSQLConnection; tSQLConexionGestion: TSQLConnection; tSQLConexionContabilidad: TSQLConnection; tTablaConsulta: TSimpleDataSet; tTablaRelacionada: TSimpleDataSet; ppParameterList1: TppParameterList; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure DarDeAltaCamposEnReport( TamanyoFuente : Double ); procedure ppVariable1GetText(Sender: TObject; var Text: String); procedure ppReportConsultaMantPreviewFormCreate(Sender: TObject); procedure ppVariable2GetText(Sender: TObject; var Text: String); private { Private declarations } TituloDelReport : String; ListaCampos : tStringList; ListaTitulos : tStringList; ListaFormulas : tStringList; ListaFormulasExpresion : tStringList; ListaLongitud : tStringList; ListaAlineacion : tStringList; ListaFormatoCampos : tStringList; ListaSumados : tStringList; ListaCamposConRango : tStringList; ListaRangosDesde : tStringList; ListaRangosHasta : tStringList; ListaValoresSustituir : tStringList; //ListaBDTablasRelacionadasSQL : tStringList; ListaTablasRelacionadasSQL : tStringList; ListaTotalesSumados : tStringList; MostratPiePagina : Boolean; NombreEmpresa, NombreEmpresaCtb : String; CamposMaestroAux : String; CamposRelacionadoAux : String; ListaTablasRelacionadas : Array[ 0..10 ] Of TSimpleDataSet; ListaTablasRelacionadasCamposMaestro : Array[ 0..10 ] Of String; ListaTablasRelacionadasCamposRelacionado : Array[ 0..10 ] Of String; ListaTablasRelacionadasCampoDevolver : Array[ 0..10 ] Of String; function CalcularExpresion( Expresion : String ) : String; Procedure ActivarConexionesModuloDeDatos( Const tSQLConexionGeneralOrigen, tSQLConexionGestionOrigen, tSQLConexionContabilidadOrigen : tSQLConnection ); Procedure DesactivarConexionesModuloDeDatos( Const tSQLConexionGeneralOrigen, tSQLConexionGestionOrigen, tSQLConexionContabilidadOrigen : tSQLConnection ); Procedure ActivarConexionGeneral; Procedure ActivarConexionGestion; Procedure ActivarConexionContabilidad; Procedure DesactivarConexionGeneral; Procedure DesactivarConexionGestion; Procedure DesactivarConexionContabilidad; protected procedure tCalculoFormulas( sender: TObject; Var Value: String ); procedure tCalculoFormulasSumatorio( sender: TObject; Var Value: String ); procedure tFormateadoCampo(sender: TObject; var Value: String); procedure tBuscarDatoCampoRelacionado(Sender: TObject; var Text: String); procedure ppEtiquetaCampoClick(Sender, aDrawCommand: TObject); public { Public declarations } end; procedure EjecutarRptConsultaMantenimientos( vGlobales : tVariablesGlobales; Const auxSQLConexionGestion: TSQLConnection; Const auxSQLConexionGeneral: TSQLConnection; Const auxSQLConexionContabilidad: TSQLConnection; Titulo : String; BaseDeDatos : Integer; ConsultaTablaSQL : String; Apaisado : Boolean; TamanyoFuente : Double; LstCampos : tStringList; LstTitulos : tStringList; LstFormulas : tStringList; LstFormulasExpresion : tStringList; LstLongitud : tStringList; LstAlineacion : tStringList; LstFormatoCampos : tStringList; LstSumados : tStringList; LstCamposConRango : tStringList; LstRangosDesde : tStringList; LstRangosHasta : tStringList; LstValoresSustituir : tStringList; //LstBDTablasRelacionadasSQL : tStringList; LstTablasRelacionadasSQL : tStringList; EmpresaActual, EmpresaCtb, CtbActual : String; NombreEmpresaActual, NombreEmpresaCtbActual : String ); far; Export; var FormRptConsultaMantenimientos: TFormRptConsultaMantenimientos; FilaTitulos : Integer; implementation procedure EjecutarRptConsultaMantenimientos( vGlobales : tVariablesGlobales; Const auxSQLConexionGestion: TSQLConnection; Const auxSQLConexionGeneral: TSQLConnection; Const auxSQLConexionContabilidad: TSQLConnection; Titulo : String; BaseDeDatos : Integer; ConsultaTablaSQL : String; Apaisado : Boolean; TamanyoFuente : Double; LstCampos : tStringList; LstTitulos : tStringList; LstFormulas : tStringList; LstFormulasExpresion : tStringList; LstLongitud : tStringList; LstAlineacion : tStringList; LstFormatoCampos : tStringList; LstSumados : tStringList; LstCamposConRango : tStringList; LstRangosDesde : tStringList; LstRangosHasta : tStringList; LstValoresSustituir : tStringList; //LstBDTablasRelacionadasSQL : tStringList; LstTablasRelacionadasSQL : tStringList; EmpresaActual, EmpresaCtb, CtbActual : String; NombreEmpresaActual, NombreEmpresaCtbActual : String ); far; Export; Var i : LongInt; TieneFiltros : Boolean; PosicionNombreEmpresa : LongInt; PosicionArray : LongInt; Parametros : String; auxBaseDeDatos : String; TablaRelacionada : String; IndiceRango : String; CamposMaestro : String; CamposRelacionado : String; CampoDevolver : String; PosicionCorchete : LongInt; PosicionPuntoComa : LongInt; CampoRangoMaestro : String; CampoRangoRelacionado : String; TipoBaseDatos : LongInt; Begin AsignacionValoresGlobales( vGlobales ); FilaTitulos := 60; If ( Pos( '( ' + NombreEmpresaActual + ' )', Titulo ) <> 0 ) Then Delete( Titulo, Pos( '( ' + NombreEmpresaActual + ' )', Titulo ), Length( '( ' + NombreEmpresaActual + ' )' ) ); AsignarLaConfiguracionDeLasAplicaciones; setEmpresaActual := EmpresaActual; setEmpresaContable := EmpresaCtb; Try setContabilidad := StrToInt( CtbActual ); Except setContabilidad := -1; End; Application.CreateForm( tFormRptConsultaMantenimientos, FormRptConsultaMantenimientos ); With FormRptConsultaMantenimientos Do Try ActivarConexionesModuloDeDatos( auxSQLConexionGeneral, auxSQLConexionGestion, auxSQLConexionContabilidad ); tContabilidades.DBConnection := tSQLConexionGeneral; tEmpresasContables.DBConnection := tSQLConexionGeneral; tLogoClientes.DBConnection := tSQLConexionGeneral; tEmpresasComercial.DBConnection := tSQLConexionGeneral; tParamClientes.DBConnection := tSQLConexionGeneral; tContabilidades.Active := TRUE; tEmpresasContables.Active := TRUE; tLogoClientes.Active := TRUE; tEmpresasComercial.Active := TRUE; tParamClientes.Active := TRUE; ppReportConsultaMant.BeginUpdate; TituloDelReport := Titulo; ppLabelTituloListado.Caption := TituloDelReport; ppReportConsultaMant.PrinterSetup.DocumentName := TituloDelReport; ppReportConsultaMant.ShowAutoSearchDialog := FALSE; ppReportConsultaMant.Units := utScreenPixels; If Apaisado Then Begin ppReportConsultaMant.PrinterSetup.Orientation := poLandscape; ppLabelTituloListado.Width := ppReportConsultaMant.PrinterSetup.PaperWidth - 50; ppLine2.Width := ppLabelTituloListado.Width; ppSystemVariable2.Left := ppLabelTituloListado.Width - ppSystemVariable2.Width; End; ListaCampos.AddStrings( LstCampos ); ListaTitulos.AddStrings( LstTitulos ); ListaFormulas.AddStrings( LstFormulas ); ListaFormulasExpresion.AddStrings( LstFormulasExpresion ); ListaLongitud.AddStrings( LstLongitud ); ListaAlineacion.AddStrings( LstAlineacion ); ListaFormatoCampos.AddStrings( LstFormatoCampos ); ListaSumados.AddStrings( LstSumados ); ListaCamposConRango.AddStrings( LstCamposConRango ); ListaRangosDesde.AddStrings( LstRangosDesde ); ListaRangosHasta.AddStrings( LstRangosHasta ); ListaValoresSustituir.AddStrings( LstValoresSustituir ); //ListaBDTablasRelacionadasSQL.AddStrings( LstBDTablasRelacionadasSQL ); ListaTablasRelacionadasSQL.AddStrings( LstTablasRelacionadasSQL ); For i := 0 To ( ListaCampos.Count - 1 ) Do Begin ListaFormulas.Strings[ i ] := UpperCase( Trim( ListaFormulas.Strings[ i ] ) ); ListaAlineacion.Strings[ i ] := UpperCase( Trim( ListaAlineacion.Strings[ i ] ) ); ListaSumados.Strings[ i ] := UpperCase( Trim( ListaSumados.Strings[ i ] ) ); ListaCamposConRango.Strings[ i ] := UpperCase( Trim( ListaCamposConRango.Strings[ i ] ) ); ListaTotalesSumados.Add( '0' ); End; For i := 0 To ( ListaTablasRelacionadasSQL.Count - 1 ) Do Begin Parametros := ListaTablasRelacionadasSQL.Strings[ i ]; If Parametros <> '' Then Begin PosicionCorchete := Pos( ']', Parametros ); auxBaseDeDatos := Copy( Parametros, 2, ( PosicionCorchete - 2 ) ); Delete( Parametros, 1, PosicionCorchete ); Try TipoBaseDatos := StrToInt( auxBaseDeDatos ); Except TipoBaseDatos := 1; { 0=General, 1=Producción, 2=Facturacion, 3=Contabilidad } End; PosicionCorchete := Pos( '[', Parametros ); Delete( Parametros, 1, ( PosicionCorchete - 1 ) ); PosicionCorchete := Pos( ']', Parametros ); TablaRelacionada := Copy( Parametros, 2, ( PosicionCorchete - 2 ) ); Delete( Parametros, 1, PosicionCorchete ); PosicionCorchete := Pos( '[', Parametros ); Delete( Parametros, 1, ( PosicionCorchete - 1 ) ); PosicionCorchete := Pos( ']', Parametros ); IndiceRango := Copy( Parametros, 2, ( PosicionCorchete - 2 ) ); Delete( Parametros, 1, PosicionCorchete ); PosicionCorchete := Pos( '[', Parametros ); Delete( Parametros, 1, ( PosicionCorchete - 1 ) ); PosicionCorchete := Pos( ']', Parametros ); CamposMaestro := Copy( Parametros, 2, ( PosicionCorchete - 2 ) ); Delete( Parametros, 1, PosicionCorchete ); PosicionCorchete := Pos( '[', Parametros ); Delete( Parametros, 1, ( PosicionCorchete - 1 ) ); PosicionCorchete := Pos( ']', Parametros ); CamposRelacionado := Copy( Parametros, 2, ( PosicionCorchete - 2 ) ); Delete( Parametros, 1, PosicionCorchete ); PosicionCorchete := Pos( '[', Parametros ); Delete( Parametros, 1, ( PosicionCorchete - 1 ) ); PosicionCorchete := Pos( ']', Parametros ); CampoDevolver := Copy( Parametros, 2, ( PosicionCorchete - 2 ) ); Delete( Parametros, 1, PosicionCorchete ); ListaTablasRelacionadas[ i ] := TSimpleDataSet.Create( FormRptConsultaMantenimientos ); ListaTablasRelacionadasCamposMaestro[ i ] := CamposMaestro; ListaTablasRelacionadasCamposRelacionado[ i ] := CamposRelacionado; ListaTablasRelacionadasCampoDevolver[ i ] := CampoDevolver; Case TipoBaseDatos Of 0 : { General } Begin ListaTablasRelacionadas[ i ].Connection := tSQLConexionGeneral; End; 1 : { Producción } Begin ListaTablasRelacionadas[ i ].Connection := tSQLConexionGestion; End; 2 : { Facturación } Begin ListaTablasRelacionadas[ i ].Connection := tSQLConexionGestion; End; 3 : { Contabilidad } Begin ListaTablasRelacionadas[ i ].Connection := tSQLConexionContabilidad; End; End; ListaTablasRelacionadas[ i ].DataSet.CommandText := TablaRelacionada; ListaTablasRelacionadas[ i ].Open; End; End; MostratPiePagina := FALSE; For i := 0 To ( ListaSumados.Count - 1 ) Do If ( ListaSumados.Strings[ i ] = 'S' ) Then MostratPiePagina := TRUE; TieneFiltros := FALSE; For i := 0 To ( LstCamposConRango.Count - 1 ) Do If ( LstCamposConRango.Strings[ i ] = 'S' ) Then TieneFiltros := TRUE; With tTablaConsulta Do Begin Case BaseDeDatos Of 0 : { General } Connection := tSQLConexionGeneral; 1 : { Producción } Connection := tSQLConexionGestion; 2 : { Facturación } Connection := tSQLConexionGestion; 3 : { Contabilidad } Connection := tSQLConexionContabilidad; End; DataSet.CommandText := ConsultaTablaSQL; Try If Not Active Then Open; Except on E: Exception do ShowMessage( E.Message ); End; End; If BaseDeDatos = 3 Then { Contabilidad } Begin FilaTitulos := FilaTitulos + 20; ppCabecera.Height := ppCabecera.Height + 20; End; Try DarDeAltaCamposEnReport( TamanyoFuente ); Finally ppReportConsultaMant.EndUpdate; tTablaConsulta.EnableControls; End; With tTablaConsulta Do Try If Not Active Then Open; Except on E: Exception do ShowMessage( E.Message ); End; Case BaseDeDatos Of 0, 1, 2 : { General, Producción, Facturación } Begin With tEmpresasComercial Do If FindKey( [ EmpresaActual ] ) Then NombreEmpresa := FieldByName( 'Nombre' ).AsString Else NombreEmpresa := NombreEmpresaActual; NombreEmpresaCtb := ''; ppLabel1.Visible := FALSE; ppVariable2.Visible := FALSE; End; 3 : { Contabilidad } Begin With tEmpresasContables Do If FindKey( [ EmpresaCtb ] ) Then NombreEmpresa := FieldByName( 'DESCRIPCION' ).AsString Else NombreEmpresa := NombreEmpresaActual; With tContabilidades Do If FindKey( [ EmpresaCtb, CtbActual ] ) Then NombreEmpresaCtb := FieldByName( 'DESCRIPCION' ).AsString Else NombreEmpresaCtb := NombreEmpresaCtbActual; End; End; (*Application.CreateForm( tFormPrevisualizacionRts, FormPrevisualizacionRts ); With FormPrevisualizacionRts Do Try ppVisualizador.Hint := 'Pulse en un Título para ordenar por el campo'; ppVisualizadorSegundaPagina.Hint := 'Pulse en un Título para ordenar por el campo'; ppVisualizador.Report := ppReportConsultaMant; FormPrevisualizacionRts.ShowModal; Finally Free; End;*) ppReportConsultaMant.Print; ChDir( setRutaEjecutable ); Finally DesactivarConexionesModuloDeDatos( auxSQLConexionGeneral, auxSQLConexionGestion, auxSQLConexionContabilidad ); Free; End; End; |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Report Builder | yokey | Impresión | 3 | 10-06-2008 14:34:50 |
| Report Builder 7 | dmagui | OOP | 0 | 15-05-2007 01:53:06 |
| Cabiar orientacion del informe en fast report | fabitheking | Impresión | 2 | 25-01-2006 20:42:02 |
| Report Builder 7.0 | MarioATamborini | Impresión | 2 | 01-04-2004 00:58:40 |
| report builder | jsanchez | Impresión | 0 | 27-05-2003 01:08:47 |
|