Resumen DataReport

Mensaje enviado por "Bracho, Yamil" <brachoy@pdvsa.com>

WariNet, tambien puedes ligar un DataReport a un Recordset en tiempo de ejecucion y aunque el proceso es algo tedioso funciona bien.
En el siguiente codigo se crea un recordset a partir de unos filtros que selecciona el usuario y se llena el DataReport en forma dinamica.
Espero te ayude.

'------------------------------------------------------------
' Informe de Clientes
'------------------------------------------------------------
Private Sub InformeCliente()
  Dim rst As ADODB.Recordset
  Dim strSql As String

  Set rst = New ADODB.Recordset

  strSql = "SELECT CO_CTE, NB_CTE, NB_ENCARGADO, DR_CTE, NU_TLF, " & _
           "NU_FAX, NU_RIF, NU_NIT, CO_T_CTE " & _
           "FROM CLIENTE " & _
           "WHERE CO_CTE <> '0' AND CO_UNI_FACTRCN='" & Globals.CurUnidadFacturacion & "' AND " & _
           "CO_FIL_PDV_ORIGEN=" & Globals.curCodigoFilialOrigen

  Select Case cboOrden.ListIndex
      Case 0: strSql = strSql & " ORDER BY CO_CTE"
      Case 1: strSql = strSql & " ORDER BY NB_CTE"
      Case 2: strSql = strSql & " ORDER BY NB_ENCARGADO"
      Case 3: strSql = strSql & " ORDER BY DR_CTE"
      Case 4: strSql = strSql & " ORDER BY NU_TLF"
      Case 5: strSql = strSql & " ORDER BY NU_FAX"
      Case 6: strSql = strSql & " ORDER BY NU_RIF"
      Case 7: strSql = strSql & " ORDER BY NU_NIT"
      Case 8: strSql = strSql & " ORDER BY CO_T_CTE"
  End Select

  rst.Open strSql, Globals.cnn

  With drpInformeCliente
    Set .DataSource = rst
    .DataMember = vbNullString

    With .Sections("Sección1").Controls
      With .Item("txtCO_CTE")
         .DataMember = vbNullString
         .DataField = "CO_CTE"
      End With

      With .Item("txtNB_CTE")
         .DataMember = vbNullString
         .DataField = "NB_CTE"
      End With

      With .Item("txtDR_CTE")
         .DataMember = vbNullString
         .DataField = "DR_CTE"
      End With

      With .Item("txtNU_TLF")
         .DataMember = vbNullString
         .DataField = "NU_TLF"
      End With

      With .Item("txtNU_RIF")
         .DataMember = vbNullString
         .DataField = "NU_RIF"
      End With

    End With

    If Me.chkPreview = vbChecked Then
       .Show
    Else
       .PrintReport True
    End If
  End With
End Sub

Saludos

Yamil



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com