Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,200 @@
|
||||
# Property of Four Js*
|
||||
# (c) Copyright Four Js 1995, 2019. All Rights Reserved.
|
||||
# * Trademark of Four Js Development Tools Europe Ltd
|
||||
# in the United States and elsewhere
|
||||
#
|
||||
# Four Js and its suppliers do not warrant or guarantee that these
|
||||
# samples are accurate and suitable for your purposes. Their inclusion is
|
||||
# purely for information purposes only.
|
||||
|
||||
IMPORT os
|
||||
#IMPORT FGL demo_make_db
|
||||
IMPORT FGL demo_load
|
||||
SCHEMA smarmotech
|
||||
|
||||
DEFINE demos DYNAMIC ARRAY OF RECORD
|
||||
NAME, PROGRAM,args,tipo,basedatos,descripcion,dirname,ruta VARCHAR(255)
|
||||
END RECORD
|
||||
DEFINE topics DYNAMIC ARRAY OF RECORD
|
||||
NAME,parent,dirname VARCHAR(255)
|
||||
END RECORD,
|
||||
usuarios,clave VARCHAR(50),
|
||||
pperfil,pprinter1,pprinter2,ckprinter,pcodcia INT,
|
||||
cambia_c VARCHAR(10)
|
||||
|
||||
MAIN
|
||||
DEFINE readme,nombre_cia,usuario,fecha_sistema,opcion STRING,
|
||||
ptasa FLOAT
|
||||
call ui.Interface.loadStyles("menup")
|
||||
OPTIONS INPUT WRAP
|
||||
OPEN FORM main FROM "demo"
|
||||
DISPLAY FORM MAIN
|
||||
CALL autentificacion() RETURNING usuarios,clave,pperfil,pprinter1,pprinter2,ckprinter,cambia_c,pcodcia
|
||||
|
||||
SELECT a.nombre INTO nombre_cia FROM companias a WHERE a.cod_comp = pcodcia
|
||||
|
||||
# BUSCA EL NOMBRE DE LA EMPRESA
|
||||
SELECT a.nombre INTO nombre_cia FROM companias a
|
||||
SELECT a.prima INTO Ptasa FROM vetb00019 a WHERE disponible = "S"
|
||||
LET ptasa = 60
|
||||
|
||||
LET usuario = 'JOHNNY SOTO'
|
||||
LET fecha_sistema = TODAY
|
||||
|
||||
DISPLAY "Usuario" TO lusuario
|
||||
DISPLAY "Fecha" TO lfecha
|
||||
DISPLAY "Tasa" TO ltasa
|
||||
|
||||
DISPLAY ptasa TO tasa
|
||||
DISPLAY BY NAME fecha_sistema
|
||||
DISPLAY BY NAME nombre_cia
|
||||
DISPLAY usuarios TO usuario
|
||||
# CALL demo_load.load_demo()
|
||||
|
||||
CALL fetch_topics()
|
||||
DIALOG ATTRIBUTES(FIELD ORDER FORM, UNBUFFERED)
|
||||
DISPLAY ARRAY topics TO topics.*
|
||||
BEFORE ROW
|
||||
CALL fetch_demos(topics[arr_curr()].*)
|
||||
LET readme = readfile(os.Path.join(topics[arr_curr()].dirname, "README"))
|
||||
ON ACTION cambia ATTRIBUTE(TEXT="Cambia Clave",IMAGE='user')
|
||||
LET opcion = fgl_winquestion("Cambiar","Al cambiar la clave el sistema va a salir, debe volver a entrar con la clave nueva","NO","YES|NO","question",0)
|
||||
IF opcion = "YES" THEN
|
||||
CALL cambia_clave()
|
||||
EXIT PROGRAM
|
||||
END IF
|
||||
AFTER DISPLAY
|
||||
END DISPLAY
|
||||
DISPLAY ARRAY demos TO s_demos.*
|
||||
ON ACTION show
|
||||
IF arr_curr() > 0 THEN
|
||||
CALL run_demo(demos[arr_curr()].*)
|
||||
END IF
|
||||
ON ACTION cambia ATTRIBUTE(TEXT="Cambia Clave",IMAGE='user')
|
||||
LET opcion = fgl_winquestion("Cambiar","Al cambiar la clave el sistema va a salir, debe volver a entrar con la clave nueva","NO","YES|NO","question",0)
|
||||
IF opcion = "YES" THEN
|
||||
CALL cambia_clave()
|
||||
EXIT PROGRAM
|
||||
END IF
|
||||
AFTER DISPLAY
|
||||
END DISPLAY
|
||||
INPUT BY NAME readme
|
||||
END INPUT
|
||||
ON ACTION CANCEL
|
||||
EXIT DIALOG
|
||||
#IF int_flag THEN EXIT INPUT END if
|
||||
|
||||
END DIALOG
|
||||
|
||||
END MAIN
|
||||
|
||||
FUNCTION fetch_topics()
|
||||
DEFINE topic RECORD
|
||||
NAME,parent,dirname VARCHAR(255)
|
||||
END RECORD
|
||||
DEFINE n INT
|
||||
LET n = 0
|
||||
DECLARE topic CURSOR FOR SELECT * INTO topic.* FROM topics WHERE estado = 'online'
|
||||
ORDER BY orden,dirname
|
||||
FOREACH topic
|
||||
|
||||
LET n = n + 1
|
||||
LET topics[n].* = topic.*
|
||||
END FOREACH
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION fetch_demos(topic)
|
||||
DEFINE topic RECORD
|
||||
NAME,parent,dirname VARCHAR(255)
|
||||
END RECORD
|
||||
DEFINE demo RECORD
|
||||
NAME, PROGRAM,args,tipo,basedatos,descripcion,dirname,ruta VARCHAR(255)
|
||||
END RECORD
|
||||
DEFINE n INT
|
||||
|
||||
CALL demos.clear()
|
||||
LET n = 0
|
||||
DECLARE demo CURSOR FOR SELECT * INTO demo.* FROM demos
|
||||
WHERE dirname = topic.dirname AND estado = 'online'
|
||||
ORDER BY dirname
|
||||
FOREACH demo
|
||||
DISPLAY "demos ",demo.name," ", demo.dirname
|
||||
CASE demo.tipo
|
||||
WHEN "V"
|
||||
LET demo.tipo = "services"
|
||||
WHEN "B"
|
||||
LET demo.tipo = "file"
|
||||
END CASE
|
||||
LET n = n + 1
|
||||
LET demos[n].* = demo.*
|
||||
END FOREACH
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION run_demo(demo)
|
||||
DEFINE demo RECORD
|
||||
NAME, PROGRAM,args,tipo,basedatos,descripcion,dirname,ruta VARCHAR(255)
|
||||
END RECORD
|
||||
DEFINE cmd STRING
|
||||
DEFINE isUnix BOOLEAN
|
||||
|
||||
IF demo.program IS NULL THEN RETURN END IF
|
||||
|
||||
CASE demo.tipo
|
||||
WHEN "services"
|
||||
|
||||
-- Run the command: Check if there is a script to run the demo
|
||||
LET isUnix = fgl_getenv("WINDIR") IS NULL
|
||||
IF NOT isUnix THEN
|
||||
LET demo.dirname = unixToDosPath(demo.dirname)
|
||||
END IF
|
||||
LET cmd = os.Path.join(demo.dirname, demo.program), IIF(isUnix, ".sh", ".bat")
|
||||
IF os.Path.exists(cmd) THEN -- Script
|
||||
IF isUnix THEN
|
||||
LET cmd = "sh ", cmd
|
||||
END IF
|
||||
LET cmd = cmd, " ", demo.args
|
||||
ELSE -- 4gl program
|
||||
LET cmd = "cd ", demo.ruta CLIPPED, " && fglrun ", demo.program CLIPPED, " ", usuarios," ",clave," ",pperfil," ",
|
||||
pprinter1," "," ", pprinter2,
|
||||
" ",ckprinter
|
||||
END IF
|
||||
DISPLAY " comando ",cmd
|
||||
RUN cmd WITHOUT WAITING
|
||||
WHEN "file"
|
||||
|
||||
CALL showfile(os.Path.join(demo.dirname, demo.program))
|
||||
OTHERWISE
|
||||
-- Can't happen?
|
||||
END CASE
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION unixToDosPath(path)
|
||||
DEFINE path STRING
|
||||
DEFINE buf base.StringBuffer
|
||||
LET buf = base.StringBuffer.create()
|
||||
CALL buf.append(path)
|
||||
CALL buf.replace("/", "\\", 0)
|
||||
RETURN buf.toString()
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION showfile(fn)
|
||||
DEFINE fn STRING
|
||||
DEFINE txt STRING
|
||||
|
||||
OPEN WINDOW w WITH FORM "demodisp"
|
||||
ATTRIBUTE(TEXT = "File: [" || fn || "]", STYLE = "dialog")
|
||||
LET txt = readfile(fn)
|
||||
INPUT BY NAME txt WITHOUT DEFAULTS;
|
||||
LET int_flag = FALSE
|
||||
CLOSE WINDOW w
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION readfile(fn)
|
||||
DEFINE fn STRING
|
||||
DEFINE t TEXT
|
||||
DEFINE s STRING
|
||||
|
||||
LOCATE t IN FILE fn
|
||||
LET s = t
|
||||
RETURN s
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user