Ricerche

Ricerche

0
0

Buon giorno
rieccomi con un altro problema. Se poi verrà fuori che è un’altra banalità vuol dire che appenderò Filemaker ad un chiodo e mi ritirerò in un eremo solitario a meditare.
Contesto: una qualsiasi gestione anagrafica, per esempio il classico indirizzario con nome, cognome, via, comune e provincia.
Problema: visualizzare la scheda di una persona senza perdere eventuali precedenti selezioni e l’ordinamento.
Mi spiego meglio: mi serve ‘filtrare’ solo le schede delle persone residenti in provincia di Torino, ordinate per cognome e nome, e poi cercare il solito Paolo Rossi, che abita appunto in provincia di Torino, ma senza perdere il ‘filtro’ e l’ordinamento attivi perché, partendo dalla scheda di Paolo Rossi, voglio poter scorrere le altre schede della provincia di Torino senza dover fare ulteriori ricerche. E questo indipendentemente dalla selezione di partenza che potrebbe anche essere complessa e definita, di volta in volta, con una ricerca su tutto il database. Ho provato vari accrocchi che funzionano anche, ma che non mi convincono granché.
Attendo fiducioso l’illuminazione e ringrazio.
rb

Segnalato come spam
Pubblicata da (Domande: 17, Risposte: 24)
Domanda inviata 2 Aprile 2015 15:55
34 vis.
0
Domanda privata

OK , ho fatto un po’ di prove e credo di aver capito che non esiste ’la Soluzione’ (con la S maiuscola) ma che molto dipenda dal contesto in cui si opera; in qualche caso l’uso di relazioni e/o di finestre aggiuntive velocizza notevolmente mentre in altre situazioni, con relativamente pochi record da gestire, il loop non fa perdere troppo tempo e consente di scorrere i dati in maniera più fluida.

rb

Segnalata come spam
Pubblicata da (Domande: 17, Risposte: 24)
Risposta inviata 14 Aprile 2015 21:46
0
Domanda privata

ok. allora invece del loop ti conviene uno scritp tipo:
– nuova finestra[modale]
– limita gruppo trovato[]
in cui riporti ”=” e contenuto del campo di scelta.

risparmi tempo, mantieni la selezione e quando hai finito di esaminare la scheda chiudi e torni dove eri :)

poi, comunque, se così ti funziona vai tranquillo: in sintesi gli unici modi semplici di operare all’interno di un fondset sono questi. :D

.g.

 

Segnalata come spam
Pubblicata da (Domande: 0, Risposte: 1544)
Risposta inviata 7 Aprile 2015 11:45
0
Domanda privata

Grazie per i suggerimenti ! Per le mie esigenze, in questo caso specifico, la lista valori funziona bene perché con la modalità elenco a discesa quando inizio a digitare il nome da cercare la lista mi indirizza automaticamente sui nominativi compatibili: di solito dopo tre-quattro caratteri il nome desiderato è a portata di mouse e quindi la ricerca è abbastanza veloce. Con un difetto: la lista valori mostra sempre tutti i nomi presenti nel database e quindi può facilmente succedere di lanciare la ricerca su un nome che non fa parte del gruppo precedentemente selezionato (la provincia di Torino nell’esempio di partenza). In questo caso l’autorelazione + ’vai al record correlato’ non funziona perchè, pur visualizzando rapidamente la scheda cercata, mi ritrovo con tutti i record attivi e non ordinati. Ho provato anche con un portale, ma mi ritrovo inevitabilmente (probabilmente a causa dei miei limiti) con un elenco da scorrere; in un range di nomi più limitato, ma alla fin fine trovo più comodo e veloce poter usufruire della ’guida’ dell’elenco a discesa che non riesco a riprodurre in un portale. Alla fine sono ricorso al sistema che ho descritto perché mi consente di non toccare la selezione di partenza e, nel caso in cui la ricerca sia fatta su un nome non compreso in tale selezione, posso facilmente generare un messaggio che avverte che la ricerca non è andata a buon fine. Insomma, in questo modo ottengo quello che mi serve anche se in maniera un po’ contorta. Ma d’altra parte sono conscio dei miei limiti e già sapere che non è una schifezza assoluta mi conforta. Grazie ancora per il tempo dedicatomi e … continuate così perchè per i dilettanti allo sbaraglio questo sito è utilissimo.

rb

Segnalata come spam
Pubblicata da (Domande: 17, Risposte: 24)
Risposta inviata 6 Aprile 2015 22:01
0
Domanda privata

in se non è male, ho solo un paio di obiezioni: la prima è che se devi trovare un record con un nome _uguale_ a quello che inserisci in un campo globale ti conviene una autorelazione e un vai a record correlato con lo stesso formato. risparmi parecchio tempo.

la seconda è che una lista con tutti i nomi  secondo me è scomodissima nel caso di grandi numeri: invece di fare ti conviene un popover si, ma con un portale e un filtro che permetta di vedere direttamente solo i valori che inserisci nel campo di ricerca, o dinamicamente oppure a seguito di uscita campo.

.g.

Segnalata come spam
Pubblicata da (Domande: 0, Risposte: 1544)
Risposta inviata 5 Aprile 2015 11:38
0
Domanda privata

Buona sera Giulio

la soluzione snapshot link è fuori gioco perchè a me serve che funzioni in una soluzione runtime. Con le relazioni mi perdo perché non ho idea di come se ne possa impostare una che ’si adatti’ alla selezione attiva. Quindi penso che mi terrò l’ultimo nato dei miei accrocchi .

campo globale ’nome da cercare’ (ma un giorno o l’altro sarà possibile usare una variabile ’compilabile’ al posto del campo globale ?), inserito in un popover, collegato a lista valori che utilizza il cognome ed il nome delle persone presenti nel database. All’apertura del popover viene attivato lo script che azzera il campo ’nome da cercare’ e poi lo attiva (vai al campo: seleziona/esegui) in modalità ’elenco a discesa’. Con un altro script trigger su ’modifica oggetto’, una volta selezionato dalla lista a tendina il nome desiderato, viene chiuso il popover e contestualmente lanciata una ’scansione’ delle schede attive con un loop che si interrompe quando ’nome da cercare’ è uguale a ’cognome e nome’. Per accorciare i tempi del loop nel caso in cui la prima lettera del cognome è inferiore alla ’k’ la scansione parte dal primo record, altrimenti parte dall’ultimo. Anche se il mio database più grosso ha circa 4000 schede ho provato a ’gonfiarlo’ fino a 15.000 nomi e, tutto sommato, i tempi di risposta sono ancora accettabili.

Speravo ci fosse una soluzione più semplice ed elegante, ma pazienza … problema risolto … e l’eremo può aspettare :-)

rb

Segnalata come spam
Pubblicata da (Domande: 17, Risposte: 24)
Risposta inviata 4 Aprile 2015 22:43
0
Domanda privata

Buongiorno, Renato.

in linea di massima ci sono due approcci.

Uno è quello di cercare all’interno di un foundset usando la funzione limita gruppo trovato invece di esegui la ricerca, magari in una nuova finestra, così da salvaguardare la precedente ricerca. Calcola però che eseguendo una ricerca si perde il criterio di ordinamento, che va reimpostato manualmente o via script (anche trigger). il secondo è quello di usare le relazioni, ma va strutturato con attenzione.

Una via di mezzo può essere quella degli snapshot link (dalla v. 12 in poi), sulla quale puoi leggere qualcosa qui. :)

tienici informati!

.g.

 

Segnalata come spam
Pubblicata da (Domande: 0, Risposte: 1544)
Risposta inviata 4 Aprile 2015 21:07