Oppure

Loading
11/01/22 8:55
alip1
Ho un report disegnato tramite SSRB 3.0.
Il report é di tipo .rdl per cui tramite codice VB.NET e Report Viewer viene agganciato e visualizzato.
Il data set é gestito in modo dinamico in modo da poter filtrare i record in base alle esigenze dell'utente.

Il report è molto semplice ha:
1) una intestazione di pagina con una casella di testo (TestataREp) con il valore: 'LISTA ATTIVITà';
2) nel corpo una tabella che visualizza i record in base al dataset;
3) un piè di pagina con la numerazione delle pagine.

Poichè i dati da visualizzare vengono filtrati secondo le scelte dell'utente, vorrei poter cambiare in modo dinamico il valore della textbox (la TestataRep) nell'intestazione di pagina, ma non so come fare.

In pratica vorrei, ad esempio, che la testata potesse essere cambiata, via codice vb.net, da 'LISTA ATTIVITà' in 'LISTA ATTIVITà del gruppo xxxx'
oppure in 'LiSTA ATTIVITà Personali' ecc. ecc.
Non so se sono riuscito a spiegarmi.
Grazie per ogni utile consiglio.
aaa
21/01/22 9:25
alip1
Buongiorno a tutti.
Mi sono reso conto che la problematica sollevata non ha prodotto alcun suggerimento.
Quindi ho cercato documentazione in microsoft e dopo vari tentativi a vuoto ho trovato la soluzione.
Se è gradita ai più mi permetto di mostrare ciò che ho fatto sperando di essere di aiuto ad altri.

Intanto preciso che lho utilizzato VS2012 progetto in VB e per il design del report ho utilizzato Report Builder 3.0.

Soluzione:


In un form (con nome frmrepListAttivita) ho aggiunto un oggetto ReportViewer con nomeo: rpListaAttivita.
all'oggetto rpListaAttivita ho settato tutti i valori necessari:
FileRepName , FileRepEsterno , PathFileRep , SQLSelect , DataSetName , SetMargini, Orientazion
dall'ovvio significato .
Il report è stato progettato con Report Buildel 3.0 che mi ha creato un file esterno con suffisso .rdl.
Nel report è stato semplicemente definito un parametro di nome SottoTitolo.

Nella sezione di intestazione del report oltre ad una textbox con il titolo statico del report ho aggiunto subito sotto
una'altra textbox cui però ho associato come valore il parametro (tramite fx si seleziona nell'apposita finestra..) ed ugualmente
nel campo espressione descrizione.

Nel form contenente il ReportViewer ( rpListaAttivita ) ho definito sia una variabile stringa stSottoTitolo
che viene settata con il valore desiderato.

Nell'evento load del form (frmrepListAttivita) dopo aver settato le diverse proprietà del report (rplistaAttivita) ho aggiunto le seguenti due righe di codice:

     
         ....
         SettaSottoTitolo()                          ----> routine sottostante
         Me.rpListaAttivita.RefreshReport()   ----> aggiorna il report , lo carica e lo visualizza
         .....
    


Private Sub SettaSottoTitolo()
      If vdatiFilterRep.SottoTitolo = "" Then Exit Sub   ' se non c'è un sottotitolo non fa nulla
      Dim stSottoTitolo = vdatiFilterRep.SottoTitolo     ' setta il valore che è stato valorizzato in un oggetto appositamente strutturato vedi dopo..
      Dim P1 As ReportParameter = New ReportParameter()  ' definisco una var di tipo reportparameter
      P1.Name = "SottoTitolo"                            'gli assegno il nome del parametro (deve essere uguale a quello cui fa riferimento la casella di testo nel report
      P1.Values.Add(stSottoTitolo)                       'assegno al parametro il valore desiderato (in questo caso il valore di tipo stringa è in variabile)

      'Passaggio dei parametri al Report.
      Me.rpListaAttivita.LocalReport.SetParameters(New ReportParameter() {P1})  ' passo il parametro al report

end sub

'*********** nota aggiuntiva ****
la varabile vdatifilterRep è un oggetto di tipo DatiFilterRepCS

la classeDatiFilterRepCS è così definita con ovvio significato. Alle variabili private corrispondono proprietà pubbliche con lo stesso nome ma senza il prefisso m_ .
Tali proprietà non sono riportate per brevità.

Public Class DatiFilterRepCS
   '**************
   'Dichiarazioni
   '**************
   '*******Paramentri e valori da inserire **********
#Region "Proprietà"
   
   '**** proprietà oggetto attività da utilizzare come filtri
   Private m_oggettoAtt As String
   Private m_stDataInizioAtt As String
   Private m_stDataScadenzaAtt As String
   Private m_DataScadenzaAtt As Date
   Private m_stato As String
   Private m_fkCreataDa As Integer
   Private m_fkAssUser As Integer
   Private m_fkGroup As Integer
   Private m_fkGestitaDa As Integer
   Private m_GruppoName As String

   Private m_flagPersonale As Boolean
   Private m_gruppi As Boolean
   Private m_Completate As Boolean
   Private m_Attive As Boolean
   Private m_Nuove As Boolean
   Private m_Tutte As Boolean

   '*** specifiche per l'oggetto report ****
   Private m_FileRepName As String
   Private m_sqlSelect As String
   Private m_DataSetName As String
   Private m_SottoTitolo As String
#End Region
.....
end class



Mi scuso se non è chiaro. Buon lavoro a tutti:hail:
Ultima modifica effettuata da alip1 21/01/22 9:32
aaa