Pagina 1 di 1
Comportamento anomalo master/detail
Inviato: 22 giu 2024, 13:59
da Lorenzo1975
Ciao a tutti
Ho un problema che non riesco proprio a risolvere:
Ho un form preventivo come master e una grid dettaglio_preventivo come detail, il parametro per passare l'id nel SQL della grid di dettaglio è di tipo GET/POST e tutto funziona correttamente, quando apro la form mi visualizza il mio grid di dettaglio.
Funziona tutto fin tanto che non decido di aprire (magari tramite un link) una secondo preventivo in una nuova finestra, il parametro che uso per passare l'id al detail è lo stesso per entrambe le detail ([id_preventivo])e di conseguenza non appena salvo o aggiorno il dettaglio del primo preventivo la pagina si ricarica con il dettaglio del secondo preventivo)l'ultimo aperto).
C'è una tecnica per evitare questo comportamento?
Grazie per il supporto.
Re: Comportamento anomalo master/detail
Inviato: 24 giu 2024, 16:41
da Vincenzo
Quando visualizzi una app, vengono memorizzate varie variabili in sessione, una per tutte la chiave del record della tabella usata nel form, quindi se la form agisce sulla tabella PREVENTIVI con chiave ID, quando gli passi la chiave [id_preventivo] esegue la query usando ID = [id_preventivo] e memorizza tipo in KEY_ID_PREVENTIVI = [id_preventivo], tutto ok, finchè visualizzi, ma quando premi SALVA, crea la query di UPDATE usando KEY_ID_PREVENTIVI che avrà come valore quello dell'ultima app aperta.
O eviti di aprire più finestre della stessa APP, o apri quella APP nella stessa finestra, quindi avrai un solo preventivo aperto alla vota, oppure fra due finestre diverse (da fatto identiche), ma che sono app diverse, una la chiami FORM_PREVENTIVO (magari aperta da lista preventivi), una FORM_PREVENTIVO_DETT aperta dal dettaglio preventivi cliente.
Re: Comportamento anomalo master/detail
Inviato: 24 giu 2024, 17:32
da Lorenzo1975
Grazie Vincenzo, apprezzo molto il tuo contributo.
In effetti ho cercato un po' nei vari forum e ho capito che le due istanze per una stessa app sono sempre state un problema da gestire. Speravo che qualcuno fosse riuscito a risolvere questo problema con qualche brillante idea.
Credo proprio che l'unica soluzione sia clonare l'applicazione master è quella di dettaglio ed aprirle con un link.
Grazie ancora per l'aiuto.
Re: Comportamento anomalo master/detail
Inviato: 25 giu 2024, 08:51
da rino
Lorenzo1975 ha scritto: 24 giu 2024, 17:32
Grazie Vincenzo, apprezzo molto il tuo contributo.
In effetti ho cercato un po' nei vari forum e ho capito che le due istanze per una stessa app sono sempre state un problema da gestire. Speravo che qualcuno fosse riuscito a risolvere questo problema con qualche brillante idea.
Credo proprio che l'unica soluzione sia clonare l'applicazione master è quella di dettaglio ed aprirle con un link.
Grazie ancora per l'aiuto.
avere più istazne della stessa app attiva in contemporanea ha poco senso , è una pessima abitudine generata dalla moda della 'scrivania' e conduce in breve a problemi organizzativi. comunque il problema si può risolvere usando una tecnica che si basa su db per il passaggio di parametri ,una tencica antica che richiede una buona manualità nel realizzare le varie funzioni . vale la pena piuttosto che modificare il modo operativo degli utenti?
A volte con una buona organizzazione del flusso informativo si risolvono molte cose .
Re: Comportamento anomalo master/detail
Inviato: 27 giu 2024, 06:45
da Lorenzo1975
Ciao Vincenzo, avrei una domanda da darti
Nel mio progetto posso creare un nuovo preventivo direttamente dal menù principale.Apro la stessa app in modalità nuovo record, quindi posso aprire due sessioni della stessa app e non ho problemi di sovrapposizione di variabili, funziona tutto perfettamente.
Ho pensato che magari la variabile per il nuovo record è diversa, tipo KEY_ID_PREVENTIVI_NEW, ma prima viene creato il record e solo dopo la tabella di dettaglio quindi anche alla grid di dettaglio viene passata in qualche modo l'informazione che si tratta di un nuovo record?
Grazie
Re: Comportamento anomalo master/detail
Inviato: 01 lug 2024, 16:31
da Vincenzo
Lorenzo1975 ha scritto: 27 giu 2024, 06:45
Ciao Vincenzo, avrei una domanda da darti
Nel mio progetto posso creare un nuovo preventivo direttamente dal menù principale.Apro la stessa app in modalità nuovo record, quindi posso aprire due sessioni della stessa app e non ho problemi di sovrapposizione di variabili, funziona tutto perfettamente.
Ho pensato che magari la variabile per il nuovo record è diversa, tipo KEY_ID_PREVENTIVI_NEW, ma prima viene creato il record e solo dopo la tabella di dettaglio quindi anche alla grid di dettaglio viene passata in qualche modo l'informazione che si tratta di un nuovo record?
Grazie
Non so dirti, se riesci ad aprire la stessa app in due finestre separate, una in modifica ed una in inserimento, e non funziona tutto, mi sembra più un bug che diventa feature, se funziona lascia così, non so come indentifica che è un nuovo record, oltre a mancare la chiave forse memorizza anche un flag aggiuntivo, tutto il meccanismo è in mano a scriptcase, non conoscendolo a fondo e vedendo che duplicare app in finestre diverse (per poi salvare) dava problemi io non rischierei.
Re: Comportamento anomalo master/detail
Inviato: 03 lug 2024, 11:08
da rino
Lorenzo1975 ha scritto: 27 giu 2024, 06:45
Ciao Vincenzo, avrei una domanda da darti
Nel mio progetto posso creare un nuovo preventivo direttamente dal menù principale.Apro la stessa app in modalità nuovo record, quindi posso aprire due sessioni della stessa app e non ho problemi di sovrapposizione di variabili, funziona tutto perfettamente.
Ho pensato che magari la variabile per il nuovo record è diversa, tipo KEY_ID_PREVENTIVI_NEW, ma prima viene creato il record e solo dopo la tabella di dettaglio quindi anche alla grid di dettaglio viene passata in qualche modo l'informazione che si tratta di un nuovo record?
Grazie
Scusa ma ci sono alcuni aspetti che mi sono poco chiari . cosa intendi per menu principale? a quanto mi risulta il menu di un progetto permette l apertura di app in tabelle dentor il menu o in finestre fuori dal menu , quale usi? in un caso la sessione (php) rimane la stessa nel altro mi pare sia un altra. sc utilizza le sessioni per gestire tutte le variabili che non siano interne ad una funzione. se usi finestre diverse èallora è possibile avere duplicazioni senzaproblemi , rimane l aspetto di sincronismo sul db , cosa alquanto complessa da gestire in ambiente mariadb ,ovvero vanno usate specifiche metodiche di accesso al db.
Re: Comportamento anomalo master/detail
Inviato: 06 lug 2024, 17:20
da Lorenzo1975
Ciao Rino/Vincenzo
Il menu(l'ultima versione ma credo che funzioni anche nel vecchia) ha due voci , preventivi e nuovo preventivo. Il primo apre una grid in una Tab nella stessa finestra da cui poi si può aprire un preventivo che sostituisce il contenuto della grid con un form preventivi e la sua grid di dettaglio.
La seconda voce apre direttamente una Tab nella stessa finestra con il form in modalità new ( impostazione fatta in o executive, mi pare sia quello l'evento) e il suo relativo dettaglio.Chiaramente il dettaglio è disponibile solo quando il nuovo record viene creato e la pagina si aggiorna.
Facendo così si possono aprire due sessioni della stessa app dove i form e i dettagli sono completamente indipendenti.
Chiaramente le variabili di sessione sono condivise e bisogna tenerne conto ma,a quanto pare, le variabili create da SC per gestire l' ID(come datto da Vincenzo) del ricaricamento della pagina sono indipendenti.
Credo non sia un bug ma un caso previsto da SC.
Questa cosa la faccio da diversi anni e non ho mai avuto problemi.
Io volevo aprire due app in modalità di edit e questo effettivamente è impossibile.
Per rispondere a Rino se apri dal menù in un altra finestra la sessione,a parere mio è la stessa, infatti c'è comunque interferenza tra le variabili di sessione.Aprile come ti pare ma, secondo me la sessione è la stessa.
Credo che la possibilità di poter aprire due sessioni della stessa app non sia una cosa superflua ma una cosa molto utile.Capita spesso di dover fare copia incolla un preventivo all'altro o semplicemente per fare dei confronti; cosa molto scomoda se devi continuamente chiudere e riaprire un preventivo.
Quindi credo che l'unica soluzione praticamente è clonare l'app in caso si ha la necessità di aprire due preventivi in modalità di modifica.Per il nuovo record aprire in modalità new.
Per quanto riguarda in DB il problema potrebbe nascere se sì vuole modificare lo stesso preventivo, ma volendo è abbastanza semplice risolvere il problema inserendo nel db un campo fleg per determinare se il preventivo che si vuole aprire è già aperto.
Scusatemi il messaggio lungo e fatemi sapere cosa ne pensate.
Re: Comportamento anomalo master/detail
Inviato: 23 lug 2024, 10:46
da rino
lorenzo , ho letto solo ora la tua risposta, mi prendo del tempo per meditare e rispondrti. però sono sempre perplesso quando un utente effettua due identiche funzioni in contemporanea (doppio inserimento) che senso ha nella gestione di lavoro? 'uno alla volta per carità'.. cantava un noto sonetto operistico (barbiere di siviglia) . Per avere dati sulla sessione non hai che da stamparne il contenuto echo <pre>;print_r($_SESSION); echo</pre>; durante l esecuzione dell'app e cosi vedi cosa tocchi .