FUNCTION detalleGastos(ent_diario,cuenta_no,cod_dep,query,fecha) DEFINE fecha RECORD desde DATE, hasta DATE END RECORD DEFINE arr DYNAMIC ARRAY OF RECORD fecha DATE, ref VARCHAR(14), detalle_1 VARCHAR(100), detalle_2 VARCHAR(40), debito decimal(12,2), credito decimal(12,2) END RECORD, ent_diario,query CHAR(14), cuenta_no VARCHAR(10), cod_dep VARCHAR(50), selec VARCHAR(255), idx,p_arr1,scr_l INT DISPLAY ent_diario DISPLAY cuenta_no DISPLAY cod_dep DISPLAY fecha.desde DISPLAY fecha.hasta LET idx = 1 DISPLAY "query: ",query CASE query WHEN "acumesant" LET selec = "SELECT fecha, ref, detalle_1, detalle_2, debito, credito ", "FROM cgtb00004 a ", "WHERE (a.ref != '",ent_diario,"') AND ", "(a.cuenta_no = '",cuenta_no,"') AND ", "(a.fecha < '",fecha.desde USING "yyyy/mm/dd" , "') AND ", "(a.departamento = ",cod_dep,") AND ", "a.status_t is NULL" DISPLAY selec PREPARE comando FROM selec DECLARE busco CURSOR FOR comando FOREACH busco INTO arr[idx].* IF arr[idx].debito IS NULL THEN LET arr[idx].debito = 0 END IF IF arr[idx].credito IS NULL THEN LET arr[idx].credito = 0 END IF LET idx = idx +1 END FOREACH WHEN "gasranfech" DISPLAY "gastos: ",cuenta_no, " ",fecha.desde," ",fecha.hasta," ",cod_dep LET selec = "SELECT fecha, ref, detalle_1, detalle_2, debito, credito ", "FROM cgtb00004 a ", "WHERE (a.cuenta_no = '",cuenta_no,"') AND ", "(a.fecha between '",fecha.desde USING "yyyy/mm/dd" , "' AND '",fecha.hasta USING "yyyy/mm/dd","') AND ", "(a.departamento = ",cod_dep,") AND ", "a.status_t IS NULL" PREPARE comando2 FROM selec DECLARE busco2 CURSOR FOR comando2 FOREACH busco2 INTO arr[idx].* IF arr[idx].debito IS NULL THEN LET arr[idx].debito = 0 END IF IF arr[idx].credito IS NULL THEN LET arr[idx].credito = 0 END IF LET idx = idx +1 END FOREACH WHEN "anioant" LET selec = "SELECT fecha, ref, detalle_1, detalle_2, debito, credito ", "FROM cgtb00004 a ", "WHERE (a.ref NOT MATCHES 'ED.99-999/12*') AND ", "(a.cuenta_no = '",cuenta_no,"') AND ", "(a.fecha between '",fecha.desde USING "yyyy/mm/dd" , "' AND '",fecha.hasta USING "yyyy/mm/dd","') AND ", "(a.departamento = ",cod_dep,") AND ", "a.status_t is NULL " PREPARE comando3 FROM selec DECLARE busco3 CURSOR FOR comando3 FOREACH busco3 INTO arr[idx].* IF arr[idx].debito IS NULL THEN LET arr[idx].debito = 0 END IF IF arr[idx].credito IS NULL THEN LET arr[idx].credito = 0 END IF LET idx = idx +1 END FOREACH OTHERWISE DISPLAY "Unexpected value" END CASE OPEN WINDOW w2 WITH FORM "cgfmcs025" DISPLAY ARRAY arr TO record1.* BEFORE ROW LET p_arr1 = arr_curr() LET scr_l = scr_line() END DISPLAY CLOSE WINDOW w2 END FUNCTION