IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Formater un champ texte [WD14]


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 308
    Par défaut Formater un champ texte
    Bonjour à tous!

    J'ai une petite question "simple" pour une fois.

    Pour un logiciel de gestion de stock, j'ai une table "Commandes" et une "Réception" chacune ayant une ID auto incrémenté et un CodeCommande/CodeLivraison étant un champ texte.

    Ce CodeCommande doit être lui aussi incrémenté mais il doit pouvoir etre modifié par l'utilisateur lors de la création de la commande ou réception.

    Par exemple la 1er commande aura pour ID 1 et comme CodeCommande "COM00000001" et j'aimerais donner un "format" prédéfini à ce champ.

    Que les 3 premiers caractères soit des lettres et ensuite "00000001" à la 10ème commande ça serait "00000010" ...la 100ème "00000100" un zéro en moins à chaque fois et ainsi dessuite.

    J'ai pas forcément d'obligation dans le format, il n'est pas encore bien défini c'est une des idées que j'ai eu. Si vous avez une autre idée de "format" de code commande/reception couramment utilisé dans la gestion de stock je suis preneur.

    En vous remerciant.

  2. #2
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 402
    Par défaut
    Salut à toi,

    Plusieurs méthodes s'offrent à toi :
    - la méthode du Droite("00000000" + ID, 8) ;
    - la méthode du Répète("0", 8 - Taille(ID)) + ID.

  3. #3
    Membre Expert
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 393
    Par défaut
    Bonjour

    NumeriqueVersChaine est fait pour ça :

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NumériqueVersChaîne(1228, "08d")
    renverra "0000128"

    Tu peux aussi aussi ajouter une notion de date dans ton numéro de commande, par exemple l'année et le mois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    LOCAL
    	eID_Commande    est un entier
    	cNum_Commande	est une chaîne
    	dDateCommande	est une Date
     
    eID_Commande = 1228
    dDateCommande = DateSys()
     
    // Composition N° de commande	
    cNum_Commande =  "C" + DateVersChaîne(dDateCommande, "AAMM") + NumériqueVersChaîne(eID_Commande, "05d")
     
    Info(cNum_Commande)

  4. #4
    Membre éprouvé Avatar de Raptor92
    Homme Profil pro
    Directeur des opérations & Innovation
    Inscrit en
    Juin 2009
    Messages
    998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur des opérations & Innovation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 998
    Par défaut
    Bonjour,

    Personnellement, j'aurais opté pour la méthode suivante:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    nVariable est un entier
    sSuffixe est une chaîne
     
    sRequeteNumFacture est une chaîne="SELECT MAX(FACT_NUM) FROM FACTURES WHERE FACT_NUM_FACT LIKE '03356-%' "
    SI	SQLExec(sRequeteNumFacture,"ReqNumFacture") ALORS
    	SI	SQLAvance("ReqNumfacture") = 0 ALORS
    		nVariable=SQLLitCol("ReqNumFacture", 1)
    		sSuffixe=Gauche(nVariable,8)
    		Trace(NumériqueVersChaîne(Val(sSuffixe)+1,"09d"))
    		sSuffixe=NumériqueVersChaîne(Val(sSuffixe)+1,"09d")
    	FIN
    SINON
    	sSuffixe="000000001"
    FIN
    Je vais cherché le dernier numéro et si il n'existe pas, alors le premier est à 1 avec les zéro devant (par l'ajout de "09d")

    Bonne journée
    Raptor92
    Dominique
    Aucune aide par MP, utilisez le forum.

    Mon guide du débutant pour apprendre à programmer en Java - N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java


  5. #5
    Membre éclairé
    Inscrit en
    Avril 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 308
    Par défaut
    J'ai testé la solution de Raptor92.

    J'ai juste modifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sRequeteNumLivraison est une chaîne="SELECT MAX(Livraison.Code_Livraison) FROM Livraison WHERE Livraison.Code_Livraison LIKE '03356-%' "
    Mais SqlExec plante car apparemment la requête ne s'exécute pas

    Je test l'autre solution de hpascal qui a l'air plus simple et flexible.

  6. #6
    Membre Expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 915
    Par défaut
    tu travail avec quel SGBD?
    Hyperfile, SQLServer,MySql?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Format de champ texte
    Par Jean-Luc80 dans le forum VB.NET
    Réponses: 1
    Dernier message: 29/08/2013, 19h10
  2. Format de champ changé en texte apres requete
    Par WITER dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 24/11/2007, 14h32
  3. Champ texte format Date, abrégé vide
    Par Junior_jef dans le forum IHM
    Réponses: 10
    Dernier message: 03/07/2007, 13h25
  4. Format d'un champ texte dans un état
    Par Eruil dans le forum IHM
    Réponses: 2
    Dernier message: 02/06/2007, 13h30
  5. Format champ texte
    Par Smint dans le forum Access
    Réponses: 4
    Dernier message: 15/09/2005, 16h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo