DATABASE smarmotech GLOBALS DEFINE nombre_m CHAR(20), descripcion CHAR(70), p_iptb01 RECORD LIKE iptb00001.*, p_iptb02 RECORD LIKE iptb00002.*, p_iptb06 RECORD LIKE iptb00006.*, p_iptb14 RECORD LIKE iptb00014.*, p_iptb19 RECORD LIKE iptb00019.*, p_iptb20 RECORD LIKE iptb00020.*, p_iptb21 RECORD LIKE iptb00021.*, p_vetb25 RECORD LIKE vetb00025.*, p_iptb22 RECORD LIKE iptb00022.*, preciosm INTEGER, #RECORD LIKE iptb00014.*, marcas RECORD LIKE iptb00019.*, lj SMALLINT, pflag CHAR(1), fecha1 DATE, selec_pt CHAR(1000) DEFINE busca_p RECORD cod_n INTEGER, cod_grupo INTEGER, cod_tipo INTEGER, cod_sec INTEGER, descrip_esp CHAR(30), unidad_med CHAR(5) END RECORD DEFINE clientes ARRAY[50] OF RECORD tipo_cliente LIKE vetb00004.tipo_cliente, sec_cliente LIKE vetb00004.sec_cliente, nombre LIKE vetb00004.nombre END RECORD DEFINE codigos RECORD fecha DATE, cod_n_a SMALLINT, cod_grupo_a SMALLINT, cod_tipo_a SMALLINT, cod_sec_a SMALLINT, cantidad INTEGER, cod_n_h SMALLINT, cod_grupo_h SMALLINT, cod_tipo_h SMALLINT, cod_sec_h SMALLINT END RECORD DEFINE movimientos RECORD cod_mov LIKE iptb00006.cod_mov, num_doc LIKE iptb00006.num_doc, fecha LIKE iptb00006.fecha, tipo LIKE iptb00006.tipo, orden_compra LIKE iptb00006.orden_compra, fact_no LIKE iptb00006.fact_no, conduce_no LIKE iptb00006.conduce_no, cod_sp LIKE iptb00006.cod_sp, cod_sp_sec LIKE iptb00006.cod_sp_sec, nom_sp CHAR(41), cod_transp LIKE iptb00006.cod_transp, sec_transp LIKE iptb00006.sec_transp, placa LIKE iptb00006.placa, cod_tarifa LIKE iptb00006.cod_tarifa, bodega LIKE iptb00006.bodega, departamento SMALLINT, detalle LIKE iptb00006.detalle END RECORD DEFINE ultimo RECORD cond_recep LIKE iptb00006.cond_recep, uso_tiempo LIKE iptb00006.uso_tiempo END RECORD DEFINE datos1 RECORD num_doc LIKE iptb00006.num_doc, fecha LIKE iptb00006.fecha, conduce_no LIKE iptb00006.conduce_no, cod_seccion SMALLINT, nom_seccion CHAR(20), bodega LIKE iptb00006.bodega END RECORD DEFINE p_conteo RECORD fecha LIKE iptb00006.fecha, bodega LIKE iptb00006.bodega, cod_n LIKE iptb00006.cod_n, cod_grupo LIKE iptb00006.cod_grupo, cod_tipo LIKE iptb00006.cod_tipo, cod_sec LIKE iptb00006.cod_sec, cantidad LIKE iptb00006.cantidad_2 END RECORD DEFINE costos RECORD LIKE iptb00004.* DEFINE datos RECORD num_doc LIKE iptb00006.num_doc, fecha LIKE iptb00006.fecha, nom_dpto CHAR(30), nom_dpto1 CHAR(30), bodega LIKE iptb00006.bodega END RECORD DEFINE datos_gen RECORD cod_mov LIKE iptb00006.cod_mov, num_doc LIKE iptb00006.num_doc, cod_sp LIKE iptb00006.cod_sp, cod_sp_sec LIKE iptb00006.cod_sp_sec, tipo LIKE iptb00006.tipo, orden_compra LIKE iptb00006.orden_compra, conduce_no LIKE iptb00006.conduce_no, fact_no LIKE iptb00006.fact_no, fecha LIKE iptb00006.fecha, bodega LIKE iptb00006.bodega, nom_sp CHAR(40), #LIKE cotb00001.nom_sp, descrip_mov LIKE iptb00005.descrip_mov END RECORD DEFINE otros_mov RECORD num_doc LIKE iptb00006.num_doc, cod_cia LIKE iptb00006.cod_cia, cod_mov LIKE iptb00006.cod_mov, fact_no LIKE iptb00006.fact_no, cod_transp LIKE iptb00006.cod_transp, sec_transp LIKE iptb00006.sec_transp, cod_tarifa LIKE iptb00006.cod_tarifa, placa LIKE iptb00006.placa, fecha LIKE iptb00006.fecha, conduce_no LIKE iptb00006.conduce_no, descrip_mov CHAR(40), #LIKE intb00005.descrip_mov, bodega LIKE iptb00006.bodega, detalle LIKE iptb00006.detalle, cod_sp LIKE iptb00006.cod_sp, cod_sp_sec LIKE iptb00006.cod_sp_sec, departamento SMALLINT, nombre_depto CHAR(30), cod_mov1 SMALLINT, entrada INT, descrip_mov1 CHAR(40), descrip4 CHAR(30) END RECORD DEFINE chequea RECORD minima LIKE iptb00002.exist_min, maxima LIKE iptb00002.exist_max END RECORD DEFINE p_unidad ARRAY [100] OF INTEGER DEFINE selec2 CHAR(1000) DEFINE p_cantidad,bandera SMALLINT DEFINE p_fechas DATE DEFINE nombre_dia ARRAY[7] OF char(10) DEFINE nombre_mes ARRAY[12] OF char(10) DEFINE nombre_ant CHAR(11) DEFINE general decimal(12,2) DEFINE numero_msg,curr1,p_cod_cia,p_bodega,longitud SMALLINT #DEFINE arancel RECORD LIKE cotb00005.* DEFINE status_m char(1) DEFINE decide,p_param char(1) DEFINE cant DECIMAL(12,5) DEFINE tipo_papel smallint DEFINE balance DECIMAL(12,5) DEFINE cod_mov_ant LIKE iptb00006.cod_mov DEFINE existe_comp,suplidor1,doc_existe,actual,mat_prima CHAR (1000) DEFINE opc ,opt4,opt,opt2,existe,ya ,opera1,cambio CHAR(2) DEFINE medida CHAR (3) DEFINE fila smallint DEFINE m_articulos RECORD LIKE iptb00002.* DEFINE presentacion RECORD LIKE iptb00003.* DEFINE p_companias RECORD LIKE companias.* # DEFINE numero_msg LIKE msgtable.cod_msg DEFINE articulos RECORD LIKE iptb00002.* # DEFINE suplidor RECORD LIKE intb00008.* DEFINE meses RECORD LIKE mestable.*, regi INTEGER DEFINE mensajes RECORD {LIKE msgtable.* } cod_msg smallint, desc_msg char(60), us_crea char(9), fech_crea char(16), us_mod char(9), fech_mod char(16) END RECORD DEFINE transacc RECORD LIKE iptb00005.* DEFINE medidas RECORD LIKE intb00007.* DEFINE nombre_cia,descrip1,descrip2,descrip3,descrip4 CHAR(30) DEFINE c_sustituto RECORD LIKE intb00003.* DEFINE c_equivalente RECORD LIKE intb00004.* DEFINE criterio CHAR(1000) DEFINE selec CHAR(1000) DEFINE cod_n_a,cod_grupo_a,cod_tipo_a,cod_sec_a SMALLINT DEFINE p_act,idx,scr_l SMALLINT DEFINE opcion,tipo_p CHAR(1) DEFINE pilas ARRAY[100] OF RECORD cod_n LIKE intb00003.cod_n, cod_grupo LIKE intb00003.cod_grupo, cod_tipo LIKE intb00003.cod_tipo, cod_sec LIKE intb00003.cod_sec, descrip_esp LIKE iptb00002.descrip_esp END RECORD DEFINE prod1 ARRAY[200] OF RECORD cod_n1 SMALLINT, cod_grupo1 SMALLINT, cod_tipo1 SMALLINT, cod_sec1 SMALLINT, descrip_esp1 CHAR(70), unidad_med LIKE iptb00002.unidad_med, existencia DECIMAL(12,5) END RECORD DEFINE prod ARRAY[200] OF RECORD cod_n1 SMALLINT, cod_grupo1 SMALLINT, cod_tipo1 SMALLINT, cod_sec1 SMALLINT, descrip_esp1 CHAR(70), unidad_med LIKE iptb00002.unidad_med, bodega LIKE iptb00002.bodega, marca CHAR(10), #002.marca, cod_cia LIKE iptb00002.cod_cia, existencia DECIMAL(12,5), exist_min DECIMAL(12,5), dia_llegada LIKE iptb00002.dia_llegada END RECORD DEFINE movi2 ARRAY[1000] OF RECORD cod_n LIKE intb00003.cod_n, cod_grupo LIKE intb00003.cod_grupo, cod_tipo LIKE intb00003.cod_tipo, cod_sec LIKE intb00003.cod_sec, cantidad_1 LIKE iptb00006.cantidad_1, cantidad_2 LIKE iptb00006.cantidad_2, cantidad_p DEC(12,5), unidad_med LIKE iptb00002.unidad_med, descrip_esp CHAR(70) END RECORD DEFINE art ARRAY[200] OF RECORD cod_n1 SMALLINT, cod_grupo1 SMALLINT, cod_tipo1 SMALLINT, cod_sec1 SMALLINT, descrip_esp1 CHAR(30), unidad_med LIKE iptb00002.unidad_med, bodega LIKE intb00002.bodega, existencia like intb00002.existencia, pto_reorden LIKE intb00002.pto_reorden, dia_llegada LIKE intb00002.dia_llegada, #costo_mp LIKE cotb00002.costo_mp, valor decimal(10,2) END RECORD DEFINE csmov1 ARRAY[1500] OF RECORD num_doc CHAR(11), fecha_2 LIKE iptb00006.fecha, entrada char(14), salida char(14), balance char(14) END RECORD DEFINE csmov RECORD num_doc LIKE iptb00006.num_doc, fecha_1 LIKE iptb00006.fecha, cantidad_2 LIKE iptb00006.cantidad_2, cod_mov LIKE iptb00006.cod_mov END RECORD DEFINE datos_cons RECORD cod_n LIKE iptb00002.cod_n, cod_grupo LIKE iptb00002.cod_grupo, cod_tipo LIKE iptb00002.cod_tipo, cod_sec LIKE iptb00002.cod_sec, unidad_med LIKE iptb00002.unidad_med, bodega LIKE iptb00006.bodega, fech_in DATE, fech_fi DATE END RECORD DEFINE movi3 ARRAY[1000] OF RECORD codigo CHAR(10), cantidad_1 DECIMAL(12,5), cantidad_2 DECIMAL(12,5), diferencia DECIMAL(12,5), descrip_esp LIKE iptb00002.descrip_esp, unidad_med LIKE iptb00002.unidad_med END RECORD DEFINE movi_ant ARRAY[1000] OF RECORD cod_n LIKE iptb00006.cod_n, cod_grupo LIKE iptb00006.cod_grupo, cod_tipo LIKE iptb00006.cod_tipo, cod_sec LIKE iptb00006.cod_sec, cant_ant LIKE iptb00006.cantidad_2 END RECORD DEFINE movi ARRAY[500] OF RECORD cod_n LIKE iptb00006.cod_n, cod_grupo LIKE iptb00006.cod_grupo, cod_tipo LIKE iptb00006.cod_tipo, cod_sec LIKE iptb00006.cod_sec, cantidad_1 LIKE iptb00006.cantidad_1, cantidad_2 LIKE iptb00006.cantidad_2, unidad_med LIKE iptb00002.unidad_med, descrip_esp CHAR(40) END RECORD DEFINE ant_art RECORD cod_n LIKE cotb00002.cod_n, cod_grupo LIKE cotb00002.cod_grupo, cod_tipo LIKE cotb00002.cod_tipo, cod_sec LIKE cotb00002.cod_sec END RECORD DEFINE c_articulos ARRAY[100] OF RECORD cod_n LIKE cotb00002.cod_n, cod_grupo LIKE cotb00002.cod_grupo, cod_tipo LIKE cotb00002.cod_tipo, cod_sec LIKE cotb00002.cod_sec, descripcion CHAR(30) # costo_mp LIKE cotb00002.costo_mp, # fecha_act LIKE cotb00002.fecha_act END RECORD DEFINE consulta_mv ARRAY[200] OF RECORD num_doc LIKE iptb00006.num_doc, fecha LIKE iptb00006.fecha, nombre char(7), cantidad_1 LIKE iptb00006.cantidad_1, cantidad_2 LIKE iptb00006.cantidad_1, balance decimal(12,2) END RECORD DEFINE c_det_inv ARRAY[200] OF RECORD cod_n LIKE iptb00002.cod_n, cod_grupo LIKE iptb00002.cod_grupo, cod_tipo LIKE iptb00002.cod_tipo, cod_sec LIKE iptb00002.cod_sec, descrip_esp LIKE iptb00002.descrip_esp, existencia LIKE intb00002.existencia, #costo_mp LIKE cotb00002.costo_mp, valor DECIMAL(12,5) END RECORD DEFINE datos_cs RECORD cod_n LIKE iptb00006.cod_n, cod_grupo LIKE iptb00006.cod_grupo, cod_tipo LIKE iptb00006.cod_tipo, cod_sec LIKE iptb00006.cod_sec, descrip_esp LIKE iptb00002.descrip_esp, fecha_in LIKE iptb00006.fecha, fecha_fi LIKE iptb00006.fecha END RECORD #DEFINE medidas1 RECORD LIKE vetb00014.* DEFINE otrab SMALLINT DEFINE comp_fech,comp_fech1 DATE DEFINE mes_control CHAR(2) DEFINE mes_calc,dia SMALLINT DEFINE fecha_c DATE DEFINE c_ano,a_ano CHAR(4) END GLOBALS FUNCTION busca_prod1() DEFINE arr_prod ARRAY[500] OF RECORD cod_n INTEGER, cod_grupo INTEGER, cod_tipo INTEGER, cod_sec INTEGER, descrip_esp CHAR(30), unidad_med CHAR(5) END RECORD OPEN WINDOW busca_2 AT 8,4 WITH FORM "ipfmwd001" ATTRIBUTE (BORDER,FORM LINE FIRST + 1,PROMPT LINE LAST) CONSTRUCT criterio ON a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp FROM cod_n,cod_grupo,cod_tipo,cod_sec,descrip_esp LET selec_pt = "SELECT a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.descrip_esp, ", " a.unidad_med FROM iptb00002 a ", "WHERE a.status_t IS NULL AND ",criterio CLIPPED," ORDER BY 5 " PREPARE comando_p FROM selec_pt DECLARE busca_2 CURSOR FOR comando_p LET idx = 1 FOREACH busca_2 INTO arr_prod[idx].* LET idx = idx + 1 END FOREACH CALL SET_COUNT(idx - 1) DISPLAY ARRAY arr_prod TO s_prod.* LET idx = ARR_CURR() LET busca_p.cod_n = arr_prod[idx].cod_n LET busca_p.cod_grupo = arr_prod[idx].cod_grupo LET busca_p.cod_tipo = arr_prod[idx].cod_tipo LET busca_p.cod_sec = arr_prod[idx].cod_sec LET busca_p.descrip_esp = arr_prod[idx].descrip_esp LET busca_p.unidad_med = arr_prod[idx].unidad_med # para el precio LET p_vetb25.cod_n = arr_prod[idx].cod_n LET p_vetb25.cod_grupo = arr_prod[idx].cod_grupo LET p_vetb25.cod_tipo = arr_prod[idx].cod_tipo LET p_vetb25.cod_sec = arr_prod[idx].cod_sec LET descrip1 = arr_prod[idx].descrip_esp LET medida = arr_prod[idx].unidad_med CLOSE WINDOW busca_2 END FUNCTION