En mi aplicacion tengo varias tablas que son "catalogos" del sistema, algunas de ellas con tan solo 2 campos y solo uno para ser actualizado, (el otro es la llave, y lo genera "autonumerado"), pues bien, para no tener varios dialogos en mi .RC, el sistema genera automaticamente un dialogo en base a _ que serán editados. en el caso de las tablas que solo tienen 2 campos, tan solo edito 1 que seria el nombre de (ciudad, moneda, etc.), Y lo que quiero hacer es que cuando el usuario cambie el dato de ese campo, con oprimir las teclas CTRL + F4, se grabe ese dato en la base de datos, para que no utilize tanto el mouse. Pero no se como validar que el campo ya fué cambiado.
Por su atención GRACIAS
Y FELIZ NAVIDA Y PROSPERO 2008, PARA TODOS Y CADA UNO DE UDS.
Ricardo E. Guardado Flores
Alguna sugerencia con Get
Ricardo:
En principio no veo la necesidad de saber si el dato fue cambiado o no, simplemente con la combinación de las teclas que mencionas grabas el dato aunque haya o no cambiado.
Perooooo, si insistes en saber si el dato cambió o no te recomiendo que uses la clase TDATABASE que si no recuerdo mal tiene la propiedad lModified que te indica si cambió o no.
Saludos y Felíz Navidad para todo el foro
En principio no veo la necesidad de saber si el dato fue cambiado o no, simplemente con la combinación de las teclas que mencionas grabas el dato aunque haya o no cambiado.
Perooooo, si insistes en saber si el dato cambió o no te recomiendo que uses la clase TDATABASE que si no recuerdo mal tiene la propiedad lModified que te indica si cambió o no.
Saludos y Felíz Navidad para todo el foro
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Armando, gracias por contestar.
Perdon que no me haya dado a entender como deberia de ser. Te explico.
Como comento tengo un dialogo con tan solo un campo y dos botones
Al "EDITAR" el campo, este tiene el dato "HERMOSILLOS", para corregir el dato el usuario logicamente escribira "HERMOSILLO", pero sin que el usuario de "ENTER", al querer grabar con CTRL + F4, como el get no ha perdido el foco NI CON ENTER, NI CON TAB, pues el registro se queda como estaba, en cambio si llevo el mouse hacia el boton grabar, si lo hace, porque el get ya perdio el foco, (hay usuarios que les da flojera arrastrar el mouse, al cliente lo que solicite, porque gracias a ellos tenemos trabajo).
"Necesito grabar los datos cuando el usuario esta dentro del get".
Gracias por tus comentarios.
Ricardo E. Guardado Flores.
Perdon que no me haya dado a entender como deberia de ser. Te explico.
Como comento tengo un dialogo con tan solo un campo y dos botones
Al "EDITAR" el campo, este tiene el dato "HERMOSILLOS", para corregir el dato el usuario logicamente escribira "HERMOSILLO", pero sin que el usuario de "ENTER", al querer grabar con CTRL + F4, como el get no ha perdido el foco NI CON ENTER, NI CON TAB, pues el registro se queda como estaba, en cambio si llevo el mouse hacia el boton grabar, si lo hace, porque el get ya perdio el foco, (hay usuarios que les da flojera arrastrar el mouse, al cliente lo que solicite, porque gracias a ellos tenemos trabajo).
"Necesito grabar los datos cuando el usuario esta dentro del get".
Gracias por tus comentarios.
Ricardo E. Guardado Flores.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Ricardo,
Aqui tienes un ejemplo funcionando como quieres:
Aqui tienes un ejemplo funcionando como quieres:
Code: Select all
#include "FiveWin.ch"
function Main()
local oDlg, oGet, cText := "Hello world"
SetKey( VK_F4, { || SaveGet( oGet ) } )
DEFINE DIALOG oDlg TITLE "Test"
@ 2, 2 GET oGet VAR cText
ACTIVATE DIALOG oDlg CENTERED
return nil
function SaveGet( oGet )
if GetKeyState( VK_CONTROL )
MsgInfo( AllTrim( oGet:GetText() ) ) // salvar aqui el contenido del GET
endif
return nil