AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls ReportBuilder - Labels auf Region zur Laufzeit erzeugen
Thema durchsuchen
Ansicht
Themen-Optionen

ReportBuilder - Labels auf Region zur Laufzeit erzeugen

Ein Thema von JannesDKS · begonnen am 25. Jan 2011 · letzter Beitrag vom 25. Jan 2011
Antwort Antwort
JannesDKS

Registriert seit: 2. Feb 2009
Ort: Hamburg
61 Beiträge
 
#1

ReportBuilder - Labels auf Region zur Laufzeit erzeugen

  Alt 25. Jan 2011, 14:51
Moin Leute ich hab ein kleines Problemchen mit dem Reportbuilder.
Ich möchte in einem Report zur Laufzeit in einer ppRegion Labels erzeugen. und habe dafür folgenden Code geschrieben:

Delphi-Quellcode:
for i := 0 to ibds.FieldList.Count-1 do
    begin
      if not Varisnull(ibds.Fields[i].Value) then
      begin
        ppLBankLabel[i] := TppLabel.Create(pprBank);
        ppLBankLabel[i].Left := CompleteWidth;
        ppLBankLabel[i].Top := pprbank.Top + 2;
        ppLBankLabel[i].Caption := ibds.Fields[i].AsString;
        CompleteWidth := CompleteWidth + ppLBankLabel[i].Width +2;
      end;
    end;
Der Code läuft sauber durch, es sind aber leider auf dem Report keine Labels zu sehen. Ich dachte es liegt daran, dass ich ppLBankLabel[i].Parent nicht zugewiesen habe, aber beim debuggen sagt er, dass diese Eigenschaft Readonly ist.
Ich hab auch schon verschiedene Positionen für das ausführen dieses Codes ausprobiert. Ohne Erfolg. Sieht jemand meinen Fehler?
  Mit Zitat antworten Zitat
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#2

AW: ReportBuilder - Labels auf Region zur Laufzeit erzeugen

  Alt 25. Jan 2011, 15:00
Hi JannesDSK,
bei Problemen mit dem Reportbuilder, habe ich mich immer an die newsgroup von Digital Metaphors gewendet.
Dazu lad dir Mozilla Thunderbird runter und richte die newsgroup ein und poste dort dein Problem mal. (http://www.digital-metaphors.com/sup...ewsgroups.html).
Dort bekommst du auch schnell und vorallem gute Antworten (aber nicht so schnell wie hier)
sorry, dass ich dir nicht direkt weiterhelfen kann, aber falls ich Zeit finde und du dein Problem nicht schon selbst gelöst hast, werd ich's mir auch mal anschaun !

mfg David
  Mit Zitat antworten Zitat
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#3

AW: ReportBuilder - Labels auf Region zur Laufzeit erzeugen

  Alt 25. Jan 2011, 15:11
vll kann es sein, dass du die erzeugten Objekte noch anzeigen musst.
Muss man ja beim Erzeugen von Objekten in Delphi auch
also vll mal:
ppLBankLabel[i].Show oder
ppLBankLabel[i].Visible := True vll. hängt es damit zusammen *gg*
  Mit Zitat antworten Zitat
JannesDKS

Registriert seit: 2. Feb 2009
Ort: Hamburg
61 Beiträge
 
#4

AW: ReportBuilder - Labels auf Region zur Laufzeit erzeugen

  Alt 25. Jan 2011, 15:18
Hi Metallicwar,

hm, ja das hab ich auch schon ausprobiert. das ist es nicht. hab aber nochwas gefunden in der Newsgroup. Für den Tipp auch schon mal ein dickes Dankeschön

Delphi-Quellcode:
 for i := 0 to ibds.FieldList.Count-1 do
    begin
      if not Varisnull(ibds.Fields[i].Value) then
      begin
        ppLBankLabel[i] := TppLabel.Create(ppReport1);
        ppLBankLabel[i].Band := ppSummaryBand2;
        ppLBankLabel[i].Left := CompleteWidth;
        ppLBankLabel[i].Top := pprbank.Top + 2;
        ppLBankLabel[i].AutoSize := True;
        ppLBankLabel[i].Caption := ibds.Fields[i].AsString;
        CompleteWidth := CompleteWidth + ppLBankLabel[i].Width +2;
        ppLBankLabel[i].BringToFront;
        ppLBankLabel[i].Visible := True;
      end;
    end;
Geht immernoch nicht, aber wenigstens sagt er jetzt wenigstens, dass die Region der Parent der Labels ist. Immerhin
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

AW: ReportBuilder - Labels auf Region zur Laufzeit erzeugen

  Alt 25. Jan 2011, 15:31
Du kannst auch eine Region (mit allen Controls darauf) von einem Report auf einen anderen Report verschieben.
Du hast also einen Hauptreport und einen weiteren Hilfsreport, der nur als Container für ein oder mehrere Regionen dient.
Man kann die Regionen zwischen dem Hauptreport verschieben und wieder zurückbewegen.

Delphi-Quellcode:
// verschiebt die übergebene Region an den 1. leeren Platz
// auf dem Zielreport
procedure TForm1.MoveRegion1(const region: TppRegion);
begin
   // Region aktivieren
   region.Band := ReportMain.DetailBand;
   // Position der Region
   region.Left := ppLine5.Left;
   region.Top := ppLine5.Top;
   // richtige Breite der Region
   region.Width := ppLine6.Width;
   region.Height := ppLine6.Top-ppLine5.Top;
   region.Caption := '';
   region.Pen.Mode := pmNop; // Rahmen ausschalten
// region.Pen.Color := clRed; // Test
end;


// alle Regionen wieder entfernen (zurück auf den ursprünglichen Report)
procedure TForm1.ResetRegions;
   procedure ResetBandOfRegion(region:TppRegion);
   begin
      region.Band := ReportRegions.DetailBand;
   end;
begin
   ResetBandOfRegion(Region1);
   ResetBandOfRegion(Region2);
   ResetBandOfRegion(Region3);
end;
Andreas
  Mit Zitat antworten Zitat
JannesDKS

Registriert seit: 2. Feb 2009
Ort: Hamburg
61 Beiträge
 
#6

AW: ReportBuilder - Labels auf Region zur Laufzeit erzeugen

  Alt 25. Jan 2011, 15:44
Hey Shmia,

danke für den Hinweis, aber das nützt mir hier eigentlich nix. Das problem ist eher, dass ich die Labels horizontal anordnen möchte. die captions aber immer unterschiedlich lang sind. Im einen Land hat der Bank-Code mehr stellen als in anderen, usw.
Daher kam ich auf die Idee, die Labels zur Laufzeit zu erzeugen und so den verfügbaren Platz ideal auszunutzen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:02 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