Introduzione
  Sono un programmatore pigro e per questo motivo, ad un certo punto, mi sono
  stancato di scrivere sempre le stesse cose ogni volta che dovevo codificare
  un programma, per questo motivo ho sviluppato il Batch Program Skeleton Generator.
  

Scopo del programma
  Lo scopo del programma e' quello di ridurre gli aspetti ripetitivi dell'attivita'
  di codifica dei programmi batch per i Mainframe IBM. 
  Esempio : ogni volta che decidiamo di leggere o scrivere un file dobbiamo,
  per poter utilizzare il file nel programma, codificare la dichiarazione
  del file, definire una variabile che serve per testare lo stato del file,
  definire una variabile per contenere il contenuto del record che leggiamo o scriviamo,
  definire una variabile per contenere il numero dei record che leggiamo o 
  scriviamo, incrementare la variabile che conta i record per ogni operazione
  di lettura/scrittura; e queste operazioni sono le stesse ripetute per ogni 
  programma e per ogni file nel programma.
  
  

Come utilizzare il programma
  Eseguendo il programma appare la finestra principale che contiene :
  
  Type of File : contiene i formati di input/output piu' comuni per lo sviluppo 
                 di programmi batch, SEQuenziale, DB2, DL1 e VSAM.
                 
  Input Files  : area all'interno della quale viene trascinato uno degli oggetti
                 contenuti in Type of File. Trascinare un formato in questa
                 area significa metterlo in input al nostro programma.
                 All'interno quest'area e' divisa in due parti, Balanced e Normal.
                 Se il programma da realizzare e' un bilanciamento, i file per
                 i quali si bilancia andranno posizionati all'interno dell'area
                 Balanced, altrimenti andranno posizionati nell'area Normal.
  
  Output Files : area all'interno della quale viene trascinato uno degli oggetti
                 contenuti in Type of File. Trascinare un formato in questa
                 area significa metterlo in output al nostro programma.
  
  PGM          : serve per determinare le caratteristiche del programma
                 che svilupperemo,nome ,linguaggio, parametri, aree da includere.
  
  Save Project : serve a salvare il lavoro fatto.
  
  Load Project : serve a recuperare il lavoro fatto.
  
  Make Program : serve per generare il programma, verra' creato un file
                 con il nome scelto per il programma con estensione txt.
  
  Make Jcl     : serve per creare il JCL per lanciare il programma.
                 verra' creato un file con il nome scelto per il 
                 programma con estensione jcl.txt.
                 
  
  Per iniziare a lavorare e' necessario creare almeno un file indifferentemente
  in Input o in Output. Per far cio' scegliere un oggetto tra quelli presenti
  in Type of File premendo il tasto sinistro del mouse e trascinarlo (Drag and Drop),
  tenendo premuto il tasto, su una delle due aree di input o output e poi 
  rilasciare il tasto.
  Verra' creato un oggetto dalle stesse caratteristiche dell'oggetto trascinato.
  Utilizzando il tasto destro si potra' aprire la finestra delle proprieta'
  dell'oggetto, ed inserire gli opportuni valori.
  
  Piu' in generale, per spostare gli oggetti nelle aree di Input e Output,
  e per tutto cio' che e' contenuto in tali aree, si utilizza il tasto sinistro 
  del mouse, per visualizzare le proprieta' il tasto destro, per tutti gli 
  altri oggetti presenti, PGM, Load Project, etc il tasto sinistro 
  visualizza le proprieta' mentre il destro non ha effetto.
  
  Nota : Non e', al momento, prevista alcuna funzione di cancellazione
         degli oggetti creati. Se per errore viene creato un oggetto 
         SEQuenziale che non e' necessario non e' possibile cancellarlo.
         
  Per ogni oggetto creato e' possibile impostare le proprieta' che 
  permettono di definire piu' accuratamente l'oggetto creato.
  Per far apparire la maschera delle proprieta' cliccare con il tasto 
  destro del mouse. Apparira' la maschera delle proprieta', alcuni dei
  campi saranno digitabili direttamente, mentre altri sono valorizzabili
  sia manualmente che interattivamente.
  I campi che possono essere riempiti interattivamente si identificano 
  perche' hanno le descrizioni dei campi con uno sfondo di colore differente 
  dal grigio della maschera, tali descrizioni sono  cliccabili e permettono 
  l'inserimento interattivo dei dati.
  
  
Avvertenze : 
  il programma e' stato pensato per interpretare copy/include con una sola 
  struttura e dclgen composte da definizione della tabella DB2 e UNA 
  struttura.
  
  Esempi :
     PL/1 - Include
       01 DCL LEVEL1   ,
         05 FIELD01           CHAR (05) ,
         05 FIELD02           FIXED (04) ,
         05 FIELD03 ,
           07 FIELD04         CHAR (34) ,
           07 FIELD05         PIC '999' ,
         05 FIELD06           FIXED BIN (31) ;
  questa include ha UNA sola struttura ed e' interpretabile dal programma.
  
     PL/1 - Include
       01 DCL LEVEL1   ,
         05 FIELD01           CHAR (05) ,
         05 FIELD02           FIXED (04) ,
         05 FIELD03 ,
           07 FIELD04         CHAR (34) ,
           07 FIELD05         PIC '999' ,
         05 FIELD06           FIXED BIN (31) ;

       01 DCL LEVEL2   BASED(ADDR(LEVEL1)) ,
         05 FIELD01           CHAR (05) ,
         05 FIELD02           FIXED (04) ,
         05 FIELD06           FIXED BIN (31) ;
  questa include ha DUE strutture e non e' correttamente interpretata dal programma.
         
         

Oggetto Sequenziale 

  Internal Name     : Nome del file nel programma 
  External Name     : Dataset Name del file (JCL)
  Balance Key       : Permette di selezionare i campi per il bilanciamento,
                      viene abilitata quando l'oggetto e' nell'area Input
                      Files e Balanced; la selezione dei campi e' possibile 
                      solo dopo aver selezionato la Copy da utilizzare.
  Prefix            : Attualmente non utilizzato
  Copy              : Contiene il nome della copy con il quale si legge
                      il file. Cliccando sulla descrizione sara' possibile
                      scegliere una copy navigando nei file del computer.
  Lenght            : Lunghezza della copy, viene calcolata e impostata 
                      in automatico quando si sceglie una copy
  Main Loop         : Spuntare questa opzione se si desidera utilizzare 
                      questo oggetto per il loop principale


Oggetto DB2         
  
  Owner             : Identifica il proprietario della tabella
  Table Name        : Nome della tabella che utilizzeremo, se abbiamo 
                      scelto una DclGen viene impostata in automatico
  Cursor            : Se vogliamo che venga definito un cursore per
                      questa tabella
  Action            : Tipi di operazioni che vogliamo nel programma
  Select Fields     : Contiene i nomi dei campi che verranno selezionati
  Where Fields      : Contiene i campi che verranno utilizzati nella Where
                      Condition
  Prefix            : Attualmente non utilizzato
  Balance Key       : Permette di selezionare i campi per il bilanciamento,
                      viene abilitata quando l'oggetto e' nell'area Input
                      Files e Balanced; la selezione dei campi e' possibile 
                      solo dopo aver selezionato la DclGen da utilizzare.
  DclGen            : Contiene il nome della DclGen con la quale si legge
                      la tabella. Cliccando sulla descrizione sara' possibile
                      scegliere una DclGen navigando nei file del computer.
  Lenght            : Lunghezza della copy, viene calcolata e impostata 
                      in automatico quando si sceglie una DclGen
  Main Loop         : Spuntare questa opzione se si desidera utilizzare 
                      questo oggetto per il loop principale
                      
                      
                                            
             