Modifica libera dei moduli dei dettagli

Questo articolo contiene i seguenti argomenti:
casm173
Questo articolo contiene i seguenti argomenti:
Gli argomenti di questa sezione descrivono la procedura per la modifica libera dei moduli dei dettagli.
Uso di JavaScript nei moduli dettagli
È possibile utilizzare WSP per aggiungere campi personalizzati a un modulo dettagli oppure per ridisporre o modificare le caratteristiche dei campi predefiniti del modulo. Tuttavia, talvolta la modifica di un modulo potrebbe richiedere altre azioni oltre la semplice aggiunta di nuovi campi a una griglia. In CA SDM sono disponibili numerose funzioni JavaScript che facilitano l'inserimento delle modifiche in un modulo dettagli combinato per ottenere l'aspetto desiderato. Di seguito si riporta un riepilogo di tali funzioni:
  • È possibile inserire codice HTML in qualunque punto prima dell'istruzione DetailForm() o dopo l'istruzione endDetail() senza influire sul funzionamento del modulo dettagli.
  • Per chiudere la tabella che definisce gli elementi del modulo dettagli sotto forma di griglia, è possibile usare la funzione detailEndTable(). Una volta compiuta questa operazione, è possibile disporre il codice HTML nel formato desiderato. In tal caso, il codice HTML e i campi nel modulo vengono inviati al motore Web quando l'utente fa clic su Salva. È possibile definire la funzione detailNextID() per generare i campi ID per gli elementi HTML che consentono ai campi di partecipare alla navigazione senza mouse del modulo dettagli. Le schede Notebook contengono diversi esempi di questa tecnica, ad esempio
    xx_alg_tab.htmpl
    .
  • È possibile inserire una macro dtlStartRow dopo il codice HTML per riavviare la formattazione del modulo dettagli standard. Viene avviata una seconda griglia i cui campi non sono necessariamente allineati a quelli della prima. Questa tecnica è usata in ogni scheda Notebook.
  • Se si desidera inserire un elemento personalizzato alla fine di una riga, è possibile usare la funzione detailWriteRow() per scrivere il contenuto di una riga senza chiuderla. Per un esempio di questa tecnica consultare il codice che genera il pulsante 24 ore in detail_cr.htmpl e detail_iss.htmpl.
  • Se si desidera specificare esplicitamente il contenuto di un elemento in un riga senza chiudere la tabella che definisce la griglia, è possibile usare la funzione detailRowHdr() per specificare il testo dell'intestazione e la funzione detailSetRowData() per specificare il testo dei dati. Per un esempio di questa tecnica, consultare il codice che genera il campo timer in detail_cr.htmpl e detail_iss.htmpl.
  • Se si fornisce una funzione per convalidare il valore di un campo (normalmente in un gestore eventi) e si desidera che i risultati vengano riportati durante la convalida del browser (in modo che un campo errato venga evidenziato con un bordo rosso e un messaggio di errore venga visualizzato su una striscia gialla nella parte superiore del modulo), usare la funzione detailReportValidation(). È possibile vederne un esempio nella funzione validate_duration() utilizzata per convalidare i campi di durata in xx_candp_tab.htmpl. La funzione validate_duration() si trova nel file val_type.js.
  • Se si desidera esaminare l'HTML generato per un modulo dettagli, è possibile usare le funzioni docWrite() e docWriteln() al posto delle funzioni standard document.write() e document.writeln(). Quindi, se si richiama la funzione holdHTMLText() in un punto qualsiasi nella sezione <HEAD> del modulo, CA SDM visualizza un modulo di debugging contenente un'area di testo con tutto l'HTML generato per il modulo, che è possibile esaminare, copiare e incollare in uno strumento di convalida.
Mentre si articolano le modifiche, tenere presente che il modulo dettagli combinato viene visualizzato sia in modalità di sola lettura che in modalità di modifica. Se le modifiche si applicano specificamente all'una o all'altra visualizzazione, è possibile eseguire il test della visualizzazione corrente in uno dei seguenti modi:
  • In JavaScript, expression _dtl.edit è true nella modalità di modifica e false in quella di sola lettura.
  • In JavaScript o HTML aperto, le istruzioni:
    <PDM_IF "$prop.form_name_3" == "edit"> </PDM_IF>
(Usato solo nella visualizzazione di modifica)
oppure
<PDM_IF "$prop.form_name_3" == "ro">
(Usato soltanto nella visualizzazione di sola lettura)
</PDM_IF>
Usato per racchiudere tra parentesi il codice destinato soltanto alla visualizzazione di modifica o di sola lettura, rispettivamente.
detailEndTable()
Questa funzione chiude la tabella HTML che definisce la disposizione degli elementi del modulo dettagli in una griglia. Non dispone di argomenti.
È possibile avviare una nuova griglia con la macro dtlStartRow(). Tuttavia, gli elementi in una nuova griglia non sono necessariamente allineati a quelli della griglia precedente.
detailNextID( colspan, lastelement )
Questa funzione restituisce una stringa nel formato:
" ID=df_nn_nn TABINDEX=n onFocus=func onBlur=func"
Con l'inserimento di questa stringa in un elemento HTML, l'elemento segue le convenzioni della navigazione senza mouse di CA SDM, comprese la possibilità di accedere usando i tasti con le frecce e l'evidenziazione in giallo chiaro della zona su cui si passa. La stringa restituita inizia con uno spazio e termina senza spazio.
  • colspan
    Specifica il numero di colonne nella griglia occupate dall'elemento. Questo argomento è opzionale; se non viene specificato, l'impostazione predefinita è uno. Se omesso, si presuppone che l'elemento occupi una colonna della griglia. Ciò influisce sul comportamento dei tasti con le frecce. L'argomento
    colspan
    può essere omesso anche se si specifica l'argomento
    lastelement
    .
  • lastelement
    Un valore booleano che specifica se l'elemento per il quale deve essere generato l'ID è l'ultimo della riga. Se omesso, si presuppone che l'elemento sia seguito da altri elementi. Ciò influisce sul comportamento dei tasti con le frecce.
detailNextLinkID()
Questa funzione restituisce una stringa nel formato:
" ID=dflnk_nn_nn TABINDEX=0 onFocus=func onBlur=func"
Con l'inserimento di questa stringa in un elemento HTML che definisce un elemento collegamento, l'elemento segue le convenzioni della navigazione senza mouse di CA SDM, comprese la possibilità di accedere usando il tasto FRECCIA SU e l'evidenziazione in giallo chiaro della zona su cui si passa. La stringa restituita inizia con uno spazio e termina senza spazio.
Questa funzione non dispone di argomenti.
detailReportValidation( field, has_error, emsg )
Questa funzione restituisce il risultato della convalida esterna di un campo. Se la convalida non è riuscita, il campo viene evidenziato con un bordo rosso e il messaggio di errore specificato viene visualizzato su una striscia gialla nella parte superiore del modulo. L'utente non potrà salvare il record finché una chiamata successiva di detailReportValidation() non indicherà che il campo è privo di errori.
La funzione detailReportValidation() è valida solo per i campi registrati per una convalida del browser. Tutti i campi creati con le macro del modulo dettagli vengono registrati automaticamente per la convalida. Per registrare altri campi, usare la funzione detailSetValidateFunction().
  • campo
    (Richiesto) Specifica l'oggetto elemento del modulo contenente il campo. Il modo più facile per ottenerlo è passare questo argomento al gestore eventi che esegue la convalida. Un altro modo consiste nell'usare la funzione standard JavaScript document.getElementById().
  • has_error
    (Richiesto) Un valore booleano o intero che specifica se il campo è errato. L'impostazione di un campo errato impedisce all'utente di salvare il record, fa sì che il campo venga evidenziato con un bordo rosso e inserisce il messaggio di errore specificato come terzo argomento in una striscia gialla nella parte superiore del modulo. L'impostazione di un campo come senza errori annulla questi cambiamenti.
  • emsg
    Una stringa di testo che specifica il messaggio da visualizzare sulla striscia gialla nella parte superiore del modulo dettagli quando è impostato il flag
    has_error
    . Questo argomento è obbligatorio se è impostato
    has_error
    .
detailSetValidate( hdrtext, is_required, maxsize )
Questa funzione specifica che il campo creato più di recente con un ID fornito da detailNextID() è soggetto alla convalida del browser. La convalida dei campi obbligatori e dei campi con dimensione massima è automatica. È possibile usare altri strumenti di convalida tramite le funzioni JavaScript o i gestori eventi che richiamano la funzione detailReportValidation().
È necessario richiamare la funzione detailSetValidate() solo per i campi dei moduli che sono stati definiti personalmente, il cui ID è stato creato da detailNextID(). La funzione detailSetValidate() deve essere richiamata subito dopo aver creato un campo da convalidare. Non è necessario (e produrrebbe risultati imprevisti) richiamare detailSetValidate() per i campi creati dalle macro del modulo dettagli.
  • hdrtext
    (Richiesto) Specifica una stringa usata per identificare il campo nei messaggi di errore.
  • is_required
    (Richiesto) Un valore booleano o intero che specifica se il campo è obbligatorio. CA SDM verifica automaticamente che vengano forniti tutti i campi obbligatori ogni volta che l'utente salva un record.
  • maxsize
    Un numero intero che specifica la lunghezza massima dei dati per il campo. CA SDM verifica automaticamente che tutti i campi con un valore
    maxsize
    siano della lunghezza consentita ogni volta che l'utente salva un record. Questo argomento è obbligatorio. Per eliminare la convalida di
    maxsize
    , specificare 0.
detailRowHdr( hdrtext, colspan, is_required )
Questa funzione memorizza il testo per l'elemento intestazione (TH) di una voce nella griglia. Il testo non viene realmente scritto nel modulo finché non viene richiamata una funzione detailWriteRow() o la macro dtlStartRow.
  • hdrtext
    Specifica il testo nell'elemento intestazione. Questo argomento è obbligatorio.
  • colspan
    Specifica il numero di colonne nella griglia occupate dall'elemento. Questo argomento è opzionale; se non viene specificato, l'impostazione predefinita è uno. Se omesso, si presuppone che l'elemento occupi una colonna della griglia. Ciò influisce sul comportamento dei tasti con le frecce. L'argomento
    colspan
    deve essere specificato se si specifica l'argomento
    is_required
    .
  • is_required
    Specifica se
    hdrtext
    deve essere visualizzato nello stile corrispondente a un campo obbligatorio. Questo argomento può essere un valore booleano, un numero o una stringa. Un numero o una stringa vengono interpretati come false se uguali a zero, altrimenti come true. Questo argomento è opzionale; se omesso, lo stile di
    hdrtext
    è quello di un campo non obbligatorio.
detailSetRowData( text )
Questa funzione memorizza il testo HTML per l'elemento dati (TD) di una voce nella griglia. Il testo non viene realmente scritto nel modulo finché non viene richiamata una funzione detailWriteRow() o la macro dtlStartRow. L'unico argomento è il testo HTML dell'elemento da memorizzare.
detailWriteRow()
Questa funzione scrive l'HTML memorizzato per la riga corrente. Vengono create due righe di tabella HTML, una per gli elementi intestazione (TH) e una per gli elementi dati (TD). Questa funzione, inoltre, scrive il tag [assegnare il valore per TD nella Rubrica] che inizia un nuovo elemento dati. Il tag TD viene chiuso automaticamente dalla macro dtlStartRow, così non sarà necessario, né scorretto, fornire i tag [assegnare il valore per TD nella Rubrica] nel testo HTML che segue detailWriteRow(). Questa funzione non dispone di argomenti.