PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → incrementer
incrementer
Iniciado por colonelklinke, 29,mar. 2006 21:57 - 8 respuestas
Publicado el 29,marzo 2006 - 21:57
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
Publicado el 29,marzo 2006 - 22:57
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
Publicado el 29,marzo 2006 - 22:57
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)
Publicado el 29,marzo 2006 - 23:40
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
Publicado el 29,marzo 2006 - 23:40
Salut,

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

Mathieu
Publicado el 30,marzo 2006 - 08:07
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
Publicado el 30,marzo 2006 - 14:01
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
Publicado el 30,marzo 2006 - 14:50
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
Publicado el 30,marzo 2006 - 16:23
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.