Jump to content

DMJ

Membres
  • Posts

    108
  • Joined

  • Last visited

Profile Information

  • Gender
    Homme
  • Location
    3960

FileMaker Profile

  • FM
    FMP14A, FMS14
  • OS
    OSX.10, Win10
  • Claris Partner
    --Non membre--

Recent Profile Visitors

1743 profile views

DMJ's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. DMJ

    DMJ

  2. Problème résolu ! Le problème venait du certificat intermédiaire. Nous avions bien importé un certificat et une clé primate, ce qui suffit pour que FileMaker Server valide et utilise ce certificat. Mais pour certaines fonctions, comme le xDBC, FMS17 oblige l'utilisation d'un certificat intermédiaire (ce qui n'était pas nécessaire dans les versions précédentes de FMS). Nous avons donc réimporté le certificat, la clé primaire, et le certificat intermédiaire. Après avoir redémarré le serveur la connexion xDBC fonctionne parfaitement. Il fallait le deviner à partir de l'erreur "(802): unable to open file"...
  3. Bonjour, Nous avons récemment migré de FMS16 sur OS X vers FMS17 sur Windows Server 2016. Tout fonctionne bien, sauf lorsqu'on essaie de se connecter en xDBC à une base hébergée sur FMS17 : on récupère toujours l'erreur "[FileMaker][FileMaker JDBC] (802): Unable to open file" (erreur identique avec la connexion JDBC et ODBC). Cette erreur est renvoyée quelque soit le nom de fichier indiqué, qu'il existe ou non. J'ai pourtant bien activé xDBC dans l'admin-console et j'ai bien donné le droit d'accès par xDBC dans le fichier hébergé. J'ai également vérifié le pare-feu Windows : il est désactivé. Et j'utilise toujours la même chaîne pour la connexion, à savoir "jdbc:filemaker://url/fichier" J'ai aussi installé le *.jar fourni dans le dossier "extras" de l'installation FMS17. Le routeur est sans doute configuré correctement, puisque nous avons accès aux bases à travers FMP et que ça fonctionnait avec FMS16 et OS X. Le seul changement concernant le routeur est l'adresse IP interne. Y aurait-il une âme charitable pour me venir en aide ? ?
  4. Précision : Il n'est pas fiable de sauter à la dernière pièce dans le cas où la pièce n'était pas dans le jeu d'enregistrements trouvés ! Il faut rechercher l'index de la facture à chaque fois. Par contre il semble que l'index dans la liste récupérée de la rubrique statistique correspond bien à l'index dans le jeu d'enregistrements trouvés.
  5. Ok, ça fonctionne bien ! C'est un peu lent lorsque le nombre d'enregistrements trouvés est élevé (14sec. pour 13'600 enregistrements), au besoin je ferai une vérification au préalable et si le nombre d'enregistrements trouvés est supérieur à 1000 alors on considère qu'aucune recherche pertinente n'a eu lieu et on fait avec l'ancienne méthode (qui ne garde pas la recherche précédente). J'ai donc utilisé une rubrique statistique pour récupérer la liste des identifiants des factures du jeu d'enregistrements trouvés. Lorsqu'on souhaite naviguer entre les pièces, il vérifie si la pièce recherchée se trouvé déjà dans la liste des enregistrements trouvés EstVide( ValeursFiltre(liste; identifiant) ). Si la pièce n'est pas encore dans le jeu d'enregistrements, elle est ajoutée et on navigue au dernier enregistrement (qui est celui qui vient d'être ajouté). Si elle n'existe pas, une fonction personnalisée permet de récupérer l'index d'une valeur dans une liste. On récupère donc cet index, qui correspond au numéro d'enregistrement à afficher. Voici la fonction si quelqu'un la veut (ou souhaite l'améliorer/optimiser) Nom de la fonction : _obtenirIndex. Paramètres : _liste, _valeur, _index /* compare la valeur à "_index" de "_liste" pour vérifier si on trouve la valeur recherchée Si on a trouvé la valeur, on est donc au bon index -> on retourne l'index Si on n'a pas trouvé la valeur, on vérifie si on vient de vérifier la dernière valeur. Si on vient de vérifier la dernière valeur, on renvoie "-1" pour indiquer qu'on n'a pas trouvé la valeur dans la liste. Si ce n'était pas la dernière valeur, on rappel la fonction pour la valeur suivante. */ Si( _valeur = ObtenirValeur( _liste; _index ); _index; Si( _index = DecompteValeurs ( _liste ); -1; _obtenirIndex( _liste; _valeur; _index + 1 ) ) ) PS : Sur fmsource.com, comment indique-t-on que le sujet est résolu ?
  6. Merci lem alpha, c'est une option intéressante ! Je vais regarder comment l'appliquer à mon cas. Une difficulté supplémentaire : il est intéressant pour les utilisatrices de naviguer entre les enregistrements (ce ne serait pas possible avec l'option de la table liée sur "TaGlobale", je crois). Mais je peux essayer de faire une fonction personnalisée qui me renvoit "l'index" d'un identifiant dans une liste. J'envoie le contenue de la rubrique statistique à cette fonction pour qu'elle me renvoie le numéro d'enregistrement à activer. Dans le cas où l'identifiant recherché n'était pas encore dans la liste, je peux même gagner du temps en sautant directement au dernier enregistrement. Je mets un retour ici dès que c'est fait.
  7. Bonjour, Dans mes modèles je mets souvent des boutons qui permettent aux utilisatrices de naviguer entre différents enregistrements d'une même occurrence de table. Par exemple, on peut aller d'un avoir à sa facture d'origine et vice-versas (une seule table "Facture", quel que soit le type de facture). Lorsqu'elles font une recherche pour lister certaines factures, cette recherche est perdue dès qu'elles utilisent ce bouton (la navigation se réalise en effectuant une recherche parmi les factures). Y a-t-il un moyen dans les scripts FileMaker pour gérer le jeu d'enregistrement trouvé ? L'idéal : recherche cette facture uniquement dans le jeu actuel, si elle ne s'y trouve pas ajoute la à ce jeu et va à cet enregistrement. Merci d'avance à qui me répondra
  8. Ha, bonne idée ! Merci !
  9. Salut, Après une absence prolongée j'ai à nouveau besoin de votre aide J'ai un modèle qui liste des lignes de factures. Cette liste peut être le résultat d'une recherche (tous les lignes coûtant plus de 100.- par exemple). J'aimerais récupérer la liste des factures correspondantes ; c'est-à-dire toutes les factures dont au moins une ligne apparait sur la liste. Je pensais écrire : _ListeUnique( Liste( LigneFacture::fk_Facture ) ), mais ça ne fonctionne pas puisque la fonction Liste ne s'inquiète que de l'enregistrement en cours. (_ListeUnique est une fonctionne personnalisée permettant de supprimer les doublons d'une liste). L'idéal serait vraiment qu'un calcul puisse le faire, car j'aimerais transmettre cette liste de factures à un script. Si je pouvais le passer en paramètre de script directement plutôt que passer par un script intermédiaire ce serait vraiment bien ! Des idées ?
  10. DMJ

    Many to Many to Many

    Pardon, je me suis trompé. En fait si je base la table externe sur Concert, tous les concerts s'affichent. Pas uniquement ceux du premier événement. Excusez-moi, je supprimerais la discussion si je savais comment faire
  11. DMJ

    Many to Many to Many

    Bonjour, Prenons pour exemple le schéma ci-dessous : Participante (n-n) Evenement (n-n) Concert Dans la fiche d'une participante j'aimerais lister tous les concerts auxquels elle a participé. Si je base ma table externe sur "Evenement", je ne sors que le premier concert de chaque événement. Si je la base sur "Concert" je ressors tous les concerts du premier événement. Comment simulerait-on cette double-jointure dans FileMaker ?
  12. De rien (même si tu as finalement résolu le problème seul )
  13. Donc une rubrique supplémentaire est la meilleure solution selon toi. Par contre je n'ai pas compris pourquoi le définir dans une variable globale ? En tous cas merci de ton avis !
  14. Bonjour, J'aimerais connaître la somme d'une rubrique pour tous les enregistrements trouvés. Donc l'équivalent d'une rubrique statistique. Pourquoi ne pas utiliser une rubrique statistique ? Parce que ce résultat n'est utile que dans un script particulier et je n'aimerais pas ajouter des rubriques à chaque fois que j'ai besoin d'une information. Mais si besoin je le ferai. Je peux parcourir les enregistrements un par un pour faire la somme, au risque de perdre en performance en plus de rendre le script plus compliqué à lire. Sinon je peux utiliser exécuterSQL, en espérant que les performances soient au rendez-vous et que rien ne soit renommé dans le futur. Quelle est la solution la plus élégante et la plus performante à ce problème, selon-vous ?
  15. Salut, Ces "erreurs" ne sont que des informations. FileMaker t'indique juste qu'il n'a pas réussi à faire quelque chose. Typiquement, "Go to Record/Request/Page" génère une erreur s'il ne trouve pas l'enregistrement voulu. Par exemple si tu es sur le premier enregistrement et que tu demande l'enregistrement précédent (Afficher enreg/requête/page [Précédent(e)] ). Pour éviter ça, tu peux faire un test ( Si [Obtenir(numéroEnreg) > 1] Afficher enreg/requête/page [Précédent(e) ). Tu auras moins d'erreur affichées.
×
×
  • Create New...