Pointerman Geschrieben 13. Februar 2002 Geschrieben 13. Februar 2002 Hallo! Ich habe die dankbare aufgabe mich um die ganzen Ausdruckmechanismen bei einem Projekt zu kümmern. Mit der RAP vom Reportbuilder kriege ich bald n'Vogel und wollte mal fragen ob jemand eine brauchbare(möglicherweise kostenlose) Alternative kennt. Dank im Voraus von POINTERMAN!!! Zitieren
Racker Geschrieben 13. Februar 2002 Geschrieben 13. Februar 2002 Moin moin, was hast Du denn fuer ein Problem mit dem RAP? Also ich komme gut mit dem klar. Zitieren
Pointerman Geschrieben 13. Februar 2002 Autor Geschrieben 13. Februar 2002 Na du Racker ;-) Folgendes Problem stellt sich mir: Ich habe einen Sub-Report und möchte auf Labels aus dem Hauptreport zugreifen. Mal angenommen ich hab im Hauptreport das Label Label3: Label3.Width := Label3.Width + 3; Das will nicht! Und Report1.Label3.Width := Report1.Label3.Width + 2; geht auch nicht. Is ja aber auch irgend ein dummer Fehler drin. Außerdem ziehe ich mit einem DBText Strings aus der DB. Jetzt will ich mir eine Tabelle malen (so mit Linien). Um die Linien richtig auszurichten wollte ich eine Variable(TppVariable) nehmen und da die Länge des Strings reinschreiben, wenn sie länger als der bisher längste String ist. Klappt aber nicht weil die Variable immer wieder auf Null zurückgesetzt wird. Ich zeig dir einfach mal den Code (steht im "OnGetText"Event von der Variablen): Label6.Text := Variable1.Text; if strtoint(Variable1.Text) < Length(DBText2.Text) then begin Variable1.Text := IntToStr(Length(DBText2.Text)); end; Wäre gut/nett wenn du mir da irgendwie helfen könntest, bin nämlich noch kein RB-Profi. Dank im Voraus... POINTERMAN Zitieren
Racker Geschrieben 13. Februar 2002 Geschrieben 13. Februar 2002 Moin moin, das mit den Labeln ist nicht so darmatisch. Width kannst Du aus den Propertys auslesen. Diesen Wert weist Du einer globalen Variablen zu. Damit kannst Du dann weitermachen. Überhaupt empfiehlt es sich beim RAP viel mit globalen Variablen zu arbeiten, da sonst sehr viel schreibarbeit notwendig ist. Dein zweites Problem scheint ein Logikproblem zu sein. Label6.Text := Variable1.Text; if strtoint(Variable1.Text) < Length(DBText2.Text) then begin Variable1.Text := IntToStr(Length(DBText2.Text)); end; Hier solltest Du ein anderes event waehlen z.B. "bevore print". Ausserdem wuerde ich "Variable1.Text" schon vorher auf die laenge abklopfen, da an dieser Stelle der RAP tatsaechlich noch nicht so ausgereift ist. Ich hoffe ich konnte Dir helfen. Ansonsten: morgen bin ich wieder hier, dann kannst Du mich loechern. Da habe ich auch mehr Zeit :D Zitieren
Pointerman Geschrieben 13. Februar 2002 Autor Geschrieben 13. Februar 2002 Code soll doch eher so sein (immer noch im Event "OnGetText") if strtoint(Text) < Length(DBText2.Text) then Text := inttostr(Length(DBText2.Text)); Zitieren
Racker Geschrieben 14. Februar 2002 Geschrieben 14. Februar 2002 Moin moin, jetzt verstehe ich auch was Du meinst. Und der Fehler ist, dass Text immer auf 0 gesetzt wird? Hast Du es auch hier einmal mit einer globalen Variablen versucht? Wieviele SubReports hast Du denn in Deinem Report? Zitieren
Pointerman Geschrieben 14. Februar 2002 Autor Geschrieben 14. Februar 2002 Guten Morgen! Also Text gehört hier ja zu Varaible1 (Variable1.Text). Die Sache ist, daß anscheinend vor jedem if Text wieder auf 0 gestzt wird. Sub-Reports hab ich nur einen. Das gehört aber nicht zu der if-Problematik(hab ich vielleicht nicht klar genug gesagt). Das ich nicht auf Objekte außerhalb des Sub-Reports zugreifen kann ist ein Problem, die Sache mit dem if und den Variablen ein anderes. Was genau meinst du mit einer globalen Variable(was das ist, ist mir schon klar )? Meinst du eine Variable in RB, was meine Variable1 ja ist, oder eine Variable die in Delphi als global definiert ist(was ich irgendwie nicht glaube.) Mir selbst die Eselskappe aufsetzend... POINTERMAN:WD Zitieren
Racker Geschrieben 14. Februar 2002 Geschrieben 14. Februar 2002 Moin moin, eine globale Variable im RB legst Du folgendermassen an (wenn Du die Version 5 benutzt): [*]Reiter: Calc [*]Rechtsclick auf Report Bands [*]Module waehlen [*]Jetzt bist Du im "Module View" [*]rechts Variables auswaehlen [*]Variablen deklarieren [/list=1] Damit kannst Du dann alles machen, was Du brauchst. Bei weiteren Fragen: Hier bin ich ;) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.