Jump to content
  • 0

Numéro de série conditionnel


François2
 Share

Question

Bonjour,

Je sollicite votre aide.  Je n’arrive pas à inscrire un numéro de série (MembreID), conditionnel à la présence d’une date, et non pas à la création ou la validation d’un nouvel enregistrement.

Dans ma table des personnes, certaines d’entr’elles ont adhéré comme membre d'un programme, d’autres pas.

De plus, avec une correction de cette date, cela génère toujours un nouveau numéro de série, alors que ce numéro doit être unique et permanent.  J’ai essayé avec les fonctions SI, CAS et DÉFINIR sans y parvenir.

J’ai tenté aussi de fixer ce numéro avec un calcul basé sur une fonction personnalisée (FileMaker Custom Function: GetNextMaxSerial de Brian Dunning, une référence externe, et un script FM avec <Définir valeur en série suiv.>, mais je n’y arrive toujours pas.

Je vous envoie mon fichier d’exercice sur le sujet, qui ajoute des précisions sur les conditions.

Merci.

Calcul MembreID.fmp12

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Bonjour François,

il y a 58 minutes, François2 a dit :

certaines d’entr’elles ont adhéré comme membre d'un programme

Une question, qui aura des conséquences sur la réponse à apporter : une Personne pourra-t-elle être Adhérent successivement à plusieurs Programmes ?

Si oui, alors Adhérent doit être une table, possédant son propre système d'identifiant, table qu'on nommera souvent Membre.

Sinon, on peut se contenter d'une rubrique numero_de_membre dans la table Personne.

Dans ce second cas, il nous faut un numero_de_membre qui se calcule au moment de l'adhésion. Ca peut se faire avec une auto-entrée :

Si (

	personne::date_adhesion

	; [Calcul du prochain numéro]

	; ""

)

La partie [Calcul du prochain numéro] peut être effectuée d'au moins deux manières :

  • un ExecuterSQL () + 1,
  • un Max ( table_liee::numero_de_membre ) + 1.

Dans ce second cas, table_liee peut être tout simplement une autre occurrence de la table Personne, reliée à l'occurrence de base par l'opérateur de lien "x".

Bonne journée,

Jérémie

Link to comment
Share on other sites

  • 0

Merci pour votre réponse.

Pour le moment il n'y a qu'un seul programme.

J'ai fait une OT comme suggéré, copie de PER_Personne, dans laquelle j'ai ajouté une clé étrangère.  Je l'ai renommée  PER_Personnes_MembreID.  J'ai refait le calcul en me servant cette fois des rubriques de la nouvelle OT.

Ce qui me donne pour ce calcul:

Si ( PER_Personnes_MembreID::PER_DateAdhésion ; PER_Personnes_MembreID::PER_MaxMembreID +1; "" )

Mais, ça ne fonctionne pas.  Je me sers probablement pas des bonnes rubriques, ou bien mon lien est mal fait.

Devrait-on plutôt se servir d'une référence externe?

Merci de m'éclairer,

Au plaisir, Fr

 

Calcul MembreID-2.fmp12

Link to comment
Share on other sites

  • 0

Re-bonjour,

La nuit porte conseil…

J'ai établi le lien sur PER_PersonnesID, et cela semble fonctionner en partie.

Je constate avec le modèle Tech, que certaines rubriques de la table liée ne s'affichent pas.  Pourquoi?

Je vois aussi que la logique des conditions est passablement houleuse.

Je vous envoi mon troisième essai, ainsi qu'un document RTF sur la logique des conditions et la construction du calcul.  J'ai peine à comprendre pourquoi ça bogue.

Merci pour votre support

 

Tableau logique.rtf Calcul MembreID-3.fmp12

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...