J'aimerais simplifier le contrôle des saisies dans les fiches.
Et j'ai besoin de donner le focus à des champs de saisie
qui peuvent se trouver dans les onglets ou super – champs imbriqués.
Comment faire?
Ce que j'aimerais réaliser :
- Chaque fichier comporte une liste de rubriques obligatoires
(rubriques_obligatoires_fichier=rubrique1+tab+rubrique2...) paramétrée
à l'init du programme
- L'utilisateur valide la saisie (bouton "enregistrer") d'une fenetre
fiche
- Le programme analyse tous les champs de saisie de la fenêtre
(énumération par programmation)
- Si un champ a une liaison fichier, je dois voir si la rubrique est
obligatoire (cf. la liste),
puis vérifier si l'utilisateur a saisi une valeur correcte ou non
(fenetre.champ dans liste_valeurs_interdites (0, null, ‘', …))
- Si la rubrique est obligatoire et l'utilisateur n'a rien saisi alors
il faut :
. colorier le libellé du champ en rouge
. ajouter le libellé champ dans une chaîne de compte rendu d'erreur
- A la fin du test sur tous les champs de la fenêtre il faut :
. afficher un message d'erreur (liste de tous les champs en erreur)
. donner le focus (reprisesaisie / ecranpremier ??? -> c'est la que je
cherche une solution) au premier champ en erreur
1) Comment énumérer tous les champs d'une fenêtre qui ont une liaison
fichier
2) Code générique pour donner le focus à un champ quelconque
3) Contraintes :
- Un champ peut être dans un onglet / super - champ
- Les onglets onglet / super - champs peuvent être imbriqués sur
plusieurs niveaux
- Il faut que le code fonctionne sur n'importe quelle fenêtre
dont on ne connaît pas le contenu à l'avance
- La plupart des champs concerné sont des champs de saisie simples
(monétaire, numérique, date, texte …) ou des combos. On ne contrôle
pas la saisie dans les tables et autres champs complexes.
Le but c'est de positionner automatiquement l'utilisateur sur les
champs en erreur
quand il valide la fiche. L'utilisateur corrige la saisie, valide, et
le programme le positionne sur le champ en erreur suivant, jusqu'à
validation de la fiche (tous les champs obligatoires sont renseignés).
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pierre BOUSQUET
j'avais fait un bout de code pour lister tous ou (presque tous) les objet s d'une fenetre, test voir si ca marche
PROCEDURE SeekObjets(ParentþnEnCours(),RecherchePrincipale=Vrai) // Liste des objets d'une fenêtre b est entier c est entier NbLignes est entier Char est chaîne ListeObjets est chaîne
SI PAS MemExiste("ZMObjets") ALORS MemCrée("ZMObjets") FIN
BOUCLE b++ Char=EnumèreChamp(Parent,b) SI Char="" ALORS SORTIR NbLignes=MemOccurrence("ZMObjets")+1 MemAjoute("ZMObjets",NbLignes,Char) SELON {Char}..Type CAS typOnglet POUR c=1 A {Char}..Occurrence SeekObjets({Char}[c],Faux) FIN CAS typSuperChamp//,typBarreOutils SeekObjets(Char,Faux) FIN FIN
SI RecherchePrincipale ALORS MemTrie("ZMObjets") POUR b=1 A MemOccurrence("ZMObjets") SI ListeObjets<>"" ALORS ListeObjets=ListeObjets+TAB FIN ListeObjets=ListeObjets+MemPositionne("ZMObjets",b) FIN MemSupprimeTout("ZMObjets") RENVOYER ListeObjets FIN
"Alexey K." a écrit dans le message de news:
Bonjour,
J'aimerais simplifier le contrôle des saisies dans les fiches. Et j'ai besoin de donner le focus à des champs de saisie qui peuvent se trouver dans les onglets ou super - champs imbriqués. Comment faire?
Ce que j'aimerais réaliser : - Chaque fichier comporte une liste de rubriques obligatoires (rubriques_obligatoires_fichier=rubrique1+tab+rubrique2...) paramétrée à l'init du programme - L'utilisateur valide la saisie (bouton "enregistrer") d'une fenetre fiche - Le programme analyse tous les champs de saisie de la fenêtre (énumération par programmation) - Si un champ a une liaison fichier, je dois voir si la rubrique est obligatoire (cf. la liste), puis vérifier si l'utilisateur a saisi une valeur correcte ou non (fenetre.champ dans liste_valeurs_interdites (0, null, '', .)) - Si la rubrique est obligatoire et l'utilisateur n'a rien saisi alors il faut : . colorier le libellé du champ en rouge . ajouter le libellé champ dans une chaîne de compte rendu d'erreur - A la fin du test sur tous les champs de la fenêtre il faut : . afficher un message d'erreur (liste de tous les champs en erreur) . donner le focus (reprisesaisie / ecranpremier ??? -> c'est la que je cherche une solution) au premier champ en erreur
1) Comment énumérer tous les champs d'une fenêtre qui ont une liaison fichier 2) Code générique pour donner le focus à un champ quelconque 3) Contraintes : - Un champ peut être dans un onglet / super - champ - Les onglets onglet / super - champs peuvent être imbriqués sur plusieurs niveaux - Il faut que le code fonctionne sur n'importe quelle fenêtre dont on ne connaît pas le contenu à l'avance - La plupart des champs concerné sont des champs de saisie simples (monétaire, numérique, date, texte .) ou des combos. On ne contrôle pas la saisie dans les tables et autres champs complexes.
Le but c'est de positionner automatiquement l'utilisateur sur les champs en erreur quand il valide la fiche. L'utilisateur corrige la saisie, valide, et le programme le positionne sur le champ en erreur suivant, jusqu'à validation de la fiche (tous les champs obligatoires sont renseignés).
A vous les experts :)
Cordialement, Alexey K.
j'avais fait un bout de code pour lister tous ou (presque tous) les objet s
d'une fenetre, test voir si ca marche
PROCEDURE SeekObjets(ParentþnEnCours(),RecherchePrincipale=Vrai)
// Liste des objets d'une fenêtre
b est entier
c est entier
NbLignes est entier
Char est chaîne
ListeObjets est chaîne
SI PAS MemExiste("ZMObjets") ALORS
MemCrée("ZMObjets")
FIN
BOUCLE
b++
Char=EnumèreChamp(Parent,b)
SI Char="" ALORS SORTIR
NbLignes=MemOccurrence("ZMObjets")+1
MemAjoute("ZMObjets",NbLignes,Char)
SELON {Char}..Type
CAS typOnglet
POUR c=1 A {Char}..Occurrence
SeekObjets({Char}[c],Faux)
FIN
CAS typSuperChamp//,typBarreOutils
SeekObjets(Char,Faux)
FIN
FIN
SI RecherchePrincipale ALORS
MemTrie("ZMObjets")
POUR b=1 A MemOccurrence("ZMObjets")
SI ListeObjets<>"" ALORS
ListeObjets=ListeObjets+TAB
FIN
ListeObjets=ListeObjets+MemPositionne("ZMObjets",b)
FIN
MemSupprimeTout("ZMObjets")
RENVOYER ListeObjets
FIN
"Alexey K." <alexeyk@hotmail.com> a écrit dans le message de
news:d42601b0.0412131015.4f08d3ed@posting.google.com...
Bonjour,
J'aimerais simplifier le contrôle des saisies dans les fiches.
Et j'ai besoin de donner le focus à des champs de saisie
qui peuvent se trouver dans les onglets ou super - champs imbriqués.
Comment faire?
Ce que j'aimerais réaliser :
- Chaque fichier comporte une liste de rubriques obligatoires
(rubriques_obligatoires_fichier=rubrique1+tab+rubrique2...) paramétrée
à l'init du programme
- L'utilisateur valide la saisie (bouton "enregistrer") d'une fenetre
fiche
- Le programme analyse tous les champs de saisie de la fenêtre
(énumération par programmation)
- Si un champ a une liaison fichier, je dois voir si la rubrique est
obligatoire (cf. la liste),
puis vérifier si l'utilisateur a saisi une valeur correcte ou non
(fenetre.champ dans liste_valeurs_interdites (0, null, '', .))
- Si la rubrique est obligatoire et l'utilisateur n'a rien saisi alors
il faut :
. colorier le libellé du champ en rouge
. ajouter le libellé champ dans une chaîne de compte rendu d'erreur
- A la fin du test sur tous les champs de la fenêtre il faut :
. afficher un message d'erreur (liste de tous les champs en erreur)
. donner le focus (reprisesaisie / ecranpremier ??? -> c'est la que je
cherche une solution) au premier champ en erreur
1) Comment énumérer tous les champs d'une fenêtre qui ont une liaison
fichier
2) Code générique pour donner le focus à un champ quelconque
3) Contraintes :
- Un champ peut être dans un onglet / super - champ
- Les onglets onglet / super - champs peuvent être imbriqués sur
plusieurs niveaux
- Il faut que le code fonctionne sur n'importe quelle fenêtre
dont on ne connaît pas le contenu à l'avance
- La plupart des champs concerné sont des champs de saisie simples
(monétaire, numérique, date, texte .) ou des combos. On ne contrôle
pas la saisie dans les tables et autres champs complexes.
Le but c'est de positionner automatiquement l'utilisateur sur les
champs en erreur
quand il valide la fiche. L'utilisateur corrige la saisie, valide, et
le programme le positionne sur le champ en erreur suivant, jusqu'à
validation de la fiche (tous les champs obligatoires sont renseignés).
j'avais fait un bout de code pour lister tous ou (presque tous) les objet s d'une fenetre, test voir si ca marche
PROCEDURE SeekObjets(ParentþnEnCours(),RecherchePrincipale=Vrai) // Liste des objets d'une fenêtre b est entier c est entier NbLignes est entier Char est chaîne ListeObjets est chaîne
SI PAS MemExiste("ZMObjets") ALORS MemCrée("ZMObjets") FIN
BOUCLE b++ Char=EnumèreChamp(Parent,b) SI Char="" ALORS SORTIR NbLignes=MemOccurrence("ZMObjets")+1 MemAjoute("ZMObjets",NbLignes,Char) SELON {Char}..Type CAS typOnglet POUR c=1 A {Char}..Occurrence SeekObjets({Char}[c],Faux) FIN CAS typSuperChamp//,typBarreOutils SeekObjets(Char,Faux) FIN FIN
SI RecherchePrincipale ALORS MemTrie("ZMObjets") POUR b=1 A MemOccurrence("ZMObjets") SI ListeObjets<>"" ALORS ListeObjets=ListeObjets+TAB FIN ListeObjets=ListeObjets+MemPositionne("ZMObjets",b) FIN MemSupprimeTout("ZMObjets") RENVOYER ListeObjets FIN
"Alexey K." a écrit dans le message de news:
Bonjour,
J'aimerais simplifier le contrôle des saisies dans les fiches. Et j'ai besoin de donner le focus à des champs de saisie qui peuvent se trouver dans les onglets ou super - champs imbriqués. Comment faire?
Ce que j'aimerais réaliser : - Chaque fichier comporte une liste de rubriques obligatoires (rubriques_obligatoires_fichier=rubrique1+tab+rubrique2...) paramétrée à l'init du programme - L'utilisateur valide la saisie (bouton "enregistrer") d'une fenetre fiche - Le programme analyse tous les champs de saisie de la fenêtre (énumération par programmation) - Si un champ a une liaison fichier, je dois voir si la rubrique est obligatoire (cf. la liste), puis vérifier si l'utilisateur a saisi une valeur correcte ou non (fenetre.champ dans liste_valeurs_interdites (0, null, '', .)) - Si la rubrique est obligatoire et l'utilisateur n'a rien saisi alors il faut : . colorier le libellé du champ en rouge . ajouter le libellé champ dans une chaîne de compte rendu d'erreur - A la fin du test sur tous les champs de la fenêtre il faut : . afficher un message d'erreur (liste de tous les champs en erreur) . donner le focus (reprisesaisie / ecranpremier ??? -> c'est la que je cherche une solution) au premier champ en erreur
1) Comment énumérer tous les champs d'une fenêtre qui ont une liaison fichier 2) Code générique pour donner le focus à un champ quelconque 3) Contraintes : - Un champ peut être dans un onglet / super - champ - Les onglets onglet / super - champs peuvent être imbriqués sur plusieurs niveaux - Il faut que le code fonctionne sur n'importe quelle fenêtre dont on ne connaît pas le contenu à l'avance - La plupart des champs concerné sont des champs de saisie simples (monétaire, numérique, date, texte .) ou des combos. On ne contrôle pas la saisie dans les tables et autres champs complexes.
Le but c'est de positionner automatiquement l'utilisateur sur les champs en erreur quand il valide la fiche. L'utilisateur corrige la saisie, valide, et le programme le positionne sur le champ en erreur suivant, jusqu'à validation de la fiche (tous les champs obligatoires sont renseignés).