Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Problemas con IWDBLookupComboBox de Intraweb (https://www.clubdelphi.com/foros/showthread.php?t=36277)

Caray 06-10-2006 21:13:46

Problemas con IWDBLookupComboBox de Intraweb
 
Saludo estimados compañeros del Foro, nuevamente solicito su ayuda debido a que soy nuevo en esto de Intraweb.
Estoy haciendo una página con Intraweb para acreditar una materia, la página es sobre una encuesta que se hace en la Universidad. Para ello he creado una base de Datos en Interbase. En la página tengo 3 IWDBLookupComboBox llamados CBfacultad, CBprofesor y CBmateria, lo que quiero hacer es que al elegir una facultad(en CBfacultad) en CB profesor me muestre sólo aquellos maestros que impartan clases en la facultad seleccionada para esto tengo un componente IBQuery con estas propiedades:
*Un parámetro: 'uni'
*Y esta sentencia SQL: Select * from maestro where clave_facultad=:uni

El problema es que le introduzco el siguiente código al evento Onchange de CBfacultad:

qryprofesor.close;
qryprofesor.parambyname'uni').AsString:= CBfacultad.DataSource.DataSet.FieldValues;//porque no se que poner
qryprofesor.Open;

Al elegir una facultad lo unico que me hace es como actualizar la página.
Yo en Delphi lo he hecho de la siguiente manera y me funciona:
en el evento OnCloseUp del CBfacultad pongo el codigo:

qryprofesor.close;
qryprofesor.parambyname'uni').AsString:=(CBfacultad.keyvalue);
qryprofesor.Open;

El asunto es que Intraweb no tiene el evento "OnCloseUp" ni la propiedad "Keyvalue", como le hago entonces.

Espero haberme dado a entender y que me puedan ayudar.Sin más me despido no sin antes agradecerles.

PD. Estoy haciendo bien en utilizar una Base de Datos hecha en Interbase?.

Capo 06-10-2006 21:59:35

Saludos Bro, Yo uso IWDBLookupComboBox y andan al 100, utilizo la propiedad KeyValue tal cual como si fuese un proyecto de escritorio.
Código Delphi [-]
qryprofesor.close;
qryprofesor.parambyname'uni').AsString:=CBfacultad.keyvalue;
qryprofesor.Open;

Claro esta: Si la propiedad KeyField de CBfacultad es el dato que quieres enviarle como parametro a tu IBQuery, asi anda bien.
Espero haberte ayudado.

Caray 19-10-2006 19:17:00

Sigo sin encontrar el keyValue
 
Que onda gente del foro, espero que todos esten bien.

Pues quiero mencionarles que sigo sin encontrar la propiedad KeyValue del IWDBLookupComboBox pensé que ya no lo necesitaría pero he llegado a un punto en el que veo que si es necesario (indispensable diría yo) utilizarlo,
lo único que aparace es el KeyField pero ese no me sirve.

Les dire porque, lo que pasa es que tengo 3 IWDBLookupComboBox con su datasource y su datafield ademas tengo enlazado con un query, lo que ocupo es solo tener la propiedad listsource,keyfield y listfield del query y arriba en el datasource y datafield nada porque al guardar tengo este codigo.

procedure Tfrmencuesta.pregunta1;
var
i : integer;
unidad,maestro,materia : string;
begin
Itrans.Active:=true;
i:=0;
unidad:= qrymateria.parambyname('unidad').asstring;
maestro:=qrymateria.parambyname('maestro').asstring;
materia:=qryaux.parambyname('materia').asstring;
Tencuesta.Insert;
Tencuesta.FieldByName('clave_unidad').AsString:= unidad;
Tencuesta.FieldByName('clave_maestro').AsString:=maestro;
Tencuesta.FieldByName('clave_aprendizaje').AsString:=materia;
Tencuesta.FieldByName('no_pregunta').AsInteger:=1;
i:= RGP1.ItemIndex+1;
label8.Caption:=inttoStr(i);
if(i=1)then
Tencuesta.FieldByName('respuesta').AsInteger:=1
else
if(i=2)then
Tencuesta.FieldByName('respuesta').AsInteger:=2
else
if(i=3)then
Tencuesta.FieldByName('respuesta').AsInteger:=3
else
if(i=4)then
Tencuesta.FieldByName('respuesta').AsInteger:=4
else
if(i=5)then
Tencuesta.FieldByName('respuesta').AsInteger:=5;

Tencuesta.Post;
Tencuesta.Cancel;
end;

y en un LookupComboBox esto

procedure Tfrmencuesta.CBunidadChange(Sender: TObject);
begin
qrymaestro.close;
qrymaestro.parambyname('unidad').asstring:=(CBunidad.DataSource.DataSet.FieldValues['clave_unidad']);
qrymaestro.open;
hola.caption:=(CBunidad.DataSource.DataSet.FieldValues['clave_unidad']);
end;

por eso digo que es necesario el KeyValue para no poner CBunidad.DataSource.DataSet.FieldValues['clave_unidad'] pork al guardad me pone un registro bien y otro que tiene nada mas los valores de los LookUpComboBox.

bueno lo que quiero es que me digan si en verdad esta la propiedad KeyValue o hay algo muy semejante.

si tienen dudas sobre lo que quieron diganme y se los tratare de explicar lo más claro posible

Cañones 05-11-2014 19:32:10

Cita:

Empezado por Capo (Mensaje 161038)
Saludos Bro, Yo uso IWDBLookupComboBox y andan al 100, utilizo la propiedad KeyValue tal cual como si fuese un proyecto de escritorio.
Claro esta: Si la propiedad KeyField de CBfacultad es el dato que quieres enviarle como parametro a tu IBQuery, asi anda bien.
Espero haberte ayudado.

Podrías citar algún ejemplo de código para ver como lo implementas.
Gracias.


La franja horaria es GMT +2. Ahora son las 22:53:07.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi