J'ai un objet utilisateur qui utilise les services pfc. Maintenant, lors de la mise à jour, comment puis-je m'assurer qu'un champ de texte dans DataWindow n'est pas vide?powerbuilder: Comment puis-je m'assurer qu'un champ de texte dans datawindow n'est pas vide?
Répondre
PFC dispose d'un service DataWindow Column Required, qui modifie le comportement de l'attribut Required des colonnes à évaluer lors de la sauvegarde. Si votre exigence implique des colonnes editmask, cela ne fonctionnera pas, mais peut être un moyen facile d'y parvenir autrement.
Pour l'utiliser, je mettrais le code suivant dans le constructeur (avertissement: il a été un moment que je l'ai utilisé):
of_SetReqColumn(TRUE)
inv_reqcolumn.of_RegisterSkipColumn ("col_a")
Bonne chance,
Terry .
Je vais essayer d'expliquer la méthode que j'utilise afin de m'assurer qu'un utilisateur ne laissera pas un champ spécifié vide. Ce qui suit est le code que j'ai mis dans l'événement pfc_updateprep de u_dw (l'ancêtre). Ensuite, pour chacune des colonnes que je veux donner une valeur dans tous les cas, je mets un M
dans la propriété tag
du champ de texte qui décrit la colonne. HTH.
integer li_size,i,l,li_zero
string ls_textname,ls_tag,ls_objects[]
string ls_col,ls_type,ls_text,ls_key,ls_any
any la_null,la_any
dec ld_zero
real lr_zero
long ll_zero
boolean lb_zero
dwItemStatus l_status,l_key_status
This.Modify("DataWindow.Table.UpdateKeyinPlace=Yes")
li_size = This.inv_base.of_Getobjects(ls_objects[ ],"column","*",TRUE)
FOR l=1 TO This.Rowcount()
l_status=This.GetItemStatus(l, 0,Primary!)
IF l_status=NewModified! OR l_status=Datamodified! THEN
FOR i = 1 to li_size
ls_col=ls_objects[i]
ls_key = Upper(This.Describe(ls_col+".Key"))
ls_type=This.Describe (ls_col + ".ColType")
ls_textname=ls_col+"_t" // because the textnames that I use are the same as the column names followed by a "_t"
ls_tag=This.Describe(ls_textname+".Tag")
ls_text=This.Describe(ls_textname+".Text")
IF ls_tag='M' THEN
lb_zero = FALSE
IF This.Rowcount()>0 THEN
la_null=This.inv_base.of_GetItemany(l,ls_col)
choose case Upper(MidA(ls_type,1,3))
case 'DEC'
ld_zero=Dec(la_null)
IF ld_zero = 0 THEN lb_zero=TRUE
case 'INT'
li_zero=Integer(la_null)
IF li_zero = 0 THEN lb_zero=TRUE
case 'REA'
lr_zero=Real(la_null)
IF lr_zero = 0 THEN lb_zero=TRUE
case 'LON'
ll_zero=Long(la_null)
IF ll_zero = 0 THEN lb_zero=TRUE
end choose
IF Isnull(la_null) OR lb_zero THEN
Messagebox(gnv_app.of_Getframe().Getactivesheet().Title,&
"You must provide a value for the following field ~r("+&
ls_text+") !!!")
Return FAILURE
END IF
END IF
END IF
NEXT
END IF
NEXT
Return SUCCESS
Ce que je l'ai fait dans PB est de définir les propriétés de la colonne DataWindow suivantes à TRUE ou vérifié:
- Chaîne vide est NULL
- requis
Si vous faites Ainsi, la fenêtre de données doit automatiquement valider le champ pour vous et empêcher l'utilisateur de laisser le champ vide.
[EDIT - clarification après toujours de bons conseils de Terry]
La première partie de mon poste devrait travailler pour les champs de texte au moment de la saisie des données et je crois forcera l'utilisateur d'entrer une valeur valide dans l'entrepôt de données avant d'autoriser Vous pouvez modifier le focus à moins de modifier ce comportement, par exemple, dans l'événement itemchanged.
Le service PFC Required Column peut être activé et la colonne enregistrée avec pour assurer la validation de la sauvegarde. Cela rend moins fastidieux pour un utilisateur de se déplacer dans les champs tout en naviguant dans les champs, et ne pèse que sur l'utilisateur lorsqu'il tente d'enregistrer.
- 1. Comment afficher les nœuds non extensibles dans Powerbuilder Tree Datawindow
- 2. Powerbuilder: comment spécifier la date actuelle comme valeur initiale pour un champ datawindow
- 3. Powerbuilder 12 ne peut pas enregistrer en tant que datawindow pdf
- 4. Erreur d'ouverture Datawindow "La mémoire n'a pas pu lire"
- 5. vues argument dans le champ de texte vide
- 6. Architecture du plug-in PowerBuilder
- 7. Comment compter dynamiquement les champs calculés par datawindow?
- 8. powerbuilder: l'événement itemchanged ne se déclenche pas lors du changement de focus
- 9. Personnalisation de l'IDE PowerBuilder pour SCC
- 10. Java Stack/Nest Count
- 11. Champ vide ou vide dans la base de données
- 12. JQuery vide un champ de texte Quand je clique dessus
- 13. Comment définir le focus et insérer le curseur dans un champ de texte vide dans AS3
- 14. Objectif c vérifier si champ de texte est vide
- 15. jquery valider champ vide
- 16. Comment voir le texte d'un champ de texte dans un autre champ de texte?
- 17. Barres d'outils dans PowerBuilder
- 18. Comment * fonctionne * Powerbuilder POST?
- 19. vérification de texte vide
- 20. Django champ vide fallback
- 21. Comment savoir quand un champ de texte est vide dans as3
- 22. Texte statique dans le champ de texte?
- 23. Access 2007 Nest requête parameterful
- 24. Gel de l'en-tête du rapport de synthèse PowerBuilder 6.5
- 25. ajouter un filigrane à une fenêtre de données powerbuilder
- 26. BLToolKit: comment extraire un champ datetime 'vide'?
- 27. Prédicat de texte intégral vide ou vide
- 28. Comment insérer un champ de données dans une table vide
- 29. description texte dans un champ de texte?
- 30. comment représenter un champ vide en yaml