Re: comment simuler un enter (return ) par programmation |
Sujet: Re: comment simuler un enter (return ) par programmation par lass1250 sur 28/5/2009 17:25:54 Tu as raison ASTHROTH ,j'ai modifier ma logique 1 premier test je viens de faire un test : j'ai créée une table en saisie avec 3 colonnes dont une en saisie les deux autres en lecture cela fonctionne très bien sans avoir à faire "enter" je passe bien à la ligne suivante et je suis en saisie dans la colonne NoTag C O D E 1 test //**************************************************** dans le code de la colonne NoTag à chaque modification j'ai mis le code suivant: si taille(moimeme)=3 alors // pour controler la saisie de 3 caractères Prenom = "aaaaaaaaaaaaaa" Nom = "bbbbbbbbbbbbbbb" Description = "ccccccccccc" tableajouteligne(table_table1) tableselectplus(table_table1,tableoccurrence(table_table1)) reprisesaisie(table_table1.col_colonne1) fin // **************** fin code test 1 ***************** Par la suite j'ai ajouter La gestion du port serial et la procedure reception en me disant que cela devrait fonctionner,mais non retour a la case de depart Il ne veut pas passer a la modification de Notag J'ai mis un info au debut de modification NoTag pour verifiez Voci le code que j'ai fait C O D E test 2 // *********** Declaration global de fenetre ***** // declaration du serial GLOBAL Port est un entier gsGuyBuffer est une chaîne LOCAL Taux est un entier Parite est un entier BitDonnee est un entier BitStop est un entier Port=1 Taux=9600 Parite= 0 BitDonnee=8 BitStop=0 // sOuvre(Port,5000,5000)=FAUX ALORS SI sOuvre(Port,5000,5000,sTimeoutDéfaut,Vrai)= Faux ALORS Erreur("Erreur lors de l'ouverture du port "+Port) Ferme() FIN sFixeParamètre(Port,Taux,Parite,BitDonnee,BitStop) //timer("sReception",50,1) //-- Fin du code généré par l'assistant sEvénement(1,sEveCaractèreReçu,SRECEPTION) SRECEPTION() // ******************************************************* // ******** initialisation de la table ************* DonneFocus(TABLE.NoTag) // *************************************************** // **** a chaque modification de NoTag ********** Info ("guy",NoTag) // l'info ne sort pas il n'a pas acces SI Taille(MoiMême)=14 // pour controler la saisie de 14 caractères // Initialise la requête SI PAS HExécuteRequête(REQ_VetementTag,hRequêteDéfaut,Gauche(NoTag,12)) ALORS Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo()) RETOUR FIN // lecture du premier enregistrement de la requête HLitPremier(REQ_VetementTag,NoTag) NoTag = REQ_VetementTag.NoTag Prenom = REQ_VetementTag.Prenom Nom = REQ_VetementTag.NomEmployer Description = REQ_VetementTag.DescService HAnnuleDéclaration(REQ_VetementTag) TableAjouteLigne(TABLE) TableSelectPlus(TABLE,TableOccurrence(TABLE)) RepriseSaisie(TABLE.NoTag) FIN // *********** ************************************* PROCEDURE SRECEPTION() wtaille est un entier sBuffer est une chaîne nbcaralire est un entier nbcaralire=14 //Fintimer(1) wtaille=sDansFileEntrée(Port) // Lecture des informations sur le port série SI wtaille>nbcaralire ALORS sBuffer=sLit(Port,nbcaralire) Trace(Port,sBuffer,wtaille,sDansFileEntrée(Port)) NoTag = sBuffer // 14 caracteres FIN //Timer("sReception",50,1) RENVOYER(NoTag) //************************************************************* fin du C O D E A la lecture le trace de la fonction SRECEPTION est bonne l"information RENVOYER(NoTag) va s'inscrire dans NoTag et attend un return Une fois le return effectuer,il n'afficche pas les autre colonnes c'est normal car il ne passe pas par modification de NoTag il passe a la ligne suivante sur NoTag,c'est normal ila eu son retour et les autres colonnes sont innactifs en saisise Alors comment on peut le dejouer pour lui dire qu'il est en modification Ou autres solutions |