Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Rave - DMS spiegelt falsche Section ein (https://www.delphipraxis.net/54058-rave-dms-spiegelt-falsche-section-ein.html)

Safti 27. Sep 2005 10:07

Datenbank: Oracle • Version: 9i • Zugriff über: ODAC

Rave - DMS spiegelt falsche Section ein
 
Hallo DPler,

ich habe eine DirectDataView (verknüpft mit einer TRvDataSetConnection), die Nettobeträge und Mwst-Sätze enthält. Im Moment sind es max. 3 Datensätze (keine Steuer, halbe Steuer, volle Steuer). Es könnten rein theoretisch auch mehr als 3 Sätze sein (vielleicht führt man ja irgendwann in Deutschland noch die 1/4-Steuer und die 3/4-Steuer ein :roll: ).
Das ganz liegt auf einem DataBand und soll am Ende meiner Rechnung gedruckt werden. In etwa so:

Code:
Netto         1.587,00 
Mwst 0,00%   +     0,00

Netto       + 1.000,00 
Mwst 8,00%   +    80,00

Netto       + 2.500,00 
Mwst 16,00%  +   400,00
Berechnungen etc. sind alles kein Prob, mir geht es nur um das +. In der ersten Zeile soll das + ja nicht gerduckt werden. Also hab ich mir das ganze auf 2 Sections ausgelagert. Auf der einen ist in der Nettozeile das + (stnMitPlus) auf der anderen eben nicht (stnOhnePlus).

Auf dem DataBand hab ich eine CalcTotal-Komponente liegen. CalcType ist ctCount. ControllerBand ist das entprechende Mwst-DataBand, DestParam ist Zeile, RunningTotal steht auf true.
Dann hab ich ebenfalls eine DMS. DataField ist Param.Zeile. DataMirrors hat folgende Einträge
Default: stnMitPlus
value=1: stnOhnePlus

Zur Kontrolle lasse ich mir den Parameter Zeile auch noch zusätzlich auf dem DataBand ausgeben. Das Ergebnis sieht wie folgt aus:

Code:
Zeile 1  Netto       + 1.587,00 
         Mwst 0,00%   +     0,00

Zeile 2  Netto         1.000,00 
         Mwst 8,00%   +    80,00

Zeile 3  Netto       + 2.500,00 
         Mwst 16,00%  +   400,00
Wieso wird in Zeile 1 stnMitPlus und in Zeile 2 stnOhnePlus gedruckt? Der Parameter Zeile hat ja scheinbar die richtigen Werte. Hab ich irgendwas übersehen? :gruebel:

EDIT:
Ok, dann hab ich doch selber eine Lösung gefunden, die auch noch wesentlich übersichtlicher ist. Wobei mir trotzdem unklar ist, warum die Lösung von oben nicht funktioniert.
Arbeite jetzt ohne DMS, hab meine Daten also direkt auf dem DataBand liegen und einfach im OnBeforePrint-Event des 1. Plus Zeichens folgenden Code implementiert:

Code:
if RaveProject.GetParam('Zeile') = '1' then
    self.Text:='';
else
    self.Text:='+';
end;
Warum einfach, wenn es auch kompliziert geht?! :roll:

Gruß
Safti

merlin17 24. Okt 2005 09:28

Re: Rave - DMS spiegelt falsche Section ein
 
Hallo,

Rave hat, wie jedes andere Programm auch, sicherlich die ein oder andere "Macke"...
aber im DMS-Bereich läuft es eigentlich seit Rave3 annoDazumal ohne jedwede Probleme
(DMS ist (oder war, keine ahnung) ein Alleinstellungsmerkmal von Rave, bei richtigem Einsatz
richtig effektiv :thumb: );
hier ein Zitat aus dem akt. Entwickler 6.05(von Sakura :cat: ein Artikel, Seite 50) über DMS in Rave:
"Auf den ersten Blick erscheint es etwas umständlich, aber bei näherer Betrachtung ist es ein sehr durchdachtes Prinzip".

:wink: thomas, TeamNevrona


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:45 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