PDA

Ver la Versión Completa : dbGrid desde una Cosulta


magnu9
09-11-2006, 20:04:28
Saludo a todos espero que se sientan bien todos.
Tengo este pequeño codigo con el cual ya creado el form llamado ctZona para consultar las zona, en dicho form tengo un dbgrid, como hago que al hacer doble click en el dato del dbgrid este me traiga los datos sobre el cual acciones el doble click. Con este codigo al colocar ya sea el codigo o la descripcion de la zona esta me trae con sigo los datos al mantenimiento de de zona.


procedure TmtZona.btBuscarClick(Sender: TObject);
begin
ctZona:=TctZona.Create(self);
try
ctZona.Showmodal;
finally
If ctZona.Edit1.Text <> '' then
tZona.Locate('codzon',QuotedStr(ctZona.edit1.text),[])

else If (ctZona.Edit1.Text='') and (ctZona.Edit2.Text <> '') then
tZona.Locate('deszon',(ctZona.edit2.Text),[]);
ctZona.Free;

end;
end;


Espero me entiendan.

Caral ya estoy buscando la manera de colocar el codigo en rapidShare.

Caral
09-11-2006, 20:42:54
Hola
A ver, si entiendo:
Tienes un query que hace una consulta, si cambias el edit1 o el Edit2, esta cambia, bueno, lo que quieres es que al hacer dobleclick en el grid, haga la misma operacion, seleccionar los campos edit y filtrar.?
Si es asi, empecemos por creer que el query esta enlazado al grid y que se llama TZona, creo que poniendo el mismo codigo funcionaria asi:

procedure TmtZona.DBGrid1DblClick(Sender: TObject);
begin
If ctZona.Edit1.Text <> '' then
begin
tZona.Filter := 'codzon = '+QuotedStr(edit1.Text);
tZona.Filtered := True;
end
else
If (ctZona.Edit1.Text='') and (ctZona.Edit2.Text <> '') then
tZona.Filter := 'deszon = '+QuotedStr(edit2.Text);
tZona.Filtered := True;
end;
end;
Bueno creo que es lo que quieres, tal vez ?:D
Saludos

magnu9
09-11-2006, 21:14:14
Estuve observando los cambios que les hiciste al codigo y me parecen correcto, hace un momento hice un hilo en impresion espero lo lea.

Al observar el nuevo codigo que me ofrece hay algo que no entiendo, mi codigo lo hago al boton Buscar del mantienimiento de Zona, pero el doble click hay dbgrid se lo debo dar al dbgrid en el form en el cual lo consulto, osea el dbgrid esta en el formulario de consulta, no en el mantenimieto, en cambio mi codigo se lo hago en el boton Buscar del mantenimiento desde el cual llamo la consulta. En conclusion es que en el form de ctZona, tengo los edit y el dbgrid.

Tmtzona= mantenimiento de Zona
TctZona= consulta de Zona

Caral
09-11-2006, 21:29:39
Hola
Simplemente dale la ruta a los edit en el form que tiene el dbgrid:
ctZona.edit1.text , con esto le dices que el edit esta en ctzona, si no te lo acepta, coloca una variable en ctzona y llamalo por esa variable.
Saludos

magnu9
09-11-2006, 22:21:56
Bueno el codigo que me diste modificado, no acabo de entenderlo... pero seguire intentandolo, cuando consigalo lo que quiero te aviso.

Y gracias por la ayuda de mi pregunta de Qreport.

Una cuestion como hago referencia a las fila selecionada en el dbGrid solo es una duda, osea como asignar esos valores digamos que aun edit en este caso por que si fuera a un dbEdit se la solucion, creo que si exite seria gloria lo que deseo.... Saludo cordial y muchisisima Gracias.

oscarnoe
09-11-2006, 23:10:25
si no te entiendo mal, solo tienes que acceder al contenido del registro seleccionado ya que cuando haces un click el cursor del dataset se posiciona en el registro correspondiente,bien con los objetos creados por campo o con el metodo FieldByName del datased p.e.:
Edit1.Text:= datasetEmpleados.FieldByName('Nombre').AsString

Espero que te sea de ayuda.

Oscar Noe