Cerca nel blog

giovedì 19 novembre 2015

Programma: Creazione di un Cruscotto con 4 funzionalità

Creazione di un Cruscotto con 4 funzionalità

Per creare un cruscotto, dobbiamo creare un Module Pool, a cui assoceremo una Dynpro dove inseriremo i 4 pulsanti che richiameranno le 4 funzionalità. Vediamo in dettaglio come fare questo cruscotto.

Richiamiamo la  transazione SE80 e selezioniamo dal menu di sinistra, la voce “Repository Browser” , dal menu a tendina selezioniamo Programma ed inseriamo nel campo sottostante il nome del programma che vogliamo creare in questo caso ZFI_GEST_ANTICIPI  e premiamo il tasto INVIO, e ci verranno chiesti la descrizione del programma e la tipologia, il pacchetto e la CR in cui salvare le modifiche. (RICORDO CHE I MODULE POOL PER ESSERE ESEGUITI DEVONO ESSERE ASSOCIATI A DELLE TRANSAZIONI)

  

Cliccando sul programma creato, verrà  visualizzato il seguente codice:
*INCLUDE ZFI_GEST_ANTICIPI_TOP                   .    " global Data
* INCLUDE ZFI_GEST_ANTICIPI_O01                   .  " PBO-Modules
* INCLUDE ZFI_GEST_ANTICIPI_I01                   .  " PAI-Modules
* INCLUDE ZFI_GEST_ANTICIPI_F01                   .  " FORM-Routines

Nel nostro caso decommettiamo le prime 3 righe, e cliccando su ogni include le creiamo. Nel primo include  dichiariamo le variabili globali, nel secondo include inseriamo il codice relativo a quello che deve essere fatto prima della visualizzazione dell’output del programma, nel terzo include inseriamo il codice che deve essere richiamato quando l’utente esegue qualche operazione.

A questo punto creiamo la Dynpro che conterrà i pulsanti delle 4 funzionali. Per creare la Dynpro, nella finestra di sinistra, selezionare il nome del programma, in questo caso ZFI_GEST_ANTICIPI, tasto destro e selezionare Creare->Dynpro.


Si creerà la dynpro con il seguente codice:
PROCESS BEFORE OUTPUT.
 *MODULE STATUS_0100.

PROCESS AFTER INPUT.
 MODULE USER_COMMAND_0100.

Decommentiamo le due righe, e clicchiamo prima su status_0100 che ci chiederà dove crearlo, in questo caso nell’ INCLUDE ZFI_GEST_ANTICIPI_O01, poi clicchiamo su user_command_0100 ed anche in questo caso ci chiederà dove crearlo, in questo caso nell’ INCLUDE ZFI_GEST_ANTICIPI_I01.
Clicchiamo sul tab “Lista Elementi” ed inseriamo il seguente elemento “OK_CODE” che conterrà il valore corrispondente a tutte le azioni eseguite dall’utente.   


ATTENZIONE: questa stessa variabile “OK_CODE” deve essere dichiara globale nell’ INCLUDE ZFI_GEST_ANTICIPI_TOP             
 
*&------- VARIABILI GLOBALI ----------*
data: ok_code type sy-ucomm.

Premiamo adesso sul pulsante “Layuot” che consente di aprire la schermata grafica per  creare la dynpro.



Creiamo la Cornice premendo sul tasto cornice evidenziato in verde, ed inserendo le seguenti proprietà


Creiamo il primo pulsante premendo sul tasto “Pulsante di comando” evidenziato in verde, ed inserendo le seguenti proprietà. Importante è il Cd. Fnz che in questo caso abbiamo inserito FNZ1, e serve per identificare quale pulsante è stato premuto


Creiamo il primo testo associato al primo pulsante premendo sul tasto “Campo testo” evidenziato in verde, ed inserendo le seguenti proprietà. 


Ripetiamo le stesse operazioni per creare li altri 3 pulsanti, ricordandoci di cambiare nome degli oggetti che creiamo e soprattutto il “Cd. Fnz” che identifica i pulsanti premuti.

Nel secondo include “ZFI_GEST_ANTICIPI_O01 “inseriamo ad esempio il seguente codice:
MODULE status_0100 OUTPUT.
   set pf-st
atus 'GUI_100'.
   set titlebar 'TITOLO_100'.
ENDMODULE.                
" STATUS_0100  OUTPUT
 
In pratica stiamo dicendo che a questo programma è associato un titolo, che è quello che comparirà in alto quando viene eseguito il programma ed un menu di nome “GUI_100”. Adesso dobbiamo creare il menu ed il titolo.
Per creare il Titolo, nella finestra di sinistra, selezionare il nome del programma, in questo caso ZFI_GEST_ANTICIPI, tasto destro e selezionare Creare->Titolo GUI.
Inserire il codice titolo, come quello inserito nel codice quindi TITOLO_100, ed il titolo che deve comparire


Per creare il Menu, nella finestra di sinistra, selezionare il nome del programma, in questo caso ZFI_GEST_ANTICIPI, tasto destro e selezionare Creare->Stato GUI.
Inserire il codice dello stato, come quello inserito nel codice quindi GUI_100, ed un testo breve


Si aprirà una schermata in cui andremo ad inserire la definzione dei soli 3 pulsanti BACK STOP e EXIT, per gestire l'uscita dal programma principale.

 
Nell’ INCLUDE ZFI_GEST_ANTICIPI_TOP  dichiariamo le 4 transazioni (Ad ogni transazione deve essere legato un programma)  che devono essere richiamate quando vengono premuti rispettivi pulsanti.
*&------- COSTANTI ----------*
CONSTANTS: gc_tcode_1 LIKE sy-tcode VALUE 'ZAFI_GEST_ANTICIPI01',
           gc_tcode_2 LIKE sy-tcode VALUE 'ZAFI_GEST_ANTICIPI02',
           gc_tcode_3 LIKE sy-tcode VALUE 'ZAFI_GEST_ANTICIPI03',
           gc_tcode_4 LIKE sy-tcode VALUE 'ZAFI_GEST_ANTICIPI04'.


Nel terzo include “ZFI_GEST_ANTICIPI_I01 “inseriamo il codice che gestisce i pulsanti premuti dall’utente, in questo caso se l’utente preme il pulsante 1, la variabile ok_code conterrà il valore “FNZ1” e quindi verrà richiamata la transazione 'ZAFI_GEST_ANTICIPI01' e così gli altri. Se l’utente preme i pulsanti “BACK”, “STOP” e “EXIT” esce dal programma principale

MODULE user_command_0100 INPUT.
  case ok_code.
    when 'FNZ1'.
      call transaction gc_tcode_1.
    when 'FNZ2'.
      call transaction gc_tcode_2.
    when 'FNZ3'.
      call transaction gc_tcode_3.
    when 'FNZ4'.
      call transaction gc_tcode_4.
    when '&BACK' or '&STOP' or '&EXIT'.
     
leave program.

  endcase.
ENDMODULE.                 " USER_COMMAND_0100  INPUT