{ ============================================================================ PROGRAMAS : CGPRCS004 OBJETIVO : VISUALIZAR LAS FACTURAS QUE ESTAN AFECTADAS POR UN CHEQUE PROGRAMADOR : JUAN F. SOTO FECHA : FEBRERO 28, 1996 ============================================================================= } GLOBALS "cgprgb000.4gl" DEFINE select1 CHAR(150), p_factura CHAR(10) DEFINE imp_fact ARRAY[300] OF RECORD cod_cro LIKE cgtb00031.cod_cro, beneficiario LIKE cgtb00031.beneficiario, cheque_no LIKE cgtb00005.cheque_no, fecha LIKE cgtb00005.fecha, banco LIKE cgtb00005.cuenta_no, monto LIKE cgtb00005.monto END RECORD FUNCTION cgprcs004() OPTIONS FORM LINE 8, ERROR LINE 24 OPEN FORM cgfmcs004 FROM "cgfmcs004" DISPLAY FORM cgfmcs004 DISPLAY "Facturas Afectadas Por Cheques" AT 6,25 DISPLAY "cgprcs004" AT 4,3 LET int_flag = FALSE WHILE int_flag != TRUE CONSTRUCT criterio ON a.factura FROM p_factura IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE EXIT WHILE END IF LET selec1 = "SELECT a.factura FROM cgtb00021 a ", "WHERE ",criterio clipped, " ORDER BY 1 " PREPARE comando4 FROM selec1 DECLARE busca4 SCROLL CURSOR FOR comando4 OPEN busca4 FETCH FIRST busca4 INTO p_factura IF status = notfound THEN LET numero_msg = 3 CALL msg(numero_msg) LET status = 0 CONTINUE WHILE END IF DISPLAY BY NAME p_factura MENU "OPCION" COMMAND "Siguiente" FETCH NEXT busca4 INTO p_factura IF status = notfound THEN LET numero_msg = 4 CALL msg(numero_msg) END IF DISPLAY BY NAME p_factura COMMAND "Anterior" FETCH PREVIOUS busca4 INTO p_factura IF status = notfound THEN LET numero_msg = 5 CALL msg(numero_msg) END IF DISPLAY BY NAME p_factura COMMAND "Primero" FETCH FIRST busca4 INTO p_factura IF status = notfound THEN LET numero_msg = 4 CALL msg(numero_msg) END IF DISPLAY BY NAME p_factura COMMAND "Ver" DECLARE busca CURSOR FOR SELECT a.cod_cro,a.beneficiario,b.cheque_no,b.fecha,b.banco, c.monto FROM cgtb00031 a,cgtb00032 b,cgtb00005 c,cgtb00021 d WHERE a.cod_cro = b.cod_cro AND b.cheque_no = c.cheque_no AND c.cuenta_no = d.cuenta_no AND c.cheque_no = d.cheque_no AND d.factura = p_factura ORDER BY 5 LET idx = 1 FOREACH busca INTO imp_fact[idx].* IF STATUS = NOTFOUND THEN LET numero_msg = 3 CALL msg(numero_msg) EXIT WHILE END IF LET idx = idx + 1 END FOREACH CALL SET_COUNT(idx - 1) DISPLAY ARRAY imp_fact TO scr_ent.* IF int_flag THEN LET numero_msg = 2 CALL msg(numero_msg) LET int_flag = FALSE EXIT WHILE END IF CLEAR FORM DISPLAY BY NAME p_factura COMMAND "Retornar" CLEAR FORM EXIT MENU END MENU END WHILE END FUNCTION