Jump to content
  • 0

Remplacer contenu rubrique [ ] sur une rubrique calculée


Chris017
 Share

Question

Bonjour,

Je cherche à pouvoir utiliser, sur FM 14 Pro, qu'un seul script sur plusieurs tables ayant chacune une même rubrique "Case à Cocher".

Le script de gestion de ces cases nécessite d'agir sur le contenu de ces cases à cocher.

Toutefois, pour l'heure, je n'arrive pas à définir la rubrique "Case à Cocher" en calculant le nom de la Table.

Je dois donc créer un script semblable pour chaque table, en changeant seulement la rubrique cible, non calculable.

Y aurait-il une possibilité de résoudre ce problème en utilisant une référence à la rubrique "Case à Cocher" et le nom calculé de la Table sur lequel il agit ?

Je vous remercie pour votre aide et vous souhaite une agréable journée.

 

Chris

Link to comment
Share on other sites

18 answers to this question

Recommended Posts

  • 0

Est ce que tu as essayé de définir la rubrique par ce calcul :

obtenir(nomtable)&"::caseacocher"

Link to comment
Share on other sites

  • 0

Merci pour la réponse rapide !

Oui, c'est opérationnel avec <Définir rubrique par nom [ Obtenir ( NomTableModèle ) & "::Case à Cocher" ].

Cela n'agit que sur un seul enregistrement, celui en cours.

Ensuite, je retrouve le même problème pour Activer rubrique, qui exige un choix de la rubrique de la table, que l'on ne peut calculer, pour faire ne boucle changeant la rubrique "Case à Cocher" dans tous les enregistrements, ce qui est aussi lent…

Je désire aussi uniformiser le contenu de ces cases, en les mettant toutes en Minuscule.

Pour ce faire, j'utilise la formule <Définir rubrique par nom [ Obtenir ( NomTableModèle ) & "::Case à Cocher"  ; Minuscule ( Obtenir ( ContenuRubriqueActive ) )>.

Mais cela ne fonctionne pas.

 

Link to comment
Share on other sites

  • 0

J'ai réussi l'uniformisation en utilisant la formule :

<Définir rubrique par nom [ Obtenir ( NomTableModèle ) & "::Case à Cocher"  ; Minuscule ( ResultatRubrique ( Obtenir ( NomTableModèle ) & "::Case à Cocher 1" ) )>.

Mais s'il y a moyen de le faire plus rapidement et légèrement qu'en utilisant une Boucle pour transformer le contenu de la rubrique de chaque enregistrement, ce serait parfait…

Link to comment
Share on other sites

  • 0

Ou Minuscule(Evaluation(obtenir(nomtablemodele)&"::caseàcocher")))

Pour que tous les enregistrements aient la même valeur (que dans la table correspondante) tu peux mettre cette rubrique en Globale

Sinon tu peux faire un script pour toutes tes tables et mettre des conditions si () :

Si (obtenir(nomtablemodele)="modele A"
    définir rubrique...
Sinon si (obtenir(nomtablemodele)="modele B"
    définir rubrique...

Fin de si

 

Link to comment
Share on other sites

  • 0

Merci pour la réponse et les suggestions.

Cela m'aide à avancer un peu dans la résolution du problème.

Demeurent toutefois les situations de Sélection ou de Tri des rubriques au sein d'un script, sans devoir passer par l'opération manuelle.

 

Link to comment
Share on other sites

  • 0

Je n'arrive pas à comprendre tes problématiques de selection et tri 
Et a quoi servent tes rubriques à cocher, est ce des reelles information ou juste des rubriques de calculs d'affichage par exemple ?

Si tu peux envoyer un exemple de ta base

Link to comment
Share on other sites

  • 0
Il y a 3 heures, Chris017 a dit :

Obtenir ( NomTableModèle )

Bonjour

ceci est uniquement pour le modèle en court... Or si vous voulez remplir la rubrique case a coché de tout les table , vous devez de tout facon passe par chaqu'une.

Alors pourquoi pas simplement dans votre script, activer chaque modèle de chaque table 1 a 1 pour a chaque fois remplir la rubrique case a coché ?.

Et Pour remplir quoi ? 1 élément ou plusieur ?

Link to comment
Share on other sites

  • 0
Il y a 3 heures, Chris017 a dit :

Je désire aussi uniformiser le contenu de ces cases, en les mettant toutes en Minuscule

Bonjour Chris,

Vous avez mis le doigt sur les limites de l'accès aux rubriques selon un calcul :

  • Définir rubrique [ par nom ] existe, super,
  • mais pas Remplacer contenu rubrique [ par nom ],
  • ni Activer rubrique [ par nom ].

Or, vous avez un nettoyage de données à faire. Il faut donc que le script passe dans les x modèles des x tables et exécute un Remplacer contenu spécifique pour chacune. Ca n'est pas "smart", mais ça marche très bien.

(On peut feinter en activant les rubriques du modèle une à une (par boucle) et en vérifiant, pour chacune si elle s'appelle Nom de la table + "case à cocher" ; et une fois qu'on est dans la bonne, faire un Remplacer contenu sans préciser la cible. Ca n'est pas franchement une bonne idée mais ça peut marcher.)

Une autre possibilité est de définir une entrée automatique avec remplacement dans toutes les rubriques souhaitées, avec la formule : Minuscule ( Contenu ). Un tel remplacement peut aussi être lié à un déclencheur.

Link to comment
Share on other sites

  • 0
Il y a 1 heure, MMB a dit :

Je n'arrive pas à comprendre tes problématiques de sélection et tri 
Et a quoi servent tes rubriques à cocher, est ce des réelles information ou juste des rubriques de calculs d'affichage par exemple ?

Si tu peux envoyer un exemple de ta base

Merci pour ta sollicitude.

Il s'agit d'une rubrique servant à cocher des enregistrements manuellement, pour opérer une sélection d'enregistrements avec lesquels je désirerais travailler tout particulièrement. Ceci devrait me permettre d'opérer cette sélection des enregistrements cochés, ou non-cochés, de les décocher tous, de les cocher tous, de sélectionner les cochés, les non-cochés, de les trier.

Il s'agit donc de rubriques de calcul d'affichage.

Link to comment
Share on other sites

  • 0
il y a 53 minutes, Jérémie Gimenez a dit :

Bonjour Chris,

Vous avez mis le doigt sur les limites de l'accès aux rubriques selon un calcul :

  • Définir rubrique [ par nom ] existe, super,
  • mais pas Remplacer contenu rubrique [ par nom ],
  • ni Activer rubrique [ par nom ].

Or, vous avez un nettoyage de données à faire. Il faut donc que le script passe dans les x modèles des x tables et exécute un Remplacer contenu spécifique pour chacune. Ca n'est pas "smart", mais ça marche très bien.

(On peut feinter en activant les rubriques du modèle une à une (par boucle) et en vérifiant, pour chacune si elle s'appelle Nom de la table + "case à cocher" ; et une fois qu'on est dans la bonne, faire un Remplacer contenu sans préciser la cible. Ca n'est pas franchement une bonne idée mais ça peut marcher.)

Une autre possibilité est de définir une entrée automatique avec remplacement dans toutes les rubriques souhaitées, avec la formule : Minuscule ( Contenu ). Un tel remplacement peut aussi être lié à un déclencheur.

Bonjour,

Merci pour votre aide bienvenue !

Votre suggestion de Boucle d'une rubrique à l'autre avec <Remplacer contenu rubrique> sans spécifier la rubrique, fonctionne après mes premiers essais ! C'est un peu lent, mais çà le fait tout de même !

Cela fonctionne aussi pour Trier la sélection avec <Trier enreg. par rubrique> sans définir la rubrique cible..

Par contre, je n'arrive pas à opérer une sélection avec <Exécuter la recherche>.

Link to comment
Share on other sites

  • 0
il y a une heure, Apophis000 a dit :

Bonjour

ceci est uniquement pour le modèle en court... Or si vous voulez remplir la rubrique case a coché de tout les table , vous devez de tout facon passe par chaqu'une.

Alors pourquoi pas simplement dans votre script, activer chaque modèle de chaque table 1 a 1 pour a chaque fois remplir la rubrique case a coché ?.

Et Pour remplir quoi ? 1 élément ou plusieur ?

Bonjour,

Merci pour votre réponse et votre disponibilité.

Le problème est de pouvoir utiliser le même script pour diverses tables et divers modèles ayant chacun une rubrique nommé de manière identique, en l'occurence "Case à Cocher".

Cette rubrique servirait à sélectionner manuellement des enregistrements, comme sur une liste de courses, et de pouvoir les trier, sélectionner, désélectionner, et tout cela en utilisant qu'une seul script sachant calculer la rubrique "Obtenir(NomdeTable()::Case à Cocher").

 

Link to comment
Share on other sites

  • 0
Il y a 2 heures, Chris017 a dit :

Cela fonctionne aussi pour Trier la sélection avec <Trier enreg. par rubrique> sans définir la rubrique cible

Oui, bonne remarque !

 

Il y a 2 heures, Chris017 a dit :

Par contre, je n'arrive pas à opérer une sélection avec <Exécuter la recherche>.

Quel est l'objectif ?

Link to comment
Share on other sites

  • 0
il y a 22 minutes, Jérémie Gimenez a dit :

Oui, bonne remarque !

 

Quel est l'objectif ?

L'objectif est de n'afficher que les enregistrements cochés, ou non-cochés.

Link to comment
Share on other sites

  • 0
il y a 12 minutes, Chris017 a dit :

L'objectif est de n'afficher que les enregistrements cochés, ou non-cochés.

Dans ce cas une simple rubrique sufit , pas besoint d'une case a coché ( a part pour le visuelle ) . Ou ont indique 1 ou "" ( rien) (ou autre) . Ensuit il sufit de faire une recherche pour trouver tout les enregistrement ou il y a 1 dans la rubrique . C'est un script qui peu etre valable pour tout les modèle.

Link to comment
Share on other sites

  • 0

Bonsoir,

"Définir rubrique par nom" fonctionne aussi en mode recherche.

1- mode recherche

2 - définir rubrique par nom = 1

3 exécuter recherche

 

-------------------------------------------------

Par ailleurs, ce type de rubrique 'oui/non' s'appelle une rubrique booléenne et est de type nombre où 1 = vrai et 0 = faux - l'idéal est d'ailleurs de définir une auto entrée sur la rubrique comme suit : ObtenirCommeBooleen ( Contenu )

https://fmhelp.filemaker.com/help/18/fmp/fr/index.html#page/FMP_Help%2Fgetasboolean.html%23ww1285140

 

 

 

Link to comment
Share on other sites

  • 0
Il y a 14 heures, Chris017 a dit :

L'objectif est de n'afficher que les enregistrements cochés, ou non-cochés.

La réponse de @tcolles est la bonne.

De manière générale, on évite de faire des Exécuter la recherche directement avec les critères dedans.

La méthode :

  • Mode recherche
  • Définir rubrique (en l'occurrence [par nom])
  • Exécuter la recherche (sans aucune précision !)

est la plus générale et la plus adaptable.

Link to comment
Share on other sites

  • 0
Le 09/05/2022 à 21:02, tcolles a dit :

Bonsoir,

"Définir rubrique par nom" fonctionne aussi en mode recherche.

1- mode recherche

2 - définir rubrique par nom = 1

3 exécuter recherche

 

-------------------------------------------------

Par ailleurs, ce type de rubrique 'oui/non' s'appelle une rubrique booléenne et est de type nombre où 1 = vrai et 0 = faux - l'idéal est d'ailleurs de définir une auto entrée sur la rubrique comme suit : ObtenirCommeBooleen ( Contenu )

https://fmhelp.filemaker.com/help/18/fmp/fr/index.html#page/FMP_Help%2Fgetasboolean.html%23ww1285140

 

 

 

Pardonnez ma réponse si différée.

Merci pour votre réponse. Je vais expérimenter cela.
Belle journée à vous.

 

Link to comment
Share on other sites

  • 0
Le 10/05/2022 à 09:52, Jérémie Gimenez a dit :

La réponse de @tcolles est la bonne.

De manière générale, on évite de faire des Exécuter la recherche directement avec les critères dedans.

La méthode :

  • Mode recherche
  • Définir rubrique (en l'occurrence [par nom])
  • Exécuter la recherche (sans aucune précision !)

est la plus générale et la plus adaptable.

Pardonnez ma réponse si différée.

Merci pour votre suggestion.

Excellente journée à vous.

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...