Aller au contenu

Classement


Contenu populaire

Affichage du contenu le plus aimé depuis le 16/04/2018 dans toutes les zones

  1. 1 point
    Puimoisson04

    Changer police de caractère

    Ouah, il y aussi un bug avec le correcteur orthographique, non ? ;-)
  2. 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.) ------------------------------------------------------------------------------------------------------
  3. 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
  4. 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
  5. 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)" ) )
  6. 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.
  7. 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]
×