{ ======================================================================== PROGRAMA : ccprmt011 OBJETIVO : CONTROL DE ORDENES ECOMMERCE ======================================================================== } GLOBALS "ccprgb000.4gl" DEFINE arr_autoriza_t DYNAMIC ARRAY OF RECORD inserta CHAR(2), estado CHAR(20), estado_despacho CHAR(20), vendedor CHAR(60), num_req INT, fecha DATE, cotizacion_no INT, num_oc INT, tipo_venta CHAR(60), cliente CHAR(60), valor_cotizacion DEC(12,2), valor_autorizar DEC(12,2), sec_vend SMALLINT, tipo_cliente INT, sec_cliente INT, num_emp_inst INT, nombre_supervisor VARCHAR(80), balance DEC(12,2), balance_restante DEC(12,2) END RECORD MAIN DEFER INTERRUPT CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(2) RETURNING clave CALL ARG_VAL(4) RETURNING impresor CONNECT to "smarmotech" USER usuarios USING clave CALL ccprmt010() END MAIN FUNCTION ccprmt010() DEFINE actualice BOOLEAN, registros INT OPTIONS INPUT WRAP OPEN WINDOW w1 AT 5,5 WITH FORM "ccfmmt010" DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM) CONSTRUCT BY NAME criterio ON a.estado,c.num_oc,c.cotizacion_no,x.cerrada, a.estado_despacho BEFORE CONSTRUCT CLEAR FORM END CONSTRUCT ON ACTION procesar LET selec = " SELECT DISTINCT '1',a.estado,a.estado_despacho,RTRIM(CAST(a.sec_vend AS CHAR))+' '+RTRIM(b.nom1_emp)+' '+b.apell1_emp , ", " a.num_req,CONVERT(CHAR(10),a.fecha_autorizacion,103),c.cotizacion_no,c.num_oc,g.descripcion as tipo_venta, ", " CAST(e.tipo_cliente AS CHAR(2))+'-'+CAST(e.sec_cliente AS CHAR(6))+' '+RTRIM(e.nombre) ", " AS cliente,d.total_neto as valor_cotizacion, ", " SUM(c.valor),d.sec_vend,e.tipo_cliente,e.sec_cliente ", " FROM cctb00025 a,adtb00003 b,cctb00026 c,vetb00050 d,vetb00004 e,vetb00061 g,vetb00060 h, ", " prtb00012 x ", "WHERE ", # " a.sec_vend = d.sec_vend and ", " a.sec_vend = b.num_emp and ", " a.num_req = c.num_req and ", " c.cotizacion_no = d.cotizacion_no AND ", " d.tipo_cliente = e.tipo_cliente AND ", " d.sec_cliente = e.sec_cliente AND ", " d.tipo_cliente = h.tipo_cliente AND ", " c.num_oc = x.num_oc AND ", " h.ventas = g.ventas and ",criterio CLIPPED, " and a.status_t is null and x.status_t is null ", " AND a.estado = 'AUTORIZADA' AND a.estado_despacho <> 'DESPACHADA' ", " GROUP BY a.estado,RTRIM(CAST(d.sec_vend AS CHAR))+' '+RTRIM(b.nom1_emp)+' '+b.apell1_emp, ", " a.num_req,c.cotizacion_no,g.descripcion, ", " CAST(e.tipo_cliente AS CHAR(2))+'-'+CAST(e.sec_cliente AS CHAR(6))+' '+RTRIM(e.nombre) ", " ,d.total_neto,a.fecha_autorizacion,a.sec_vend,c.num_oc, ", " a.fecha_transporte,a.estado_despacho,", " c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_Sec,e.tipo_cliente,e.sec_cliente,b.nom1_emp,b.apell1_emp, ", " d.sec_vend,e.tipo_cliente,e.sec_cliente ", " ORDER BY a.estado DESC,CONVERT(CHAR(10),a.fecha_autorizacion,103) DESC" DISPLAY "BUSCANDO INORMACION" TO proceso PREPARE comando FROM selec DECLARE busca_requisi CURSOR FOR comando LET idx = 1 FOREACH busca_requisi INTO arr_autoriza_t[idx].* SELECT a.nom1_emp||a.apell1_emp INTO arr_autoriza_t[idx].nombre_supervisor FROM adtb00003 a WHERE a.num_emp = arr_autoriza_t[idx].num_emp_inst LET idx = idx + 1 END FOREACH IF idx = 1 THEN CLEAR FORM CALL fgl_winmessage("ERROR","NO EXISTEN REQUISICIONES CON ESA CONDICION ","STOP") CONTINUE DIALOG END IF DISPLAY idx-1 TO registros CALL SET_COUNT(idx-1) DISPLAY " " TO proceso INPUT ARRAY arr_autoriza_T WITHOUT DEFAULTS FROM s_autoriza.* BEFORE INPUT #CALL DIALOG.setactionactive("accept",FALSE) CALL DIALOG.setactionactive("insert",FALSE) CALL DIALOG.setactionactive("append",FALSE) CALL DIALOG.setactionactive("delete",FALSE) ON IDLE 60 DISPLAY " " TO proceso CALL refrescar() ON ACTION imprimir LET curr=arr_curr() IF arr_autoriza_t[curr].num_req IS NOT NULL THEN CALL imprime_req(arr_autoriza_t[curr].num_req) ELSE CALL fgl_winmessage("INFO","DEBES DE COLOCAR EL CURSOR EN LA FILA DONDE EXISTA UN DOCUMENTO","INFO") END IF ON ACTION buscaMaterial LET curr = arr_curr() CALL fbuscaMaterial(arr_autoriza_t[curr].num_req,arr_autoriza_t[curr].num_oc) ON ACTION buscamensaje LET curr = arr_curr() CALL entramensaje(arr_autoriza_t[curr].num_req,arr_autoriza_t[curr].cotizacion_no,"V",usuarios) AFTER INPUT #WHENEVER ERROR CONTINUE IF int_flag THEN CALL fgl_winmessage("WARNING","OPERACION CANCELADA","STOP") CALL arr_autoriza.clear() CLEAR FORM LET int_flag = FALSE EXIT INPUT END IF END INPUT ON ACTION limpiar CALL arr_autoriza.clear() CLEAR FORM ON ACTION cancel EXIT PROGRAM END DIALOG CLOSE WINDOW w1 END FUNCTION FUNCTION fbuscaMaterial(xreq,xnumoc) DEFINE arr_material DYNAMIC ARRAY OF RECORD fecha_compromiso CHAR(10), fecha_transporte DATE, fecha_llegada DATE, material CHAR(50), cantidad DEC(12,4), pendiente DEC(12,4), pendiente_ord DEC(12,4), cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, num_oc INT END RECORD, xreq,xnumoc INT, cantidad_req,cantidad_desp,cantidad_ord,cantidad_desp1 DEC(12,4) OPEN WINDOW w2 AT 5,5 WITH FORM "ccfmmt014" LET selec = "SELECT CONVERT(CHAR(10),c.fecha_compromiso,103),CONVERT(CHAR(10),a.fecha_transporte,103),CONVERT(CHAR(10),a.fecha_llegada,103),", "CAST(a.cod_n AS CHAR(2))||'-'||CAST(a.cod_grupo AS CHAR(4))||'-'|| ", "CAST(a.cod_tipo AS CHAR(4))||'-'||CAST(a.cod_sec AS CHAR(4))||' '|| ", "RTRIM(b.descrip_esp)||' '||b.unidad_med,a.cantidad,'0', '0',", " b.cod_n,b.cod_grupo,b.cod_tipo,b.cod_Sec,a.num_oc ", "FROM cctb00026 a,iptb00002 b,prtb00013 c ", "WHERE a.num_req = '", xreq,"' AND ", " a.num_oc = c.num_oc AND ", " a.cod_n = c.cod_n AND ", " a.cod_Grupo = c.cod_grupo AND ", " a.cod_tipo = c.cod_tipo AND ", " a.cod_Sec = c.cod_sec AND ", " a.cod_n = b.cod_n AND ", " a.cod_Grupo = b.cod_grupo AND ", " a.cod_tipo = b.cod_tipo AND ", " a.cod_Sec = b.cod_sec " PREPARE comando10 FROM selec DECLARE buscaM CURSOR FOR comando10 LET idx = 1 FOREACH buscam INTO arr_material[idx].* LET cantidad_req = 0 SELECT SUM(a.cantidad) INTO cantidad_req FROM cctb00026 a WHERE a.cod_n = arr_material[idx].cod_n AND a.cod_grupo = arr_material[idx].cod_grupo AND a.cod_tipo = arr_material[idx].cod_tipo AND a.cod_sec = arr_material[idx].cod_sec AND a.num_req = xreq AND a.status_t IS NULL IF cantidad_req IS NULL THEN LET cantidad_req = 0 END IF LET cantidad_Desp=0 SELECT SUM(a.cantidad_2) INTO cantidad_desp FROM iptb00006 a WHERE a.cod_n = arr_material[idx].cod_n AND a.cod_grupo = arr_material[idx].cod_grupo AND a.cod_tipo = arr_material[idx].cod_tipo AND a.cod_sec = arr_material[idx].cod_sec AND a.conduce_no = arr_material[idx].num_oc AND a.num_req = xreq AND a.status_t IS NULL IF cantidad_Desp IS NULL THEN LET cantidad_desp = 0 END IF LET cantidad_ord = 0 SELECT SUM(a.cantidad) INTO cantidad_ord FROM prtb00013 a WHERE a.cod_n = arr_material[idx].cod_n AND a.cod_grupo = arr_material[idx].cod_grupo AND a.cod_tipo = arr_material[idx].cod_tipo AND a.cod_sec = arr_material[idx].cod_sec AND a.num_oc =xnumoc AND a.status_t IS NULL IF cantidad_ord IS NULL THEN LET cantidad_ord = 0 END IF LET cantidad_desp1 = 0 SELECT SUM(a.cantidad_2) INTO cantidad_desp1 FROM iptb00006 a WHERE a.cod_n = arr_material[idx].cod_n AND a.cod_grupo = arr_material[idx].cod_grupo AND a.cod_tipo = arr_material[idx].cod_tipo AND a.cod_sec = arr_material[idx].cod_sec AND a.num_oc =xnumoc AND a.cod_mov IN (30,31,55,56,12,13) AND a.status_t IS NULL IF cantidad_desp1 IS NULL THEN LET cantidad_desp1 = 0 END IF LET arr_material[idx].pendiente_ord = cantidad_ord - cantidad_desp1 LET arr_material[idx].pendiente= cantidad_req - cantidad_desp LET idx = idx + 1 END FOREACH CALL set_count(idx-1) INPUT ARRAY arr_material FROM s_transporte.* ATTRIBUTE(WITHOUT DEFAULTS) AFTER INPUT IF int_flag THEN CALL msg(2) EXIT INPUT END IF LET curr = arr_curr() IF arr_material[curr].fecha_transporte > arr_material[curr].fecha_llegada THEN CALL fgl_Winmessage("ERROR","FECHA TRANSPORTE NO PUEDE SER MAYOR FECHA LLEGADA","STOP") NEXT FIELD fecha_transporte END IF BEGIN WORK FOR idx = 1 TO arr_count() IF arr_material[idx].fecha_llegada IS NOT NULL THEN UPDATE cctb00026 set fecha_llegada = arr_material[idx].fecha_llegada, fecha_transporte = arr_material[idx].fecha_transporte, us_mod = usuarios, fech_mod = getdate() WHERE num_req = xreq AND cod_n = arr_material[idx].cod_n and cod_grupo = arr_material[idx].cod_grupo and cod_tipo = arr_material[idx].cod_tipo and cod_Sec = arr_material[idx].cod_sec IF STATUS < 0 THEN ROLLBACK WORK LET chmensaje = SQLERRMESSAGE CLIPPED,"NO ES POSIBLE GUARDAR LA TRANSACCION" CALL fgl_winmessage("ERROR",chmensaje,"STOP") CONTINUE INPUT ELSE COMMIT WORK CALL msg(1) END IF END IF END FOR END INPUT IF Int_flag THEN LET Int_flag = FALSE END IF CLOSE WINDOW w2 END FUNCTION FUNCTION imprime_req(xnumreq) DEFINE xnumreq INT, handler om.SaxDocumentHandler, -- return value from fgl_report_commitCurrentSettings() r_filename STRING, -- filename of Report Design Document including .4rp extension r_output STRING, -- output format option preview INTEGER -- TRUE/FALSE, to set preview option DEFINE mrequisicion RECORD numreq INT, numoc INT, nombre VARCHAR(80), vendedor VARCHAR(80), fecha VARCHAR(10), estatus_req VARCHAR(50), direccion VARCHAR(100), telefono_r VARCHAR(20), telefono_o VARCHAR(20), celular VARCHAR(20), celular1 VARCHAR(20), contacto VARCHAR(60), usuario_autoriza VARCHAR(50), fecha_autorizacion CHAR(16), estado_despacho VARCHAR(50), cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, descripcion VARCHAR(80), cantidad DEC(12,4), codn SMALLINT, codgrupo SMALLINT, codtipo SMALLINT, codsec SMALLINT, descripcion1 VARCHAR(60), kit INT, observacion VARCHAR(180), cantidad_1 FLOAT, cantidad_despachada_req DEC(12,4), cantidad_despachada_ord DEC(12,4), cantidad_pendiente_ord DEC(12,4), cantidad_pendiente_req DEC(12,4), cantidad_ord DEC(12,4), codigo CHAR(30) END RECORD DECLARE busca_req CURSOR FOR SELECT b.num_req,c.num_oc, CAST (a.tipo_cliente AS varchar(2))+'-'+CAST(a.sec_cliente AS varchar(6))+' '+ISNULL(a.nombre,' ') AS cliente, CAST(e.num_emp AS varchar(5))+' '+ISNULL(RTRIM(e.nom1_emp),' ')+' '+ISNULL(e.apell1_emp,' ') AS vendedor, CONVERT(CHAR(10),b.fecha,103) AS fecha,b.estado, RTRIM(d.direccion_proyecto)+ '-'+ISNULL(x2.mensaje,' ') AS direccion,d.telefono_r,d.telefono_o,d.celular, d.celular1,d.contacto, (SELECT isnull(adtb00003.nom1_emp,' ')+' '+isnull(adtb00003.apell1_Emp,' ') FROM adtb00003 WHERE adtb00003.num_emp = b.sec_vend_aprobado), CONVERT(CHAR(10),b.fecha_autorizacion,103), b.estado_despacho, c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec,f.descrip_esp, sum(c.cantidad), c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec,(SELECT k1.descrip_esp FROM iptb00002 k1 WHERE k1.cod_n = c.cod_n AND k1.cod_grupo = c.cod_grupo AND k1.cod_tipo = c.cod_tipo AND k1.cod_sec = c.cod_sec),c.id_kit,x3.observacion,SUM(c.cantidad_1) FROM vetb00004 a,cctb00025 b LEFT OUTER JOIN cctb00029 x2 ON b.num_req = x2.num_req, cctb00026 c, vetb00050 d,adtb00003 e,iptb00002 f,prtb00014 x3 WHERE a.tipo_cliente = d.tipo_cliente AND b.num_req = c.num_req AND a.sec_cliente = d.sec_cliente AND c.cotizacion_no = d.cotizacion_no AND c.cod_n = f.cod_n AND c.cod_grupo =f.cod_grupo AND c.cod_tipo=f.cod_tipo AND c.cod_sec = f.cod_Sec AND c.status_t IS NULL AND b.num_req = xnumreq AND d.sec_vend = e.num_emp AND c.num_oc = x3.num_oc GROUP BY b.num_req,a.tipo_cliente,a.sec_cliente,a.nombre, e.num_emp,e.nom1_emp,e.apell1_emp,c.num_oc, b.fecha,b.estado, c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec,f.descrip_esp,b.sec_vend_aprobado, b.fecha_autorizacion,b.estado_despacho, d.direccion_proyecto,x2.mensaje, d.telefono_r,d.telefono_o,d.celular, c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec, c.id_kit,x3.observacion,d.celular1,d.contacto ORDER BY b.num_req, c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec LET r_output="SVG" LET r_filename = "ccprmt010.4rp" LET preview = 1 iF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file CALL fgl_report_selectDevice(r_output) -- changing default CALL fgl_report_selectPreview(preview) -- changing default LET handler = fgl_report_commitCurrentSettings() -- commit changes START REPORT CCRP10 TO XML HANDLER HANDLER LET idx = 1 FOREACH busca_req INTO mrequisicion.* LET mrequisicion.codigo =mrequisicion.kit USING "<<<<","/", mrequisicion.cod_n USING "&&&&","-", mrequisicion.cod_grupo USING "&&&&","-", mrequisicion.cod_tipo USING "&&&&","-", mrequisicion.cod_sec USING "&&&&&&" OUTPUT TO REPORT ccrp10(mrequisicion.*) LET idx = idx + 1 END FOREACH DISPLAY "idx ",idx FINISH REPORT ccrp10 END IF END FUNCTION REPORT ccrp10(x) DEFINE X RECORD numreq INT, numoc INT, nombre VARCHAR(80), vendedor VARCHAR(80), fecha VARCHAR(10), estatus_req VARCHAR(50), direccion VARCHAR(100), telefono_r VARCHAR(20), telefono_o VARCHAR(20), celular VARCHAR(20), celular1 VARCHAR(20), contacto VARCHAR(60), usuario_autoriza VARCHAR(50), fecha_autorizacion CHAR(16), estado_despacho VARCHAR(50), cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, descripcion VARCHAR(80), cantidad DEC(12,4), codn SMALLINT, codgrupo SMALLINT, codtipo SMALLINT, codsec SMALLINT, descripcion1 VARCHAR(60), kit INT, observacion VARCHAR(180), cantidad_1 FLOAT, cantidad_despachada_req DEC(12,4), cantidad_despachada_ord DEC(12,4), cantidad_pendiente_ord DEC(12,4), cantidad_pendiente_req DEC(12,4), cantidad_ord DEC(12,4), codigo CHAR(30) END RECORD, fecha_imp CHAR(16), semaforo BOOLEAN, chkit CHAR(100), y RECORD etiqueta CHAR(30), cod_n,cod_grupo,cod_tipo,cod_sec INT, lado_1,lado_2,lado_3 FLOAT, cantidad_r,medida_r FLOAT END RECORD ORDER BY x.numreq FORMAT FIRST PAGE HEADER SELECT a.* INTO p_companias.* FROM companias a LET fecha_imp = TODAY USING "DD/MM/YYYY",":",TIME BEFORE GROUP OF x.numreq PRINTX x.numreq,x.estado_despacho,x.estatus_req,x.fecha,x.fecha_autorizacion,p_companias.nombre, x.nombre,x.usuario_autoriza,x.vendedor,fecha_imp,x.numoc,X.direccion,X.telefono_r,x.telefono_o, x.celular,x.celular1,x.contacto, x.observacion BEFORE GROUP OF x.codigo # BUSCA LAS CANTIDADES PENDIENTES LET x.cantidad_despachada_req=0 SELECT SUM(a.cantidad_2) INTO x.cantidad_despachada_req FROM iptb00006 a WHERE a.num_req = x.numreq AND a.cod_n = x.cod_n AND a.cod_grupo = x.cod_grupo AND a.cod_tipo = x.cod_tipo AND a.cod_Sec = x.cod_Sec AND a.status_t IS NULL LET x.cantidad_despachada_ord=0 SELECT SUM(a.cantidad_2) INTO x.cantidad_despachada_ord FROM iptb00006 a WHERE a.num_oc = x.numoc AND a.cod_n = x.cod_n AND a.cod_grupo = x.cod_grupo AND a.cod_mov IN (30,31,55,56,12,13) AND a.cod_tipo = x.cod_tipo AND a.cod_Sec = x.cod_Sec AND a.status_t IS NULL SELECT SUM(a.cantidad) INTO x.cantidad_ord FROM prtb00013 a WHERE a.num_oc = x.numoc AND a.cod_n = x.cod_n AND a.cod_grupo = x.cod_grupo AND a.cod_tipo = x.cod_tipo AND a.cod_Sec = x.cod_Sec AND a.status_t IS NULL IF x.cantidad_despachada_req IS NULL THEN LET x.cantidad_despachada_req = 0 END IF IF x.cantidad_despachada_ord IS NULL THEN LET x.cantidad_despachada_ord = 0 END IF IF x.cantidad_ord IS NULL THEN LET x.cantidad_ord = 0 END IF # DISPLAY "datos ",x.cantidad_ord,x.cantidad_despachada_ord,x.cantidad, # x.cantidad_despachada_req LET x.cantidad_pendiente_ord=x.cantidad_ord+x.cantidad_despachada_ord LET x.cantidad_pendiente_req=x.cantidad + x.cantidad_despachada_req { #BUSCA DESPIECE DECLARE busca_desp CURSOR FOR SELECT b.descripcion,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.lado_1,a.lado_2,a.lado_3,a.cantidad,a.medida FROM vetb00026 b,cctb00027 a WHERE b.codid = a.etiqueta AND a.cod_n = x.cod_n AND a.cod_grupo = x.cod_grupo AND a.cod_tipo = x.cod_tipo AND a.cod_sec = x.cod_sec FOREACH busca_desp INTO y.* END FOREACH } PRINTX x.cod_n,x.cod_grupo,x.cod_tipo,x.cod_Sec,x.descripcion,x.cantidad, x.cantidad_pendiente_req,x.cantidad_pendiente_ord ON EVERY ROW # IF x.codn IS NOT NULL THEN # LET semaforo = TRUE # LET chkit = x.codn USING "&&&&","-",x.codgrupo USING "&&&&","-",x.codtipo USING "&&&&","-", # x.codsec USING "&&&&"," ",x.descripcion1 # ELSE LET semaforo = FALSE # END IF PRINTX y.etiqueta,y.lado_1,y.lado_2,y.lado_3,y.cantidad_r,y.medida_r, chkit,semaforo,x.cantidad_1,x.cantidad END REPORT FUNCTION refrescar() LET selec = " SELECT '1',a.estado,a.estado_despacho,RTRIM(CAST(a.sec_vend AS CHAR))+' '+RTRIM(b.nom1_emp)+' '+b.apell1_emp , ", " a.num_req,CONVERT(CHAR(10),a.fecha_autorizacion,103),c.cotizacion_no,c.num_oc,g.descripcion as tipo_venta, ", " CAST(e.tipo_cliente AS CHAR(2))+'-'+CAST(e.sec_cliente AS CHAR(6))+' '+RTRIM(e.nombre) ", " AS cliente,d.total_neto as valor_cotizacion, ", " SUM(c.valor),a.sec_vend,c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_Sec,e.tipo_cliente,e.sec_cliente ", " FROM cctb00025 a,adtb00003 b,cctb00026 c,vetb00050 d,vetb00004 e,vetb00061 g,vetb00060 h, ", " prtb00012 x ", "WHERE ", " a.sec_vend = d.sec_vend and ", " a.sec_vend = b.num_emp and ", " a.num_req = c.num_req and ", " c.cotizacion_no = d.cotizacion_no AND ", " d.tipo_cliente = e.tipo_cliente AND ", " d.sec_cliente = e.sec_cliente AND ", " d.tipo_cliente = h.tipo_cliente AND ", " c.num_oc = x.num_oc AND ", " h.ventas = g.ventas and ",criterio CLIPPED, " and a.status_t is null and x.status_t is null ", " AND a.estado = 'AUTORIZADA' AND a.estado_despacho <> 'DESPACHADA' ", " GROUP BY a.estado,RTRIM(CAST(a.sec_vend AS CHAR))+' '+RTRIM(b.nom1_emp)+' '+b.apell1_emp, ", " a.num_req,c.cotizacion_no,g.descripcion, ", " CAST(e.tipo_cliente AS CHAR(2))+'-'+CAST(e.sec_cliente AS CHAR(6))+' '+RTRIM(e.nombre) ", " ,d.total_neto,a.fecha_autorizacion,a.sec_vend,c.num_oc, ", " a.fecha_transporte,a.estado_despacho, ", " c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_Sec,e.tipo_cliente,e.sec_cliente ", " ORDER BY a.estado DESC,CONVERT(CHAR(10),a.fecha_autorizacion,103) DESC" DISPLAY "REFRESCANDO INFORMACION" TO proceso PREPARE comando1 FROM selec DECLARE busca_requisi1 CURSOR FOR comando1 LET idx = 1 CALL arr_autoriza.clear() FOREACH busca_requisi1 INTO arr_autoriza_t[idx].* LET idx = idx + 1 END FOREACH END FUNCTION