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 :oops: .
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