Vider le contenu d'un champ

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Vider le contenu d'un champ

Messagepar cyril08 » 16 Fév 2011 à 14:05

J'ai une commande de type bouton qui me permet de masquer des lignes d'un tableau. Dans chacune de ces lignes j'ai 5 champs. Le probleme est que lorsque lorsque je retire une ligne les champs ne se vide pas.
Voici une exemple pour un tableau avec 2 lignes uniquement:
ligne 1 : il y a les champs secms1, chiffrecms1, matcms1, DI1 et ct1
ligne 2 : il y a les champs secms1_1, chiffrecms1_1, matcms1_1, DI1_1 et ct2

Code : Tout sélectionner
FIELD nbLignes_2 := nbLignes_2;
nbLastLigne_2 := @If(@Trim(@Text(nbLignes_2)) ="";0;nbLignes_2-1);
@SetField("nbLignes_2";nbLastLigne_2);
@If(secms1!="" ;(FIELD secms1:="" + FIELD chiffrecms1:="" + FIELD matcms1:="" + FIELD DI:="" + FIELD ct1:="");
secms1_1!="" ;(FIELD secms1_1:="" + FIELD chiffrecms1_1:="" + FIELD matcms1_1:="" + FIELD DI_1:="" + FIELD ct2:="");
"");
@Command([ViewRefreshFields])


lorsque je clique sur mon bouton pour retirer une ligne, il me vide tous mes champs. le probléme vient de mon @if qui ne s'arrete pas uniquement à la ligne que je retire. Y-at-il un moyen de casser mon @if dès que une condition est vérifier?
cyril08
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 349
Inscrit(e) le : 22 Nov 2010 à 17:11

Messagepar cyril08 » 16 Fév 2011 à 14:10

dsl j'ai pas mis la bonne formule :
Code : Tout sélectionner
FIELD nbLignes_2 := nbLignes_2;
nbLastLigne_2 := @If(@Trim(@Text(nbLignes_2)) ="";0;nbLignes_2-1);
@SetField("nbLignes_2";nbLastLigne_2);
@If(secms1_1!="" ;
(FIELD secms1_1:="" + FIELD chiffrecms1_1:="" + FIELD matcms1_1:="" + FIELD DI_1:="" + FIELD ct2:="");
secms1!="" ;(FIELD secms1:="" + FIELD chiffrecms1:="" + FIELD matcms1:="" + FIELD DI:="" + FIELD ct1:="");
"");
@Command([ViewRefreshFields])
cyril08
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 349
Inscrit(e) le : 22 Nov 2010 à 17:11

Messagepar Michael DELIQUE » 16 Fév 2011 à 14:20

salut

(FIELD secms1_1:="" + FIELD chiffrecms1_1:="" + FIELD matcms1_1:="" + FIELD DI_1:="" + FIELD ct2:="")

c'est pas une formule valide

tu peut pas additionner des vidage de champ ! ça n'a aucun sens

maintenant si tu veux mettre plusieurs command regarde la @formule @do
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar cyril08 » 16 Fév 2011 à 14:39

Michael DELIQUE a écrit:salut

(FIELD secms1_1:="" + FIELD chiffrecms1_1:="" + FIELD matcms1_1:="" + FIELD DI_1:="" + FIELD ct2:="")

c'est pas une formule valide

tu peut pas additionner des vidage de champ ! ça n'a aucun sens

maintenant si tu veux mettre plusieurs command regarde la @formule @do


ok c'est donc un hasard que mes champs se vident ?
cyril08
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 349
Inscrit(e) le : 22 Nov 2010 à 17:11

Messagepar Michael DELIQUE » 16 Fév 2011 à 15:39

oui !
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar roubech » 17 Fév 2011 à 22:54

en formule, tu peux affecter la chaine de texte "mon texte" dans le champ "MonChamp" de 2 façons différentes :
[syntax="Formula"]FIELD MonChamp := "mon texte";[/syntax]
ou
[syntax="Formula"]@SetField( "MonChamp"; "mon texte" );[/syntax]

si la la valeur que tu veux affecter à ton champ dépend d'une condition, tu utilisera la première façon :
[syntax="Formula"]FIELD MonChamp := @If( MaCondition; "mon texte si vrai"; "mon texte si faux" );[/syntax]

Si au contraire, le champ que tu veux modifier dépend d'une condition, dans ce cas, tu utilisera la 2ème :
[syntax="Formula"]@if( MaCondition; @SetField( "MonChampVrai"; "mon texte" ); @SetField( "MonChampFaux"; "mon texte" ) );[/syntax]

Mais si j'ai bien compris ton contexte, ce que tu cherches à faire dans ton bouton, c'est changer la valeur de plusieurs champs. Pourquoi testes tu la valeur avant de la changer ? Dans ton bouton, tu décrémentes un champ qui te sert à stocker le nombre de lignes (et qui j'imagine te sert dans les formules de masquage)
[syntax="Formula"]FIELD nbLignes_2 := nbLignes_2 - 1;
FIELD secms1_1 := "";
FIELD chiffrecms1_1 := "";
FIELD matcms1_1 := "";
FIELD DI1_1 := "";
FIELD := ct2;[/syntax]

au passage, pour te simplifier la tache, décide d'une facon de nommer tes champs et respecte la jusqu'au bout
ligne 1 : il y a les champs secms1, chiffrecms1, matcms1, DI1 et ct1
ligne 2 : il y a les champs secms1_1, chiffrecms1_1, matcms1_1, DI1_1 et ct2

sur ta 1ère ligne tes champs n'ont pas d'indice
sur ta 2ème, il en ont sauf ct qui ne respecte pa la même façon
je serais plutôt parrti sur :
Code : Tout sélectionner
ligne 1 : secms_1, chiffrecms_1, matcms_1, DI_1 et ct_1
ligne 2 : secms_2, chiffrecms_2, matcms_2, DI_2 et ct_2


Ainsi, si tu as plusieurs bouton, tu pourra mutualiser le code en changeant juste la première ligne avec la variable locale :
[syntax="Formula"]n := 2
FIELD nbLignes := nbLignes - 1;
@SetField("secms_" + n ; "" );
@SetField("chiffrecms_" + n ; "" );
@SetField("matcms_" + n ; "" );
@SetField("DI_" + n ; "" );
@SetField("CT_" + n ; "" );
[/syntax]
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar cyril08 » 21 Fév 2011 à 09:58

Merci pour toutes ces infos j'ai testé cela fonctionne tres bien.

Cependant j'ai un soucis, mon champ ct_ est un champ texte riche, son contenu ne se vide pas. Je suppose que c'est du à la particularité des champs texte riches?
cyril08
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 349
Inscrit(e) le : 22 Nov 2010 à 17:11

Messagepar cyril08 » 21 Fév 2011 à 10:23

voici un exemple pour que se soit plus concret sur ce que je recherche.
cyril08
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 349
Inscrit(e) le : 22 Nov 2010 à 17:11

Messagepar cyril08 » 22 Fév 2011 à 09:20

Code : Tout sélectionner
FIELD nbLignes := nbLignes;

nbLastLigne := @If(@Trim(@Text(nbLignes)) ="";0;nbLignes-1);

@SetField("nbLignes";nbLastLigne);

@If(
nbLignes >=3 ;@Do(FIELD ct_2 :="";FIELD DI_2 :="";FIELD secms_2 :="";  FIELD chiffrecms_2 :="" ; FIELD matcms_2 :="");
nbLignes >=2;@Do(FIELD ct_1 :="";FIELD DI_1 :="";FIELD secms_1 :="";  FIELD chiffrecms_1 :="" ; FIELD matcms_1 :="");
@Do(FIELD ct_ :="";FIELD DI_ :="";FIELD secms_ :="";  FIELD chiffrecms_ :="" ; FIELD matcms_ :=""));
@Command([ViewRefreshFields])


mes champs ct_ ; ct_1 & ct_2 sont des champs de type "texte riche". Mon code tourne mais seul mes champs textes riches ne se vide pas. Quelqu'un connaitrait une parrade?
cyril08
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 349
Inscrit(e) le : 22 Nov 2010 à 17:11

Messagepar cyril08 » 22 Fév 2011 à 09:30

Code : Tout sélectionner
FIELD nbLignes := nbLignes;
nbLastLigne := @If(@Trim(@Text(nbLignes)) ="";0;nbLignes-1);
@If(
nbLignes <3>=2;@Do(FIELD ct_1 :="";FIELD DI_1 :="";FIELD secms_1 :="";  FIELD chiffrecms_1 :="" ; FIELD matcms_1 :="");
@Do(FIELD ct_ :="";FIELD DI_ :="";FIELD secms_ :="";  FIELD chiffrecms_ :="" ; FIELD matcms_ :=""));
@SetField("nbLignes";nbLastLigne);
@Command([ViewRefreshFields])


mes champs ct_; ct_1 et ct_2 sont des champs texte riche , impossible de vider leur contenu ? particularité d'un champ texte riche? Y'a t-il une autre solution?

merci d'avance
cyril08
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 349
Inscrit(e) le : 22 Nov 2010 à 17:11

Messagepar roubech » 22 Fév 2011 à 21:49

c'est toujours pour le même pb qu'on t'a déjà suggéré de mettre tes "lignes de tableau" dans un doc à part ?
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar cyril08 » 23 Fév 2011 à 06:29

roubech a écrit:c'est toujours pour le même pb qu'on t'a déjà suggéré de mettre tes "lignes de tableau" dans un doc à part ?


Oui c'est mais mon masque d'organiser avec 6 tableaux qui contiennent chacun de 30 a 50 lignes. Je trouve cela très lourd a construire pour mon peu d'expérience et le temps qu'il me reste. Il n'y a pas d'autres moyens ?
cyril08
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 349
Inscrit(e) le : 22 Nov 2010 à 17:11

Messagepar cyril08 » 26 Fév 2011 à 15:00

cyril08 a écrit:
roubech a écrit:c'est toujours pour le même pb qu'on t'a déjà suggéré de mettre tes "lignes de tableau" dans un doc à part ?


Oui c'est mais mon masque d'organiser avec 6 tableaux qui contiennent chacun de 30 a 50 lignes. Je trouve cela très lourd a construire pour mon peu d'expérience et le temps qu'il me reste. Il n'y a pas d'autres moyens ?



il me faut donc un masque par tableau, c'est cela? et dans un masque principal j'appelle mes 6 tableaux?

Je suis dsl mais j'ai vraiment besoin d'exemple concret.
cyril08
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 349
Inscrit(e) le : 22 Nov 2010 à 17:11

Messagepar Michael DELIQUE » 28 Fév 2011 à 11:29

re,

non,

tu créé une vue, chaque ligne de la vue sera une ligne de ton tableau.

et tu intègre cette vue dans un ton masque à la place du tableau.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar cyril08 » 28 Fév 2011 à 14:21

ok

mais comment lorsque je vais appeller mon masque, je vais renseigné appeler ma vue et la renseigner.

comment s'appelle cette methode? as tu un lien?
cyril08
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 349
Inscrit(e) le : 22 Nov 2010 à 17:11

Suivant

Retour vers Développement