Back to top

Autore Topic: ChronoForms - Multipage - problemi record multipli  (Letto 3841 volte)

Offline The Jackall

  • Nuovo arrivato
  • *
  • Post: 22
    • Mostra profilo
ChronoForms - Multipage - problemi record multipli
« il: 09 Apr 2010, 16:20:05 »
Buongiorno a tutti.

Avrei bisogno di 1 dritta per l'utilizzo del PlugIn multipage di chronoforms.
Ho sviluppato una serie di forms (4 per l'esattezza) tutti legati tramite un form madre.
Il tutto sembra funzionare in modo corretto. Avrei xò la necessità di poter inserire righe multiple nel DB all'interno del form n° 3.

Penso sia la problematica affrontata da VALES alla fine della sua utilissima guida Tutorial form multipage ncon chronoforms-1

C'è qcuno che ha già affrontato la problematica?

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:ChronoForms - Multipage - problemi record multipli
« Risposta #1 il: 09 Apr 2010, 23:09:24 »
Quella modalità l'ho ulteriormente sviluppata in Albo Pretorio con il form multipage di inserimento degli allegati agli atti dell'albo.

Nell'ultimo form viene visualizzato il riepilogo degli atti inseriti nei precedenti passaggi e si può decidere di continuare gli inserimenti oppure salvare il lavoro già fatto.

Se scarichi albo pretorio vedi tutto.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline The Jackall

  • Nuovo arrivato
  • *
  • Post: 22
    • Mostra profilo
Re:ChronoForms - Multipage - problemi record multipli
« Risposta #2 il: 10 Apr 2010, 12:19:34 »
Grazie mille Vales...

Speravo in un tuo consiglio!!

Lunedì provo subito!

Buone W-End

Offline The Jackall

  • Nuovo arrivato
  • *
  • Post: 22
    • Mostra profilo
Re:ChronoForms - Multipage - problemi record multipli
« Risposta #3 il: 12 Apr 2010, 12:23:31 »
Buongionro.
Ho scaricato e installato il modulo "albo Pretorio".
Complimenti per il lavoro fatto..

Vorrei chiederti 2 delucidazioni se possibile..

Ho compreso +o- il "giro del funo", ma ho un dubbio su come vengono inseriti i dati nelle tabelle.
Mi spiego meglio.

Nel form "madre_atto_10" che è il contenitore, hai legato le 2 tabelle "atti_10" e "allegati_10".

Le stesse tabelle le hai legate anche al form "allegati_10".
facendo delle prove ho notato che i dati nel db vengono salvati nelle 2 tabelle all'atto dell'invio del primo allegato. Se poi si continua ad inserire ulteriori allegati, questi vengono salvati solo nella tabella relativa "allegati_10",  e sempre all'atto dell'invio degli allegati (quindi nel form allegati_10 e non in allegati_10_conferma come in precedenza avevo immaginato).

Io ho provato a ricreare per le mie esigenze una struttura simile alla tua, e funziona.. Solo che, al momento del salvataggio del secondo mio allegato, mi scrive anche una seconda riga nella mia tabella degli atti.
Come hai fatto tu ad evitare questo?

Secondo dubbio.. Ma questo mi sa che ha bisogno di uno studio ulteriore..
Sarebbe possibile strutturare il tutto (sempre con questa logica) in modo da avere due doppi salvataggi?
Esempio:
primo form: seleziono gli operai che hanno seguito una lavorazione. Possono essere da 1 a infinto.
nel secondo form seleziono i prodotti che sono stati seguiti dagli oprari precedentemente selezionati.
le 2 tabelle sarebbero legato da un codice (lotto) inserito manualmente dal data-entry.
In pratica, nella tabella operai ci possono essere n righe con il codice lotto identico, e lo stesso per la tabella prodotti.

E' fattibile??
Grazie

Offline vales

  • Global Moderator
  • Instancabile
  • *****
  • Post: 8012
  • Sesso: Maschio
    • Mostra profilo
Re:ChronoForms - Multipage - problemi record multipli
« Risposta #4 il: 12 Apr 2010, 21:54:09 »
Una delle caratteristiche del multiform è che non si possono registrare nei form intermedi tabelle diverse da quelle assegnate al multipage madre. Questa è la spiegazione dell'utilizzo del form allegati_10 con le stesse tabelle del multipage. Se avessi assegnato al form allegati_10  solo la sua tabella avrei ottenuto (come mi è capitato  nello sviluppo) un errore.

Avendo quindi questo vincolo ho dovuto mettere a punto quella procedura particolare segue questo flusso.

1) inserimento dati form atto_10.
2) passaggio al form allegati_10 ed  inserimento dell'allegato.
3) a questo punto avendo inserito anche l'allegato posso registrare anche l'atto, senza allegato non avrebbe senso. Quindi registro nelle tabelle atto e allegato.
4) passo al form di richiesta di continuare ad inserire gli allegati o terminare.
5) se torno ad inserire altri allegati registrerò un nuovo allegato ma nella tabella degli atti non inserirò un nuovo atto ma assegnerò a ccf_id il valore dell'atto precedentemente inserito e questo consente a chronoform di scrivere sullo stesso record con il valore del campo chiave uguale a quello dell'atto già inserito.
6) quando deciderò di non inserire più allegati lo stesso problema di pone per l'allegato, quindi quando passerò i valori al form multipage madre_atto_10 dovrò passare come fatto prima lo stesso ccf_id dell'atto ed il cf_id dell'ultimo allegato inserito per evitare duplicazioni.

Questo è il meccanismo di Albo Pretorio.

Per ottenere il tuo obiettivo devi usare questo meccanismo due volte.

 lavorazione = atto

operai = allegati

prodotti= altro tipo di allegato

quindi così al volo direi dovresti inserire due nuovi form prodotti e conferma prodotti. Il multipage diventa composto dai seguenti form.

lavorazione, operai, continua operai, prodotti, continua prodotti.

Le tabelle in gioco ora diventano 3: lavorazione, operai, prodotti. E per i motivi sopra detti devono essere usate contemporaneamente in operai, prodotti e contenitore multipage. Le tabelle operai e prodotti dovranno avere un campo che le relaziona con le lavorazioni (come in Albo Pretorio gli allegati hanno un codice atto).

Stai attento al gioco  dei campi chiave delle tabelle nelle varie registrazioni che saranno necessarie (ti occorono degli script php per gestire questo aspetto) e non usare mai lo stesso nome per la chiave di tabelle diverse. Quindi le tre tabelle potrebbero avere per esempio campi chiave ccf_id, cf_if, cf_idd .

Credo che dovrebbe funzionare anche questo form.
Download e demo di Albo Pretorio On Line per Joomla 1.5 e Joomla 2.5 e 3
Moduli scuola On Line v1 per Joomla 3
http://valesweb.altervista.org

Offline The Jackall

  • Nuovo arrivato
  • *
  • Post: 22
    • Mostra profilo
Re:ChronoForms - Multipage - problemi record multipli
« Risposta #5 il: 13 Apr 2010, 17:33:04 »
Buongiorno Vales.. I tuoi suggerimenti sono stati ottimi.
Funziona quasi tutto.
Nel senso che:
Ho creato 5 form
  • f0_vol - Che mi da il pregressivo di inserimento
  • f1_vol_lav - Nel quale inserisco i pezzi prodotti
  • f1_vol_lav_con - Form di conferma per l'inserimento e x scegliere se inserire un altro pezzo o passare agli operatori
  • f2_vol_ope - nel quale seleziono l'operatore coinvolto
  • f2_vol_ope_con - Form di conferma per l'inserimento e x scegliere se inserire un altro operatore o terminare la procedura.

Ho creato le 3 tabella con stesso nome:

  • f0_vol - IDKEY: cf_id_ins e campo c_ins per la relazione con le altre 2 tabelle
  • f1_vol_lav IDKEY: cf_id_lav e campo c_ins preso dal form f0_vol
  • f2_vol_ope IDKEY: cf_id_ope e campo c_ins preso dal form f0_vol

A differenza di quanto da te proposto, xò, sono stato costretto a legare la tabella f1_vol_lav al relativo form e la tabella f2_vol_ope al relativo form. Poi tutte e 3 le tabelle sono state legate al form madre.

In tale modo la procedura funziona. Mi registra gli n prodotti lavorati. Passando poi agli operatori, mi registra gli n operatori coinvolti.

Il problema sorge in fase di termine del lavoro. Qui infatti, mi registra correttamente il pregressivo nella tabella f0_vol (correttamente in quanto nel relativo form non ho legato la tabella) ma mi duplica gli ultimi 2 inserimenti.

Ho provato a pensare + che a scrivere lo script php per evitare la cosa, ma non trovo  il modo corretto di impostare la procedura.

Sarebbe corretto impostare la cosa in modo che se nel form f2_vol_ope_con non inserisco ulteriore operatori, ma chiudo la procedura, allora al form vengono passate le variabili max(cf_id_lav) e max(cf_id_ope) in modo che mi vada a sovrascrivere l'ultima riga di entrambe le tabelle?
E dove dovrei mettere tale procedura? Nell'ultimo form immagino (ovvero quello f2_vol_ope_con di conferma degli operatori)?

Ultima domanda? Potrebbe interessare poi la pubblicazione del lavoro, facendo ovvi riferimenti alla fonte (vales) dalla quale mi sono ispirato??

grazie

Offline The Jackall

  • Nuovo arrivato
  • *
  • Post: 22
    • Mostra profilo
Re:ChronoForms - Multipage - problemi record multipli
« Risposta #6 il: 15 Apr 2010, 17:53:01 »
Allora.... Aggiorno la  situaizone...

Son riuscito a.. "pensare" come evitare che la procedura crei doppioni di inserimento.

Era più semplice di quanto potessi immaginare.
Adesso il tutto funziona in modo corretto:
Il primo form mi fa selezionare la data in e mi fornisce il numero di registrazione progressivo.

Il secondo form mi fa inserire n articoli che hanno subito le lavorazioni

Il terzo form, mmi fa solo il riepilogo del secondo e mi da l ascelta di continuare al form seguente, o inserire un ulteriore articolo.

Il quarto form mi fa inserire gli operatori che hanno partecipato alla lavorazione, con ora inizio e ora fine.

Il quinto form mi da la possibilità di inserire un ulteriore operatore oppure terminare la procedura.

In caso di termina procedura, i record delle tabelle vengono solo aggiornati e non ci sono doppioni.

Nei prox giorni posterò il lavoro completo..

Un grazie 100000 a VALES per le dritte che mi ha fornito!

 



Web Design Bolzano Kreatif