PDA

Ver la Versión Completa : poner grid en blanco


sargento elias
09-04-2008, 13:11:46
2 cosillas

1.- como puedo hacer para que un Dbgrid me aperzca inicialmente vacio (contiene datos of course).

2.- En el mismo grid tengo campos editables que se me guardan al cambiar de registro, pero claro en el último registro me aparece otro registro en blanco un poco indeseable, que me aconsejais?

gracias.

Lepe
09-04-2008, 14:04:55
1.- De dos formas:
- con: dbgrid1.Datasource := nil;
- o bien que la consulta no tenga resultados o que esté cerrada Dbgrid1.datasource.dataset.Close;


2.- El código aclararía mucho, pero básicamente, en el afterScroll, comprueba que está en modo edidición para ordenar guardar los campos editables.

Saludos

juanlaplata
09-04-2008, 14:08:19
Si no me equivoco, el DBGrid es el componente que sirve para visualizar los datos de cualquier "Dataset" , "Query", etc en forma de grilla. Por lo tanto los datos no son del DBGrid sino de estos ultimos. Por lo tanto si estan conectados y hay datos se ve. En mi caso tome la costumbre de que los DBgrid no sean editables y doy a insertar o modif con Edits o DBEdits segun el caso.

sargento elias
09-04-2008, 15:52:09
lepe gracias por lo del grid.

La verdad que no puedo poner código, así que lo explicaré mas detenidamente.

en el grid me tienen que salir filtradas unas busquedas,vale.

tengo un campo IMPORTE, otro calculado PENDIENTE y otro ENTREGAS A CUENTA.Me han pedido que en el campo entregas a cuenta pueda introducir una cantidad que se restará a importe y actulizará el campo pendiente(una simple resta) hasta ahí bien, pero la actualizacion solo la realizo cuando llego al ultimo campo del registro y pulso enter(me pasa al siguiente registro) Eso va perfecto.

Pero cuando llego al ultimo registro que me muestra el grid y a su ultimo campo, para actualizarlo he de pulsar enter y me pasa a un registro nuevo en blanco que me gustaria que no apareciera o no pudiera escribir sobre el.

juanlaplata: Yo prefiero controlarlo por edits tb, pero es que me lo han pedido así.

juanlaplata
09-04-2008, 19:41:53
Bueno. Si el filtrado esta OK. Puedes ver la cantidad de filas que te Devuelve dicho filtro (DataSet.RecordCount). Y verificar si se encuentra el dicha fila (DataSet.RecNo = DataSet.RecordCount), no se puede insertar . No me acuerdo bien el hilo pero lo habia leido en este foro. Lo busco y lo agrego aqui mismo.

Edit: aqui el tema que comentaba: http://www.clubdelphi.com/foros/showthread.php?t=48191&highlight=no+insertar+en+dbgrid

eduarcol
09-04-2008, 20:51:39
en el evento beforeInsert del dataset relacionado al dbgrid escribe: ABORT;

Lepe
10-04-2008, 09:54:55
¿No será que te falta un DBNavigator?

Si para guardar necesitas pulsar "intro", es señal de que no tienes un DBNavigator, quizás sea la solución óptima. Puedes ocultar todos los botones y dejar sólo Guardar, insertar y cancelar.

Saludos

sargento elias
10-04-2008, 10:55:44
con el abort me va al pelo

Muchas Gracias;