Calculate expression

Hallo liebe Helfer!
Schon wieder komme ich nicht weiter und zwar habe ich 2 Probleme:
1. in meiner for each Schleife, wo ich den Wert 1 durch einen Wert aus einer anderen Tabelle ersetzt habe (klappt jetzt hervorragend - dank eurer Hilfe) will ich nun, wenn der Wert 2 in der Tabelle steht den Wert aus der Lookup Tabelle mal 2 rechnen, geht aber nicht, es kommt aber auch keine Fehlermeldung ...
Mein Code lautet:
polygonthema.Query(theQuery2, theBitmap, #VTAB_SELTYPE_NEW)
polygonthema.Query(Sel1, theBitmap, #VTAB_SELTYPE_AND)
polygonthema.UpdateSelection
theBewVTab.Query(IdFeld3, theBitmap2, #VTAB_SELTYPE_NEW)
theBewVTab.UpdateSelection
for each r in theBewVTab.GetSelection
polyAuswahl = theBewVTab.ReturnValueString(Preisfeld,r)
polyAuswahl2 = ((polyAuswahl.AsNumber)*2)
for each rec in polygonthema.GetSelection
Wert = polygonthema.ReturnValue(Spalte4, rec)
if (Wert = 1) then
polygonthema.SetValue(Spalte4,rec,polyAuswahl)
elseif (Wert = 2) then
polygonthema.SetValue(Spalte4,rec,polyAuswahl2)
end
end
end
polygonthema.GetSelection.ClearAll
polygonthema.UpdateSelection
theBewVTab.GetSelection.ClearAll
theBewVTab.UpdateSelection

2. Ich schaffe es einfach nicht den richtigen Ausdruck hinzukriegen um im Feld Summe (Nummernfeld)das Ergebnis der Addition von ca. 10 verschiedene Spalten (auch Nummernfelder) erscheinen zu lassen, kann mir da auch bitte jemand weiterhelfen. Ich habe es schon versucht mit Field.SetValue oder mit Vtab.Calculate, aber mit dem logischen Ausdruck dahinter habe ich so meine Probleme.
Auf jeden Fall Danke im Voraus
Susanne
zu 1. Dein polyAuswahl2 ist eine Zahl. Wenn du eine Zahl in ein String-Feld schreiben willst, muss es heissen polyAuswahl2.AsString
Hallo Gast
Mein Feld in dem ich die Zahl schreiben will ist ein Number Feld an dem kann´s also nicht liegen, hab´s auch probiert und geht nicht
Dann würde ich mal prüfen, ob der elseif-Zweig überhaupt erreicht wird. Führ den Code doch mal schrittweise aus, oder bau ein paar MsgBoxen ein.
Hallo Gast - ich habe jetzt eine MsgBox.Info in die elseif Schleife eingebaut und wenn ich das Script aufrufe, dann erscheint sie nicht, was habe ich denn falsch gemacht?
Hallo Sus,

2. Ich schaffe es einfach nicht den richtigen Ausdruck hinzukriegen um im Feld Summe (Nummernfeld)das Ergebnis der Addition von ca. 10 verschiedene Spalten (auch Nummernfelder) erscheinen zu lassen, kann mir da auch bitte jemand weiterhelfen.

Arbeitest du mit dem Ausdruck im Calculator oder geht es um ein Avenue-Script. Der bisherige Ausdruck bzw. Code waere als Diskussionsbasis hilfreich.

Gruss

Uwe
Hallo Uwe!
Es ist ein Avenue Code
1. Version, wobei die Strings in den eckigen Klammern die Namen von Feldern sind, Spalte 20 ist die Variable für das Feld Summe, das ich vorher mit FindField suchen lasse:
for each record in polygonthema
theBewVtab.Calculate(("[KG]"+"[EG]"+"[OG]"+"[DGausgeb]"+"[DGleer]"+"[D Gkriechb]"+
"[Wittenne]"+"[Witstall]"+"[Sibeton]"+"[Siholz]"+"[Schuhr]"+
"[Schuhb]"+"[Turnhall]"+"[Hallenbad]"+"[Tennis]"+"[LaMassiv]"+"[LaStah l]".Quote), Spalte20)
theBewVtab.calculate((Spalte1.AsNumber+Spalte2.AsNumber), Spalte20)
'polygonthema.SetValue(Spalte20,record,Summenfeld)
end

2. Version
for each record in polygonthema
Summenfeld = theBewVtab.Calculate(("[KG]"+"[EG]"+"[OG]"+"[DGausgeb]"+"[DGleer]"+"[D Gkriechb]"+
"[Wittenne]"+"[Witstall]"+"[Sibeton]"+"[Siholz]"+"[Schuhr]"+
"[Schuhb]"+"[Turnhall]"+"[Hallenbad]"+"[Tennis]"+"[LaMassiv]"+"[LaStah l]".Quote), Spalte20)
polygonthema.SetValue(Spalte20,record,Summenfeld)
end

3. Version Spalte1 ... sind Variablen, die ich vorher suchen lasse:
Spalte1 = polygonthema.FindField("KG")
Spalte2 = polygonthema.FindField("Gebart")
for each record in polygonthema
theBewVtab.calculate((Spalte1+Spalte2), Spalte20)
end

Bei der Version 3 kommt die Fehlermeldung, dass ein Feld die Operation + nicht kennt.
Vielen Dank
Susanne
Hallo Sus,

Die Version 1 scheint mir die beste zu sein. Mir scheint, dass du schreiben muesstest:

"[Wittenne] + [Witstall] + [Sibeton...

Das heisst, die vielen Anfuehrungszeichen dazwischen muessen raus.

Gruss

Uwe
ich habe jetzt eine MsgBox.Info in die elseif Schleife eingebaut und wenn ich das Script aufrufe, dann erscheint sie nicht, was habe ich denn falsch gemacht?

Vermutlich läuft bei der Query irgendwas nicht richtig. Du solltest mal prüfen, ob du überhaupt Datensätze mit dem Wert 2 erwischst.
Hallo Uwe
Dann kommt die Fehlermeldung:
Bad Token "[KG]+[EG+]......
und
Hallo Gast
Danke für den Hinweis, das war wohl der Fehler!
Susanne
Danke alles gelöst
Susanne