AtelierDJ 0 Posted April 9, 2018 Report Share Posted April 9, 2018 Bonjour, Est-ce que quelqu'un aurait une solution pour réaliser le Qr code suisse fin d'éditer avec Filemaker la facturation selon cette nouvel norme (fichier en annexe) ? Avec mes remerciements et mes plus cordiales salutations. DJ ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf ig-qr-bill-fr.pdf Quote Link to post Share on other sites
0 David Julot 126 Posted April 15, 2018 Report Share Posted April 15, 2018 Bonjour, Pour générer le QR Code je vous conseille l'utilisation d'un plug-in. Il en existe deux, payants, qui permettent de réaliser rapidement des QR Code dans FileMaker : CNS Barcode : https://www.cnsplug-ins.com/Plug-ins/CNS_Barcode/ xmChart : http://x2max.com/home/ Je n'ai pas vu dans le premier la possibilité d'ajouter une image au centre du QR Code (pour l'ajout de la Croix Suisse), par contre le second oui, il a même un exemple pour générer le Swiss QR Code de paiement : http://x2max.com/docs/refs/functions/barcode_qr/ Quote Link to post Share on other sites
0 dwikstroem 55 Posted April 15, 2018 Report Share Posted April 15, 2018 Voir sussi cette discussion sur un forum gérmanophone, qui solève pas mal de points pértinents : https://filemaker-magazin.de/forum/alle-beitraege/175877 Avec, entre autre, ce fichier d’exemple : https://filemaker-magazin.de/attachements/176450/original/Fill_Form_Fields.fmp12.zip?1514360448 fabriceN 1 Quote Link to post Share on other sites
0 Esaïe 30 Posted April 17, 2018 Report Share Posted April 17, 2018 c'est aussi maintenant possible avec MBS avec la croix suisse, il y a un exemple de génération spécifique Quote Link to post Share on other sites
0 Clem 200 Posted April 19, 2018 Report Share Posted April 19, 2018 Bonjour, c'est aussi possible avec le plugin (gratuit) Scriptmaster et l'API Google "zxing" (juste les modules core et javase). zxing_QRCodeWriteWithImageOverlay( QRC_Data ; QRC_Height ; QRC_Width ; IMGOverlay_Path ; QRC_OutputPath ) les paramètres de la fonction étant: QRC_Data: les données à représenter sous forme de QRCode. QRC_Height : la hauteur en pixels du QRCode. QRC_Width: la largeur en pixels du QRCode . IMGOverlay_Path: le chemin (au format Système) de l'image à ajouter en superposition. (the swiss cross) QRC_OutputPath: le chemin de sortie (au format système) de l'image représentant le QRCode. RegisterGroovy( "zxing_QRCodeWriteWithImageOverlay( QRC_Data ; QRC_Height ; QRC_Width ; IMGOverlay_Path ; QRC_OutputPath )" ; "import com.google.zxing.BarcodeFormat¶ import com.google.zxing.EncodeHintType¶ import com.google.zxing.WriterException¶ import com.google.zxing.client.j2se.MatrixToImageWriter¶ import com.google.zxing.qrcode.QRCodeWriter¶ import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel¶ ¶ import javax.imageio.ImageIO¶ import java.awt.*¶ import java.awt.image.BufferedImage¶ ¶ import static java.awt.AlphaComposite.getInstance¶ ¶ try{¶ def writer = new QRCodeWriter()¶ def hints = new HashMap<>()[EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H]¶ def matrix = writer.encode( QRC_Data, BarcodeFormat.QR_CODE, QRC_Height as int, QRC_Width as int, hints )¶ ¶ def qrImg = MatrixToImageWriter.toBufferedImage(matrix)¶ def overlay = ImageIO.read(new File( IMGOverlay_Path ))¶ ¶ // Deltas Hauteur/Largeur¶ deltaHeight = qrImg.height - overlay.height¶ deltaWidth = qrImg.width - overlay.width¶ ¶ // Dessine nouvelle image PNG avec superposition img additionnelle centrée¶ def combined = new BufferedImage(QRC_Height as int, QRC_Width as int, BufferedImage.TYPE_INT_ARGB)¶ def g = combined.graphics as Graphics2D¶ g.drawImage qrImg, 0, 0, null¶ g.composite = getInstance(AlphaComposite.SRC_OVER, 1f)¶ g.drawImage overlay, Math.round(deltaWidth / 2) as int, Math.round( deltaHeight / 2) as int, null¶ ¶ ImageIO.write(combined, \"PNG\", new File( QRC_OutputPath ) )¶ true¶ } catch (WriterException w){¶ \"ERROR: $w.message\"¶ } catch (Exception e){¶ \"ERROR: $e.message\"¶ }"; "isGui=false" ) Par flemme, je n'ai pas intégré dans le code ci-dessus une 'croix suisse' se recalculant/redimensionnant automatiquement selon la quantité de données à afficher dans le QRCode (…mais cette opération est facilement intégrable dans le script groovy…). -------------------------------------------------------------------------------------------- Pour l'exemple et pour l'image de superposition, j'ai produit 3 images de taille différentes(à 24/32/48 px) et pour les données , le texte de l'url de ton message… Pour info,ma version de FM ne permettant des scripts 'modernes' , ces images ont produites avec une vielle version des APIs (2010 env.) ------------------------------------------------------------------------------------------------------ dwikstroem 1 Quote Link to post Share on other sites
0 Clem 200 Posted April 19, 2018 Report Share Posted April 19, 2018 @dwikstroem Vielen Dank, lieber EU Nachbar! Quote Link to post Share on other sites
0 dwikstroem 55 Posted April 19, 2018 Report Share Posted April 19, 2018 De nada! Quote Link to post Share on other sites
0 AtelierDJ 0 Posted April 22, 2018 Author Report Share Posted April 22, 2018 Bonsoir à chacun et grand merci de vos aides. Comme je suis débutant avec FileMaker et n'ayant pas de formation en informatique, j'aurais besoin d'un B-A BA pour m'en sortir ou lors si l'un ou l'autre pouvait me forunir un fichier exemple ce serait magnifique. J'ai bien installé le plugin (gratuit) Scriptmaster et l'API Google "zxing" (juste les modules core et javase) mais après, je galère ;-((( Merci d'avance à vous. Quote Link to post Share on other sites
0 Clem 200 Posted April 23, 2018 Report Share Posted April 23, 2018 Bonjour, pas de pb pour un exemple; mais juste un peu de temps pour relire plus en détails les spécifications techniques et fonctionnelles du payement Swiss QRCode, intégrer l'automatisation de la mise à l'échelle de la croix suisse et … produire le document. dwikstroem 1 Quote Link to post Share on other sites
0 Esaïe 30 Posted May 3, 2018 Report Share Posted May 3, 2018 Hello c'est assez basic pour créer le qr code de payement suisse. Il n'est pas codé d'une quelconque façon (JSON), juste des mises à la ligne (l'exemple complet est à la page 30 de ce document : https://www.paymentstandards.ch/dam/downloads/ig-qr-bill-fr.pdf ), par exemple en ligne 17 c'est le montant et en ligne 27 le numéro de référence Quote Link to post Share on other sites
0 AtelierDJ 0 Posted May 9, 2018 Author Report Share Posted May 9, 2018 Bonsoir à chacun et merci de vos commentaires, remarques bien aidantes. Comme je ne suis pas un spécialiste, je vais attendre l'exemple de Clem qui j'espère me sortira l'épine du pied;- Quote Link to post Share on other sites
0 Clem 200 Posted May 14, 2018 Report Share Posted May 14, 2018 Bonjour, Merci pour ta patience (suisse) et sincèrement désolé d'avoir été aussi (français) long… Après lecture des spécifications (de la foule de contraintes cachées), épluché la FAQ de SIX-Interbank, trituré leur exemple Java (qui ne répond absolument pas aux pb et aux contraintes), je me suis plongé au départ dans un des sites de DENSO WAVE Inc pour essayer de déterminer au mieux la version de QRCode à employer en fonction de la quantité de données, la taille du module etc, croisé les infos de SIX-Interbank, MoneyToday.ch et plein plein d'autres encore. Au fil des navigations et recherches, j'ai débusqué 'qrinvoice-core-0.7.jar' (sous licence AGPL) une superbe API développée par Codeblock GmbH qui garanti à 100% la conformité du Swiss QR. Cette API, utilise également en dépendances l'API Google zxing (core & java se), contrôle absolument l'ensemble des paramètres requis, leur conformité (ex: Caractères ISO-8859-1 uniquement, checksum de l'IBAN modulo 97 (CH/LI uniquement), contrôle du numéro de référence par Swiss modulo-10, l'emploi de la bonne version de QR en fct de la quantité de données (ce qui entraîne des dimensions du QR variables), une croix suisse de 5mm à ~14% du QR , un QR code sans Quiet Zone (celle-ci, de 5mm, est déterminée par le placement du QR sur le format A6.) etc… etc…. L'API permet également d'imprimer les factures A4, A5 et A6 au format PDF. et utilise pour cela qrinvoice-openpdf-0.7.jar [iText4] ou qrinvoice-itext5-0.7.jar [iText5])… mais ça c'est pour plus tard, lorsque j'aurais mieux saisi l'api… faut dire que Java 8 et ses Lambdas c'est du tout neuf pour moi! … De ce que j'ai à peu près saisi pour le moment … (juste la partie QR Code dans son environnement A6). NOTE: Au premier démarrage, le fichier nécessite une connexion Internet pour télécharger les API. Swiss QR Invoice.zip fabriceN and sordar 1 1 Quote Link to post Share on other sites
0 Voilier211 0 Posted May 16, 2018 Report Share Posted May 16, 2018 Hello Clem, Un grand merci pour ton aide qui, j'espère, pourra me faire passablement avancer. En regardant ton script SWISS QR INVOICE - Generate, je constate qu'à la ligne 19 j'ai <Fonction manquante> qui apparaît. Pourrais-tu stp me dire de quelle fonction il s'agit ? Quote Link to post Share on other sites
0 Clem 200 Posted May 16, 2018 Report Share Posted May 16, 2018 Bonsoir, les deux fonctions ScriptMaster qui s'enregistrent 'normalement' au démarrage de la solution sont: codeblock_QrBill( SPC ; printUltimateCreditor ; desiredQrSize ; pathToQrCode ) zxing_QrDecodeFile( filePath ; charset ; correctionLevel ) C'est le script "Register Functions" qui initialise ses deux fonctions et ce script fait partie intégrante de la procédure d'initialisation "Startup" . Vérification (sommaire) de ScriptMaster, Vérification version Java, Vérification & Téléchargement des fichiers jars, Chargement des librairies jars Enregistrement des fonctions Je n'arrive pas à comprendre comment tu es arrivé à une <Fonction manquante> à part un Script Debugger au lancement du fichier et et le script de démarrage subitement interrompu…(Ctrl+F8) Quote Link to post Share on other sites
0 Voilier211 0 Posted May 17, 2018 Report Share Posted May 17, 2018 Merci pour ta réponse. A l'ouverture du fichier, il m'indique effectivement mais j'ai mis à jour Java et ça persiste. Quote Link to post Share on other sites
0 Clem 200 Posted May 17, 2018 Report Share Posted May 17, 2018 … ta version ScriptMaster est bien la 5.xx? Quote Link to post Share on other sites
0 Voilier211 0 Posted May 17, 2018 Report Share Posted May 17, 2018 Oui c'est la 5.09 Quote Link to post Share on other sites
0 Clem 200 Posted May 17, 2018 Report Share Posted May 17, 2018 La numérotation de version de Java ayant changée depuis la 1.8… et moi de bondir (de joie aussi) de la v.12 à la v.17 Il va falloir revenir au code que j'avais initialement écrit (mais bon dieu pourquoi changer??) Dans le script Check ScriptMaster and Java……", désactive ou supprime les lignes 12 et 13 et remplace les par les 12 & 13 çi dessous … et bien sûr relancer ensuite le script "Startup" Il reste à corriger le script "Swiss QR Invoice -Read" au cas où la solution et les PNG sont sur un support externe Mac. J'apporterais ces motifs en ecrasant le fichier zip plus haut… Quote Link to post Share on other sites
0 AtelierDJ 0 Posted May 21, 2018 Author Report Share Posted May 21, 2018 Bonsoir Clem, Merci beaucoup de ton aide précieuse. De mon côté, je crois avoir tout installé selon le descriptif ci-dessous. En testant la base modèle, lorsque j'utilise le script pour générer le QR code, je reçois le message "ERROR: null" Aurais-tu une solution pour ce problème probablement de béotien? ? Quote Link to post Share on other sites
0 Clem 200 Posted May 22, 2018 Report Share Posted May 22, 2018 Bonjour, j'ai beau tourner la fonction dans tous les sens, je n'arrive pas à reproduire le problème. Peut être est-ce dû à des paramètres Système différents (dates/nombres) ? Pourtant dans les options de fichier j'ai bien coché "Toujours utiliser les paramètres système en cours" … Que donne un clone sans fiche ? --> Menu Fichier/ Enregistrer une copie… (En créant un clone, FileMaker utilise à ce moment les paramètres du sytème en cours d'utilisation. Paramètres inscrits en dur dans le fichier.( format date et numérique)). As-tu essayé en créant une nouvelle fiche ? Peux-tu poster en message personnel le contenu de la rubrique "SwissPaymentCode_ct" de l'enregistrement que tu montres et celui d'un enregistrement fraîchement créé. Ajoutes également la valeur du chemin au dossier "Qr-Invoices". Quote Link to post Share on other sites
0 Clem 200 Posted May 24, 2018 Report Share Posted May 24, 2018 Ticket 287437 résolu. L'extraction manuelle de l'archive était partielle. (Le fichier FM n'était pas accompagné du dossier "Qr-Invoices")… la version 2 inclura donc la vérification/création de dossier. Quote Link to post Share on other sites
0 Napoleon 0 Posted June 11, 2019 Report Share Posted June 11, 2019 Bonjour, J'ai utilisé la fonction de Luhn , (merci à Clem) pour la référence de paiement de mon BVR et ça marche Par contre lorsque je l'applique au montant, cela donne une clé incompatible avec le système suisse. Exemples : 010000006000 devrait donner 4 selon le système suisse mais Luhn donne 2 010000124300 devrait donner 2 selon le système suisse mais Luhn donne 3 Peut être qu'il y a une autre fonction pour calculer la clé ?! Merci de votre aide Napoléon Quote Link to post Share on other sites
0 Esaïe 30 Posted June 11, 2019 Report Share Posted June 11, 2019 Salut Napoleon Ce fil parle des futures qr code pour les futures BRV, crée une nouvelle question pour ne pas tout mélanger pour ta question concernant les anciens Quote Link to post Share on other sites
0 AtelierDJ 0 Posted June 11, 2019 Author Report Share Posted June 11, 2019 Hello, Un fichier FM12 avec calcul du chiffre selon le système modulo 10 pour répondre à Napoleon. Cordiales salutations. FichierClient.fmp12 Quote Link to post Share on other sites
0 Napoleon 0 Posted June 11, 2019 Report Share Posted June 11, 2019 Merci beaucoup, ça marche bien ! Quote Link to post Share on other sites
0 al_pacino34 0 Posted April 15, 2020 Report Share Posted April 15, 2020 Le 14/05/2018 à 11:09, Clem a dit : Quote Link to post Share on other sites
Question
AtelierDJ 0
Bonjour,
Est-ce que quelqu'un aurait une solution pour réaliser le Qr code suisse fin d'éditer avec Filemaker la facturation selon cette nouvel norme (fichier en annexe) ?
Avec mes remerciements et mes plus cordiales salutations.
DJ
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
ig-qr-bill-fr.pdf
Link to post
Share on other sites
50 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.