Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: redspawn am 25.04.06 - 18:27:53

Titel: mal wieder ein Klassiker
Beitrag von: redspawn am 25.04.06 - 18:27:53
Hallo zusammen,

ich glaub dieses Problem hatte jeder schon mal, aber ich steh gerade echt auf dem Schlauch...

hier meine Formel, die in einem Textfeld berechnet wird:

zaehler := 0;
erg_temp :=0;

erg_temp := @If(PersonBUSchreiben = "k. A.";erg_temp;erg_temp + @TextToNumber(PersonBUSchreiben));
erg_temp := @If(PersonBUInhalt = "k. A.";erg_temp;erg_temp + @TextToNumber(PersonBUInhalt));
erg_temp := @If(PersonAusbildung = "k. A.";erg_temp;erg_temp + @TextToNumber(PersonAusbildung));
erg_temp := @If(PersonRefZeug = "k. A.";erg_temp;erg_temp + @TextToNumber(PersonRefZeug));
erg_temp := @If(PersonSkills = "k. A.";erg_temp;erg_temp + @TextToNumber(PersonSkills));
erg_temp := @If(PersonSozialkompetenz = "k. A.";erg_temp;erg_temp + @TextToNumber(PersonSozialkompetenz));

zaehler := @If(PersonBUSchreiben = "k. A."; zaehler; zaehler +1);
zaehler := @If(PersonBUInhalt = "k. A."; zaehler; zaehler +1);
zaehler := @If(PersonAusbildung = "k. A."; zaehler; zaehler +1);
zaehler := @If(PersonRefZeug = "k. A."; zaehler; zaehler +1);
zaehler := @If(PersonSkills = "k. A."; zaehler; zaehler +1);
zaehler := @If(PersonSozialkompetenz = "k. A."; zaehler; zaehler +1);

@If(zaehler = 0; quotient2 := "keine Angaben";quotient2 := @Text(erg_temp/zaehler));

@return(quotient2)

noch ne Info hinterher: die If-Abfrage mach ich weil der Fall 0 : 0 vorkommen könnte!

aber er bringt mir immer die eklige Fehlermeldung: "Falscher Datentyp für Operator oder @Funktion: Text erwartet"

Leute ich bin am verzweifeln, bitte nehmt mir mein Brett vor dem Kopf weg!!!!!!!

Gruß und Danke
Titel: Re: mal wieder ein Klassiker
Beitrag von: Thomas Schulte am 25.04.06 - 18:35:47
Code
erg_temp := @If(PersonBUSchreiben = "k. A.";erg_temp;erg_temp + @TextToNumber(@text(PersonBUSchreiben)));
wickel das Ganze noch in ein @text ein.

Titel: Re: mal wieder ein Klassiker
Beitrag von: eknori am 25.04.06 - 18:39:18
ich würde mal vermuten, daß in einem der Person... Feldern Text steht, der <> "k.A." ist. Wie soll der in eine Zahl umgewandelt werden ?
Titel: Re: mal wieder ein Klassiker
Beitrag von: redspawn am 25.04.06 - 18:46:19
@Thomas: hab ich mal versucht, bringt aber leider keine Besserung...

@eknori: ich habe jetzt alle Felder nochmal überprüft, da es Optionsschalftflächen sind, bei denen man entweder die Ziffern 1 - 5 oder eben "k. A." auswählen kann. Aber alles passt soweit.


wenn ich die letzte IF weg lasse und die else-action einfach so ausrechne, gibt er mir einen @error aus... ändere ich dann einen Schaltfläche auf eine Zahl, dann berechnet er mir den Wert wunderbar...
Titel: Re: mal wieder ein Klassiker
Beitrag von: eknori am 25.04.06 - 18:47:32
und bei allen Feldern ist ein Vorgabewert eingetragen ?
Titel: Re: mal wieder ein Klassiker
Beitrag von: redspawn am 25.04.06 - 18:48:53
genau: überall der Wert "k. A."   und ich hab auch schon überall nach dem Leerzeichen geschaut, das passt auch
Titel: Re: mal wieder ein Klassiker
Beitrag von: diam am 25.04.06 - 18:52:33
Hallo!

Versuch mal:

quotient2 := @If(zaehler = 0; "keine Angaben"; @Text(erg_temp/zaehler));

@return(quotient2)

Dirk
Titel: Re: mal wieder ein Klassiker
Beitrag von: eknori am 25.04.06 - 18:57:27
Logisch; guter Einstieg ins Forum, Dirk  :D Wundert mich nur, daß Notes die Formel so annimmt, ohne schon beim Speichern zu Meckern
Titel: Re: mal wieder ein Klassiker
Beitrag von: redspawn am 25.04.06 - 18:59:01
@dirk: Willkommen im Forum und danke für dein Posting

aber es hat auch nix geholfen... immer noch Error-Message
Titel: Re: mal wieder ein Klassiker
Beitrag von: diam am 25.04.06 - 19:13:35
Hallo!

Kannst Du in der Maske nicht dem Wert k. A. den Wert 0 zu ordnen ( k. A. | 0 ), dann
kannst Du die Zeile:

   erg_temp := @If(PersonBUSchreiben = "k. A.";erg_temp;erg_temp + @TextToNumber(PersonBUSchreiben));

durch

    erg_temp := erg_temp + @TextToNumber(PersonBUSchreiben) ;

ersetzen. @TextToNumber(PersonBUSchreiben) gibt dann auf jeden Fall eine Zahl zurück!


Dirk
Titel: Re: mal wieder ein Klassiker
Beitrag von: eknori am 25.04.06 - 19:19:48
evtl. solltest du deinen Code zunächst einmal mit einem Feld testen. Das schließt dann aus, daß der Fehler irgendwo mittendrin auftritt
Titel: Re: mal wieder ein Klassiker
Beitrag von: redspawn am 25.04.06 - 20:18:47
Also Leute... war wohl doch nur falscher Alarm, nachdem ich mir jetzt ewig den Kopf zerbrochen hab bin ich nur hergegangen hab das Feld gelöscht und neu erstellt, und siehe da... es ging.

Feld korrupt oder was auch immer... trotzdem danke für eure Hilfe!!!
Titel: Re: mal wieder ein Klassiker
Beitrag von: eknori am 25.04.06 - 21:46:55
Zitat
Also Leute... war wohl doch nur falscher Alarm
wieso muss ein eh schon beschissener Tag so zu ende gehen  :P