Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    [VB.NET] Inviare un parametro al Report...

    Ho gia fatto altre discussioni in merito a questo Strumento e mi manca solamente di sapere un ultima cosa per poterlo usare almeno ai minimi termini,

    Come posso fare per passare un parametro alla QUERY del Crystal Report ???

    correi potere passare un ID per fare stampare un documento in base al mio ID inviato,

    in modi da ottenere un Report di dati sempre diversi a secondo le mie esigenze.

  2. #2
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,811
    codice:
    Imports CrystalDecisions.Shared
    
    
        Dim paramField As New ParameterField
            Dim discreteVal As New ParameterDiscreteValue
            Dim paramFields As New ParameterFields
    
    
            paramField.ParameterFieldName = NomeCampo
            discreteVal.Value = ParametroRicerca
            paramField.CurrentValues.Add(discreteVal)
            '  paramField.PromptText = "jjjjjjjjjjjjjjjj"
            '   paramField.Add(paramField)
            paramFields.Add(paramField)
            CrystalReportViewer1.ParameterFieldInfo = paramFields
    
    
            '    Me.CrystalReportViewer1.ReportSource = Application.StartupPath & "\..\CrystalReport1.rpt"
            Me.CrystalReportViewer1.ReportSource = Application.StartupPath & "\stampe\RPT_CercaArticolo.rpt"
    devi prima crearti un campo parametro nel crystal(per ed chiamalo prova)
    dopo dentro vb inserisci questo codice
    spiegazione:
    con questo codice

    n qusto codice nomeparametro devi inserire il nome del campo che hai creato dentro crystal
    parametroricerca indica il valore di ricerca quindi sein crystal hai una qury che fa:
    select * from clienti
    ed hai un campo parametro di tipo numerico di nome codCliente
    se gli passi come codcliente (stringa)e 1 come valore ti seleziona il cliente con codcliente 1

    p.s.
    questo codcie lo ho testato con vb.net 2003
    con il 2002 non so se è la stessa cosa

  3. #3
    Scusami ma il tuo codice mi apre una finestra con una Label "prova" e un ComboBox vuoto dove devo inserire un valore e poi se inserisco e vado avanti mi stampa nel report il valore da me inserito !!!

    non capisco .......!!!

    nel frattempo ho trovato questa Sub:

    codice:
        Public Sub AddCrtParm(ByVal valore As Object, ByVal Param_name As String, ByRef crtDoc As CrystalDecisions.CrystalReports.Engine.ReportDocument)
            Dim crtParmDefs As CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinitions
            Dim crtParmDef As CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinition
            Dim crtParmDefval As New CrystalDecisions.Shared.ParameterDiscreteValue()
    
            crtParmDefs = crtDoc.DataDefinition.ParameterFields
            crtParmDef = crtParmDefs.Item(Param_name)
    
            Dim crtParmVal As New CrystalDecisions.Shared.ParameterValues()
            crtParmVal = crtParmDef.CurrentValues
            crtParmDefval.Value = valore
            crtParmVal.Add(crtParmDefval)
            crtParmDef.ApplyCurrentValues(crtParmVal)
        End Sub
    solo che non so come richiamarla, cioe' quali dati passargli ... :quipy:

    1) Object --> quale oggetto ???
    2) String --> "qui devo inserire il campo in base al quale voglio fare la ricerca " ???
    3) ???

    se capisco questo ho finito credo !!!

  4. #4
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,811
    quando hai creato un parametro in crystal
    hai fatto 2 cose
    1) hai dato un nome al parametro
    2)hai dato un nome al parametro comq visualizzazione

    ti consiglio di nominarli con nome uguale
    in quanto non ti confondi quando esce la finestra con il messaggio ...

    cmq per il mio codice nomeparametro indica il nome del parametro che hai creato in crystal

    valore indica il codice di ricerca (filtro)



    p.s.
    se provi a inserire il codice di ricerca nella combo (di crystal vedrai che ti visualizza il report con filtro

    cmq
    se va tutto bene ctystal non ti chiede il parametro e ti mnostra direttamente il report

    riprova e fammi sapere

  5. #5
    Nulla sempre uguale, ma non mi potresti dare una mano qui ???

    codice:
            Dim oConn As New SqlConnection("Data Source=127.0.0.1,1433; Network Library=DBMSSOCN; Initial Catalog=Web_Monster; User ID=sa; Password=;")
            Dim myReport As CrystalReport1
            Dim DS As New DataSet()
            Dim parentCol As New DataColumn()
            Dim childCol As New DataColumn()
    
            oConn.Open()
            Dim da As New SqlDataAdapter("SELECT ID_Anagrafica, RagSoc FROM Anagrafica", oConn)
            da.Fill(DS, "Anagrafica")
    
            Dim da2 As New SqlDataAdapter("SELECT ID_Pratica, ID_Anagrafica FROM Pratiche", oConn)
            da2.Fill(DS, "Pratiche")
            oConn.Close()
    
            parentCol = DS.Tables("Anagrafica").Columns("ID_Anagrafica")
            childCol = DS.Tables("Pratiche").Columns("ID_Anagrafica")
    
            Dim relCustOrder As DataRelation
            relCustOrder = New DataRelation("CustomersOrders", parentCol, childCol)
    
            ds.Relations.Add(relCustOrder)
    
            myReport.SetDataSource(DS)
            CrystalReportViewer1.ReportSource = myReport

    mi restituisce il seguente errore:

    Eccezione non gestita di tipo "System.NullReferenceException" in Report_Vars.exe

    Informazioni aggiuntive: Riferimento a un oggetto non impostato su un'istanza di oggetto.


    Come mai ?

  6. #6
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,811
    uhm un attimo che ti posti un codice che ho io per passare un dataset a crystal....

  7. #7
    Saresti veramente troppo generoso !!!!

    ti ringrazio molto, a dopo!!

  8. #8
    Originariamente inviato da amodio
    uhm un attimo che ti posti un codice che ho io per passare un dataset a crystal....
    se hai installato la guida su VB.NET clicca qui

    ms-help://MS.VSCC/MS.MSDNVS.1040/crystlmn/html/crtskparameterfieldsruntimecustomization.htm

    e' un esempio come il tuo, ma pero a me non va:

    ma tu per passare una Chiave di ricerca al tuo Report come fai ???
    io faccio cosi:

    Nel Report:
    -----------------------------------------
    1) Campi databese -> Aggiungi/Rimuovi database
    2) 'Esperto database' -> OLE DB (ADO) -> trascino la tabella 'Anagrafica' -> OK.
    3) Campi di parametro -> Nuovo...
    4) 'Crea campo parametro' -> Nome = myParam -> Testo = ...nulla... -> Tipo valore = Numero -> OK.
    5) Campi database -> dalla mia tabella 'Anagrafica' -> RagSoc e trascino questo campo nei 'Dettagli (Section3)' del Report.
    6) Metto il codice postato da te oppure quello che ho trovato in MSDN locale il quale e' molto simile.
    7) Eseguo il Progetto, mi estrae TUTTI!!! i campi di 'RagSoc' e non solo quelli in base al numero che gli ho passato tramite il codice : discreteVal.Value = 1
    -----------------------------------------

    PERCHE!!!

  9. #9
    Utente bannato
    Registrato dal
    Mar 2002
    Messaggi
    1,811
    noooooooooo

    al testo prova a mettere lo stesso nome che hai dato al parametro

    si lo so è strano, non so dirti xche
    ma devi metterlo lo stesso

    e riprova il codcie che ti ho dato



    x il link che mi hai dato un momento lo guardo

  10. #10
    Per il nome del campo e la descrizione del campo ho messo "myParam" su tutti e due, e ho messo il seguente codice:

    codice:
            Dim paramField As New ParameterField()
            Dim discreteVal As New ParameterDiscreteValue()
            Dim paramFields As New ParameterFields()
    
            paramField.ParameterFieldName = "myParam"
            discreteVal.Value = 1
            paramField.CurrentValues.Add(discreteVal)
            paramFields.Add(paramField)
            CrystalReportViewer1.ParameterFieldInfo = paramFields
    
            CrystalReportViewer1().ReportSource = "../CrystalReport1.rpt"
    NULLA!!!!!!!!!

    mi tira su tutti i risultati!!!

    ma un dubbio :

    come faa creare una QUERY del tipo --> SELECT * FROM Anagrafica WHERE ID_Anagrafica = ???

    se non metto il WHERE xxx = '???'
    come fa a sapere cosa farne del campo di parametro ???

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.