OpenPA

framework COBOL FUJITSU per EASYUI



OpenPa e’ una procedura open source cobol per applicazioni web.

Makeform e’ una libreria scritta in cobol fujitsu per generare pagine html leggendo le istruzioni da un linguaggio script dichiarativo molto semplice i cui file In fase di runtime vengono decodificati.

Le pagine create usano il formalismo usato dalla libreria EasyUI .

I dati prelevati sono letti direttamente in modo dinamico dai file isam (o db) che li contengono.

I tracciati record di ogni flusso vengono inseriti in un unico archivio che funge da dizionario
tramite la libreria COBFD (sempre cobol open source)
Per ogni campo ISAM e’ infatti presente il nome, la tipologia la dimensione se questa non e’ direttamente dipendente dalla tipologia. In fase di presentazione dei dati (rendering) la libreria si
occupa di presentare i dati a video e i singoli programmi di gestione di leggerne i contenuti e salvarli nel singolo isam di riferimento. Ogni istruzione e’ dichiarata come funzione(parametro=”valore”) e deve essere riportata su una singola riga. Ogni funzione e’ un file che la libreria apre e accoda al file html in fase scrittura.

**** Riga commento**** Riga commento
debug(enabled="NO")
iniziali(title="OpenPA 0.1.0")
pannello(title="Elenco Opzioni disponibili OPENPA 0.1.0")
intesta()
pannello(style="padding:5px;")
addmenu(title="Tabelle Parametri" name="menu1" disabled="TA")
addmenu(title="Anagrafiche" name="menu2" disabled="AN")
addmenu(title="Cartellino" name="menu3" disabled="CA")
addmenu(title="Statistiche" name="menu4" disabled="ST")
addmenu(title="Servizio" name="menu5" disabled="SE")
loadmenu(name="menu1" menu="TA" size="20%")
loadmenu(name="menu2" menu="AN" size="20%")
loadmenu(name="menu3" menu="CA" size="20%")
loadmenu(name="menu4" menu="ST" size="20%")
loadmenu(name="menu5" menu="SE" size="20%")
endpannello(times="2")
fine()

script per generazione pagine

**** Riga commento  
debug(enabled="NO")
iniziali(title="Tabella Ente 0.1.0")
openform(program="openreta.exe")
pannello(title="Tabella dati ENTE")
intesta()
frame(title="Dati Ente")
edit(name="DESC-ENTE-001" label="Denominazione")
addline()
edit(name="CITTA-001" label="Comune")
addspace(times="3")
edit(name="PROV-001" label="Prov." size="15%")
addline()
edit(name="VIA-001" label="Via")
addline()
edit(name="TEL-001" label="Telefono" size="25%")
edit(name="MAIL-001" label="email" size="25%" type="mail")
addline()
endpannello()
endframe()
closeform()
fine()

MAKEFORM la versione COBOL libreria del generatore di html per easy

MAKEFORM la versione powercobol per disegnare e testare i form.

Scegliere il file da elaborare. Edit per vedere lo script.. clicca su genera

**** Riga commento  
debug(enabled="NO")
iniziali(title="Tabella Ente 0.1.0")
    openform(program="openreta.exe")
        pannello(title="Tabella dati ENTE")
        intesta()
            frame(title="Dati Ente")
            edit(name="DESC-ENTE-001" label="Denominazione" size="800px")
            table()
                edit(name="CITTA-001" label="Comune" size="85%") 
                edit(name="PROV-001" label="Prov." size="15%")
                addline()
                edit(name="VIA-001" label="Via" size="75%")
                edit(name="TEL-001" label="Telefono" )
                tooltip(label="?" title="Testo di supporto..")
            endtable()
            tooltip(label="?" title="Testo di supporto..")
            edit(name="MAIL-001" label="email" size="25%" type="mail")
            edit(name="CF-001" label="Codice fiscale" size="35%")
            addspace(TIMES="15")
            edit(name="PI-001" label="P.iva " size="35%")
            addline()
            key()       
            endframe()
        endpannello()
        save()       
    closeform()
fine()

Se spuntato anteprima html viene generata una pagina test su /openpa/template/TEST.HTM e aperta nel browser. Nella versione desktop i contenuti dei campi sono sostituiti con il nome del db cobol.

Se spuntato edit TEST HTML viene aperto solo il file test con l’editor (notepad ++)

Esempio di una pagina abbastanza complessa…

**** Riga commento  
*debug(enabled="SI")
iniziali(title="Gestione Causali 0.1.0")
    intesta()
    openform(program="openreca.exe")
    pannello(title="Causali")
        frame(title="Dati di base ")
            edit(name="DESC-CAUS" label="Descrizione" size="800px")
            edit(name="SIGLA-CAUS" label="Sigla breve" size="800px")
            tooltip(label="?" title="Sigla da visualizzare sul cartellino.....")
            addline()
        endframe()
        frame(title="Configurazione")        
            table(SIZE="800PX")
            Combo(label="Tipo causale:" name="TIPO-CAUS" item="1,Assenza' iconCls:'icon-man1" item="2,Presenza' iconCls:'icon-man2")
            Combo(label="Categoria:" name="NATURA-CAUS" size="480PX" item="L,Lavoro' iconCls:'icon-man2" item="M,Malattia" item="P,Sciopero" item="R,Recuperi" item="S,Straordinario"  item="T,Trasferte" )
            addline()
            Combo(label="Ripartizione orario:" name="RIP-CONT-CAUS" size="100%" item="1,Causale di assenza"  item="2,Nessuna" item="3,Feriale-Notturno-festivo e notturno" item="4,solo su indennita" )
            endtable()     
        endframe()

        frame(title="Parametri presenza")        
            Table()                    
            Combo(size="480px" label="Tipo conteggio:" name="TIPO-CONT-CAUS" item="2,Uscita/Entrata-Entrata dopo da- Uscita prima per"  item="3,Coppia Entrata Uscita"  item="4,Entrata/Uscita-Entrata prima per-Uscita dopo per" item="5,conteggio da complementare")
            Combo(size="480px" label="Uso da fare del conteggio:" name="CONSIDERA-CAUS"  item="2,Esclusione dalle ore normali di lavoro" item="3,Somma nelle ore normali di lavoro" item="4, sottrai dalle ore di lavoro")
            endTable()
        endframe()
        frame(title="Parametri assenza")        
            Combo(size="480px" label="Conteggi su festivo:" name="TIPO-CONT-CAUS" item="2,Uscita/Entrata-Entrata dopo da- Uscita prima per"  item="3,Coppia Entrata Uscita"  item="4,Entrata/Uscita-Entrata prima per-Uscita dopo per" item="5,conteggio da complementare")
            Combo(size="480px" label="Valore assenza:" name="CONSIDERA-CAUS"  item="2,Esclusione dalle ore normali di lavoro" item="3,Somma nelle ore normali di lavoro" item="4, sottrai dalle ore di lavoro")
            Combo(size="480px" label="Uso da fare del conteggio assenza:" name="CONSIDERA-CAUS"  item="2,Esclusione dalle ore normali di lavoro" item="3,Somma nelle ore normali di lavoro" item="4, sottrai dalle ore di lavoro")
            Combo(size="480px" label="Assenze dal.... al...............:" name="CONSIDERA-CAUS"  item="2,Esclusione dalle ore normali di lavoro" item="3,Somma nelle ore normali di lavoro" item="4, sottrai dalle ore di lavoro")
        endframe()
        frame(title="Regole generali")        
            frame(title="Opzioni di stampa")
            table(size="40%")
            check(name="STAMPA-CAUS" label="Stampa su cartellino" value="S"  size="200px")            
            check(name="DETTAGLIO-CAUS" label="Dettaglio su cartellino" value="S"  size="200px")            
            endtable()
            endframe()
            frame(title="Opzioni di acquisizione")
            check(name="CESSATA-CAUS" label="Causale cessata" value="S" SIZE="120%" )            
            addspace(times="10")                                     
            label(label="Codice da inserire per sostituzioni")
            combogrid(name="SOSTITUISCE-CAUS" label="Causale che sostituisce" size="800px" file="caus")
            endframe()
            frame(title="Opzioni di cruscotto web")
            Combo(size="465px" label="Su cruscotto web:" name="AUTORIZZA-CAUS" item="1,Autorizzazione automatica" item="2,Singola autorizzazione" item="3,doppia autorizzazione" item="4,Escludi da cruscotto")
            endframe()
            frame(title="Altre opzioni di calcolo")
            table(size="200px")
            time(name="MINIMO-CAUS" label="Minimo ammesso" min="00:30" max="06:00")
            addspace(times="5")
            time(name="MASSIMO-CAUS" label="Massimo ammesso" min="00:30" max="06:00")
            endtable()
            Combo(size="465px" label="Tipologia saldo:" name="TIPO-SALD-CAUS" item="N,Nessuno" item="D,Decremento' iconCls:'icon-remove" item="I,incremento' iconCls:'icon-add")
            onoff(on="SU" off="GIU")
            endframe()
        endframe()
    endpannello()
    save()
    key()
    closeform()

FUNZIONI LIBRERIA MAKEFORM IN ORDINE ALFABETICO

FUNZIONI CON RELAZIONI

MAKEFORM Breve guida alla generazione di un form

Makeform integra con un linguaggio script un generatore di pagine html partendo da funzionalità che hanno in backend tag html con la logica di EasyUI

Lo script si presenta con indicazioni delle istruzioni all’interno delle quali sono eventualmente indicati i parametri con i relativi valori racchiusi tra apici.

es

Iniziali(tittle=PROVA MASCHERA”)

Iniziali e’ lo script/istruzione da elaborare

“(” identifica l’inizio degli eventuali parametri

“)” identifica l’inizio della funzione

title identifica il nome del parametro

“PROVA MASCHERA” identifica il valore assegnato al parametro

************ iniziali START   <!DOCTYPE html>
<html> 
  <head>        
    <meta charset=”UTF-8″>        
    <title>{title}</title>            
    <link rel=”stylesheet” type=”text/css” href=”/openpa/easyui/themes/default/easyui.css”>
    <link rel=”stylesheet” type=”text/css” href=”/openpa/easyui/themes/icon.css”>
    <link rel=”stylesheet” type=”text/css” href=”/openpa/easyui/demo/demo.css”>
    <script type=”text/javascript” src=”/openpa/easyui/jquery.min.js”></script>
    <script type=”text/javascript” src=”/openpa/easyui/jquery.easyui.min.js”></script>
<script type=”text/javascript”>
    $(function(){
    $(‘#open_form’).on(‘submit’, function(e){
    if ($(this).form(‘validate’)){
     return true;
     }
        return false;
    })
    })
</script>
 
</head> 
 
 
 <body style=”background-color:#eceff1;”>
 
************ iniziali END

SCHEMA di un form  con tag  (eventuali) di apertura

iniziali()

      openform()

                               pannello()

                              endpannello()

                               frame()

                              endframe()

                           tabs()

                               itemtabs()

enditemtabs()

                               itemtabs()

enditemtabs()

                          endtabs()

                                                        table()

                                                        endtable()

                                                       edit()

                                                       num()

                                                       number()

                                                       combo()

                                                       combogrid()

                                                       label()

                        key()

    closeform()

fine()

sono ad esempio ammessi

 tabs()

    itemtabs()

     frame()

     endframe()

    enditemtabs()

  endtabs()