Seite 1 von 3

Ausblenden

Verfasst: 17.12.2010, 10:54
von solman
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



Ausblenden

Verfasst: 17.12.2010, 11:28
von nele_sonntag
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

Ausblenden

Verfasst: 17.12.2010, 11:31
von nele_sonntag
Die korrekte Verwendung der MOD-Funktion ist zu finden in der Hilfe unter
Skripterstellung > FormCalc-Benutzerreferenz > Arithmetik-Funktionen > Mod

LG Mandy

Ausblenden

Verfasst: 17.12.2010, 11:39
von solman
Vielen Dank :)

jetzt werden ALLE POSNR ausgeblendet:

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


Viele Grüße
solman

Ausblenden

Verfasst: 17.12.2010, 11:56
von nele_sonntag
Ja sehr schön, das hat doch schnell geklappt :-)
LG Mandy

Ausblenden

Verfasst: 17.12.2010, 12:01
von solman
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

Ausblenden

Verfasst: 17.12.2010, 12:15
von nele_sonntag
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)

Ausblenden

Verfasst: 17.12.2010, 13:11
von solman
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

Ausblenden

Verfasst: 17.12.2010, 13:45
von nele_sonntag
Vielleicht einfach mal Dein PDF hochladen, sonst ist die Diagnose schwierig.

Ausblenden

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