Aller au contenu

Classement


Contenu populaire

Affichage du contenu le plus aimé depuis le 24/03/2018 dans toutes les zones

  1. 2 points
    Parce que nous aimons les données. Parce que la science moderne repose sur les données. Parce que nous avons besoin de la science comme la science a besoin de nous… et parce qu’on aime aussi bien rigoler… 1-more-thing sponsorise les 10km de l’ULB (Université Libre de Bruxelles), au profit de la recherche scientifique. Pour le […] Cet article Le 22 avril, venez courir avec nous est apparu en premier sur 1-more-thing. >>> Lire la suite… <<<
  2. 2 points
    dwikstroem

    Rubrique cryptée et clé USB

    Oui.
  3. 1 point
    Clem

    nouveau bvr suisse avec qr code

    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.
  4. 1 point
    Puimoisson04

    Changer police de caractère

    Ouah, il y aussi un bug avec le correcteur orthographique, non ? ;-)
  5. 1 point
    Clem

    nouveau bvr suisse avec qr code

    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.) ------------------------------------------------------------------------------------------------------
  6. 1 point
    Merci C'est toi qui as raison. Il suffisait de cocher. J'aurai du y penser plus tôt. Ne pas remplacer val. exist. de la rubrique (s’il y a lieu) Résolu
  7. 1 point
    Bertrand d'Aubais

    Securité et mot de passe

    Bonjour David, Merci pour tous ces conseils, déjà appliqués pour la plupart (je garde ta suggestion sur les privilèges des script, auquel je n'avais pas pensé
  8. 1 point
    David Julot

    Securité et mot de passe

    Bonjour Bertrand, D'une manière général il n'existe aucune protection inviolable, tout est question de temps et de moyen. Ceci ne va pas calmer ton client. Depuis de très longues années (au moins 20 ans) il existe des logiciels, principalement sur Windows, qui permettent soit de dévoiler les mots de passe des comptes (pour les plus anciennes versions de FileMaker) soit de réattribuer un mot de passe à un compte administrateur (Full Access). Dans ce que j'ai pu voir jusqu'à présent, ces logiciels fonctionnent uniquement avec une copie locale du fichier FileMaker, je n'en ai pas encore vue qui fonctionnait à distance sur un fichier hébergé par FileMaker Server. D'une manière générale, je conseille toujours d'utiliser la gestion native des autorisations d'accès de FileMaker et d'héberger le fichier sur un FileMaker Server. Si les données sont sensibles, il est possible et même conseillé de chiffrer le fichier (avec les outils de FileMaker Pro Advanced), ce qui mettra quelques batons supplémentaires dans les roues au cas où le fichier aura été récupéré du FileMaker Server. Voici une partie des règles que je conseille : un compte par utilisateur ; si l'utilisateur ne fait plus partie de l'équipe/société, etc. supprimer le compte ; si l'utilisateur s'absente pour une période plus ou moins longue désactiver le compte ; le compte et mot de passe Administrateur (Full Access) de la base doit être stocké en lieu sûr (par exemple le coffre fort) ; le compte Administrateur ne doit pas être utilisé comme compte utilisateur, mais uniquement occasionnellement pour administrer la base ; ne pas utiliser l'option «Accorder les privilèges d'accès intégral» à un script ; c'est à l'utilisateur de définir son mot de passe et il doit être connu de lui seul, pas de l'administrateur ; proscrire tout développement de gestion d'authentification du style : on ouvre la base puis un script affiche une boîte de dialogue (ou un modèle) qui demande à l'utilisateur de saisir son compte et son mot de passe. Si l'on souhaite une authentification plus forte, on peut utiliser des API pour la mise en place d'une authentification à deux facteurs 2FA, il y a en une qui est simple à mettre en place : https://authy.com
  9. 1 point
    Apophis000

    Calculer le nom d'un fichier PDF

    Bonjour Regarde ici a +- 05:09 min , ça explique bien comment il faut faire ( en anglais ) "https://youtu.be/0BLABBZ8tbM"
  10. 1 point
    LaurentNC

    Relation client et bon de commande

    Bonjour , et bien voila ma base de donnée et complement fonctionnel et répond parfaitement a mes attentes. Je remercie particulièrement Apophis000 qui a su me trouvez les solutions a mes problème diverse et qui ma servie a mieux comprendre les bases FileMaker . merci a vous Apophis000 ..
  11. 1 point
    Philippe ROTTIER

    Script sur temporisation

    Avec 60 secondes pour une heure, comme le temps passe vite... Un seul script est suffisant, il testera à la suite une fois par heure : moins une heure, moins un jour et moins une semaine. Le mieux est de déclencher le script à partir du programme de FileMaker Server une fois. Sinon, tu auras des interruptions bizarres au milieu de ton travail, ça sera le script qui se mettra en marche tout seul sur ton poste... Une autre solution est d'utiliser un FileMaker robot ouvert sur un poste isolé voire sur le poste serveur.
  12. 1 point
    Apophis000

    Intervalle de recherche

    Normalement 100...199 c’est juste . Vérifie que tu a pas des espaces ou autre de trop... Ici tu peu aussi faire 1## comme recherche cava prendre que les chiffre de 100 a 199
  13. 1 point
    dwikstroem

    Intervalle de recherche

    Il faut que la rubrique soit du type nombre, pas texte.
  14. 1 point
    Esaïe

    Courriels en masse

    Bonjour Noël Attention au fait que les serveurs de mail SMTP ont des protections anti spam et qu'ils bloquent les envoi de masse! Il te faut donc soit mettre en place une "queue" qui envoie 20message toutes les 5-10min, soit que ton hébergeur soit d'accord de te débloquer un compte ou soit que tu ouvres un compte chez elasticmail qui permet l'envoi par smtp
  15. 1 point
    Apophis000

    GANTT dans FileMaker

    " https://youtu.be/S47jurVEwI4 " Si ça peu aidée ...
  16. 1 point
    Integrating A JavaScript PDF Viewer Into Native FileMaker—No JavaScript Coding Required! We recently built an application that included PDF document management. While it might seem as simple as a quick FileMaker container field, we wanted to impress our client with an integrated solution on par with a content management system (CMS). Here’s how we built […] Afficher la totalité du billet
  17. 1 point
    lem alpha

    Plugins de dialogue

    Salut Noël, je vais peut-être faire une suggestion idiote, mais pourquoi ne te fais-tu pas un modèle "fenêtre carte" (ou "modale" si la version ne le permet pas), avec une série de globales dédiées, et un script que tu appellerais avec une série de paramètres, et qui imiterait la fonction du plugin ? Plus de dépendance à un plugin, totalement natif, contrôle complet de l'apparence, formatage du texte, listes de valeurs, cases à cocher, et tout artifice visuel que tu peux imaginer... Pas plus long et compliqué à mon sens que d'apprendre à le faire avec Scriptmaster... (je ne nie pas pour autant le côté "enrichissant" d'apprendre à le faire comme ça... )
  18. 1 point
    Puimoisson04

    Enregistrements non liés dans un relation N à N

    Bonjour, Une solution est de faire, dans la table intermédiaire, une liste des Id Personnel d'une prestation et de lier cette liste par un lien ≠ à une OT de Personnel. Ferbak.fmp12.zip
  19. 1 point
    fabriceN

    Rubrique cryptée et clé USB

    Merci pour la citation David La réponse en vidéo ici (le lien pointe sur le bon timecode qui concerne cette question)
  20. 1 point
    tcolles

    Importer seulement nouveaux enregistrements

    Bonsoir, Tu peux définir que cet ID dans FileMaker doit être unique via la validation de la rubrique. + cocher que cette validation s'effectue systématiquement et ne pas autoriser les modifications utilisateurs. Dès lors, lors d'un import en ajout d'enregistrements, seules les lignes dont l'ID n'existe pas encore seront importées. (les autres seront rejetées en raison de l'erreur de validation) bien à toi, Tanguy
  21. 1 point
    Clem

    Etiquettes 4 par pages

    J'oubliais, ou plutôt ça me revient; il y à aussi cet ancien billet de @David Julot à propos d'une Histoire X
  22. 1 point
    Olivier Devriese

    Barre de progression

    Bonjour, Une piste aussi pour faire une barre de progression native sous MacOS et Windows dans un web viewer dont voici un extrait : data:text/html,<html> <body style='border: 0; margin: 0'> <progress max='" & _vwWidth & "' value='" & _progressValue & "' style='width: 100%;'></progress> </body> </html> Il suffit de remplacer les 2 variables _vwWidth (longueur en px de la barre de progression) et _progressValue (longueur de la progression) pour en ajuster l'affichage.
  23. 1 point
    fabriceN

    Problème à la fermeture du fichier

    Surtout pas ! c'est la seule chose à ne pas faire. On récupère un fichier quand il est corrompu et qu'on veut en récupérer les données, mais pas pour continuer à l'utiliser.
  24. 1 point
    ericire

    Barre de progression

    Salut le calcul suivant avec pour résultat texte calcule le nombre de jours entre deux dates et les convertis en carrés noirs ou blancs selon la date du jour. les carrés sont obtenus avec la police wingdings 2 Definir ([ _DateDeb = OT::DateDebut ;//rubrique _DateFin = OT::DateFin ;//rubrique _DateJour = Obtenir(DateActuelle) ; _nCN = Cas ( _DateJour > _DateDeb And _DateJour < _DateFin ; _DateJour - _DateDeb ; _DateJour > _DateDeb And _DateJour ≥ _DateFin ; _DateFin - _DateDeb - 1 ); //nombre carres noirs _nCB = Si ( _DateJour < _DateFin ; _DateFin - _DateJour - 1 ); //nombre carres blancss _CN = Si ( _nCN > 0 ; Substituer ( 10^_nCN - 1 ; 9 ; Caractere ( 61602 ) ) ) ; //carre noir _CB = Si ( _nCB > 0 ; Substituer ( 10^_nCB - 1 ; 9 ; Caractere ( 61603 ) ) ) //carre blanc ]; Si ( _DateFin > _DateDeb ; _DateDeb & Caractere ( 32 ) & PoliceTexte ( _CN & _CB ; "wingdings 2") & Caractere ( 32 ) & _DateFin ) ) et si tu n'as pas cette police mais Arial en les grossissant un peu avec TailleTexte() Definir ([ _DateDeb = OT::DateDebut ;//rubrique _DateFin = OT::DateFin ;//rubrique _DateJour = Obtenir(DateActuelle) ; _nCN = Cas ( _DateJour > _DateDeb And _DateJour < _DateFin ; _DateJour - _DateDeb ; _DateJour > _DateDeb And _DateJour ≥ _DateFin ; _DateFin - _DateDeb - 1 ); //nombre carres noirs _nCB = Si ( _DateJour < _DateFin ; _DateFin - _DateJour - 1 ); //nombre carres blancs _CN = Si ( _nCN > 0 ; Substituer ( 10^_nCN - 1 ; 9 ; Caractere ( 9632 ) ) ) ; //carres noirs _CB = Si ( _nCB > 0 ; Substituer ( 10^_nCB - 1 ; 9 ; Caractere ( 9633 ) ) ) //carres blancs ]; Si ( _DateFin > _DateDeb ; _DateDeb & Caractere ( 32 ) & TailleTexte ( PoliceTexte ( _CN & _CB ; "Arial") ; 18) & Caractere ( 32 ) & _DateFin ) )
  25. 1 point
    dwikstroem

    ORDEN DE POSICION EN UN LISTADO

    Aùn si deben haber varios usuarios de FMSource que pueden contestarle en el idioma que sea, también hay un foro FileMaker en castellano: http://www.udias.com/foro/index.php.
  26. 1 point
    ericire

    Problème à la fermeture du fichier

    salut j'ai déjà vu ce genre de message mais je ne me souviens pas dans quelle circonstance. Cela vient de Windows et de son traitement de la fermeture de FM qui parfois indique ce message comme s'il y avait eu un plantage. peut-être du à un Plugin ? En tous cas je n'ai jamais vu de conséquence facheuse ou de corruption du fichier. Si ça se répète sur un fichier spécifique, peut-être utiliser la fonction réparer du menu fichier.
  27. 1 point
    fabriceN

    Problème à la fermeture du fichier

    Bonjour, as-tu des plugins installés ?
  28. 1 point
    fabriceN

    Fonctions Rubriques multivaluées

    Hommage à @lem alpha (very funny)
  29. 1 point
    dwikstroem

    Fonctions Rubriques multivaluées

  30. 1 point
    benka

    Importer .csv de 10 millions de lignes - bug ?

    J'ai tenté avec mysql : 19 minutes pour les 10 millions de lignes!
  31. 1 point
    Clem

    Ecart Entre 2 Dates

    Si( Date1 And Date2; Definir( [ comp = Cas( Date1 > Date2; -1; 1 ); d1 = Cas( comp < 0; Date2; Date1 ); d2 = Cas( comp < 0; Date1; Date2 ); d = Mod( Jour( d2 ) - Jour( d1 ); Jour( Date( Mois( d1 ) + 1; 0; Annee( d1 ) ) ) ); m = Mod( Mois( d2 ) - Mois( d1 ) - ( Jour( d2 ) < Jour( d1 ) ); 12 ); y = Annee( d2 ) - Annee( d1 ) - ( ( Mois( d2 ) - ( Jour( d2 ) < Jour( d1 ) ) ) < Mois( d1 ) ) ]; y & " an(s), " & m & " mois et " & d & " jour(s)" ) )
  32. 1 point
    fabriceN

    Hl7

    Juste un grain de sel : Insérer URL associée au protocole file permet de passer en mémoire le contenu du fichier sans passer par une table temporaire.
  33. 1 point
    ericire

    Calcul De Date A Date Sans Le Week End

    une version 2 avec la possibilité de préciser les jours de repos (par exemple les mercredis) //Jours ouvrés dans l'année d'un intervalle de dates //Plassot Eric le 6/10/2012 //Le principe est de soustraire au nombre de jours d'un intervalle moins le nombre de jours fériés ne se situant pas le week end ajouté à celui des jours du week end. //il vous appartiens de vérifier que l'intervale est positif et que les dates sont cohérentes Definir ([ $date_dep = ObtenirDate ( "01/10/2012" ) ; $date_fin = ObtenirDate ( "31/10/2012" ) ; J_non_travailles ="1,2,3,7";//1 pour dimanche, 2, pour lundi et ainsi de suite NJ = $date_fin - $date_dep + 1 ; //calcul Paques ------------------------------------------------------- Y = Annee( $Date_dep ); a = Mod( Y - 1900; 19 ); b = Ent( ( ( a * 7 ) + 1 ) / 19 ); c = Mod( ( 11 * a ) - b + 4; 29 ); d = Ent( ( Y - 1900 ) / 4 ); e = Mod( Y - 1900 - c + d + 31; 7 ); Paques = 25 - c - e + Date( 3; 31; Y ); //calcul des jours feries ----------------------------------------------- JF1 = Date( 1; 1; Y ); //Jour_de_l_an JF2 = Paques + 1; //Lundi_paques JF3 = Paques + 39 ; //Ascension JF4 = Paques + 50 ; //Pentecôte JF5 = Date( 5; 1; Y ); //Fete_traval JF6 = Date( 5; 8; Y ); //Fin_2e_GM JF7 = Date( 7; 14; Y ); //Fete_nationale JF8 = Date( 8; 15; Y ); //Assomption JF9 = Date( 11; 1; Y ); //Toussaint JF10 = Date( 11; 11; Y ); //Armistice_1ere_GM JF11 = Date( 12; 25; Y ); //Noel //nombre de jours feries dans l'intervalle, avec un correctif pour déduire les samedis ou dimanches---------------------- //petite correction eventuelle des espaces J_non_travailles = SupprimerTypeEspace ( J_non_travailles ; 1; 3) ; base = "0;1;2;3;4;5;6;7" ; Res_choix = Evaluation ( "substitute (\"" & base & "\" ; [" & Substituer ( J_non_travailles ; "," ; ";0];[") & ";0]; [1;1] ; [2;1] ;[3;1] ;[4;1] ;[5;1] ;[6;1] ;[7;1] )" ) ; NJF = (( Min ( $date_dep ; JF1 ) = $date_dep ) * ( Max ( $date_fin ; JF1 ) = $date_fin ) * Evaluation ( "Choisir (" & JourSemaine ( JF1 ) & ";" & Res_choix & ")"))+ (( Min ( $date_dep ; JF2 ) = $date_dep ) * ( Max ( $date_fin ; JF2 ) = $date_fin ) * Evaluation ( "Choisir (" & JourSemaine ( JF2 ) & ";" & Res_choix & ")"))+ ((Min ( $date_dep ; JF3 ) = $date_dep ) * ( Max ( $date_fin ; JF3 ) = $date_fin ) * Evaluation ( "Choisir (" & JourSemaine ( JF3 ) & ";" & Res_choix & ")"))+ (( Min ( $date_dep ; JF4 ) = $date_dep ) * ( Max ( $date_fin ; JF4 ) = $date_fin ) * Evaluation ( "Choisir (" & JourSemaine ( JF4 ) & ";" & Res_choix & ")"))+ (( Min ( $date_dep ; JF5 ) = $date_dep ) * ( Max ( $date_fin ; JF5 ) = $date_fin )* Evaluation ( "Choisir (" & JourSemaine ( JF5 ) & ";" & Res_choix & ")"))+ (( Min ( $date_dep ; JF6 ) = $date_dep ) * ( Max ( $date_fin ; JF6 ) = $date_fin )* Evaluation ( "Choisir (" & JourSemaine ( JF6 ) & ";" & Res_choix & ")"))+ (( Min ( $date_dep ; JF7 ) = $date_dep ) * ( Max ( $date_fin ; JF7 ) = $date_fin )* Evaluation ( "Choisir (" & JourSemaine ( JF7 ) & ";" & Res_choix & ")"))+ (( Min ( $date_dep ; JF8 ) = $date_dep ) * ( Max ( $date_fin ; JF8 ) = $date_fin )* Evaluation ( "Choisir (" & JourSemaine ( JF8 ) & ";" & Res_choix & ")"))+ (( Min ( $date_dep ; JF9 ) = $date_dep ) * ( Max ( $date_fin ; JF9 ) = $date_fin )* Evaluation ( "Choisir (" & JourSemaine ( JF9 ) & ";" & Res_choix & ")"))+ (( Min ( $date_dep ; JF10 ) = $date_dep ) * ( Max ( $date_fin ; JF10 ) = $date_fin )* Evaluation ( "Choisir (" & JourSemaine ( JF10 ) & ";" & Res_choix & ")"))+ (( Min ( $date_dep ; JF11 ) = $date_dep ) * ( Max ( $date_fin ; JF11 ) = $date_fin )* Evaluation ( "Choisir (" & JourSemaine ( JF11 ) & ";" & Res_choix & ")")) ; //nombre de jours ouvrés dans l'intervalle ----------------------------------------------------------- //le calcul consiste comtper le nombre de semaines entières et à étudier le reste pour compter les jours de fin de semaine //le jour de la semaine de la date de départ JS_dep = JourSemaine ( $date_dep ) ; //semaines entières SE = Div ( NJ ; 7 ) ; //restes R = Mod ( NJ ; 7 ) ; //on extrait la suite de jours du reste Base2 = Si (R>0; Extrait ( "123456712345" ; JS_dep ; R ) ); //et on remplace la suite par 0 ou 1 selon les jours non travailles Base_corrigee = Evaluation ( "substitute (\"" & Base2 & "\" ; [" & Substituer ( J_non_travailles ; "," ; ";\"*+\"];[") & ";\"*+\"]; [1;\"0+\"] ; [2;\"0+\"] ;[3;\"0+\"] ;[4;\"0+\"] ;[5;\"0+\"] ;[6;\"0+\"] ;[7;\"0+\"];[\"*\";1] )" ) ; //le calcul final NJWE = (SE *(Occurrences (J_non_travailles ; "," )+1) ) + Evaluation (Base_corrigee & 0) ]; NJ - NJWE - NJF ) [/code]
  34. 0 point
    fabriceN

    Intervalle de recherche

    .
  35. 0 point
    Effectivement, il s'agit d'une relation de plusieurs à plusieurs, ce qui, théoriquement nécessite l'ajout d'une table de lien (table intermédiaire, jointure). Mais, sous conditions expliquées plus haut, il est possible de gérer votre cas précis sans créer de table supplémentaire et en utilisant une clé étrangère multiple. La clé étrangère kf_employes dans la table communication est une rubrique dans laquelle on encode sous forme de liste les clés des employés liés à la communication. Cordialement, Tanguy
×