PDA

Ver la Versión Completa : 2 problemas


migueilichenco
05-08-2003, 23:09:47
hola a todos bueno esta ves escribo con dos problemas el primero aparentemente simple y el segundo complejo bueno para mi

El primer problema es que tengo una tabla compuesta por tre columnas nombre apellido y dni

¿como puedo hacer para que la columna nombre con todos sus nombres esten dentro de los item de el combobox

Segundo problema

Este problema es continuacion en parte de el primero ya que luego de tener la lista en el combobox quiero hacer una especie de filtro se podria decir? bueno

en el form ahy dos tablas una de tabal1(nombre apellido y dni) y otra de tabal2(nombre visitas) y quiero hacer que cuando yo elijo en el combobox el nombre de alguno de la lista me aparesca una lista de todas las visitas de ese nombre puede ser que aparesca en un memo o en otro componente que sea mas recomendable

agradecere su respuesta es muy urgente gracias a todos

__cadetill
06-08-2003, 09:50:49
Para el tema del combo, tienes que recorrer toda tu tabla e ir añadiendo en el combo el contenido del campo nombre.


tabla.first;
combo.Items.Clear;
while not tabla.eof do
begin
combo.Items.Add(tabla1.FieldByName('nombre').AsString;
tabla.Next;
end;


Aunque personalmente a mi esta solucion no me gusta. Yo prefiero poner un Edit (o mejor un ComboEdit, que es un Edit con un boton de las Rx) y mostrar una pantalla de consultas en la que se muestra el contenido de, en tu caso, la tabla que contiene nombre, apellido y dni. Esto lo hago con un componente que hice y que puedes encontrar en mi web (TSearchDialog)

Para el segundo tema, tienes que controlar el OnChage, ya sea del Combobox o del ComboEdit, verificar que exista el cliente (siempre es recomendable) y lanzar una Query sobre la segunda tabla que se mostraria en un DBGrid

Bueno, espero te sirva

migueilichenco
06-08-2003, 16:52:04
bueno me ayudo tu te mensaje pero aun tengo un pequeño problema con el segundo pero para facilitarlo hise lo siguiente

tengo la tablacon las columnas (promotor,cliente,fecha) tengo un combobox donde aparece la lista de los promotores y mas abajo ahy una dbgrids y un button lo que trato de hacer es:

que cuando eligan a un promotor del combobox y le den clik a el button aparesca en el dbgrids la lista de los clientes que el a traido osea las filas donde aparece su nombre

en el dbgrids que aparesca el cliente y la fecha
espero em ayan entendido gracias

__cadetill
06-08-2003, 19:04:17
Tenemos un TQuery en el formulario (o en un DataModule) y que tiene la siguiente sentencia SQL


select *
from tabla
where promotor = :promo


en el OnClick del boton pon algo así

procedure TMyForm.ButtonXXClick(Sender: TObject);
begin
Query1.Close;
Query1.ParamByName('promo').AsString := ComboBox1.Text;
Query1.Open;
end;


El DbGrid ha de estar unido a un DataSource que, éste a su vez estará unido a la Query

A ver si esto puede ayudarte

PD: Editado para quitar el smile

migueilichenco
08-08-2003, 00:12:09
buebno en consulatas query nunca e trabajado ais que te agradeceria si me explicas mejor el codigo que colocaste dodne va cada cosa :s gracias

__cadetill
08-08-2003, 00:33:38
Pues el componente TQuery tiene la propiedad SQL. En ella es donde debes de colocar la consulta que pongo en el mensaje. Este componente lo puedes pegar donde mas rabia te de (un From o un DataModule) y lo tienes que ligar a tu TDataBase mediante la propiedad DataBaseName (al igual que los TTables)

Unir un DBGrid-DataSource-TTable supongo que lo sabras hacer. Pues con un TQuery es lo mismo

Y el codigo de activar la Query, lo puedes poner donde quieras, yo he puesto el ejemplo del evento OnClick de un TButton, pero no necesariamente ha de ir alli.

Espero que ahora quede algo mas claro :)

migueilichenco
08-08-2003, 02:23:24
bueno lo que yo preguntaba es donde pongo esto

select *
from tabla
where promotor = :promo

__cadetill
08-08-2003, 09:47:43
pues te remito al 1er parrafo del mensaje anterior, es decir, en la propiedad SQL del TQuery

Espero te sirva