Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 16-10-2008
JosepGA JosepGA is offline
Miembro
 
Registrado: jun 2007
Ubicación: Tarragona
Posts: 166
Poder: 20
JosepGA Va por buen camino
lo siento en la vista previa se veia diferente, lo vuelvo a intentar:

Código Delphi [-]
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;
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 23:55:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi