X-CONTROLLA-'nomegrid'-COL-EP

Navigation:  Documentazione SCREENS > Programma sorgente >

X-CONTROLLA-'nomegrid'-COL-EP

Previous pageReturn to chapter overviewNext page

Per ciascuna griglia modificabile occorre aggiungere nel programma sorgente questa perform. Può anche essere lasciata vuota.

 

Permette di inserire controlli trasversali su una riga griglia (cioè controlli che non riguardano un singolo campo ma un insieme di campi, per cui inserire il controllo sotto la x-controlla della singola colonna potrebbe far si che il controllo non venga eseguito (perchè ad esempio viene modificato solo il 2.o campo interessato dal controllo).

In questo modo, i controlli inseriti in questa routine vengono eseguiti nella routine X-CONTROLLA-nomegrid-COL (routine privata), che è richiamata nelle routines pubbliche:

X-CONTROLLA-nomegrid-TUTTO (controlli globali sulla griglia)

X-CONTROLLA-nomegrid-RIGA (controlli su una specifica riga)

 

Esempio prelevato da COGV91G

 

     *---------------------------------------------------------------**

     * Qui introduco dei controlli aggiuntivi non legati ad un singolo

     *    campo

     *---------------------------------------------------------------**

      x-controlla-grid-det-col-ep.

     *---------------------------------------------------------------**

     * Merce "inizio voce":

     * - Se contiene una voce, deve essere diversa dalla voce

     *   della riga precedente

     * - Deve avere una descrizione

     *---------------------------------------------------------------**

          if tm-mer-cm (i) = tm-cfg-merce-ini-voce

             if i                > 1   and

                tm-voce (i)     <> " " and

                tm-voce (i - 1) <> " " and

                tm-voce (i - 1)  = tm-voce (i)

                string "La merce 'Inizio voce' deve "

                  "avere una voce diversa "

                  "dalla precedente" delimited size into x-f3-msg

                perform x-set-f3-msg-grid-det

              move "N"                  to x-f3-ok-parziale

             end-if

 

             if tm-idx-des (i) = 0

                string "Sulla merce " tm-cfg-merce-ini-voce " deve "

                  "essere presente una descrizione"

                   delimited size into x-f3-msg

                perform x-set-f3-msg-grid-det

              move "N"                  to x-f3-ok-parziale

             end-if

 

          end-if

          .

   

Esempio prelevato da CRM065

 

     *---------------------------------------------------------------**

     * Qui introduco dei controlli aggiuntivi non legati ad un singolo

     *    campo

     *---------------------------------------------------------------**

      x-controlla-grid-det-col-ep.

          evaluate w-cell-x

           when gcn-r-dos-key-num

             if f9

                initialize util-crmk11

                move k-program-id       to crmk11-caller

                move "CRMK11"           to crmk11-called

                move "S"                to crmk11-modalita

                move " "                to crmk11-tdo

                call "CRMK11" using stringhe util-crmk11

                cancel "CRMK11"

                if crmk11-out-num not = 0

                   move crmk11-out-key-tdo to tm-r-dos-key-tip (i)

                   move crmk11-out-num     to tm-r-dos-key-num (i)

                   perform x-controlla-tm-r-dos-key-num

    Questa parte puo' essere omessa se gia' presente nella X-CONTROLLA-PRECEDENTE

                   move i            to k-rg

                   perform x-modify-riga-grid-det

                end-if

             end-if

           when gcn-r-dos-id

           ....

          end-evaluate

          .

 

          .