Differenze tra le versioni di "LibreofficeRubrica"

Da GolemWiki.
Jump to navigation Jump to search
(Libreoffice Base Creare un formulario di ricerca in una tabella. Utile per creare una rubrica.)
 
m (pagina categorizzata)
 
(8 versioni intermedie di un altro utente non mostrate)
Riga 1: Riga 1:
 
Libreoffice Base   
 
Libreoffice Base   
−
Creare un formulario di ricerca in una tabella.
+
 
−
Utile per creare una rubrica.
+
== Creare un formulario di ricerca in una tabella.
 +
Utile per creare una rubrica. ==
 +
 
  
 
1) Creare tabella con i vari campi dati, nel mio caso '''Tab1'''
 
1) Creare tabella con i vari campi dati, nel mio caso '''Tab1'''
−
    Esempio: ‘Nome’ ‘Cognome’ ‘Telefono’
+
Esempio: ‘Nome’ ‘Cognome’ ‘Telefono’
  
 
2) Creare tabella '''filtro''' con campi con nome simile ai campi della tabella '''Tab1''' e il campo '''ID''' con propietà '''“si/no[BOOLEAN]”'''
 
2) Creare tabella '''filtro''' con campi con nome simile ai campi della tabella '''Tab1''' e il campo '''ID''' con propietà '''“si/no[BOOLEAN]”'''
Riga 21: Riga 23:
  
 
Nel secondo campo scegliere il campo che viene usato per filtrare poi modificarlo
 
Nel secondo campo scegliere il campo che viene usato per filtrare poi modificarlo
−
  '''UPPER (“NomeCampo”)'''. Nella casella  Criterio scrivere '''COME '%' || UPPER ( :P1 ) || '%''''
+
  '''UPPER (“NomeCampo”)'''. Nella casella  Criterio scrivere ''' COME '%' || UPPER ( :P1 ) || '%' '''
 
'''Togliere Spunta'''
 
'''Togliere Spunta'''
  
Riga 37: Riga 39:
  
 
Non necessario, ma si puo’ usare la seguente macro per aprire in automatico il formulario
 
Non necessario, ma si puo’ usare la seguente macro per aprire in automatico il formulario
−
'''SUB OpeningForm
+
  SUB OpeningForm
 
   Dim ObjTypeWhat
 
   Dim ObjTypeWhat
 
   Dim ObjName As String
 
   Dim ObjName As String
Riga 48: Riga 50:
 
       MsgBox "Error! Wrong form name used. " & ObjName
 
       MsgBox "Error! Wrong form name used. " & ObjName
 
   End if
 
   End if
−
   
+
  End Sub
−
End Sub'''
 
  
 
mentre la seguente macro mette in fullscreen la finestra.
 
mentre la seguente macro mette in fullscreen la finestra.
−
'''SUB Fullscreen
+
 
 +
  SUB Fullscreen
 
   DIM oDispatcher As Object, Props(0) As New com.sun.star.beans.PropertyValue
 
   DIM oDispatcher As Object, Props(0) As New com.sun.star.beans.PropertyValue
 
   oDispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
 
   oDispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
 
   Props(0).Name = "FullScreen" : Props(0).Value = true
 
   Props(0).Name = "FullScreen" : Props(0).Value = true
 
   oDispatcher.executeDispatch(ThisComponent.CurrentController.Frame, ".uno:FullScreen", "", 0, Props())
 
   oDispatcher.executeDispatch(ThisComponent.CurrentController.Frame, ".uno:FullScreen", "", 0, Props())
−
End SUB'''
+
  End SUB  
  
 
-------------------------------------------------------------------------------------------------------------------------------------------------------
 
-------------------------------------------------------------------------------------------------------------------------------------------------------
  
 
Link da dove ho preso spunto per questo tutorial
 
Link da dove ho preso spunto per questo tutorial
−
  [https://forum.openoffice.org/en/forum/viewtopic.php?f=100&t=42845]
+
  [https://forum.openoffice.org/en/forum/viewtopic.php?f=100&t=42845 https://forum.openoffice.org/en/forum/viewtopic.php?f=100&t=42845]
 +
 
 +
[[Category:Howto]]

Versione attuale delle 12:35, 20 ago 2019

Libreoffice Base

== Creare un formulario di ricerca in una tabella. Utile per creare una rubrica. ==


1) Creare tabella con i vari campi dati, nel mio caso Tab1 Esempio: ‘Nome’ ‘Cognome’ ‘Telefono’

2) Creare tabella filtro con campi con nome simile ai campi della tabella Tab1 e il campo ID con propietà “si/no[BOOLEAN]” Esempio: ‘Nom’ ‘Cogn’ ‘Tel’

3) Seguire procedura guidata formulario usando come dati la tabella filtro

4) Aprire Navigatore formulario, tasto destro su MainForm/Propietà e scegliere Dati. A tipo di contenuto selezionare con il menu’ a tendina Comando SQL. Cliccando sui tre puntini accanto a Contenuto si apre una finestra. Scegliere la tabella filtro

5) Creare una casella di testo sempre all’interno di MainForm e come Dati scegliere il campo da usare come ricerca Esempio: ‘Nom’

6) Aprire Navigatore formulario, tasto destro su MainForm/Nuovo Formulario. Rinominare in SubForm

7) Aprire Navigatore formulario, tasto destro su SubForm/Propietà e scegliere Dati. A tipo di contenuto selezionare con il menu a tendina Comando SQL. Cliccando sui tre puntini accanto a Contenuto si apre una finestra. Scegliere la tabella Tab1. Cliccare sul Primo Campo e scegliere NomeTabella*. Nel mio caso Tab1*.

Nel secondo campo scegliere il campo che viene usato per filtrare poi modificarlo

UPPER (“NomeCampo”). Nella casella  Criterio scrivere  COME '%' || UPPER ( :P1 ) || '%' 

Togliere Spunta

Nel Terzo campo scrivere :P1 e nella casella 0 (quella sotto criterio), scrivere È VUOTO Togliere Spunta. Chiudere finestra comando Sql.

Nel campo collega da cliccare sui tre puntini a destra. Alla voce ‘formulario secondario’ scegliere P1 mentre alla voce Formulario Master campo da usare come ricerca. Esempio: formulario secondario=P1 Formulario Master=‘Nom’

8) In SubForm creare un Pulsante e nelle propietà, in casella Operazione scegliere Aggiorna Formulario

9) In SubForm creare una tabella con procedura guidata o caselle di testo collegate ai campi della tabella filtro per visualizzare i dati.


Non necessario, ma si puo’ usare la seguente macro per aprire in automatico il formulario

 SUB OpeningForm
 Dim ObjTypeWhat
 Dim ObjName As String
 ObjName = "Filtro"
 ObjTypeWhat = com.sun.star.sdb.application.DatabaseObject.FORM
 If ThisDatabaseDocument.FormDocuments.hasbyname(ObjName) Then 'Check the form exists'
    ThisDataBaseDocument.CurrentController.Connect() 'If the form exists connect to the database'
    ThisDatabaseDocument.CurrentController.loadComponent(ObjTypeWhat, ObjName, FALSE) 'Open the form'
 Else
     MsgBox "Error! Wrong form name used. " & ObjName
 End if
End Sub

mentre la seguente macro mette in fullscreen la finestra.

  SUB Fullscreen
  DIM oDispatcher As Object, Props(0) As New com.sun.star.beans.PropertyValue
  oDispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
  Props(0).Name = "FullScreen" : Props(0).Value = true
  oDispatcher.executeDispatch(ThisComponent.CurrentController.Frame, ".uno:FullScreen", "", 0, Props())
  End SUB 

Link da dove ho preso spunto per questo tutorial

https://forum.openoffice.org/en/forum/viewtopic.php?f=100&t=42845