MAKEFORM an opensource cobol web framework

for giving a new prospective to a cobol application

Makeform is a new open source framework who wants improve a cobol web application giving a new professional look and feel layout using for the backoffice the enhancehd EasyUi LIBRARY widgets and containers.

What’s the difference between using it and EasyUI library alone ? Just told. Makeform implements a very very script line command that becomes interpreted at runtime from the makeform component
that build the output html pages for the easyUi LIBRARY.

Actually makeform is an item of an opensource project (still in beta realese indeed) named OPENPA intended for accounting software used for central and local offices of italian municipals and minor agencies.

But now take the focus about the library.

Make form uses simple .htm file (called templates) they contain the real html code. During the execution it replace all declared items to the template who replace them
for the real html pages.

So a line script like

edit(name=”DESC-CAUS” label=”Descrizione” size=”800px”) will produce a

The makeform contains a set of .htm template …containers.. some that must exist in mandatory way in your pages.. (simple declared as mandatory…) other like widgets other that must be used to “close” the containers since it uses the html rules. where if you open a div tag it will become as <div> in a section of your html pages and </div> when you’ll neeed to close it. Also containers can include other containers also. So you can add a framework to a tabs item.

here Just an image structure of the templates file and their usage inside a makeform page.

Here a sample page (italian contens..since openpa it is used for that country)

**** Riga commento  
*Debug(enabled="NO")
iniziali(title="Gestione Causali 0.1.0")
    intesta()
    openform(program="openreca.exe")
    pannello(title="Causali")
    Tabs()
        additemtabs(title="Dati di base")
            frame(title="ciao marghy")
            table()
            edit(name="DESC-CAUS" label="Descrizione" size="800px" char="40")
            edit(name="SIGLA-CAUS" label="Sigla breve" size="100px" char="2")
            ENDtable()
            endframe()
        enditemtabs()
        additemtabs(title="Dati di 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 indennità" )
            endtable()     
        enditemtabs()
        additemtabs(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()
             addline()
        enditemtabs()
        additemtabs(title="Parametri assenza")        
            Combo(size="480px" label="Conteggi su festivo:" name="TIPO-CONT-CAUS" item="2,Non considera conteggio ore e giorni"  item="3,Considera conteggio ore e giorni"  item="4,Considera solo giorni")
            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")
            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,Considera tutta la settimana" item="3,lavorativi da profilo" item="4,Considera dal lunedi al sabato")
        enditemtabs()
        additemtabs(title="Regole generali")        
            table(size="300px")
                        check(name="STAMPA-CAUS" label="Stampa su cartellino" value="S"  size="120%")     
                        check(name="DETTAGLIO-CAUS" label="Dettaglio su cartellino" value="S"  size="120%")    
            endtable()
        enditemtabs()
        additemtabs(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")
        enditemtabs()
        additemtabs(title="Opzioni su indennità")
            table(size="300px")
                check(name="ESCLUDI-CAUS" label="Esclude da calcoli orario indennità" value="S" SIZE="120%" )            
                addspace(times="10")                                     
                check(name="ESCLUDI-CAUS" label="Esclude da calcoli giornalieri indennità" value="S" SIZE="120%" )            
                endtable()
        enditemtabs()
        additemtabs(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")
        enditemtabs()
        additemtabs(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")
            onoff(lABEL="Indicare se stampa avanzata" on="SU" off="GIU" name="STAMPA-CAUS" height=",height:'22px'")
        enditemtabs()
    endTAbs()
    endpannello()
    save()
    key()
    closeform()
fine()

Here the runtime pages

Here the cobol code of the library. More details can be obtained (and will be available) at gnucobol.altervista.org