PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → incrementer
incrementer
Started by colonelklinke, Mar., 29 2006 9:57 PM - 8 replies
Posted on March, 29 2006 - 9:57 PM
Bonjour,

Voilà, je voudrais qu'a chaque fois que je créer un nouveau client, la case (N°Client) s'incremente de 1 par rapport au dernier enregistrement.

Je me suis fais péter les neuronnes et là je suis bon pour la camisole de force(hehe!)

Donc ceci est un S.O.S,

Merci d'avance
Posted on March, 29 2006 - 10:57 PM
Le 29 mars 2006 à 20:57, dans <news:442abdcd$1@news.pcsoft.fr>, Eric
nous disait :

Voilà, je voudrais qu'a chaque fois que je créer un nouveau client, la
case (N°Client) s'incremente de 1 par rapport au dernier
enregistrement.


Solution rapide : il suffit de définir le fichier clients comme ayant un
identifiant automatique et de prendre la valeur de cet identifiant comme
n° client.

--
Eric
Posted on March, 29 2006 - 10:57 PM
Si ton numéro client est dans ton fichier, tu crees une vue sur NumeroClient Sens croissant et tu récupères le dernier puis tu supprimes ta vue. ou Hlitdernier(TONFICHIER,NUMCLIENT)
Posted on March, 29 2006 - 11:40 PM
je te remercie pour la solution, qui avec du recul est interessante!

Je cherchais plus compliqué que ca.

Merci pour cette reponse rapide et @ bientôt
Posted on March, 29 2006 - 11:40 PM
Salut,

est-ce que ton numéro de client est un id. automatique?

Mathieu
Posted on March, 30 2006 - 8:07 AM
Bonjour,

La solution est aussi simple que ça.

Dans votre fiche client créer une procedure :

procedure mafiche(xMode="A") // A = En mode Ajout - M = En mode modification

si xMode="A"
//soit faire :
-- Hlitdernier(Client,codeclient)
---si pas hendehors(client)
------CodeClient=client.codeclt+1
------HRAZ(client)
---sinon
------CodeClient=1
---fin
---Ecranpremier(NomClient)
//Ou faire :
//-- CodeClient=HNBEnr(Client)+1
//-- Ecranpremier(NomClient)
sinon
--- Fichierversecran()
fin

Donc en mode Ajout : Ouvre(FicheClient,"A")
en mode modification Lire l'enregistrement à modifier puis : Ouvre(FicheClient,"M")

C'est simple non ?

Ali Hindi : AliDev7@yahoo.fr
Posted on March, 30 2006 - 2:01 PM
Non justement!

avec l'Id automatique je n'aurais pas eu de probleme, mais là c'est different!

En gros j'ai : Date, Technicien, Produits, Code. etc..

C'est dans la case de saisie"CODE" que je voudrais incrementer de 1 a chaque nouvelle fiche et là je bloque!

Donc si vous avez une soluce à mon probleme, j'en serais ravis
Posted on March, 30 2006 - 2:50 PM
Eric a formulé ce jeudi :


Non justement!

avec l'Id automatique je n'aurais pas eu de probleme, mais là c'est
different!

En gros j'ai : Date, Technicien, Produits, Code. etc..

C'est dans la case de saisie"CODE" que je voudrais incrementer de 1 a chaque
nouvelle fiche et là je bloque!

Donc si vous avez une soluce à mon probleme, j'en serais ravis


lastid est entier
hlitdernier(fichier,clé,blocagelectureécriture)
si htrouve() alors
lastid = monfichier.marubrique
sinon
lastid = 1
fin
// ouverture d ela fenêtre en mode création
ouvre(mafenetre,lastid)

// dans le code ouverture de la fenêtre
procedure fen(p_lLastId est entier)

etc......
;)

--
Cordialement JeAn-PhI
Posted on March, 30 2006 - 4:23 PM
Salut,

Moi je gere mes cles automatiques moi meme.

j'ai un fichier "IDRecords" qui comprend:

NomFichier, texte 30 , Cle Unique
IDCompteur , Numerique Format "9 999 999 999 999 999 999"

Pour créer un identifiant j'utilise une procedure globale

PROCEDURE gPRO_NouveauRecord(_sFichier)

iNumeroEnCours est un entier sur 8 octet

HLitRecherchePremier(IDRecords,ID_Fichier,_sFichier)

iNumeroEnCours = IDRecords.IDCompteur + 1

SELON _sFichier

CAS "Contacts"
HLitRecherchePremier(Contacts,ID_Contact,iNumeroEnCours)
TANTQUE HTrouve(Contacts)
iNumeroEnCours ++
HLitSuivant(Contacts)
FIN
CAS "Instructions"
HLitRecherchePremier(Instructions,ID_Instruction,iNumeroEnCours)
TANTQUE HTrouve(Instructions)
iNumeroEnCours ++
HLitSuivant(Instructions)
FIN

FIN


IS_IDRecords.IDCompteur = iNumeroEnCours
HModifie(IS_IDRecords)

RENVOYER iNumeroEnCours

Pour moi créer un nouveau identifiant pour un client par exemple

dans l'ini de du champ ou de la fenetre ou avant d'enregistrer

EDT_Code = gPRO_NouveauRecord("Contacts")

Voila j'aime bien utiliser cette option.