![]() |
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.
|
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:
así no podras moverte ni arriba, ni abajo, ni modificarlo, ni nada, espero te sirva de algo. |
Respuesta a mejor Idea de lo que busco
Cita:
Gracias por tu idea Saludos y Bye. |
¿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. |
Respuesta de que uso en DBGRID
Cita:
|
Bien.
No sé si me paso de listo (por la sencillez de la respuesta), pero esto debería funcionar:
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. |
Que Pasara no em Salio
Cita:
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; |
Prueba esto (con las modificaciones adecuadas a tu código):
|
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; |
¿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. |
Buena Idea esa Pero......
Cita:
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. |
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.
|
La franja horaria es GMT +2. Ahora son las 09:27:17. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi