2009-11-25 5 views
4

Dans PB6.5.1 et PB9.0:Deux questions sur le ItemChanged et itemerror événements

Question 1: En cas ItemChanged: retour 1 En cas itemerror: retour 3 Lors de l'exécution, la séquence de événements déclenchés est: ItemChanged -> itemerror -> ItemChanged -> itemerror Pourquoi chaque événement a tiré deux fois

question 2: En cas ItemChanged: retour 1 En cas itemerror: return 2 Lors de l'exécution, le focus n'a pas été déplacé vers la cellule suivante. Pourquoi?

Merci.

Répondre

5

Question 1: En retour 3 de itemerror, vous avez rejeté les données, ce qui efface la colonne et se déclenche à nouveau la itemchanged. Quant à la raison pour laquelle PowerBuilder est conçu pour fonctionner de cette manière, je pense qu'ils pensaient qu'il suivrait le principe de la moindre surprise, c'est-à-dire qu'ils anticipaient les gens demandant pourquoi le rejet ne se déclenche pas.

Question 2: L'événement itemchanged remplace itemerror. Dans itemchanged vous avez rejeté l'entrée et empêché le changement de focus; dans itemerror vous acceptez maintenant l'entrée, mais vous n'avez pas supprimé le bloc lors du changement de focus. Vous devez revenir 2 de itemchanged, puisque vous pouvez contrôler si vous permettez point de changer de l'événement itemerror, en retournant 1 ou 3.


En cas où quelqu'un est la lecture de cette question sans l'aide powerbuilder fichiers à portée de main :

valeurs de retour pour itemchanged:

0 (par défaut) Accepter la valeur de données
1 rejeter la valeur de données et ne permettent pas de changer l'accent (déclencheurs itemerror)
2 Rejeter la valeur de données, mais permettent la mise au point de changer (déclencheurs itemerror)

valeurs de retour pour itemerror:

0 (par défaut) Rejeter la valeur des données et afficher un message d'erreur boîte
1 Rejeter la valeur de données sans boîte de message
2 Accepter la valeur de données
3 rejeter la valeur de données mise au point mais permettent de changer

+0

Merci pour votre réponse. L'aide de PowerBuilder ne semble pas mentionner que l'événement itemerror renvoyant 3 déclenchera l'événement itemchanged, n'est-ce pas? – user218765

+0

Pages pertinentes des documents en ligne (voir ItemChanged et ItemError): http://infocenter.sybase.com/help /topic/com.sybase.dc37783_1150/html/dwref/BABCJGCA.htm –

Questions connexes