Einzelnen Beitrag anzeigen

Safti

Registriert seit: 30. Mär 2005
Ort: Freiburg im Breisgau
46 Beiträge
 
Delphi 7 Enterprise
 
#1

Rave - DMS spiegelt falsche Section ein

  Alt 27. Sep 2005, 11:07
Datenbank: Oracle • Version: 9i • Zugriff über: ODAC
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 ).
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?

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?!

Gruß
Safti
  Mit Zitat antworten Zitat