Bonjour, étant parfaitement débutant en WinDev, je suis venu demander conseil. N'ayant pas trouvé mon problème ailleurs (peut-être mal cherché?) j'ai décidé d'ouvrir un topic.
Je suis en train de développer un petit soft pour des terminaux d'inventaire (ici Datalogic Memor X3) qui permet de faire de la simple interrogation produit. Voici l'interface avant d'expliquer :
On scanne le produit dans le champ de saisie "code barre", on valide et les cases en dessous se remplissent avec les informations affichées. Au début j'ai fait ça avec une base de données intégrée en FIC, et cela fonctionnait plutôt correctement. Cela dit, les utilisateurs finaux ne seront pas des informaticiens et n'auront pas WinDev à disposition donc s'ils veulent changer de bdd ou mettre à jour, cela peut être compliqué... J'ai donc vu qu'on pouvait lire un fichier CSV en WinDev donc je me suis dit pourquoi pas, ça serait simple à mettre à jour du coup, il suffirait que la personne remplace le csv dans le dossier pour mettre à jour et c'est mon objectif.
J'ai donc commencé à écrire un peu de code mais un problème s'est posé apparemment puisque voilà le résultat :
Et cela que le code barre dans le champ de saisie soit bon ou non. Voici le code :
Voilà la tête de mon CSV : (généré avec EXCEL)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 SI SAI_EAN = "" ALORS RepriseSaisie(SAI_EAN) NomCheminFichier est une chaîne IDFichier est un entier LigneLue est une chaîne // //// Sélection du nom et du chemin du fichier NomCheminFichier ="Interro_bdd.csv" //// Ouverture du fichier IDFichier = fOuvre(NomCheminFichier) //// Affichage du message d'erreur si l'ouverture n'a pas été effectuée SI IDFichier = -1 ALORS Erreur(ErreurInfo(errMessage)) SINON BOUCLE // Lecture de la première ligne du fichier LigneLue = fLitLigne(IDFichier) SI ErreurDétectée ALORS Erreur(ErreurInfo()) SORTIR FIN // Fin de fichier ? SI LigneLue = EOT ALORS SORTIR FIN // Traitement de la ligne lue // Ici ajout à la fin d'un champ de saisie FIN LIB_Nom =ExtraitChaîne(LigneLue, 2, ";") LIB_AchatHT = ExtraitChaîne(LigneLue, 3, ";")+" "//px achat LIB_PublicHT = ExtraitChaîne(LigneLue, 4, ";")+" "//px vente LIB_PublicTTC = ExtraitChaîne(LigneLue, 5, ";")+" "//px vente ttc // Fermeture du fichier fFerme(IDFichier) RepriseSaisie(SAI_EAN)
Je me suis inspiré du code proposé sur la doc, cela dit je ne sais pas vraiment encore comment marche la fonction fLitLigne du coup j'avais essayé de faire une recherche de SAI_EAN (qui est le champ de saisie de code barre) dans le csv avec une boucle TANTQUE mais sans succès, du moins ce qui est affiché dans les champs ne change pas... Je suis un peu coincé parce que c'est tout ce qui manque pour que l'appli fonctionne, les autres fonctions marchent parfaitement.
Partager