96 lines
2.8 KiB
Plaintext
96 lines
2.8 KiB
Plaintext
FUNCTION files_ordenes(xnum_oc,xusuario,xclave)
|
|
DEFINE xnum_oc INT,
|
|
files_ordenes DYNAMIC ARRAY OF RECORD
|
|
ruta_file VARCHAR(100),
|
|
descrip_file VARCHAR(60),
|
|
tipo_Doc VARCHAR(10),
|
|
num_doc INT,
|
|
nombre_file VARCHAR(100),
|
|
documento BYTE
|
|
END RECORD,
|
|
idx SMALLINT,p_res INT,
|
|
file_orden VARCHAR(100),
|
|
xusuario,xclave VARCHAR(50),
|
|
tmpdir_file,l_file STRING,
|
|
documentos BYTE
|
|
|
|
CONNECT to "smarmotech" USER xusuario USING xclave
|
|
|
|
OPEN WINDOW w1 WITH FORM "ccfmwd007"
|
|
DECLARE busca CURSOR FOR
|
|
SELECT a.url_file_destino,' ',a.tipo_file,a.num_doc,a.nombre_file,a.documento FROM prtb00029 a
|
|
WHERE a.num_oc = xnum_oc
|
|
|
|
LET idx = 1
|
|
LOCATE files_ordenes[idx].documento IN MEMORY
|
|
FOREACH busca INTO files_ordenes[idx].*
|
|
IF files_ordenes[idx].tipo_Doc = 'CO' THEN
|
|
LET files_ordenes[idx].descrip_file = 'CONDUCES'
|
|
|
|
END IF
|
|
IF files_ordenes[idx].tipo_Doc = 'OT' THEN
|
|
LET files_ordenes[idx].descrip_file = 'OTROS'
|
|
|
|
END IF
|
|
IF files_ordenes[idx].tipo_Doc = 'DI' THEN
|
|
LET files_ordenes[idx].descrip_file = 'DIBUJOS'
|
|
|
|
END IF
|
|
IF files_ordenes[idx].tipo_Doc IS NULL THEN
|
|
LET files_ordenes[idx].descrip_file = 'NO IDENTIFICADO'
|
|
|
|
END IF
|
|
IF files_ordenes[idx].tipo_Doc = 'DE' THEN
|
|
LET files_ordenes[idx].descrip_file = 'DEVOLUCIONES'
|
|
|
|
END IF
|
|
|
|
|
|
LET idx = idx + 1
|
|
LOCATE files_ordenes[idx].documento IN MEMORY
|
|
END FOREACH
|
|
IF idx = 1 THEN
|
|
CALL fgl_Winmessage("INFO","ORDEN SELECCIONADA NO TIENE DOCUMENTOS ASIGNADOS","INFO")
|
|
ELSE
|
|
DISPLAY ARRAY files_ordenes TO sfiles.*
|
|
ON ACTION abrir
|
|
LET idx = arr_curr()
|
|
{ TRY
|
|
|
|
LET file_orden=files_ordenes[idx].ruta_file CLIPPED
|
|
CALL ui.Interface.frontCall("standard","launchurl", [file_orden],[p_res])
|
|
|
|
CATCH
|
|
CALL fgl_winmessage("ERROR",err_get(STATUS),"INFO")
|
|
END TRY
|
|
}
|
|
TRY
|
|
LET tmpdir_file = "tmp\\",files_ordenes[arr_curr()].nombre_file
|
|
|
|
CALL files_ordenes[arr_curr()].documento.writeFile(tmpdir_file)
|
|
|
|
CALL ui.Interface.frontCall("standard","getenv", ["TEMP"], [l_file] )
|
|
|
|
LET l_file = l_file CLIPPED,"\\",files_ordenes[arr_curr()].nombre_file
|
|
CALL fgl_putfile(tmpdir_file,l_file)
|
|
|
|
CALL ui.Interface.frontCall("standard","shellexec", [l_file],[p_res])
|
|
|
|
CATCH
|
|
CALL fgl_winmessage("ERROR",err_get(STATUS),"INFO")
|
|
END TRY
|
|
|
|
AFTER DISPLAY
|
|
LET idx = arr_curr()
|
|
LET file_orden = files_ordenes[idx].ruta_file
|
|
EXIT DISPLAY
|
|
END DISPLAY
|
|
IF INT_FLAG THEN
|
|
CALL fgl_winmessage("INFO","OPERACION CANCELADA","INFO")
|
|
LET INT_FLAG = FALSE
|
|
LET file_orden = NULL
|
|
END IF
|
|
END IF
|
|
CLOSE WINDOW w1
|
|
RETURN
|
|
END FUNCTION |