Categories > TinyButStrong general (FR) >

Problème d'affichage conditionnel

The forum is closed. Please use Stack Overflow for submitting new questions. Use tags: tinybutstrong , opentbs
By: Lox
Date: 2010-03-03
Time: 06:33

Problème d'affichage conditionnel

Salut,

Voici mon code html:

<tr>
    <td nowrap="nowrap" >
        [Transactions.GetFormated(date);block=tr]
    </td>
    <td nowrap="nowrap" >
        [Transactions.GetFormated(amount)]
    </td>
    <td align="left" nowrap="nowrap" >
        <a href="page/[Transactions.transaction_id]" onclick="" class="action unjustified">A justifier: [onshow;Transactions.justified;if [val]==1;then ''; else [Transactions.GetFormated(amount2justify)];magnet=a;]</a>
        </td>
</tr>

Transactions est un bloc tbs pointant vers un tableau d'objects. lorsque  Transactions.justified est égal à 1 je ne veux pas que le lien dans la dernière cellule soit affiché. Mais ça ne fonctionne pas comme je l'ai fais.

Merci.
By: Skrol29
Date: 2010-03-04
Time: 01:03

Re: Problème d'affichage conditionnel

Salut Lox,

C'est ton champ onshow qui ne va pas.
Il faudrait plutôt écrire:
<tr>
  <td nowrap="nowrap" > [Transactions.GetFormated(date);block=tr] </td>
  <td nowrap="nowrap" > [Transactions.GetFormated(amount)] </td>
  <td align="left" nowrap="nowrap" >
    <a href="page/[Transactions.transaction_id]" onclick="" class="action unjustified">
      A justifier: [Transactions.justified;if [val]==1;then ''; else [Transactions.GetFormated(amount2justify)];magnet=a;]
    </a>
  </td>
</tr>

Mais comme c'est un peu entortillé, tu peux aussi utiliser des blocs conditionnels:
<tr>
  <td nowrap="nowrap" > [Transactions.GetFormated(date);block=tr;when [Transactions.justified]=1] </td>
  <td nowrap="nowrap" > [Transactions.GetFormated(amount)] </td>
  <td align="left" nowrap="nowrap" >
      A justifier:
  </td>
</tr>
<tr>
  <td nowrap="nowrap" > [Transactions.GetFormated(date);block=tr;default] </td>
  <td nowrap="nowrap" > [Transactions.GetFormated(amount)] </td>
  <td align="left" nowrap="nowrap" >
    <a href="page/[Transactions.transaction_id]" onclick="" class="action unjustified">
      A justifier: [Transactions.GetFormated(amount2justify)]
    </a>
  </td>
</tr>
By: Lox
Date: 2010-03-04
Time: 03:53

Re: Problème d'affichage conditionnel

Salut!

Étrangement ta première méthode ne fonctionne pas (c'est pour cela que j'en étais arrivé à utiliser onshow) .J'obtient le code suivant:

A justifier: [Transactions.justified;if [val]==1;then ''; else -718 202 XPF;magnet=a;]

Transactions.GetFormated(amount2justify) est mergé et non [Transactions.justified], étrange?

La méthode 2 fonctionne mais, je n'aime pas a maintenir deux lignes de mon tableau alors qu'il n'y a qu'une petit changement dans une cellule...

By: Lox
Date: 2010-03-04
Time: 04:01

Re: Problème d'affichage conditionnel

Ah oui j'oubliais, je vais aussi avoir des autre liens dan cette cellule fonctionnant sur le même principe mais par rapport a un autre champs.

Donc si je pouvais arriver a faire fonctionner la première méthode....

Merci.
By: Lox
Date: 2010-03-04
Time: 04:34

Re: Problème d'affichage conditionnel

Donc, voilà ou j'en suis pour mon champs:

<td align="left" nowrap="nowrap" >
        <span><small><a href="Accounts/Transaction/Index/[Transactions.transaction_id]" onclick="" class="action justified" title="L'opération est correctement justifiée. Cliquez ici pour en voir les détails" >Justifée [Transactions.justified; if [val]==0;then '';else '1'; magnet=span]</a></small></span>
        <span><small><a href="Accounts/Transaction/Index/[Transactions.transaction_id]" onclick="" class="action unjustified" title="La transaction n'est pas justifiée. Cliquez ici pour en voir les détails" >A justifier: [Transactions.justified; if [val]==1;then '';else '1'; magnet=span] [Transactions.GetFormated(amount2justify)]</a></small></span>
        <span><small><a href="Accounts/Transaction/Index/[Transactions.transaction_id]" onclick="" class="action justified" title="La transaction est correctement catégorisée. Cliquez ici pour en voir les détails" >Catégoriséé [Transactions.categorized; if [val]==0;then '';else '1'; magnet=span]</a></small></span>
        <span><small><a href="Accounts/Transaction/Index/[Transactions.transaction_id]" onclick="" class="action unjustified" title="La transaction n'est pas catégorisée. Cliquez ici pour en voir les détails" >A catégoriser: [Transactions.categorized; if [val]==1;then '';else '1'; magnet=span] [Transactions.GetFormated(amount2categorize)]</a></small></span>
    </td>

Cela fonctionne très bien. Mais je me retrouve avec le '1' résultant de la première condition. ( if [val]==0;then '';else '1';)

Comment un champs tbs peut il servir "d'interrupteur" à un magnet sans que rien ne soit affiché?





By: Skrol29
Date: 2010-03-06
Time: 00:42

Re: Problème d'affichage conditionnel

>Comment un champs tbs peut il servir "d'interrupteur" à un magnet
> sans que rien ne soit affiché?

Tu peux utiliser le paramètre "ope=minv" qui sert justement à ça.
Sinon il existe une autre astuce : "if [val]==0;then '';else ' ';"
un espace est utilisé pour afficher rien du tout.

La méthode 1 ne fonctionne pas à cause d'une sorte de bug connu mais difficile à corriger : l'utilisation de "magnet" casse la recherche de champs TBS imbriqués.