It is currently 21 April 2025, 18:59 Advanced search

Ricerca generalizzata

Domande e risposte su come utilizzare Instant Developer Cloud al meglio

Ricerca generalizzata

Postby poidomani » 26 October 2015, 8:33

Con Inde classico era possibile utilizzare query full-text sfruttando la getQueryText e setQueryText, bisognerebbe che anche in inde cloud questo fosse possibile.
Il vantaggio è quello di scrivere una funzione globale richiamabile praticamente con una riga di codice da una qualsiasi Form.
Per esempio posso passare alla funzione il testo della query (select nome, cognome, indirizzo, cap, provincia from soggetti) e la stringa di ricerca digitata dall'operatore (Pilardi Cavour) e ottenere la where. Per esempio, volendo restare nel semplice:
where nome+ cognome+ indirizzo+ cap+ provincia like "%pilardi%' or nome+ cognome+ indirizzo+ cap+ provincia like "%cavour%'.
E quindi la query finale sarebbe:
Code: Select all
select nome, cognome, indirizzo, cap, provincia from soggetti where  (nome+ cognome+ indirizzo+ cap+ provincia like "%pilardi%') or (nome+ cognome+ indirizzo+ cap+ provincia like "%cavour%')

Così sarebbe possibile disporre di una semplice (o complessa, tanto è da scrivere una sola volta) ricerca full-text.

Se non sono stato abbastanza c'è allegato un semplice esempio inde classic.
Attachments
FullText.zip
(437.43 KiB) Downloaded 467 times
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
poidomani
 
Posts: 3310
Joined: 4 November 2010, 15:07
Location: Bologna

Re: Ricerca generalizzata

Postby m.sirri » 6 November 2015, 7:58

E' già possibile farlo anche con Inde Cloud. Nell'evento BeforeLoadData della DataMap hai come parametro la query strutturata che sta per essere eseguita.
User avatar
m.sirri
Pro Gamma
Pro Gamma
 
Posts: 8574
Joined: 30 September 2010, 17:01
Location: Ozzano dell'Emilia (BO)

Re: Ricerca generalizzata

Postby poidomani » 6 November 2015, 12:07

e posso sia ottenere il testo della query che alterarlo e reinserirlo nella datamap?
Allora aspetta che ci ragiono, l'utente digita la sua stringa di ricerca (esempio: "Milano drogheria") e preme su un'iconcina per avviare la ricerca, scatta la BeforeLoadData della DataMap e lì io intervengo, poi però dovrei rimettere la query della datamap a com'era in origine e questo quando lo faccio? C'è un altro evento che mi consente di farlo? Forse mi dovrei settare un flag come promemoria in modo che alla successiva BeforeLoadData io possa sapere se devo usare la query d'origine che mi sarò memorizzato da qualche parte o se ho una nuova stringa di ricerca impostata dall'operatore. Tu mi puoi suggerire una cosa più semplice?
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
poidomani
 
Posts: 3310
Joined: 4 November 2010, 15:07
Location: Bologna

Re: Ricerca generalizzata

Postby m.sirri » 12 November 2015, 15:15

Nell'evento beforeLoadData hai il parametro query che è un clone della query della datamap che puoi modificare a piacimento.
Tieni conto che questo parametro non è una stringa, ma bensì un oggetto javascript corrispondente alla query che verrà tramutato in testo SQL.
User avatar
m.sirri
Pro Gamma
Pro Gamma
 
Posts: 8574
Joined: 30 September 2010, 17:01
Location: Ozzano dell'Emilia (BO)

Re: Ricerca generalizzata

Postby poidomani » 13 November 2015, 15:18

grazie Matteo provo a capire cosa devo fare per ottenere la stringa, usando questo unitamente alla tua risposta riguardo alla reflection del DB si possono fare grandi cose.
Ing. Giovanni Poidomani - freelance
saper ascoltare significa possedere, oltre al proprio, il cervello degli altri. (Leonardo da Vinci)
poidomani
 
Posts: 3310
Joined: 4 November 2010, 15:07
Location: Bologna


Return to Tips & Tricks - Cloud

Who is online

Users browsing this forum: No registered users and 17 guests

cron