Archiv des Intrexx Live! Forums

Hier sehen Sie die Foreneinträge aus dem Intrexx Live! Forum. Bis November 2016 war es das Forum für alle Fragen rund um die Software Intrexx von United Planet.
Seit November 2016 gibt es ein neues moderiertes Forum, das Intrexx Community Forum. Nutzen Sie bitte unbedingt dieses für aktuelle Fragen, Antworten und Informationen.

Wichtig: Dieses Forum dient als Archiv. Die Einträge beziehen sich oft auf ältere Versionen von Intrexx und entsprechen nicht mehr den aktuellen technischen Gegebenheiten.
Daher sollten alle Inhalte ausschließlich von Experten genutzt werden. Bei unsachgemäßer Anwendung kann es zu zeitaufwändigen Problemen oder Datenverlust kommen.
Übersicht > Intrexx Professional: General Questions > zugriff auf recherche-daten

zugriff auf recherche-daten

ich würde die datensätze, die bei der recherche ausgegeben werden noch mal als summe zusammengefasst haben. hat schon mal jemand sowas gemacht?
08.09.2005 10:37 von phoet
Ich brauche genau das gleiche, hab aber auch noch keine Lösung.


Idee: Kann man die SQL-Query, die die Recherche erstellt irgentwie auslesen ?

Wenn ja, kann man ja mit diesem SELECT eine Custom-Query innerhalb

VTL bauen, die die Summe über das Recherche-Ergebnis bildet.


Ich suche weiter ...
13.09.2005 08:42 von anybet
anybet Ich brauche genau das gleiche, hab aber auch noch keine Lösung.


Idee: Kann man die SQL-Query, die die Recherche erstellt irgentwie auslesen ?

Wenn ja, kann man ja mit diesem SELECT eine Custom-Query innerhalb

VTL bauen, die die Summe über das Recherche-Ergebnis bildet.


Ich suche weiter ...





dann wird dich das hier interessieren:




#foreach($drRecord in $Loader.getDataCollection().getDataRange($rechercheName).getRows())

#set($RecId = ${drRecord.getRecId()})

#set($rowCount = $velocityCount)


#foreach($field in $GenericFields)

#set($colCount = $velocityCount)



#getFieldName($field)



#set($CurrFieldFormatted = "")

#set($CurrFieldFormatted = $drRecord.getAttribute($field))

##for debugging

<!-- $CurrFieldFormatted|$CurrFieldName|$CurrFieldType|$CurrFieldGuid -->



#end ##foreach()



#end ##foreach()




einfach mal n bissl damit rumspielen. den namen der daterange bekommst du aus dem daterange-tag der recherche, einfach mal eigenschaften-->xml der recherche gucken, da wirst du fündig.
13.09.2005 12:33 von phoet
Danke,

ich habe Dein Beispiel ausprobiert, bekomme jedoch immer die

Fehlermeldung:

======================================

Fehler beim Rendering. Caused by:

org.apache.velocity.exception.MethodInvocationException: Invocation

of method 'getDataRange' in class

de.uplanet.lucy.server.businesslogic.rtappservices.DataCollection threw

exception class de.uplanet.lucy.server.businesslogic.BlException :

Es wurde keine DataRange gefunden.

======================================

Ich habe Deinem Beispiel den Namen der Recherche hinzugefügt:

#set($rechercheName = "generictablecontrolC90C38C0")


Ich habe auch sämtliche GUID's ausprobiert.

Mit generictablerecords87F69DDA kommt zwar keine Fehlermeldung,

jedoch auch keine Ausgabe (Ausgabe getestet mit blabla-String).


Help me !
13.09.2005 15:11 von anybet
anybet Danke,

ich habe Dein Beispiel ausprobiert, bekomme jedoch immer die

Fehlermeldung:

======================================

Fehler beim Rendering. Caused by:

org.apache.velocity.exception.MethodInvocationException: Invocation

of method 'getDataRange' in class

de.uplanet.lucy.server.businesslogic.rtappservices.DataCollection threw

exception class de.uplanet.lucy.server.businesslogic.BlException :

Es wurde keine DataRange gefunden.

======================================

Ich habe Deinem Beispiel den Namen der Recherche hinzugefügt:

#set($rechercheName = "generictablecontrolC90C38C0")


Ich habe auch sämtliche GUID's ausprobiert.

Mit generictablerecords87F69DDA kommt zwar keine Fehlermeldung,

jedoch auch keine Ausgabe (Ausgabe getestet mit blabla-String).


Help me !





also wenn du eine exception bekommst, dann ist es der falsche recherche-name.

ansonsten musst du mal n bissl rumprobieren. es kommen natürlich auch erst werte, wenn du in der recherche irgendwas eingestellt hast und dann die anfrage losschickst. ich habe das skript dann unterhalb der recherche in der seite eingebunden, damit die entsprechenden vtl-objekte auch zur vrfügung stehen.
14.09.2005 09:42 von phoet
Danke, jetzt gehts, allerdings kommen die Werte, die ich summieren

möchte vermutlich als String, und sind somit nicht kompatibel.

Mein zu summierendes Feld steht am Ende der Tab., deshalb kann

ich den Wert direkt nach einem inneren Schleifendurchlauf abfragen.[Code]#set($rechercheName = "generictablerecords87F69DDA")

#set($summe = 0)


#foreach($drRecord in $Loader.getDataCollection().getDataRange($rechercheName).getRows())

#set($RecId = ${drRecord.getRecId()})

#set($rowCount = $velocityCount)


#foreach($field in $GenericFields)

#set($colCount = $velocityCount)

#set($CurrFieldFormatted = "")

#set($CurrFieldFormatted = $drRecord.getAttribute($field))

##for debugging

##$CurrFieldFormatted|$CurrFieldName|$CurrFieldType|$CurrFieldGuid

#end ##foreach()


#set($summe = $summe + $CurrFieldFormatted) ## SUMMIERUNG


#end ##foreach()


<h2>$summe</h2>[/Code] Wie wandel ich einen String in einen float damit ich addieren kann ?


Danke


19.09.2005 15:20 von anybet
anybet Wie wandel ich einen String in einen float damit ich addieren kann ?


Danke






jaja, strings und float...

leider kann vtl nicht mit float rechnen. das wäre für mich ein grund gewesen diese skriptsprache NICHT einzusetzen...


vielleicht gibts irgendwo ein objekt, welches solche berechnungen durchführt, leider habe ich ein solches noch nicht entdeckt.


deshalb behelfe ich mir in dieser situation damit, dass ich die werte entweder in js-variablen schreibe und dann berechne, oder die strings auseinanderplücke und dann per integer berechnung weiterverwurste.


alles nicht sehr schön...
19.09.2005 16:08 von phoet
Hallo,


schaut euch doch einmal die .vm aus dem Kassenbuch näher an. Dort werdet Ihr auch entsprechende Funktionen zum Rechnen mit Float finden.


Viele Grüße


20.09.2005 07:55 von bergerl
bergerl Hallo,


schaut euch doch einmal die .vm aus dem Kassenbuch näher an. Dort werdet Ihr auch entsprechende Funktionen zum Rechnen mit Float finden.


Viele Grüße






danke für den tip. ich habe bei up schon mal nach ner referenz für die vtl-objekte angefragt, leider nix bekommen. wäre ja schön, wenn man nicht erst alle dateien durchsuchen muss um die passende funktion zu finden...



20.09.2005 08:03 von phoet
Also, hab ein bisschen gesucht, und bin noch ein wenig verwirrt.


1.) Wandeln eines Strings in Form von "1.850,50" in eine Float-Zahl !?

Kann ich das mit existierenden Klassen machen (z.B. TextUtil),

oder muss ich selber eine Klasse schreiben und einbinden ?



2.) Meinten Sie $CustomQuery.add(double, double) als Lösung zum

addieren von floats ?


Danke

Jan
20.09.2005 10:31 von anybet
Ich habs mal mit nem eigenen jar versucht.[Code]import java.lang.String;

import java.lang.Float;

public class MyStringFormatter {

public static float parse(String arg) {

arg = arg.trim();

arg = arg.replace(".", "");

arg = arg.replace(',', '.');

Float f = new Float(arg);

return f.floatValue();

}

}[/Code]Er findet die Klasse auch, Ausgabe von $DEBUG.inspect($MyStringFormatter) kommt

[Code]OBJECT: MyStringFormatter(at)1ff323

CLASS: MyStringFormatter

getClass(): class MyStringFormatter[/Code]allerdings will ich innerhalb der Klasse auf die Methode replace von

der Klasse java.lang.String zugreifen und bekomme:[Code]java.lang.NoSuchMethodError :

java.lang.String.replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;[/Code]Geht also nicht. Wie komm' ich an die Klasse(+Funktionen) java.lang.String heran ???

Oder gibt es eine UP-Klasse mit vergleichbaren Funktionen

(Das $StringHelper-Objekt konnte er nicht finden) ?


Danke
20.09.2005 12:40 von anybet
Danke an alle, nun funktioniert es.


Unterhalb der Recherche ein VTL einbinden:[Code]######################################

## Summenbildung bei einer Recherche

######################################


#set($rechercheName = "generictablerecords87F69DDA")

#set($summe = 0)

#set($zwischen = 0)


#foreach($drRecord in $Loader.getDataCollection().getDataRange($rechercheName).getRows())

#set($RecId = ${drRecord.getRecId()})

#set($rowCount = $velocityCount)


#foreach($field in $GenericFields)

#set($colCount = $velocityCount)

#set($CurrFieldFormatted = "")

#set($CurrFieldFormatted = $drRecord.getAttribute($field))

##for debugging

##$CurrFieldFormatted|$CurrFieldName|$CurrFieldType|$CurrFieldGuid

#end ##foreach()



#set($zwischen = $MyStringFormatter.parse($CurrFieldFormatted))

#set($summe = $CustomQuery.add($summe, $zwischen))



#end ##foreach()


<h3>Anzahl der Suchergebnisse: $rowCount Summe: $summe</h3>[/Code] MyStringFormatter-Klassse einbinden, wie im Sticky-Post beschrieben http://www.intrexx.de/upmessageboardger/msgboard.asp?Action=ShowTopic&Target=12517[Code]public class MyStringFormatter {



public static double parse(String arg)

{

if(arg == null || arg == "")

arg = "0";

arg = arg.trim();

arg = arg.replaceAll("\\.", "");

arg = arg.replace(',', '.');

Double d = new Double(arg);

return d.doubleValue();

}

}[/Code]Bis denne
26.09.2005 11:18 von anybet


Hallo,


Hat jemand eine Idee zur letzten Frage?!


Wie mache ich aus einem String des Formats "1.900,25" einen Float.


Bin auch am rumsuchen...


Vielen Dank für Tipps!




phoet ich würde die datensätze, die bei der recherche ausgegeben werden noch mal als summe zusammengefasst haben. hat schon mal jemand sowas gemacht?





13.02.2006 15:35 von SteffenA
Zurück | Alles über Intrexx | Impressum | Datenschutzerklärung

Über United Planet
© 2019 United Planet GmbH
Schnewlinstraße 2
79098 Freiburg