Ausblenden

Ob nun dynamisch agierende Subformulare, oder einfach nur Textfelder...
solman
Beiträge: 23
Registriert: 17.12.2010, 10:18

Ausblenden

Beitrag von solman » 17.12.2010, 10:54

Hallo :),
ich möchte in einer Tabelle die POSNR abhängig vom "Inhalt" ausblenden.
Die Hauptpositionen 10, 20, 30 ... 110 usw. sollen sichtbar sein und die Unterpositionen 11, 12, 21, 31,32,33...111 usw. soll unsichtbar sein.

Hier mein Lösungsansatz in formcalc:

Im Formular stehe ich auf dem Feld "POSNR" und diesem Ereignis:
data.BODY.ITEM_DETAIL.DATA_DETAIL.POSNR::initialize:

if Mod($, 10) == 0
then $.presence = "visible"
else $.presence = "invisible"
endif

Leider erhalte ich folgende Fehlermeldung::(
Syntaxfehler bei Token 'Mod' in Zeile 3, Spalte 6...

Wieso kennt formcalc "Mod" nicht?
Syntax = Mod(n1, n2)

Kann mir bitte jemand helfen, vielleicht ist ja auch mein Ansatz falsch?

Viele Dank Viele Grüße
solman



Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Ausblenden

Beitrag von nele_sonntag » 17.12.2010, 11:28

Also zunächt einmal ist Dein Syntax für eine IF-Verzweigung nicht korrekt. Die zu erfolgende Prüfung/Bedingung muss immer in Klammern sein.

Code: Alles auswählen

if ( simple expression ) then	
list of expressions
elseif ( simple expression ) then 	
list of expressions 
else 	
list of expressions 
endif
Zu finden in der Hilfedatei, wenn man IF eingibt.

LG Mandy
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Ausblenden

Beitrag von nele_sonntag » 17.12.2010, 11:31

Die korrekte Verwendung der MOD-Funktion ist zu finden in der Hilfe unter
Skripterstellung > FormCalc-Benutzerreferenz > Arithmetik-Funktionen > Mod

LG Mandy
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

solman
Beiträge: 23
Registriert: 17.12.2010, 10:18

Ausblenden

Beitrag von solman » 17.12.2010, 11:39

Vielen Dank :)

jetzt werden ALLE POSNR ausgeblendet:

if (Mod($.presence, 10) == 0 )then $.presence = "invisible" else $.presence = "visible" endif


Viele Grüße
solman

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Ausblenden

Beitrag von nele_sonntag » 17.12.2010, 11:56

Ja sehr schön, das hat doch schnell geklappt :-)
LG Mandy

solman
Beiträge: 23
Registriert: 17.12.2010, 10:18

Ausblenden

Beitrag von solman » 17.12.2010, 12:01

Hallo,
leider :( werden alle "POSNR" ausgeblendet, damit funktioniert wohl "Mod" nicht wie erwartet. Wenn Mod = 0 zurückgibt soll POSNR (10,20,30 usw) angezeigt und wenn Mod <>0 soll POSNR( 11,22,31,usw.) ausgeblendet werden. Jetzt scheint Mod immer die 0 zurückzugeben?
Viele Grüße
solman

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Ausblenden

Beitrag von nele_sonntag » 17.12.2010, 12:15

Mod gibt immer nur eine Null zurück, wenn die Division aufgeht/gerade ausgeht, wenn sie nicht aufgeht, bspw 13:3, dann wird eine 1 zurückgegeben.

Was mich vorhin schon ein wenig irritiert hat ist Deine Bedingung in den Klammer. Wieso hast Du da presence stehen? In der Hilfe dazu steht: Wenn n1 und/oder n2 keine Zahlenwerte oder Ausdrücke sind, gibt die Funktion den Wert 0 zurück. Da presence nicht unbedingt ein Ausdruck ist, gibt Mod immer 0 zurück.

Normalerweise, wenn man von etwas einen Wert möchte, arbeitet man mit rawValue, bspw. Mod(Zeilenindex.rawValue,10)

solman
Beiträge: 23
Registriert: 17.12.2010, 10:18

Ausblenden

Beitrag von solman » 17.12.2010, 13:11

Hallo,
Danke, jetzt funktioniert Mod wie gewünscht.:D
Meine Programmierkünste haben noch viele viele Lücken, daher "presence".
Danke für die schnelle Hilfe.
Ich habe jetzt die gewünschte Form, aber ich erhalte zusätzlich eine Leerzeile.
Wie kann ich diese rausnehmen?
Hast Du dazu eine Idee :) ?

Dann ist mir gerade aufgefallen, das es noch eine Fehlermeldung gibt:
Funktion 'testTotalDigits' in Zeile 1, Spalte 35 ist unbekannt
Habe ich eine Funktion hinterlegt, wie kann ich das herausfinden?

Viele Grüße
solman

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Ausblenden

Beitrag von nele_sonntag » 17.12.2010, 13:45

Vielleicht einfach mal Dein PDF hochladen, sonst ist die Diagnose schwierig.

solman
Beiträge: 23
Registriert: 17.12.2010, 10:18

Ausblenden

Beitrag von solman » 17.12.2010, 14:36

Hallo,
Leerzeile hat sich aus zu großer Box ergeben, ist jetzt weg.
Die Funktion konnte ich auch finden.
Vielen Dank :D

Antworten