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