necesito generar reporte con registros determinados ayuda

Iniciado por chegue, 9 Diciembre 2008, 23:31 PM

0 Miembros y 1 Visitante están viendo este tema.

chegue

tengo un prolema el programa me genera un reporte pero el reporte me muestra todos los registros de la bases de dato, pero solo nececito que por medio de un formulario un txt y un buton en la cual el txt ingrese el numero de cedula y al aceptar me genere el reporte solo con los registros que se encuentran en la base de datos con ese numero de cedula. trabajo con datareport y vb 6.0AYUDA

ssccaann43 ©

Ok, para ello puedes hacer un filtro. Creas un query SQL, como por ejemplo. "Select * from Personas Where Cedula=?" y de esa manera lo guardas en el Dataenviroment. Luego desde el visual basic envias el parametro. Sin embargo te recomiendo aprendas a usar Crystal Reports que es la mejor herramienta a usar en cuanto a reportes ya que es muy dinamico y tiene muchas herramientas que simplifican el trabajo. Es cuestión que busques unos libros o manuales.

Reporte Dinamico usando Crystal Reports 8.5 y un Datagrid.
Nota: Debes tener el Crystal Reports 8.5 instalado!
http://www.gigasize.com/get.php?d=99cg7h7fnhd

BD Inscripciones SOURCE. Aplicación sencilla donde puedes visualizar el uso del DATAREPORT.
http://www.gigasize.com/get.php?d=fw74lfv34of
- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

XcryptOR

#2
Este es un ejemplo concreto de lo que tienes que hacer, este code es de un proyecto mio pero te puede servir de referencia.

Código (vb) [Seleccionar]

Dim Criteria, StrSQL As String
   
    res = MsgBox("Desea Imprimir La Factura Actual?" & vbCrLf & _
    "Seleccione: Si/No", vbYesNo, "IMPRIMIR")

    If res = vbNo Then Exit Sub
       
        Set rsInvoiceItems = New ADODB.Recordset
       
        StrSQL = "SELECT factura.numfac, factura.ciu, factura.dircli, factura.dpt," & _
        "factura.fecfac, factura.fecven, factura.nit, factura.nomcli, factura.pla," & _
        "factura.razsoc, factura.tel, factura.tipcli, factura.valtot, productos_factura.precio," & _
        "productos_factura.canfac, productos_factura.numfac AS Expr1, productos_factura.codpro," & _
        "Producto.nampro, Producto.prepro, productos_factura.subtot, factura.cantot, factura.des," & _
        "factura.fecpropag, factura.percent, factura.tra FROM factura, productos_factura," & _
        "Producto WHERE factura.numfac = productos_factura.numfac AND productos_factura.codpro = Producto.codpro"
       
        ' EN LA VARIABLE StrSQL REALIAMOS LAS CONSULTAS SOBRE LOS REGISTROS MEDIANTE SQL
       
       
        With rsInvoiceItems

            Criteria = "numfac='" & Trim(text1.text) & "'" ' EN ESTE CASO LO QUE VOY A CONSULTAR SON LOS DATOS DE UNA FACTURA
                                                           ' HAGO LA BUSQUEDA DEL ID: NUMFAC
            .Open StrSQL, ActiveConnection:=DE.CnPanamericana, _
            CursorType:=adOpenKeyset, LockType:=adLockOptimistic

            ' DE es el objeto DataEnvironment y CnPanamericana es la conxion a la base de datos

            .Filter = Criteria

   
            If .EOF Then
                MsgBox "No Existe El registro", _
                vbInformation, "No se encontró el dato"
                .Close
   
            Else
                DATAREPORT1.DataMember = rsInvoiceItems
                DATAREPORT1.PrintReport
                Unload DATAREPORT1
                .Close
            End If

    End With






cassiani

Cita de: chegue en  9 Diciembre 2008, 23:31 PM
tengo un prolema el programa me genera un reporte pero el reporte me muestra todos los registros de la bases de dato, pero solo nececito que por medio de un formulario un txt y un buton en la cual el txt ingrese el numero de cedula y al aceptar me genere el reporte solo con los registros que se encuentran en la base de datos con ese numero de cedula. trabajo con datareport y vb 6.0AYUDA

A mi parecer, lo que haces mal es el filtro a la hora de hacer la consulta o quizás simplemente no lo estas haciendo y como no colocas ningún ejemplo :-\

recuerda incluir la cláusula WHERE en tus consultas, por ejmplo:
CitarWHERE Cedula = '80457894'

cabe señalar, que en una consulta de este tipo solo deberias obtener un registro, ya que solo una persona en la db contaría con ese número de cédula (es el deber ser). Por esa razón muchas personas deciden usar ese campo como PK y de esa manera evitar duplicados y no depender de validaciones externas.

saludos!

chegue

ese es el prolema amigos a la hora de hacer el filtro nose como se hace al igual que una consulta yo lo unico que necesito es que el reporte que se me genera solo muestre por medio de su cedula todas las veces que a sido registrado

es un programa sencillo en este caso la cedula no es sin duplicados todo lo contrario es con duplicado, lo que si no se duplica es el nº de registro.

yo lo que quiero es que al ingresar el numero de cedula me parescan todos los registros que se encuentran en la bases de datos con ese numero de cedula eso es lo que quiero,
pero me aparecen todos y no los quiero todos me dicen que por una consulta. no se como se aplica en realidad   y gracias por ayudarme con sus repuestas soy un poco nuevo en esto dela programacion ok disculpen.....

chegue

gracias cassiany y a todos prebe todos lo ejemplos que me enviaron hasta que logre el resultado se los agradezco me salvaron.....