FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Foco en un campo del Grid
Buenas tardes a todos.
He estado mirando en el foro por si había un caso similar al mio y no he visto nada. Tengo este código en el OnColExit del JVDBGrid
Lo que me pasa es que la linea JvDBUltimGrid1.SelectedField:=F_ModulDades.LVentasUNIDADES; es como si no estuviera. Tambien he probado con JvDBUltimGrid1.SelectedIndex:=1; Y tampoco consigo que al hacer el clear, el foco vuelva al campo Unidades para entrar la nueva cantidad. Como siempre agradezo vuestro tiempo y si alguien tiene una ayudita, pues bien recibida. Saludos Josep |
#2
|
|||
|
|||
Una opción es cambiar la línea por un
Eso pararía el resto de procesamiento del Grid. Pero también puede que cancele otro código que sí te puede interesar. La opción más correcta para mí es usar una variable privada para controlar la entrada y salida de las celdas. Sería como esto:
|
#3
|
|||
|
|||
Cita:
Código:
procedure TF_Vendes.JvDBUltimGrid1ColExit(Sender: TObject); begin if F_ModulDades.LVentas.State in [dsEdit, dsInsert] then begin if JvDBUltimGrid1.SelectedField.FieldName = 'UNIDADES' then begin F_ModulDades.Stock_Unidades.Close; F_ModulDades.Stock_Unidades.ParamByName('REFERENCIA').AsString := F_ModulDades.LVentasREFERENCIA.Value; F_ModulDades.Stock_Unidades.Open; if F_ModulDades.LVentasUNIDADES.Value > F_ModulDades.Stock_UnidadesSTOCK.Value then begin ShowMessage('Estás vendiendo más unidades de las que hay en stock, solo puedes vender ' + IntToStr(F_ModulDades.Stock_UnidadesSTOCK.Value) + ' unidades.'); F_ModulDades.LVentas.Edit; F_ModulDades.LVentasUNIDADES.Clear; F_ModulDades.LVentas.Post; JvDBUltimGrid1.SetFocus; // Establecer foco en JvDBUltimGrid1 (puedes intentar utilizar JvDBUltimGrid1.SetFocusCell(ACol, ARow) si es necesario) JvDBUltimGrid1.SelectedIndex := JvDBUltimGrid1.Columns.IndexOf('UNIDADES'); // Establecer el índice de columna seleccionada // Desactivar y reactivar el control JvDBUltimGrid1 JvDBUltimGrid1.Enabled := False; JvDBUltimGrid1.Enabled := True; end; end; end; end; |
#4
|
||||
|
||||
Muchas gracias Garada y Delphi01
Perdonad el retraso en responder, pues por motivos laborales hasta ahora no he podido hacer pruebas. La solución de Garada ha funcionado a la perfección. La de Delphi01 no ha funcionado pues me da error de que la propiedad IndexOf en la línea JvDBUltimGrid1.Columns.IndexOf('UNIDADES'); dice no está declarada, he mirado propiedades de JvDBUltimGrid1.Columns. y no veo ninguna que se pueda aprovechar. Posiblemente desconocimiento mio de todas las propiedades de este componente. Saludos Josep |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
campo en memoria para grid | Rofocale | Varios | 11 | 22-05-2011 10:36:43 |
Campo Calculado en JvDBUltim Grid | mantraxer21 | Varios | 1 | 27-08-2010 18:52:35 |
Como dar foco en un campo del registro activo TDBGrilla | kikodelphi | MS SQL Server | 1 | 19-05-2005 16:58:39 |
Mostrar un campo clob en un grid | Lix | Oracle | 5 | 27-02-2004 21:48:57 |
problema con string grid (desparece el contenido de la celda al perder el foco) | sase | Varios | 0 | 20-08-2003 19:37:59 |
|