Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Rave: Mirror-Section mit ungleich-Bedingung (https://www.delphipraxis.net/49690-rave-mirror-section-mit-ungleich-bedingung.html)

Jasocul 14. Jul 2005 15:16


Rave: Mirror-Section mit ungleich-Bedingung
 
Wenn ich in einem Rave-Report Mirror-Sections benutze, sind die Bedingungen, zur Auswahl immer Gleichheitsabfragen. Ich habe aber auch Fälle, wo es um ungleich, größer als und kleiner als geht. Eine Gleichheitsprüfung ist einfach nicht möglich.
Beispiel:
Ich benötige unter der Bedingung, dass ein Kundennummer mit 4 anfängt, eine Anzeige. Ansonsten nicht. Theoretisch würde ich prüfen, ob die Kundennummer >= 40000 und < 50000 ist. Zusätzlich ist diese Nummer als String gespeichert.
Wie löse ich das Problem?

Keldorn 14. Jul 2005 19:58

Re: Rave: Mirror-Section mit ungleich-Bedingung
 
Hallo

ich probiers mal:
deiner Datamirrorsection weißt du weder dataview noch datafield zu, du weißt nur bei datamirrors 2 Sections zu (eine mit Default und eine mit dem Wert 4).

in das event onDatamirrorvalue der datamirrosection schreibst du dann
Delphi-Quellcode:
  if (Dataview1kundennummer.asinteger>=40000) and (Dataview1kundennummer.asinteger<50000) then
    value:='4';
  end;
wenn die Kundennummer immer ein int ist.

http://www.delphi-forum.de/viewtopic...highlight=rave bzw. hier im Forum nach Hier im Forum suchencalcop suchen, da findest du ähnliche Beiträge.


da ich nicht so die events verwenden möchte: eine andere Variante wäre vielleicht noch eine calcop-Komponente, bei der du
Destparam = irgendeinParametername
Operator = codiv
resultfctn = cftrunc
src1datafield = ~kundennummer
src1dataview = ~dataview
src2valaue = 100000
einstellst, bei der datamirrosection dann noch statt dem datafield den entsprechenden Paramter einstellen.

Mfg Frank

Jasocul 15. Jul 2005 06:15

Re: Rave: Mirror-Section mit ungleich-Bedingung
 
Danke Keldorn.
Das mit dem Event kann ich nachvollziehen (getestet habe ich es noch nicht).
Die Lösung mit calcop verstehe ich nicht.

btw: Warum verwendest du nicht so gerne die Events? Ich hatte bisher noch keinen Bedarf dafür und in der Doku habe ich nicht wirklich was brauchbares dazu gefunden. Das kann aber auch an mir liegen. :zwinker:

Keldorn 15. Jul 2005 17:43

Re: Rave: Mirror-Section mit ungleich-Bedingung
 
Zitat:

Zitat von Jasocul
Die Lösung mit calcop verstehe ich nicht.

ich habs nicht groß probiert, sollte aber folgendes machen: codiv: kundennummer durch 10.000 teilen (nicht 100.000 wie oben :oops: ), anschließend cftrunc -< somit solltest du bei einer Kundennummer von 47856 "4" erhalten, dieser wert wird in einen raveparameter geschrieben (destparam) und diesen kannst du dann im datamirror auswerten. so sollte es funktionieren (probiert habe ich es nicht, siehe signatur ;) )

Zitat:

btw: Warum verwendest du nicht so gerne die Events?
[/quote]
erstell dein event, wo du ein dataview ansprichst. compiliere das event und benenne anschließend das dataview um, der Name wird überall selbstständig geändert, nur nicht im event. Wenn Du dann den Report anzeigen läßt, ist das Resultat eine nichtssagende AV, an der ich das erste Mal verzweifelt bin, weil ich nicht im Traum an das event gedacht hatte. Zweitens finde ich es für einen Ausenstehenden etwas verwirrend (persönliche Meinung). Auf der einen Seite verwendet man Datamirrors, um unterschiedliche Anzeigen zu realisieren und an anderer Stelle events, um auch was unterschiedliches Anzuzeigen. und da Rave nicht unbedingt etwas ist, wo man gleich durchsteigt, will ich da einfach auf einer Schiene bleiben.

Mfg Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz