Differenze tra le versioni di "LibreofficeRubrica"
(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’ | |
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 | |
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 | ||
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