IMPORT util TYPE t_sync_cmd RECORD oper STRING, data STRING END RECORD MAIN DEFINE archivo STRING CALL init_mobile_log("err_gm_maps.log") TRY DATABASE dbmbs CATCH CREATE DATABASE dbmbs END TRY DATABASE dbmbs CALL menu_principal() END MAIN FUNCTION menu_principal() call ui.Interface.loadStyles("menu") case frontend() when "GMA" call ui.Interface.loadActionDefaults("menu_android") # CALL fgl_winmessage(" ","GMA","info") when "GMI" call ui.Interface.loadActionDefaults("menu_ios") otherwise call ui.Interface.loadActionDefaults("menu") end CASE CALL execute() END FUNCTION function execute() open window splash with form "splash" call splash() close window splash end function private function splash() define splash string define l_result,fecha_crea STRING, kusuario,kclave VARCHAR(50), fecha_date DATETIME YEAR TO MINUTE DEFINE id_num,idx INT, url STRING, estado BOOLEAN, tipo_inventario VARCHAR(100), chk_tramo,chk_productos,chk_seccion,chk_bodegas,chk_usuarios,chk_fechaConteo SMALLINT, cuenta_existencia,cuenta_productos,cuenta_bodegas,cuenta_secciones,cuenta_tramos,cuenta_fechaConteo INT, arrayOfCalendars dynamic ARRAY OF STRING, tipo,pfecha CHAR(70) DEFINE arr_info DYNAMIC ARRAY OF RECORD xtipo,xfecha STRING END RECORD CALL conexion() RETURNING url call inicio(url) RETURNING kusuario,kclave IF kusuario = "demo" THEN CALL conexion_demo() RETURNING url END IF call ui.interface.frontcall("webcomponent","call",["formonly.splash","setById","root",splash_html()],l_result) input by name splash attributes(unbuffered, without defaults=true, cancel=false, accept=false) before input -- set to false before deployment call dialog.setActionActive("settings", TRUE) on ACTION settings menu "" attributes(style="dialog") ON ACTION inventario ATTRIBUTE(TEXT="Gestion Inventario") CALL CONTEO(kusuario) ON ACTION sincroniza ATTRIBUTE(TEXT="Download Data") OPEN WINDOW ws1 WITH FORM "sincroniza" INPUT BY NAME tipo_inventario,chk_productos,chk_tramo,chk_seccion,chk_bodegas,chk_usuarios, chk_fechaConteo BEFORE INPUT IF LENGTH(url) > 1 THEN DISPLAY "SERVIDOR ACTIVO" TO url ELSE DISPLAY "SERVIDOR INACTIVO" TO url END IF SELECT COUNT(*) INTO cuenta_productos FROM productos SELECT COUNT(*) INTO cuenta_secciones FROM secciones SELECT COUNT(*) INTO cuenta_bodegas FROM bodegas SELECT COUNT(*) INTO cuenta_tramos FROM tramos SELECT COUNT(*) INTO cuenta_fechaConteo FROM intb00044 SELECT COUNT(*) INTO cuenta_existencia FROM existencia DISPLAY BY NAME cuenta_productos DISPLAY BY NAME cuenta_secciones DISPLAY BY NAME cuenta_bodegas DISPLAY BY NAME cuenta_tramos DISPLAY BY NAME cuenta_fechaConteo DISPLAY BY NAME cuenta_existencia AFTER INPUT IF int_flag THEN EXIT INPUT END IF CALL valida_usuario(kusuario,kclave,"ABIERTA",url) RETURNING estado,id_num IF chk_usuarios = 1 THEN CALL usuarios_download(url) END IF IF chk_productos = 1 THEN IF tipo_inventario IS NOT NULL THEN CALL productos_download(url,tipo_inventario) ELSE CALL fgl_winmessage("ERROR","FAVOR DE ELEJIR INVENTARIO","INFO") NEXT FIELD tipo_inventario END IF END IF IF chk_bodegas = 1 THEN CALL bodegas_download(url) END IF IF chk_seccion = 1 THEN CALL seccion_download(url) END if IF chk_tramo = 1 THEN CALL tramo_download(url) END IF IF chk_fechaConteo = 1 THEN CALL fechaConteo_download(url) END IF CALL valida_usuario(kusuario,kclave,"CERRAR",url) RETURNING estado,id_num END INPUT CLOSE WINDOW ws1 # ON ACTION visualiza ATTRIBUTE(TEXT="view") # SELECT a.* INTO tipo,Pfecha FROM intb00044 a # OPEN WINDOW w10 WITH FORM "form" # DISPLAY tipo TO record1[1].edit1 # DISPLAY pfecha TO record1[1].edit2 # CLOSE WINDOW w10 # ON ACTION actualiza ATTRIBUTE(TEXT="CONSULTA PRODUCTOS") { LET fecha_date = CURRENT LET fecha_crea = fecha_date CALL fgl_winmessage("info",fecha_crea,"info") UPDATE iptb00012 SET fech_crea = fecha_crea} # OPEN WINDOW w20 WITH FORM "form" # DECLARE busca_fecha CURSOR FOR # SELECT a.descrip_esp,a.codid FROM productos a WHERE # a.tipo_inventario = 'REPUESTOS' # LET idx = 1 # FOREACH busca_fecha INTO arr_info[idx].* # LET idx = idx +1 # END FOREACH # DISPLAY ARRAY arr_info TO record1.* # CLOSE WINDOW w20 ON ACTION crea_index ATTRIBUTE(TEXT="Crear Index") CALL db_add_indexes() ON ACTION etiquetas ATTRIBUTE(TEXT="Impresion Etiquetas") CALL imp_etiquetas(url) ON ACTION descargar ATTRIBUTE(TEXT="Descargar Data") CALL valida_usuario(kusuario,kclave,"ABIERTA",url) RETURNING estado,id_num IF estado THEN CALL descargar(url) CALL valida_usuario(kusuario,kclave,"CERRAR",url) RETURNING estado,id_num ELSE CALL fgl_winmessage("INFO","CONEXION INEXISNTETE, CONTACTE AL ADMINISTRADOR","INFO") CONTINUE MENU END IF ON ACTION limpia_conteo ATTRIBUTES(TEXT="Borrar Datos") CALL borra_info() on action CANCEL ATTRIBUTE(TEXT="Salir Aplicacion") exit program end menu # on action help # call browser.browser("Help","https://demo.4js.com/gas/help.htm") -- this could use a PDF but the PDF is slow to load when it contains images -- could also consider embedding PDF inside application #call browser.browser("help","https://demo.4js.com/gas/help.pdf") on action about call show_message(about_text(), true) end input if int_flag then let int_flag = 0 end if end function function frontend() define l_frontend string call ui.Interface.frontCall("standard","feinfo","fename",l_frontend) return l_frontend end FUNCTION