Seite 1 von 1
SUMMEWENN in Tabelle
Verfasst: 20.02.2013, 21:55
von acronaut_azubi
Hallo acronauten,
brauche Eure Hilfe.
In den Zeilen a-m können absolute oder %-tuale Werte eingetragen werden.
Es funktioniert alles wie gewünscht, bis auf die Aufaddierung der zeilenweisen eingegebenen %-tualen Werte.
Meine bspw.:- in allen Zeilen außer a und c wird ein absoluter Betrag ausgewäht (DD gleich EUR)
- wenn in a im DD "%" ausgewählt wird und im Feld rechts daneben 10 eingetragen wird errechnet sich der korrekte %-tuale Wert
Wie schaffe ich es - mit einer Schleife alle Zeilen zu durchlaufen
- abzuprüfen, ob "%" ausgewählt wurde und
- nur, wenn "%" ausgewählt wurde,
- nebenstehende Werte aufzuaddieren und
- im Feld "Gesamtprozent" auszugeben?
Hatte die Hoffnung, dass es folgendes Script tut..tut es leider nicht..
Code: Alles auswählen
var prozentGesamt = 0;
for(var i = 1; i < 14; i++)
{
if(Row[i+1].valueFormat[i] == "%")
{
prozentGesamt = Row[i+1].value[i].rawValue;
//app.alert(prozentGesamt);
}
this.rawValue = prozentGesamt;
}
Danke für Eure Hilfe.
acronaut_azubi
PS: Selbst bemerkt, dass hier wohl die Aufaddierung fehlt, ändert aber nichts daran, dass es nicht funktioniert
Code: Alles auswählen
prozentGesamt = prozentGesamt + Row[i+1].value[i].rawValue;
SUMMEWENN in Tabelle
Verfasst: 21.02.2013, 16:43
von acronaut_azubi
Nächsten eigenen Fehler bemerkt. Führt leider aber auch nicht zum Funktionieren.
Hatte rawValue bei der ersten Bedingung vergessen:
Code: Alles auswählen
var prozentGesamt = 0;
for(var i = 1; i < 14; i++)
{
if(Row[i+1].valueFormat[i].rawValue == "%")
{
prozentGesamt = prozentGesamt + Row[i+1].value[i].rawValue;
app.alert(prozentGesamt);
}
this.rawValue = prozentGesamt;
}
Jemand eine Idee, was falsch ist oder wie ich es anders lösen könnte?
LG acronaut_azubi
SUMMEWENN in Tabelle
Verfasst: 22.02.2013, 00:00
von acronaut_azubi
Warum funktioniert meine Schleife nicht?
Arbeite ich die Zeilen zeilenweise einzeln ab und lege das Skript in das Calculate-Event, dann funktioniert's.
Code: Alles auswählen
var gesamtprozent = 0;
if(Row2.valueFormat1.rawValue == "%"){gesamtprozent = gesamtprozent + Row2.value1.rawValue;}
this.rawValue = gesamtprozent;
if(Row3.valueFormat2.rawValue == "%"){gesamtprozent = gesamtprozent + Row3.value2.rawValue;}
this.rawValue = gesamtprozent;
if(Row4.valueFormat3.rawValue == "%"){gesamtprozent = gesamtprozent + Row4.value3.rawValue;}
this.rawValue = gesamtprozent;
...
...
Wo ist mein Fehler? Ich würde es gern mit einer Schleife lösen.
LG acronaut_azubi
SUMMEWENN in Tabelle
Verfasst: 25.02.2013, 19:26
von radzmar
Hi,
ich hab jetzt mal versucht, dein Formular zu fixen.
Es gibt da ein paar spezielle Probleme, die behoben werden mussten/müssen.
1. Du darfst Feldern keinen Namen wie "value" geben, da dies reservierte Wörter für Methoden/Skripteigenschaften sind.
2. Du hast eine Datenbindung, die mir unnötig erscheint. Wenn Du mal in die Berichtsleiste unten in Designer guckst, solltest Du da diverse Fehlermeldungen diesbzgl. sehen können.
Ich hab die Datenbindung gelöscht, da das für ich keine Sinn machte.
3. Deine Berechnungsscripte habe ich mal komplett verworfen und neu in FormCalc angelegt. Hierfür habe ich diverse Felder umbenannt.
Schau mal, ob das so passt.
SUMMEWENN in Tabelle
Verfasst: 25.02.2013, 19:50
von acronaut_azubi
Hallo radzmar,
oh, da muss ich mich für das "schlechte Ausgangsmaterial" entschuldigen.
Die Bindungen machen schon Sinn, das ist nur ein Teil aus einem Dokument, welches ich leider nicht komplett hochladen kann.
Meine Kollegen hatten dieses PDF (XDP) begonnen und ein wenig unschön die Berechnungen umgesetzt. Anstatt die Berechnung wie üblich im Calculate-Event zu hinterlegen, hatten sie immer im Exit mit execCalculate gearbeitet.
MIt dem Value hast du definitiv recht, das ist mir völlig entgangen!!! Danke schon mal hierfür.
Ich werde mir gleich, dein Bespiel ansehen. DANKE schon einmal für deine Mühe.
Problem:
In der Umgebung, in der das Original-XDP läuft, funktioniert Formcalc nicht. Ebenso dürfen manche Ereignisse, bspw. das Initialize nicht verwendet werden.
Hättest du noch eine JavaScriptSchleifenIdee, die auf Zeile1.Format1.rawValue und Zeile2.Format2.rawValue abfragt?
Des Weiteren müssen die Felder eindeutig benannt sein. Also Zeile1[0].Format und Zeile2[1].Format reichen wohl leider bei dieser Tabelle nicht.
Vor allem habe ich in Spalte 2 (neben a), b)) unterschiedlichen (etwas längeren erklärenden) Text.
Oder aber eine Javascript-Idee mit Zeile.Format, aber dafür eine Idee, wie ich den variablen Beschreibungstext in Spalte 2 bekomme, ähnlcih wie dein "a, b, c,..)-Ansatz, nur nicht in Formcalc??
LG acronaut_azubi
SUMMEWENN in Tabelle
Verfasst: 25.02.2013, 19:57
von radzmar
In welcher Umgebung läuft FormCalc nicht?
SUMMEWENN in Tabelle
Verfasst: 25.02.2013, 19:59
von acronaut_azubi
Das ist eine Bankenumgebung OSPlus.