It is currently 21 April 2025, 19:00 Advanced search

reflection

Domande e risposte su come utilizzare Instant Developer Cloud al meglio

reflection

Postby poidomani » 12 October 2015, 7:29

relativamente alla figura allegata vorrei sapere come faccio a ottenere il testo della query in una variabile visto che quando completo l'istruzione al punto 1) questa viene subito trasformata come nel punto 2).
In ogni caso quello che mi serve è questo, voglio in maniera generalizzata fornire all'operatore la possibilità di effettuare una ricerca tipo quelle di Google.
Esempio: avendo l'anagrafica | Serbelloni Mazzanti vien dal mare | Viale del tramonto inoltrato, 35/b | 40100 | San Lazzaro di Savena| BO |
l'operatore potrà effettuare una ricerca tipo: | serbe tramonto lazzaro |<invio>. Ora io questo tipo di ricerca non voglio scriverlo in ogni Form ma voglio crearmi una procedura generalizzata a cui passare il testo della query e il testo da cercare. Spero di essermi spiegato bene.
AGGIUNGO che come default per la proprietà Display sarebbe preferibile "flex" e non "block".
Attachments
Cattura.PNG
Cattura.PNG (16.32 KiB) Viewed 14202 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: reflection

Postby eurekapv » 31 October 2015, 13:02

Per effettuare una query via codice devi usare
var ris = nomedatamodel.query ( )

Se invece vuoi aggiungere dei filtri di caricamento alla dataMap puoi usare
$dataMap.clearfilters
$dataMap.addfilter ("campo","valore")
$dataMap.loaddata()
Pietro
Alchimisti Lab by Cavallini Pietro
https://www.alchimistilab.it

Image
User avatar
eurekapv
 
Posts: 2450
Joined: 2 November 2010, 22:16
Location: Vigevano

Re: reflection

Postby poidomani » 31 October 2015, 17:35

Ti spiego con un esempio, supponiamo che io abbia una Form di gestione dell'anagrafica e che voglia eseguire una ricerca full-text, quindi ad esempio, l'utente scrive una parte della ragione sociale e ad esempio la località: "ferramenta pavia". La select della datamap potrebbe essere
Code: Select all
select RagioneSociale, indirizzo, cap, localita, provincia from anagrafiche

A questo punto io vorrei passare il testo della query a una funzione globale che mi restituisse una cosa così
Code: Select all
select RagioneSociale, indirizzo, cap, localita, provincia from anagrafiche
where RagioneSociale+indirizzo+cap+localita+provincia like "%ferramenta%" or RagioneSociale+indirizzo+cap+localita+provincia like "%pavia%

In ogni Form prevederei un campo di input e un pulsante <cerca> e con un'unica funzione globale potrei filtrare i dati da esporre.
Insomma vorrei evitare di gestire i filtri campo per campo se non strettamente necessario.

Tu mi hai scritto: var ris = nomedatamodel.query ( )
ma io riesco a mettere in una variabile la query della datamap? Io non ci sono riuscito.
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: reflection

Postby poidomani » 6 November 2015, 12:19

comunque una reflection del DB sarebbe utile, manca anche in inde classico. E' una cosa complessa da sviluppare? Operando in D.O. è possibile avere le informazioni ma solo dopo aver caricato un documento o una collection.
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: reflection

Postby m.sirri » 11 November 2015, 17:05

In Inde Cloud ogni dataModel ha le informazioni dello schema, quindi potresti sfruttarle.
User avatar
m.sirri
Pro Gamma
Pro Gamma
 
Posts: 8574
Joined: 30 September 2010, 17:01
Location: Ozzano dell'Emilia (BO)

Re: reflection

Postby poidomani » 13 November 2015, 15:14

Se ho capito mi stai suggerendo di usare i nomi delle tabelle e dei campi che diversamente da inde classico, coincidono con quelle del db per ottenre le informazioni direttamente dalle tabelle di sistema interrogando direttamente il server, nel mio caso sql server.
Per esempio potrei eseguire una cosa come questa:
select distinct name from sys.objects where object_id in
( select fk.constraint_object_id from sys.foreign_key_columns as fk
where fk.referenced_object_id =
(select object_id from sys.tables where name = 'Ordini')
)

GRANDIOSO!!!! Supponendo di volermi svincolare dal tipo di DB riesco a sapere se il mio datamodel è Sql server piuttosto che Oracle ecc?
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: reflection

Postby m.sirri » 13 November 2015, 16:09

Intendevo dire che a run-time l'oggetto DataModel ha una proprietà chiamata schema con la definizione della sua struttura.
User avatar
m.sirri
Pro Gamma
Pro Gamma
 
Posts: 8574
Joined: 30 September 2010, 17:01
Location: Ozzano dell'Emilia (BO)

Re: reflection

Postby poidomani » 14 November 2015, 16:09

grazie, però senza documentazione è dura, si perde un sacco di tempo. Non ho trovato una oggetto Datamodel. Ho trovato solo un datamap schema che mi rimanda a server objects dataschema che a sua volta contiene columns. Oltretutto a me serve lo schema completo del database con tutti gli oggetti, FK, PK, constraints, ecc.
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: reflection

Postby poidomani » 16 November 2015, 22:28

proseguo la discussione su beforeLoadData = function (query) (e colore del testo guida)
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: reflection

Postby poidomani » 24 November 2015, 10:06

tanto per far pratica mi sono studiato lo chema della data map e ho scritto questo il cui risultato è nella immagine allegata, l'ho riportato nel caso a qualcuno interessasse:
Code: Select all
/**
* analisi dello schema della datamap
*/
form.dmSoggetti.beforeLoadData = function (query)
{
  var dataschema = $dmSoggetti.schema;
  var cols = dataschema.columns;
  var nomi = ''; // elenco nomi dei campi
  var props = ''; // elenco delle proprietà di una singola colonna
  var funcs = ''; // elenco dei metodi
  var flag = 0;
 
  for (var prop in cols) {// per ogni colonna
    //if (this.hasOwnProperty(prop)) {
      nomi += prop + "\n";
    //}
    var col = cols[prop];
    if (flag === 0) {
      flag = 1;
      for (var p in col) {// per ogni proprietà della prima colonna
        if ( typeof col[p] !== 'function') {// se proprietà
          props += p + ' = ' + col[p] + ', ';
        }
        else {// se metodo
          funcs += p + ', ';
        }
      }
    }
  }
  app.alert(nomi + '\nPROPRIETA:\n' + props +
  '\nFUNZIONI:\n' + funcs);
};
Attachments
Cattura.JPG
Cattura.JPG (42.75 KiB) Viewed 13948 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


Return to Tips & Tricks - Cloud

Who is online

Users browsing this forum: No registered users and 20 guests

cron