Domanda strana....

Salve,

oggi pongo alla vostra attenzione una domanda alquanto strana (sono costretto a farvela perchè il cliente che me l’ha richiesta mi sta facendo uscire di testa!!!).

La domanda è questa: posso io, da codice, dire al “cursore” che dopo una determinata combinazione di tasti veloci (es. CTRL + F12) deve posizionarsi su un determinato campo di un determinato record in modo da permettermi l’inserimento del dato senza bisogno di spostarmi o cliccare col mouse?

Praticamente dovrei riuscire a gestire la posizione del cursore da codice.

Grazie

non capisco, vorrebbe dal form tal dei tali con una combinazione di tasti saltare ad un determinato record della stessa tabella o di un’altra? determinato da chi? fisso da codice?

boh … non è che potresti spiegarmi a livello applicativo cosa vorresti ottenere?

Beh, vediamo… puoi posizionarti su un record impostando un filtro e poi rilasciandolo - non e’ elegante, ma funziona. Puoi posizionarti su un campo chiamando CurrForm.NomeControllo.ACTIVATE, pero’ credo che funzioni solo sulle form di tipo card.
Per i tasti veloci, lo sai, penso, devi associarli ad un menuitem.

Quoto la soluzione di Anna, aggiungi un MenuItem e gli associ lo ShortCut CTRL+F12 quindi premi F9 sul MenuItem per accedere al suo evento OnPush usi il seguente codice per mettere il fuoco sul campo desiderato:

CurrForm.FieldName.ACTIVATE;

In caso che devi fare qc di strano (per esempio inserire un record (quindi fare F3)) puoi usare LautWshShell di tipo ‘Windows Script Host Object Model’.WshShell e questo è il codice per fare finta che l’utente l’ha fatto:

CREATE(LautWshShell); LautWshShell.SendKeys(ItxtKeys); // stringa con gli ASCII da mandare CLEAR(LautWshShell);

Che risposte incasinate! Scusa, l’istruzione di FORM.RUNMODAL prevede sia il record, sia il campo su cui posizionarsi all’apertura del form…più banale di così

Ciao

Marco

P.S. Che infingardo il tuo cliente, per un click del mouse o un TAB su tastiera…