Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
Bonjour Cher tous,
Je suis débutant en Powerbuilder, J'ai écrit une petite application en powerbuilder avec un Datawindow qui affiche en liste les données, j'utilise également un ActiveX dans TBarCod (en version 8) que je manipule sans problème, je voudrai pour chaque ligne dans mon datawindow avoir le code barre correspondant a un champ donné de mont datawindow, seulement je ne sais pas par ou commencer.
Pourriez-vous m'en dire d'avantage?
?
Dernière modification par b2oba (05-03-2008 06:25:11)
Hors ligne
deja, comment ca marche TBarCod ? c'est une police de caractere ?
Hors ligne
Quand vous lui passer le Code bar (ole_2.object.text = "1236957136432" ) le composant se met directement ajour (sous forme d'image) selon le code bar que vous passerez à la propriété text de l'ActiveX.
Hors ligne
Dans ta DW tu as quoi ?
Un champs avec le code barre en format text ainsi que les autres colonnes que tu veux recuperer ?
Si c'est le cas regarde dans l'aide FIND pour recuperer la ligne de la DW comportant le code barre que tu recherches et après tu fais des getItem ....
Hors ligne
Exactement il y a plusieurs champs dont un contient le code barre, et ce qui me bloque c'est que sur mon datawindow dans la bande détail, j'y met mon Controle ActiveX (TBarCod) qui doit être repris au tant de fois qu'il y aura des lignes après le retrieve() tout en mettant à jour la proriété Text de l'ActiveX qui va redessiner le Code barre pour chaque ligne en fonction du code barre affecté à la propriété Text.
J'ai lu le User’s Guide ® PowerBuilder 10.0 de la page 797 à la page 816 ça semblait m'aider mais au finish j'ai suivi tout ce qui est dit dans le manuel mais hélas pas de solution.
SOS
Pourriez vous m'aider a resoudre ce problème.
Hors ligne
Pourquoi ne pas prende une police code barre ?
cela ne repond pas à ta question mais devrait regler ton probleme
Hors ligne
Le grand problème c'est qu'un ActiveX est de loin plus intelligent qu'une simple et bête police, la police de code barre telle que "Paskowy" ne se contente que de faire des correspondances entre un caractère et son équivalence dans la police. il ne tient compte d'aucun critère pour générer le code barre, or l'ActiveX lui est conçu pour ça. Ce qui fait que le fait d'utiliser la police code ne ressoud en rien le problème.
Merci quand même.
Hors ligne
c'est possible d'avoir une copie de ta dll ?
envoyes moi sur mon email
Hors ligne
Le nom de la dll dll c'est TEC-IT TBarCode 8
Dernière modification par b2oba (06-12-2007 05:57:35)
Hors ligne
Le nom de la dll dll c'est TEC-IT TBarCode 8
Je sais now acceder à mon ActiveX à l'evénement retrieverow, mais seulement il ne s'affiche pas sur la Datawindow quand je lance mon application.
Bien j'ai pu contourner une partie du problème de la manière suivante : à l'événement retrieverow(...)
je recupere la valeur du code barre de la ligne courante, je la passe à mon activeX, celui-ci me genere le code barre que j'enregistre comme image JPG sour le nom de "Code_Barre.JPG" sur mon disque dur, et ce n'est que par après que je les charge dans mon composant Picture qui est dans la bande detail en fonction du code barre (code_barre + ".JPG").
Mais je me suis buté à un autre problème ce que sur toute la colonne de mon Picture j'ai la même image au lieu d'avoir des images différentes pour chaque code barre. et cette image est l'image de la dernière ligne qu'on repete partout.
Est-ce quelqu'un pourrait avoir idée pour ce cas.
Merci.
Hors ligne
c'est possible de voir tes codes ?
Hors ligne
b2oba a écrit:
je recupere la valeur du code barre de la ligne courante, je la passe à mon activeX, celui-ci me genere le code barre que j'enregistre comme image JPG sour le nom de "Code_Barre.JPG" sur mon disque dur, et ce n'est que par après que je les charge dans mon composant Picture qui est dans la bande detail en fonction du code barre (code_barre + ".JPG").
Bonjour, AMHA, ton problème vient du fait que tu nommes toujours ton fichier image du même nom. Du coup, à chaque ligne récupérée il écrase le fichier précédent. Essaye de leur donner un nom unique (du style n_code_barre + ".BMP").
De plus, personnellement, j'utiliserai plutôt un compute field avec l'expression suivante: bitmap( n_code_barre + ".BMP") à la place de la picture.
Hors ligne
string i, ls_image i = String(cdw_customer.Object.Data[row,1] ) //je recupère le code barre de la ligne courante ole_codebarre.object.text = i //je passe le code à l'ActiveX qui me genère l'image correpondant au code barre i ole_codebarre.object.barcode =20 //' 20 = Code 128 ls_image = "temp_cb/" + i + ".bmp" //Je precise le chemin et le nom de l'image (Code barre) à enregistrer ole_codebarre.object.SaveImageEx(0,ls_image,4,100,300,100,127,127) //J'enregistre maintenant l'image cdw_customer.object.p_codebarre.FileName = ls_image //puis je charge l'image enregistré sur dans le dossier "temp_cb" pour la ligne courante
Ce code s'exécute à l'évenement retrieverow(...) de mon contrôle Datawindow.
Dernière modification par b2oba (06-12-2007 10:09:41)
Hors ligne
cdw_customer.object.p_codebarre.FileName = ls_image //puis je charge l'image enregistré sur dans le dossier "temp_cb" pour la ligne courante
Voilà l'origine de ton problème: tu ne peux pas préciser de numéro de la ligne => Il met donc à jour la totalité des lignes de la colonne p_codebarre.
Essaye plutôt avec un champ "s_bitmap" de type string non visible que tu initialiseras comme ceci:
cdw_customer.object.s_bitmap[ row ] = ls_image
et une compute "c_bitmap "avec l'expression suivante:
bitmap( s_bitmap )
Ton code barre sera alors affiché dans la compute.
Hors ligne
Merci foon
j'ai essayé c'est passé seulement j'ai remarqué que les images au format bitmap ne sont pas affichés alors je du les générer au format JPG.
Hors ligne
C'est à dire? L'activeX ne peut pas générer des .BMP ou c'est la compute qui n'arrive pas à afficher les .BMP générés?
Hors ligne
Bonjour,
Le problème est-il résolu?
Hors ligne
Ce qui qui est doit mettre la marque [Resolu]
Hors ligne
Bonjour,
Il te suffit de modifier le titre du premier message de ce topic en ajoutant [RESOLU] devant.
Hors ligne
Comment est créé le controle active X ??
Hors ligne
julien a écrit:
Comment est créé le controle active X ??
évitons de déterrer des messages résolus...
de créer un nouveau message, en indiquant si besoin le lien de la discussion d'origine
Hors ligne
Pages: 1