Files
MBS/PROYECTO/PRDIR/busca_imagenConduces.4gl
T

138 lines
4.1 KiB
Plaintext

IMPORT OS
GLOBALS "prprgb000.4gl"
DEFINE l_file,tmpdir_file STRING
FUNCTION busca_imagen_conduces(xnum_oc)
DEFINE nombre_cliente,vendedor CHAR(60),
documentos DYNAMIC ARRAY OF RECORD
idx INT,
tipo_file CHAR(20),
bodega SMALLINT,
num_doc INT,
nombre_file VARCHAR(100),
filedestino BYTE,
envio_correo CHAR(10)
END RECORD,
p_res,i SMALLINT,
xnum_oc,cuenta INT
LET i = 1
# VERIFICA QUE LA ORDEN TENGA DIBUJOS
SELECT ISNULL(COUNT(*),0) INTO cuenta FROM prtb00029 a WHERE a.num_oc = xnum_oc AND a.tipo_file = 'CO'
IF cuenta = 0 THEN
CALL fgl_winmessage("info","ORDEN NO TIENE CONDUCES ESCANEADOS","INFO")
RETURN
END IF
OPEN WINDOW w1 WITH FORM "prfmwd012"
CALL documentos.clear()
DECLARE busca_dibujo CURSOR FOR
SELECT a.id,a.tipo_file,a.bodega,a.num_doc,a.nombre_file,
a.documento,a.envio_notificacion
FROM prtb00029 a
WHERE a.num_oc =xnum_oc AND a.tipo_file = 'CO'
ORDER BY a.id
LET idx = 1
LOCATE documentos[idx].filedestino IN MEMORY
FOREACH busca_dibujo INTO documentos[idx].*
LET idx = idx + 1
LOCATE documentos[idx].filedestino IN MEMORY
END FOREACH
DISPLAY ARRAY documentos TO sdibujo.*
BEFORE DISPLAY
SELECT a.cotizacion_no,b.nombre,a.sec_vend,ISNULL(c.nom1_emp,' ')+ISNULL(c.apell1_emp,' '),
a.tipo_cliente,a.sec_cliente
INTO kprtb12.cotizacion_no,nombre_cliente,kprtb12.sec_vend,vendedor,
kprtb12.tipo_cliente,kprtb12.sec_cliente
FROM prtb00012 a,vetb00004 b,adtb00003 c
WHERE a.num_oc = xnum_oc AND
a.tipo_cliente = b.tipo_cliente AND
a.sec_cliente = b.sec_cliente AND
a.sec_vend = c.num_emp
DISPLAY BY NAME kprtb12.num_oc,kprtb12.cotizacion_no,nombre_cliente,vendedor
ON ACTION abrir
WHENEVER ERROR CONTINUE
TRY
LET tmpdir_file = "tmp\\",usuarios CLIPPED,documentos[arr_curr()].nombre_file
CALL documentos[arr_curr()].filedestino.writeFile(tmpdir_file)
CALL ui.Interface.frontCall("standard","getenv", ["TEMP"], [l_file] )
LET l_file = l_file CLIPPED,"\\",documentos[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
IF INT_FLAG THEN
EXIT DISPLAY
END IF
EXIT DISPLAY
END DISPLAY
LET INT_FLAG = FALSE
CLOSE WINDOW w1
END FUNCTION
{FUNCTION showDir(path)
DEFINE path STRING
DEFINE child STRING
DEFINE h INTEGER,
contenido DYNAMIC ARRAY OF STRING,
exito BOOLEAN
OPEN WINDOW w2 WITH FORM "prtest"
IF NOT os.Path.exists(path) THEN
CALL fgl_winmessage("NO",path,"info")
RETURN
END IF
IF NOT os.Path.isdirectory(path) THEN
DISPLAY " ", os.Path.basename(path)
RETURN
END IF
LET contenido[1]="[",path,"]"
LET idx = 1
CALL os.Path.dirsort("name", 1)
LET h = os.Path.diropen(path)
WHILE h > 0
LET child = os.Path.dirnext(h)
IF child IS NULL THEN EXIT WHILE END IF
IF child == "." OR child == ".." THEN CONTINUE WHILE END IF
LET contenido[idx] = os.Path.join( path, child )
LET idx = idx + 1
END WHILE
CALL os.Path.dirclose(h)
DISPLAY ARRAY contenido TO scontenido.*
ON ACTION borrar
CALL os.Path.delete(contenido[arr_curr()]) RETURNING exito
IF NOT exito THEN
CALL fgl_winmessage("E","NO BORRE EL FILE","INFO")
CONTINUE DISPLAY
END IF
AFTER DISPLAY
IF INT_FLAG THEN
EXIT PROGRAM
END IF
EXIT DISPLAY
END DISPLAY
CLOSE WINDOW w2
END FUNCTION}