Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Uso del DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=35454)

luxus 11-09-2006 19:29:57

Uso del DBGrid
 
Hola a todos,
Estoy desarrollando una aplicación de gestion y facturación. He visto en otras aplicaciones que para introducir los pedidos
se inserta en un dbgrid en la columna de codigo, el codigo del articulo y automaticamente (si el codigo existe en la base
de datos), se muestra la descripcion y el precio de venta. Para añadir otra referencia, usando las flechas del teclado
se mueve a la siguiente linea del dbgrid, y así sucesivamente
He intentado implementar esta técnica pero el dbgrid no me deja insertar el codigo del articulo. He ido a las opciones del
dbgrid y he puesto en options la propiedad dgEditing del dbgrid a "true" pero no me deja. ¿Hay otra forma de hacerlo?
¿alguien tiene otra alternativa para añadir las referencias de un presupuesto?
Os agradecería cualquier consejo que me podais dar.
Un saludo a todos

Caral 11-09-2006 21:17:10

Hola
El DBGrid muestra lo que esta en la tabla, recorriendola hacia arriba y abajo.
El DBGrid tiene una funcion ReadOnly y Enabled, estas te permiten escribir en
este, recuerda estas escribiendo en la tabla si la tienes en modo Edit.
Yo usaria el evento OnCellClick y despues de introducir tu codigo, filtrar el
DBGrid con una sentencia sql para que te de la informacion que quieres.
Hay varios hilos con relacion al uso del DBGrid, se que es monotono pero recorriendolos puedes ver y aprender mucho, piensalo.
De todos modos espero te ayude.
Saludos

marcoszorrilla 11-09-2006 21:22:30

Básicamente a parte de lo que te ha explicado Caral, lo que tienes que hacer es capturar el evento OnChange del Ttable como en este ejemplo:

Código Delphi [-]
procedure TDmMch.LinTickCodigoChange(Sender: TField);
begin
  if DmMch.Pla.FindKey([DmMCh.LinTickCodigo.Value])= true then
  begin
  DmMch.LinTickDescripcion.Value:=DmMch.PlaDescripcion.Value;
  DmMch.LinTickPrecio.Value:=DmMch.PlaPrecio.Value;
  DmMch.LinTickTotal.Value:= DmMch.LinTickPrecio.Value* DmMch.LinTickCantidad.Value;
  end
  else
  Application.MessageBox('Plato o producto no encontrado','Atención',mb_Ok+mb_IconQuestion);
end;

Un Saludo.

roman 11-09-2006 21:31:20

Cita:

Empezado por marcoszorrilla
el evento OnChange del Ttable

Supongo Marcos, que te refieres al evento OnChange del TField, no del TTable.

// Saludos

marcoszorrilla 11-09-2006 21:35:44

Menos mal que estaba Román al tanto, efectivamente, me refería al evento OnChange del Tfield.

Un Saludo y gracias por la rectificación.


La franja horaria es GMT +2. Ahora son las 11:54:45.

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