Consulta entre dos ddlb

Necesi tu ayuda con urgencia.. Estoy haciendo un formulario en el que hay dos ddlb, uno es para seleccionar el tipo de documento (EMITIDO o RECIBIDO) y el otro es para seleccionar el estado (Atendido, En Tramite, Pendiente, Archivado), en fin.. El asunto es que hice un cursor que es este:
string stado, tipo
tipo = string(ddlb_tipo.text)
stado = string (ddlb_1.text)
DECLARE Buscar CURSOR FOR
SELECT Documento.NReg,
Documento.NOficio,
Documento.FReg,
Documento.HReg,
Documento. Tipo,
Documento.FDoc,
Documento.TipoDoc,
Documento.NFolios,
Documento.NExp,
HistoricoDocumento.OficinaEnvio,
HistoricoDocumento.UsuarioEnvio,
HistoricoDocumento.OficinaRecepcion,
HistoricoDocumento.UsuarioRecepcion,
Documento. Asunto,
Documento. Estado,
HistoricoDocumento. Respuesta
FROM Documento,
HistoricoDocumento
WHERE ( HistoricoDocumento.NReg = Documento.NReg ) and
( HistoricoDocumento.NOficio = Documento.NOficio ) and
( ( Documento.Tipo = :tipo ) AND
( Documento.Estado = :stado )
) ;
open Buscar;
fetch Buscar into :stado, :tipo;
do until sqlca.sqlcode=100
fetch Buscar into :stado, :tipo;
loop
close Buscar;
pero lo puse en una funcion que en el open de la ventana llama a la funcion
y el el boton mostrar puse lo siguiente
string stado, tipo
tipo=string (Left(ddlb_tipo.text,5))
stado= string (left(ddlb_1.text,15))
dw_1.settransobject( sqlca)
dw_1.retrieve(stado, tipo )
Por favor te ruego dime cual es mi error o como podría hacer la consulta, por favor.. Mil gracias

1 respuesta

Respuesta
1
En Primer lugar casi nunca uso Cursores por no decir nunca. Te recomiendo lo siguiente, para que no uses ddlb, crea un datawindows de tipo external.
menu File opcion nuevo, Elijes FreeForm, elijes External, de la venta que aparece
en Name digitas tipo en type string y en length 15 le das add para ingresar otra linea
en name digitas estado en type string en length 15y das click en next, hasta que te salga finish.
seleccionas tipo y te vas a propiedades elijes la pestaña edit.
donde dice Style Type elije DropDownListBox, activa el check "always show arrow" ahora donde dice Code Table pones asi
Display Value data Value (este valor debe ser igual a tu estado en tu tabla)
EMITIDO EM
RECIBIDO RE
lo mismo hacer para el estado
Display Value data Value (este valor debe ser igual a tu estado en tu tabla)
ATENDIDO AT
TRAMITE TR
PENDIENTE PR
ARCHIVADO AR
GUARDAS TU DW. Ejemplo : dw_position
en tu ventana en al parte de arriba agregas un dw supongamos q se llame dw_1 al cual le asigas el creado dw_position
abajo creas otro dw (dw_2) al cual le asigas tu dw al cual le haras la busqueda
en el evento open de esa venta colocas
dw_1. SetTransObject(SQLCA)
dw_1.InsertRow(0)
dw_1. SetItem(1,"Tipo","EM") //Para q tome por defecto todos los emidos
dw_1. SetItem(1,"Estado","TR") //Para q tome por defecto todos los emidos
dw_2. SetTransObject(SQLCA)
Llamas a tu botón buscar.
En tu botón buscar evento Clicked
//declaras dos variables
string ls_tipo,ls_estado
ls_tipo = dw_1.GetItemString(1,"Tipo") //extraes el tipo de tu dw_1
ls_estado = dw_1.GetItemString(1,"estado") //extraes el estado dw_1
dw_2.retrieve(ls_tipo,ls_estado)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas