Page 1 of 1
Alguna sugerencia con Get
Posted: Fri Dec 21, 2007 11:19 pm
by ricardog
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
Posted: Sat Dec 22, 2007 3:14 am
by Armando
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
Posted: Sat Dec 22, 2007 5:41 am
by ricardog
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.
Posted: Sat Dec 22, 2007 7:01 am
by Vital
Posted: Sat Dec 22, 2007 8:04 am
by Antonio Linares
Ricardo,
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
Posted: Sat Dec 22, 2007 9:03 pm
by ricardog
Sr. Linares
Como siempre, funciono Ok.
Armando, Vital, Muchas gracias por sus sugerencias.