Pagina 1 di 1
[Risolto] Filtro Rapporto
Inviato: mercoledì 5 ottobre 2022, 15:05
da Fa_Fer
Ciao a tutti, ho un problema, che sono sicuro essere una stupidata ma mi sto approcciando a al mondo Open/Libre office e derivo da Access...
semplicemente non riesco a fare in modo che il rapporto mostri solamente i dati della riga selezionata nel fomulariio (Tessera) , in modo tale che ne venga visualizzata solamente una volta...
potete aiutarmi?
Re: Filtro Rapporto
Inviato: mercoledì 5 ottobre 2022, 19:03
da charlie
Ciao, sono un po' arruginito sui report, anche se qualche anno fa ho scritto un tutorial
.
Di primo acchito noto che non c'è nessun filtro perchè la fonte dati del report è la tabella intera. Occorre interporre una query che visualizzi il record corrente.
Re: Filtro Rapporto
Inviato: giovedì 6 ottobre 2022, 14:16
da Fa_Fer
Tirando giù molti nomi sono riuscito a capire come fare (più o meno) ho palesemente copiato l'SQL da un'altro DB
Per un altro problema posso continuare qui o devo fare una nuova discussione?
Re: Filtro Rapporto
Inviato: giovedì 6 ottobre 2022, 15:31
da charlie
Ciao, dovresti condividere la soluzione e mettere il risolto nel titolo del primo post
✔ [Risolto]
viewtopic.php?f=2&t=5661
Poi apri un nuovo argomento.
Re: Filtro Rapporto
Inviato: venerdì 7 ottobre 2022, 18:07
da Rafkus_pl
Codice: Seleziona tutto
Sub Aprireport_2(oEvent As Object)
Dim sNameRaport as string
Dim id as string
Dim oForms As Object
Dim oGrid As Object
sNameRaport = oEvent.source.model.name
'ottenere i dati dal campo
oForms = ThisComponent.DrawPage.Forms(0)
oGrid = oForms.getByName("MainForm_Grid")
id = oGrid.getByName("Tessera").Text
If id="" then
'MsgBox "Il campo Tessera non può essere vuoto"
elseif ThisDatabaseDocument.ReportDocuments.hasByName(sNameRaport) Then
'Chiamare una funzione con parametri
openReport( sNameRaport, "Tessera = " & id)
Else
MsgBox "non c'è rapporto con il nome " & sNameRaport
End If
End SUB
Function openReport( aReportName, optional sFilter) As Object
Dim aProp(2) as new com.sun.star.beans.PropertyValue
Dim oReportDesign
aProp(0).Name = "ActiveConnection"
aProp(0).Value = ThisComponent.DrawPage.Forms(0).Activeconnection
aProp(1).Name = "Hidden"
aProp(2).Name = "OpenMode"
'Aprire il report in visualizzazione Progettazione
If not IsMissing(sFilter) then
aProp(1).Value = true
aProp(2).Value = "openDesign"
oReportDesign = ThisDatabaseDocument.ReportDocuments.loadComponentFromURL(aReportName ,"", 0, aProp())
'Inserimento di un nuovo filtro
oReportDesign.filter = sFilter
endif
aProp(1).Value = false
aProp(2).Value = "open"
'Passare il report dalla visualizzazione progetto alla visualizzazione normale
openReport = ThisDatabaseDocument.ReportDocuments.loadComponentFromURL(aReportName ,"", 23, aProp())
End function
Nel file allegato c'è anche una versione leggermente diversa della macro (Aprireport) - per vari rapporti
Editato: Ho sostituito il file - ho aggiunto il supporto per i campi di testo e le date. |
Re: Filtro Rapporto
Inviato: sabato 8 ottobre 2022, 18:34
da Fa_Fer
Stupendissimo... Grazie mille