Problema para combinar filtros
Hola ERVMAVERICK:
<span style="white-space: pre;"> </span>Antes que nada, gracias por la atención.
<span style="white-space: pre;"> </span>Tengo un inconveniente combinando filtros de un mismo campo.
El tema es así, tengo una tabla con datos, en un formulario utilizo CHECKBOX y LISTBOX para definir que información quiero ver en un GRID, por ejemplo, Facturas A, B por separado o al mismo tiempo, o Facturas adeudadas y cobradas, al mismo tiempo o no, en fin, varios parámetros que desde un botón generan un filtro y cargan la información al grid.
El problema radica en que evidentemente no está funcionando bien las combinaciones de filtros que estoy usando, puesto que solo filtra correctamente algunas combinaciones.
Este es un fragmento del código que uso dentro del botón que genera el filtro.
* Viene de una serie de filtros simples que funcionan a la perfección almacenados en una variable "v_filtro"
* FILTRO DE DATOS COMBINADOS
IF thisform.gui_v_filtro_guia_a.Value = 1 OR thisform.gui_v_filtro_guia_b.Value = 1 OR thisform.gui_v_filtro_guia_1.Value = 1 OR thisform.gui_v_filtro_guia_ne.Value = 1
v_filtro = v_filtro + " AND ("
v_pri_filtro = 1
IF thisform.gui_v_filtro_guia_a.Value = 1
IF v_pri_filtro = 1
v_pri_filtro = 0
v_filtro = v_filtro + " tipo_gui = CHR(65) "
ELSE
v_filtro = v_filtro + " OR tipo_gui = CHR(65) "
ENDIF
ENDIF
IF thisform.gui_v_filtro_guia_b.Value = 1
IF v_pri_filtro = 1
v_pri_filtro = 0
v_filtro = v_filtro + " tipo_gui = CHR(66) "
ELSE
v_filtro = v_filtro + " OR tipo_gui = CHR(66) "
ENDIF
ENDIF
IF thisform.gui_v_filtro_guia_1.Value = 1
IF v_pri_filtro = 1
v_pri_filtro = 0
v_filtro = v_filtro + " tipo_gui = CHR(49) "
ELSE
v_filtro = v_filtro + " OR tipo_gui = CHR(49) "
ENDIF
ENDIF
IF thisform.gui_v_filtro_guia_ne.Value = 1
IF v_pri_filtro = 1
v_pri_filtro = 0
v_filtro = v_filtro + " tipo_gui = CHR(78) "
ELSE
v_filtro = v_filtro + " OR tipo_gui = CHR(78) "
ENDIF
ENDIF
v_filtro = v_filtro + ") "
ENDIF
APPEND FROM guias ;
FIELDS h_r_gui, fec_gui, tipo_gui, pve_gui, nro_gui, RS_RE_GUI, ;
rs_de_gui, vd_gui, pag_gui, estado_gui, depo_gui, bult_gui, ;
im_sut_gui, im_iva_gui, im_tot_gui, en_cob_gui, nrr_gui ;
FOR &V_filtro
APPEND FROM guias ;FIELDS h_r_gui, fec_gui, tipo_gui, pve_gui, nro_gui, RS_RE_GUI, ;rs_de_gui, vd_gui, pag_gui, estado_gui, depo_gui, bult_gui, ;im_sut_gui, im_iva_gui, im_tot_gui, en_cob_gui, nrr_gui ;FOR &V_filtro
El código es mucho más extenso, si quieres te lo puedo enviar para que lo veas.
Espero que puedas ver que es lo que estoy aplicando mal.
Saludos y nuevamente muchas gracias por tu tiempo.
<span style="white-space: pre;"> </span>Antes que nada, gracias por la atención.
<span style="white-space: pre;"> </span>Tengo un inconveniente combinando filtros de un mismo campo.
El tema es así, tengo una tabla con datos, en un formulario utilizo CHECKBOX y LISTBOX para definir que información quiero ver en un GRID, por ejemplo, Facturas A, B por separado o al mismo tiempo, o Facturas adeudadas y cobradas, al mismo tiempo o no, en fin, varios parámetros que desde un botón generan un filtro y cargan la información al grid.
El problema radica en que evidentemente no está funcionando bien las combinaciones de filtros que estoy usando, puesto que solo filtra correctamente algunas combinaciones.
Este es un fragmento del código que uso dentro del botón que genera el filtro.
* Viene de una serie de filtros simples que funcionan a la perfección almacenados en una variable "v_filtro"
* FILTRO DE DATOS COMBINADOS
IF thisform.gui_v_filtro_guia_a.Value = 1 OR thisform.gui_v_filtro_guia_b.Value = 1 OR thisform.gui_v_filtro_guia_1.Value = 1 OR thisform.gui_v_filtro_guia_ne.Value = 1
v_filtro = v_filtro + " AND ("
v_pri_filtro = 1
IF thisform.gui_v_filtro_guia_a.Value = 1
IF v_pri_filtro = 1
v_pri_filtro = 0
v_filtro = v_filtro + " tipo_gui = CHR(65) "
ELSE
v_filtro = v_filtro + " OR tipo_gui = CHR(65) "
ENDIF
ENDIF
IF thisform.gui_v_filtro_guia_b.Value = 1
IF v_pri_filtro = 1
v_pri_filtro = 0
v_filtro = v_filtro + " tipo_gui = CHR(66) "
ELSE
v_filtro = v_filtro + " OR tipo_gui = CHR(66) "
ENDIF
ENDIF
IF thisform.gui_v_filtro_guia_1.Value = 1
IF v_pri_filtro = 1
v_pri_filtro = 0
v_filtro = v_filtro + " tipo_gui = CHR(49) "
ELSE
v_filtro = v_filtro + " OR tipo_gui = CHR(49) "
ENDIF
ENDIF
IF thisform.gui_v_filtro_guia_ne.Value = 1
IF v_pri_filtro = 1
v_pri_filtro = 0
v_filtro = v_filtro + " tipo_gui = CHR(78) "
ELSE
v_filtro = v_filtro + " OR tipo_gui = CHR(78) "
ENDIF
ENDIF
v_filtro = v_filtro + ") "
ENDIF
APPEND FROM guias ;
FIELDS h_r_gui, fec_gui, tipo_gui, pve_gui, nro_gui, RS_RE_GUI, ;
rs_de_gui, vd_gui, pag_gui, estado_gui, depo_gui, bult_gui, ;
im_sut_gui, im_iva_gui, im_tot_gui, en_cob_gui, nrr_gui ;
FOR &V_filtro
APPEND FROM guias ;FIELDS h_r_gui, fec_gui, tipo_gui, pve_gui, nro_gui, RS_RE_GUI, ;rs_de_gui, vd_gui, pag_gui, estado_gui, depo_gui, bult_gui, ;im_sut_gui, im_iva_gui, im_tot_gui, en_cob_gui, nrr_gui ;FOR &V_filtro
El código es mucho más extenso, si quieres te lo puedo enviar para que lo veas.
Espero que puedas ver que es lo que estoy aplicando mal.
Saludos y nuevamente muchas gracias por tu tiempo.
Respuesta de ervmaverick
1