English
Instant Developer Foundation Documentazione
  • Note di rilascio
  • Instant Developer Foundation
  • Versioni precedenti
  • Versione 8.5.3800
  • Correzioni

PAN: Modifica a proprietà Actual Position non applicata

copia link

Descrizione del difetto

L'assegnazione di un valore diverso da uno alla proprietà ActualPosition poteva non funzionare correttamente in applicazioni che utilizzavano il framework RD3. Il difetto si manifestava, ancorché in modo quasi invisibile, anche in applicazioni che utilizzavano il framework RD2 o precedenti. Il difetto si manifestava, per esempio, nel caso seguente:

   Pannello.EnterQBEMode()
   Pannello.UndoChanges()
   Pannello.FindData()
   Pannello.ActualPosition := 3
Il framework gestisce l'auto-focus, ovvero decide autonomamente a quale cella dare il fuoco quando la risposta viene inviata al client. Ovviamente qualunque chiamata visual code alla procedura SetFocus di un campo di pannello ha priorità maggiore rispetto a quella precalcolata automaticamente dal server. Nel caso sopra quando viene effettuata la chiamata alla procedura EnterQBEMode il sistema attiva la riga 1 del pannello pre-calcolando la cella da fuocare al momento della risposta. Da quel momento il server non effettua più ulteriori calcoli automatici ma si fida del calcolo iniziale. Erroneamente nemmeno l'assegnazione di un valore diverso da 1 alla proprietà ActualPosition non ricalcolava la cella attiva. A partire dalla versione 8.5 una assegnazione alla proprietà ActualPosition ha priorità sul calcolo iniziale del framework. Di nuovo tale priorità è comunque inferiore a quella di una chiamata al metodo SetFocus del campo di pannello.

Effetti del malfunzionamento

  • La riga attiva era comunque la prima riga del pannello nonostante l'assegnazione alla proprietà ActualPosition.

Soluzioni

Utilizzare la versione 8.5.3800. Qualora non sia possibile utilizzare tale versione è sufficiente effettuare una chiamata alla procedura SetFocus di un campo di pannello attivo subito dopo l'assegnazione alla proprietà ActualPosition. Come già indicato sopra, infatti, una qualunque chiamata al metodo SetFocus ha priorità maggiore rispetto al precalcolo fatto dal sistema.

Funzionalità interessate

L'esecuzione di una query di pannello e, contestualmente, il posizionamento della riga attiva ad una riga diversa dalla prima.

Note

  • Il malfunzionamento si manifestava anche nelle versioni precedenti del framework RD anche se, a prima vista, poteva non sembrare il caso. In applicazioni RD2, infatti, il pannello sembra posizionato nella terza riga ma se viene cliccato un bottone che opera sui dati della riga corrente viene attivato un cambio riga non desiderato in quanto il framework crede che la riga selezionata sia la prima.

Ultima modifica: 20/11/2020 / Validità: da 8.5.3800

Vedi anche

  • Actual Position (proprietà)
  • Set Focus (procedura)
  • Enter QBE Mode (procedura)
  • Find Data (procedura)

Hai trovato utile l'articolo?

Grazie per il feedback!

Ti serve altro aiuto?

Consulta il Forum