It is currently 21 April 2025, 21:45 Advanced search

refresh datamap al rientro da un view chiamata

Domande e risposte su come utilizzare Instant Developer Cloud al meglio

refresh datamap al rientro da un view chiamata

Postby poidomani » 15 December 2016, 11:41

ho questo caso, una view1 con due datamap in master-detail che chiama una view2 che gestisce il solo detail. Questa seconda view aggiorna direttamente il detail nel DB.
Quando rientro nella view1 la videata non viene aggiornata con i nuovi dati. Ad esempio la view1 mostra testata e dettaglio di un ordine poi chiama la view che gestisce le righe. Questa aggiorna direttamente il DB. Al rientro la view1 non mostra la situazione aggiornata. Ho provato la reload della testa e non succede niente, la reload del dettaglio mostra tutte le righe di tutti gli ordini. Cosa bisognerebbe fare?
Attachments
Immagine.png
Immagine.png (15.12 KiB) Viewed 12358 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: refresh datamap al rientro da un view chiamata

Postby poidomani » 15 December 2016, 13:04

Per poter vedere la situazione aggiornata rieseguo la query di master e di detail.
Succede una cosa strana. Nella onLoad scrivo
var docComanda = yield App.Doc.Comanda.loadByKey(app, {idtavolo : this.docTavolo.ID, aperta : true}, {childLevel : 1}); // type:Doc.Comanda
if (docComanda) {
$dmComanda.document = docComanda;
docComanda.righeDettaglio.orderBy = "gruppo asc, ID asc";
$dmDett.collection = docComanda.righeDettaglio;
}

E i dati appaiono nell'ordine richiesto.
Rieseguendo la stessa operazione al rientro dalla gestione del dettaglio mi appaiono prima le nuove righe inserite pur avendo un ID di valore più alto (ID è un counter). E il codice che eseguo è esattamente lo steso (fatto con copia e incolla)
var docComanda = yield App.Doc.Comanda.loadByKey(app, {idtavolo : this.docTavolo.ID, aperta : true}, {childLevel : 1}); // type:Doc.Comanda
if (docComanda) {
$dmComanda.document = docComanda;
docComanda.righeDettaglio.orderBy = "gruppo asc, ID asc";
$dmDett.collection = docComanda.righeDettaglio;

}
Attachments
cattura.jpg
cattura.jpg (42.11 KiB) Viewed 12352 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: refresh datamap al rientro da un view chiamata

Postby poidomani » 16 December 2016, 18:15

sembrerebbe proprio un malfunzionamento di INDE, ho provato a eseguire due volte le stesse istruzioni

Prima esecuzione
var docComanda = yield App.Doc.Comanda.loadByKey(app, {idtavolo : this.docTavolo.ID, aperta : true}, {childLevel : 1}); // type:Doc.Comanda
if (docComanda) {
$dmComanda.document = docComanda;
docComanda.righeDettaglio.orderBy = "gruppo asc, ID asc";
$dmDett.collection = docComanda.righeDettaglio;
}
else {
var adesso = new Date();
var newComanda = $dmComanda.insert({data : adesso, idtavolo : this.docTavolo.ID});
$dmComanda.document = newComanda;
}

e subito di seguito seconda esecuzione
docComanda = yield App.Doc.Comanda.loadByKey(app, {idtavolo : this.docTavolo.ID, aperta : true}, {childLevel : 1}); // type:Doc.Comanda
if (docComanda) {
$dmComanda.document = docComanda;
docComanda.righeDettaglio.orderBy = "gruppo asc, ID asc";
$dmDett.collection = docComanda.righeDettaglio;
}


non dovrebbe cambiare nulla e invece la seconda esecuzione ignora l'order by
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: refresh datamap al rientro da un view chiamata

Postby m.sirri » 22 December 2016, 7:43

Che query ha eseguito per caricare la collection? Verifica nel dtt.
User avatar
m.sirri
Pro Gamma
Pro Gamma
 
Posts: 8574
Joined: 30 September 2010, 17:01
Location: Ozzano dell'Emilia (BO)

Re: refresh datamap al rientro da un view chiamata

Postby poidomani » 22 December 2016, 10:39

quella che ho scritto sopra, questa:
var docComanda = yield App.Doc.Comanda.loadByKey(app, {idtavolo : this.docTavolo.ID, aperta : true}, {childLevel : 1}); // type:Doc.Comanda
if (docComanda) {
$dmComanda.document = docComanda;
docComanda.righeDettaglio.orderBy = "gruppo asc, ID asc";
$dmDett.collection = docComanda.righeDettaglio;

e l'ordinamento non viene eseguito.
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: refresh datamap al rientro da un view chiamata

Postby m.sirri » 22 December 2016, 13:12

Intendo sapere proprio il testo SQL della query.
User avatar
m.sirri
Pro Gamma
Pro Gamma
 
Posts: 8574
Joined: 30 September 2010, 17:01
Location: Ozzano dell'Emilia (BO)

Re: refresh datamap al rientro da un view chiamata

Postby poidomani » 22 December 2016, 14:03

ho usato i documenti non il DB
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: refresh datamap al rientro da un view chiamata

Postby m.sirri » 3 January 2017, 16:42

Ho capito.
Hai ordinato i dati della collection e poi hai passato la collection alla datamap.

Il fatto è che l'ordinamento devi settarlo sulla datamap anziché sulla collection.
User avatar
m.sirri
Pro Gamma
Pro Gamma
 
Posts: 8574
Joined: 30 September 2010, 17:01
Location: Ozzano dell'Emilia (BO)

Re: refresh datamap al rientro da un view chiamata

Postby poidomani » 3 January 2017, 17:19

perfetto, GRAZIE MILLE
devo però fare un appunto e cioè che la datamap non conserva l'ordinamento, occorre ripeterlo.
Non è, mi sembra di aver capito, una proprietà ma un comando.
Comunque per ora io ho risolto.
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 19 guests

cron