Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-07-2007
Gangster Gangster is offline
Miembro
 
Registrado: nov 2006
Posts: 36
Poder: 0
Gangster Va por buen camino
Question No Regreso en el DbGrid

Hola a todos, Tengo una forma con un dbgrid, entonces en este dbgrid hago el cobro de tickets, pero lo que no quiero que pase, es que en el dbgrid se puedan regresar hacia arriba, no se como decirle al dbgrid que no se haga eso, si ya se cobro y paso de renglon, ya no regresarse ni a borrar ni nada, siempre hacia enfrente es que si ya lo cobro y paso de renglon estara impreso en el ticket de pago, entonces por eso no quiero que se pueda ir para arriba, agradeceria alguna idea o solucion, Saludos y Bye.
Responder Con Cita
  #2  
Antiguo 12-07-2007
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
No se como funciona tu programa, si, por ejemplo, lee los artículos con un lector de codigo de barras y se van añadiendo así las lineas en el dbgrid, o si el dbgrid esta enganchado a algún datasource que está a su vez enganchado con un adoquery y desde este insertas los nuevos registros; quiero decir que tu explicación se me hace un poco corta para darte una solución concreta, así a bote pronto te puedo decir que poniendo:
Código Delphi [-]
dbgrid1.enabled:=false;
así no podras moverte ni arriba, ni abajo, ni modificarlo, ni nada, espero te sirva de algo.
Responder Con Cita
  #3  
Antiguo 12-07-2007
Gangster Gangster is offline
Miembro
 
Registrado: nov 2006
Posts: 36
Poder: 0
Gangster Va por buen camino
Talking Respuesta a mejor Idea de lo que busco

Cita:
Empezado por ElDioni
No se como funciona tu programa, si, por ejemplo, lee los artículos con un lector de codigo de barras y se van añadiendo así las lineas en el dbgrid, o si el dbgrid esta enganchado a algún datasource que está a su vez enganchado con un adoquery y desde este insertas los nuevos registros; quiero decir que tu explicación se me hace un poco corta para darte una solución concreta, así a bote pronto te puedo decir que poniendo:
Código Delphi [-]dbgrid1.enabled:=false;

así no podras moverte ni arriba, ni abajo, ni modificarlo, ni nada, espero te sirva de algo.
Hola Dioni, Mira Mi programa esta ligado a un ttable por un datasource, todavia no leemos de un hardware para codigo de barras solo lo que quiero es que no se vaya para arriba dentro del dbgrid, osea producto ya vendido (Significa que ya paso de Renglon en el dbGRID) pues no devolverse para nada arriba es lo que busco y no tengo idea, no tengo nada con ADO,ni con un Query, solo un dbgrid en una forma con un datasource ligado a un ttable, es todo, no se si con esto se entienda mas lo que en si busco y no lo he encontrado o no tengo idea, con lo que me dices pues deshabilito totalmente el dbgrid, creo que no me serviria eso.
Gracias por tu idea Saludos y Bye.
Responder Con Cita
  #4  
Antiguo 12-07-2007
Avatar de maxvera
maxvera maxvera is offline
Miembro
 
Registrado: jun 2006
Posts: 21
Poder: 0
maxvera Va por buen camino
¿Cómo identificas los registros de esa tabla? ¿Tienes un campo autoincremental para la clave primaria o algún id para el registro?

Si es así, dímelo y te discurro algo sencillo.
__________________
El colmo del inmovilismo es el 0 absoluto.
Responder Con Cita
  #5  
Antiguo 12-07-2007
Gangster Gangster is offline
Miembro
 
Registrado: nov 2006
Posts: 36
Poder: 0
Gangster Va por buen camino
Talking Respuesta de que uso en DBGRID

Cita:
Empezado por maxvera
¿Cómo identificas los registros de esa tabla? ¿Tienes un campo autoincremental para la clave primaria o algún id para el registro?

Si es así, dímelo y te discurro algo sencillo.
Hola Maxvera mira, tengo ligado al dbgrid una tabla tipo detail con dos llaves primarias, entonces una con el id que tenga el master table, y la otra llave es porque si se venden muchos productos no se repita el renglon entonces voy incrementando el renglon despues de cada post (Qe seria cada vez que pase del renglon), la identificacion de los renglones pues es un id, igual a como se graba el numero de ticket en el master table, eso es la ligacion que tengo en las dos tablas.
Responder Con Cita
  #6  
Antiguo 12-07-2007
Avatar de maxvera
maxvera maxvera is offline
Miembro
 
Registrado: jun 2006
Posts: 21
Poder: 0
maxvera Va por buen camino
Bien.

No sé si me paso de listo (por la sencillez de la respuesta), pero esto debería funcionar:

Código Delphi [-]
procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
begin
  if Table1.RecNo < Table1.RecordCount then Table1.Last;
end;

Donde, evidentemente, Table1 hace referencia al DataSet ligado al DataSource del DBGrid.

En cualquier caso, deberías deshabilitar el procedimiento cuando edites o insertes un registro.

Espero que vayan por ahí los tiros.
__________________
El colmo del inmovilismo es el 0 absoluto.

Última edición por maxvera fecha: 12-07-2007 a las 22:27:11.
Responder Con Cita
  #7  
Antiguo 12-07-2007
Gangster Gangster is offline
Miembro
 
Registrado: nov 2006
Posts: 36
Poder: 0
Gangster Va por buen camino
Unhappy Que Pasara no em Salio

Cita:
Empezado por maxvera
Bien.

No sé si me paso de listo (por la sencillez de la respuesta), pero esto debería funcionar:

Código Delphi [-]procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
begin if Table1.RecNo < Table1.RecordCount then Table1.Last;
end;
Hola MaxVera Pero lo puse asi tal y como me dices pero entonces escribo un renglon en el dbgrid pero al dar la tecla tab no me deja pasar de renglon, y no puedo seguir escribiendo en le grid se queda ahi,como que dice estoy en el ultimo renglon y no me deja escribir otro lo toma ese renglon como el ultimo en la tabla, alguna otra sugerencia o idea, o que error este cometiendo este es mi codigo.

recdetail es mi tabla.

le puse el recordcount = 1, porque sin el ni me deja escribir en el primer renglon. siempre estaria en el ultimo

procedure TASEcom.tbRecDetailAfterScroll(DataSet: TDataSet);
begin
if(ASEcom.tbRecDetail.RecordCount = 1)then
begin
if (ASEcom.tbRecDetail.RecNo < ASEcom.tbRecDetail.RecordCount) then
ASEcom.tbRecDetail.Last;
end;
end;
Responder Con Cita
  #8  
Antiguo 12-07-2007
Avatar de maxvera
maxvera maxvera is offline
Miembro
 
Registrado: jun 2006
Posts: 21
Poder: 0
maxvera Va por buen camino
Prueba esto (con las modificaciones adecuadas a tu código):

Código Delphi [-]
procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
begin
  if (not Table1.State in [dsEdit, dsInsert])
  and (Table1.RecNo < Table1.RecordCount)
  then Table1.Last;
end;
__________________
El colmo del inmovilismo es el 0 absoluto.
Responder Con Cita
  #9  
Antiguo 12-07-2007
Arturo_ Arturo_ is offline
Miembro
 
Registrado: jul 2007
Posts: 48
Poder: 0
Arturo_ Va por buen camino
DBGrid

Mira lo que tienes que hacer es:
En este codigo si es primer registro no inserta nada, pero si la tabla contiene registros inserta uno nuevo ok.

if (Table1.RecountdCount <> 0) then
Table1.Append
Table1.Edit;
Table1.FieldByNAme('Nombre').AsString := 'Hello';
Table1.Post;
Responder Con Cita
  #10  
Antiguo 13-07-2007
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
¿No has pensado en meterlo en una caja de texto el artículo en vez de directamente en el grid?.
Me explico:
Creo que lo que haces es añadir directamente en el grid, si desabilitaras el grid con lo que te dije enabled:=false y metieras el codigo del artículo en una caja de texto y al pulsar el intro lo añadieras al objeto table, aparecería en el grid ya que esta ligado con el datasource y no podrías manipularlo, cuando dieras de alta el artículo vaciarías la caja de texto y esperaría a que le metieras otro.
No se si te estaré liando más o te servirá para algo, ya me contarás.
Responder Con Cita
  #11  
Antiguo 13-07-2007
Gangster Gangster is offline
Miembro
 
Registrado: nov 2006
Posts: 36
Poder: 0
Gangster Va por buen camino
Question Buena Idea esa Pero......

Cita:
Empezado por ElDioni
¿No has pensado en meterlo en una caja de texto el artículo en vez de directamente en el grid?.
Me explico:
Creo que lo que haces es añadir directamente en el grid, si desabilitaras el grid con lo que te dije enabled:=false y metieras el codigo del artículo en una caja de texto y al pulsar el intro lo añadieras al objeto table, aparecería en el grid ya que esta ligado con el datasource y no podrías manipularlo, cuando dieras de alta el artículo vaciarías la caja de texto y esperaría a que le metieras otro.
No se si te estaré liando más o te servirá para algo, ya me contarás.

Hola dioni suena bien la idea pero lo que no entiendo que es una caja de texto. es mi unica duda esa si me dices que objeto es ese en ingles para buscarlo dentro de delphi lo agradeceria. Saludos y Bye.
Responder Con Cita
  #12  
Antiguo 14-07-2007
Gangster Gangster is offline
Miembro
 
Registrado: nov 2006
Posts: 36
Poder: 0
Gangster Va por buen camino
Talking Solucionado

En el Evento del KeyUp del dbgrid, atrape la variable de la tecla de la flecha para arriba, la puse dentro de un if, entonces cuando el usuario teclee esa tecla, entonces entra al if que esta en el evento, y entonces lo mando al ultimo de la tabla enlazada al dataset del dbgrid (Le hago un .LAST a la tabla esa), y por ultimo le hago a esa misma tabla un append, entonces si le da para arriba en el dbgrid, pero por el evento, lo manda hacia abajo pero con el append hace un renglon nuevo en el dbgrid y el apuntador del dbgrid a la tabla se va hasta el renglon nuevo hecho dentro del DBGrid, Gracias a todos los que me ayudaron Respondiendome, Gracias por todo Saludos y Bye.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
PickList DBGrid (Pregunta acerca de los DBGRID) lazarous Varios 1 10-01-2006 09:53:12
Como extraer datos de un DBgrid a otro DBgrid mickey Conexión con bases de datos 13 29-01-2004 05:05:30


La franja horaria es GMT +2. Ahora son las 17:35:08.


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
Copyright 1996-2007 Club Delphi