Message de rapport:
 

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
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2