Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki
Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - punto de venta dbgrid
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information punto de venta dbgrid

Publicar nuevo tema Responder al tema
Foros de discusión » Borland Delphi, Codegear Delphi .Net   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
rober
Buen usuario


Registrado: Aug 14, 2005
Mensajes: 9

Asunto: punto de venta dbgrid Responder citando

Saludos, tengo el siguiente problema:
cuando inserto un registro en una tabla... normalmente en el debgrid (correspondiente a la tabla) aparecen los registros ya almacenados anteriormente, lo que necesito hacer esque cuando se inserte un registro no aparezcan todos los registros que contiene la tabla en el dbgrid, solamente que aparezca el dbgrid1 limpio, simulando que fuera una tabla vacia

saludos gracias
MensajePublicado:
Sab Ene 20, 2007 9:41 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: punto de venta dbgrid Responder citando



Anuncios



rober escribió:
Saludos, tengo el siguiente problema:
cuando inserto un registro en una tabla... normalmente en el debgrid (correspondiente a la tabla) aparecen los registros ya almacenados anteriormente, lo que necesito hacer esque cuando se inserte un registro no aparezcan todos los registros que contiene la tabla en el dbgrid, solamente que aparezca el dbgrid1 limpio, simulando que fuera una tabla vacia

saludos gracias


Una forma rápida y sencilla es que añadas un filtro al origen de datos del dbgrid (TTable), asegurándote de que nunca lo pueda cumplir ningún registro. Lo aplicas en el evento AfterInsert del TTable y lo quitas en el evento BeforePost del TTable. Es una forma rápida de simular lo que nos indicas.


Para añadir un filtro a un TTable:

Código:

  operador := '=';
  valor := '99999999';
  campo := 'codigo';
  ttable1.filter := Format ('[%s] %s %s', [campo, operador, valor]);
  ttable1.filtered := true;
  ttable1.refresh;



Para desactivar el filtro:

Código:

  ttable1.filtered := false;
  ttable1.refresh;
MensajePublicado:
Sab Ene 20, 2007 10:03 pm
Top of PageVer perfil de usuario
rober
Buen usuario


Registrado: Aug 14, 2005
Mensajes: 9

Asunto: Responder citando

Grcias ya me hizo la simulacion del dbgrid limpio, pero tengo otro problemita, ahora no puedo escribir nada en el dbgrid y ya cerre el filttro en before post.

tengo un boton para insertar:

procedure TForm1.Button1Click(Sender: TObject);
begin
table1.Insert;
end;

cuando doy click a este boton si me filtra pero no me deja escribr nada sobre el debgrid

saludos
MensajePublicado:
Sab Ene 20, 2007 10:47 pm
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Responder citando

Ciertamente nos hemos equivocado anteriormente en los eventos, deberás poner en el evento AfterPost el código para desactivar el filtro y en el evento BeforeInsert el código para activar el filtro.

Te mostramos el código fuente completo del ejemplo que hemos realizado para probar lo que nos comentas (funciona correctamente):

Código:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, DBTables, Grids, DBGrids;

type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Table1: TTable;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Table1BeforeInsert(DataSet: TDataSet);
    procedure Table1AfterPost(DataSet: TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Table1.Insert;
end;

procedure TForm1.Table1BeforeInsert(DataSet: TDataSet);
begin
  Table1.Filter := '[nombre] = ' + QuotedStr('xxx');
  Table1.Filtered := true;
  Table1.Refresh;
end;

procedure TForm1.Table1AfterPost(DataSet: TDataSet);
begin
  Table1.Filtered := false;
end;

end.
MensajePublicado:
Sab Ene 20, 2007 11:12 pm
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » Borland Delphi, Codegear Delphi .Net  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A