[Risolto]Visualizzar valore casella combinata,estrarne altro

Discussioni sulle caratteristiche di database
Rispondi
ang81
Messaggi: 6
Iscritto il: venerdì 13 aprile 2012, 11:39

[Risolto]Visualizzar valore casella combinata,estrarne altro

Messaggio da ang81 »

Salve a tutti, sono nuovo e questo è il mio primo messaggio... Piacere, Angelo!

Oltre che essere nuovo del forum sono nuovo di OpenOffice.org, mentre ho una buona conoscenza si MS Access. Passando a MAC OSX, per trovare l'alternativa ad Access mi sono avvicinato ad OpenOffice Base (v 3.X) e devo dire ne sono rimasto piacevolmente stupito... cosa che davvero non credevo.
Ma veniamo al punto. Ho un problema su un formulario che saprei risolvere in Access ma non in Base:
lavoro su due tabelle: tClienti[ID, Ragione_Sociale, ...] e tContatti[Data, Ora, fkClienti, ...] dove fkClienti è Foreign Key dei clienti. In pratica nel formulario MascheraContatti ho la necessità di inserire "a quale cliente si riferisce un contatto", che detto in soldoni equivale a mettere l'ID del fkClienti.

In Access facevo così: creavo una casella combinata di 2 colonne che facesse la "SELEC ID, Ragione_Sociale FROM tClienti", mostravo entrambe le colonne ma prendevo il valore della prima (ID) che mi andava a finire in tContatti[fkClienti]. Bello ed elegante!
In OOo ho provato a cercare qualcosa di analogo ma nn l'ho trovato, se faccio una select come sopra per la casella combinata mi mostra comunque solo la prima colonna, che come potete immaginare è abbastanza inutile: un conto è visualizzare che un contatto si riferisce al Cliente "Fiat SpA" ed un conto è visualizzare che si riferisce al Cliente con ID=120... che magari è sempre "Fiat SpA" ma nn si capisce ed è + facile sbagliare.
Come potrei risolvere, magari in maniera analoga a quanto facevo in Access?

Dei modi li ho già in mente ma sono brutti da vedere:
1) Trasformo la casella combinata di cui sopra in un campo semplice, inserisco una sottomaschera "Legenda" popolata da SELEC ID, Ragione_Sociale FROM tClienti così che guardo "Fiat SpA" a che ID corrisponde e lo inserirei a manella nell'apposito campo
2) Trasformo la casella combinata di cui sopra in un campo semplice, inserisco una nuova casella combinata popolata da SELEC ID&Ragione_Sociale FROM tClienti (dove & è un'operatore di concatenazione di stringhe ) così che guardo "Fiat SpA" a che ID corrisponde e lo inserirei a manella nell'apposito campo

Grazie in anticipo a tutti.
PS: ho cercato nel forum, ma o sono broccolo o ci sono problemi differenti (può essere anche la prima :D )
Ultima modifica di ang81 il lunedì 16 aprile 2012, 9:51, modificato 1 volta in totale.
OpenOffice 3.X su Mac OSX
ang81
Messaggi: 6
Iscritto il: venerdì 13 aprile 2012, 11:39

Re: Visualizzare un valore su casella combinata, estrarne al

Messaggio da ang81 »

Ho risolto prima che qualcuno mi rispondesse, ma posto la soluzione per i posteri (a cui spetta l'ardua sentenza :D )

In pratica ho simulando ciò che volevo con una casella di riepilogo.

1) LOGICA
Creiamo la casella di riepilogo seguendo la procedura guidata,
diamo come Campo di controllo la tabella tClienti (passo 1 procedura guidata)
diamo come Campo di visualizzazione tClienti[Ragione_Sociale] che in seguito modificheremo (passo 2 procedura guidata)
come Campo della tabella dei valori (è dove deve andare a finire il dato che verrà inserito in maschera - è diverso da quello visualizzato) tContatti[fkCliente] e come Campo della tabella di elenco (quello da catturare e il cui valore va inserito in tabella) tClienti[ID] (passo finale procedura guidata)

2) DATI
Modifichiamo come verranno visualizzati i dati nella casella di riepilogo lavorando direttamente nella sorgente dati:
Proprietà della casella>>Dati
Tipo del contenuto della lista=Sql
Contenuto elenco=SELECT CONCAT(CONCAT( "ID",' - '), "tRagione_Sociale" ) FROM "tClienti"
Campo collegato=1
Il valore CONCAT(CONCAT( "ID",'-'), "tRagione_Sociale" ) serve a mostrare nella casella stringhe del tipo "120 - Fiat SpA", però, per la logica di cui sopra, anche se vediamo tutto, catturiamo e riportiamo in tContatti[fkCliente] solo il valore 120, corrispondente all'ID di Fiat SpA.

3) ASPETTO
Per simulare una casella combinata con una casella di riepilogo, dopo aver creato quest'ultima, nelle sue proprietà generali impostiamo "Apribile=SI" e la riduciamo di altezza fino alle dimensioni di una casella combinata ed almeno all'aspetto è uguale.

Spero di essere utile a qualcuno.
Ciao e Grazie
OpenOffice 3.X su Mac OSX
Avatar utente
bydindi
Volontario
Volontario
Messaggi: 258
Iscritto il: lunedì 21 febbraio 2011, 10:16

Re: Visualizzare un valore su casella combinata, estrarne al

Messaggio da bydindi »

Bene!!! :super: e... benvenuto!!!
Se puoi allega un esempio (con dei dati inventati) in modo tale da dare "un aiutino" a chi è alle prime armi, inoltre aggiungi [Risolto] al titolo del tuo primo messaggio

http://user.services.openoffice.org/it/ ... 1&t=2#p224

Ciau
OOo 4.1.1 su Windows Vista
ang81
Messaggi: 6
Iscritto il: venerdì 13 aprile 2012, 11:39

Re: [RISOLTO]Visualizzar valore casella combinata,estrarne a

Messaggio da ang81 »

Riporto, come da richiesta, un esempio con una maschera molto spartana, struttura dati e tabelle popolate per facilitare la comprensione.
Invito chi voglia comprendere bene il problema e la sua soluzione a:
1) guardare i dati nella tabella tContattiIntercorsi,
2) aprire la maschera e mettersi nella modalità per INSERIRE un nuovo record,
3) guardare nuovamente i dati nella tabella tContattiIntercorsi, notando come il nuovo record sia stato inserito con l'id cliente anziché con la modalità mostrata "Id-RagSoc"
4) vedere la query che popola la casella di riepilogo
Completano l'esempio la tabella tClienti dove sono riportate le RagioniSociali e gli Id che si riferiscono al cliente e una tabella tReferenti che con l'esempio in questione nn c'entra nulla.
Ciao
Allegati
esempio.odb
Db esempio con maschera che risolve i problemi di cui sopra
(31.96 KiB) Scaricato 1461 volte
OpenOffice 3.X su Mac OSX
OpenOfficeUser
Messaggi: 19
Iscritto il: giovedì 21 giugno 2012, 22:50

Re: [RISOLTO]Visualizzar valore casella combinata,estrarne a

Messaggio da OpenOfficeUser »

Grazie per il post, mi è stato utile!
LibreOffice - Versione: 5.1.6.2 - Build ID: 1:5.1.6~rc2-0ubuntu1~xenial2
Apache OpenOffice 4.1.3 - su Ubuntu 16.04 64 bit
Rispondi