+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

Grafik in Tabellenzelle als Hintergrund für Werte

Hallo!

Ich muss ein Layout umsetzen in welchem Daten in einer Tabelle dargestellt werden. Dabei gibt es Zellen welche Felder enthalten die wie in einem Formular ausehen. Es sind rechteckige Kästchen welche jeweils mit einer Ziffer befüllt werden. Das Ganze ergibt dann eine Zahl mit ein bis drei Kommastellen. Die Anzahl der rechteckigen Kästchen ist dabei von der Anzahl der Stellen sowie der Kommastellen der darzustellenden Zahl abhängig. Die Zahl selbst kommt aus einer Datenquelle und steht als Feld zur Verfügung.

LandLFormFields

Habe bereits das Designerhandbuch gewälzt aber bin dabei noch auf keine mir brauchbar erscheinende Idee gekommen, wie man diese Anforderung mit List and Label umsetzen könnte.

Ansätze die mir in den Sinn gekommen sind wären:

Erster Ansatz: Zwei Tabellen überlagern, weiß aber nicht ob das überhaupt möglich ist. Also in einer Tabelle zur die rechteckigen Kästchen anzuzeigen und in der anderen nur die Ziffern.

Zweiter möglicher Ansatz: Eine Untertabelle mit nur einer Zeile in die betreffende Spalte zu stecken. Die rechteckigen Kästchen würden sich dann aus den Zellen plus Hintergrundfarbe ergeben und die darzustellenden Ziffern kämen jeweils aus einem einzelnen Feld.

Beide Ansätze erscheinen mir hinreichend umständlich. Da ich noch nicht lange mit List & Label arbeite weiß vielleicht jemand einen besseren Weg, diese Anforderung umzusetzen.

Hallo Thomas!

Die zwei von Ihnen vorgeschlagenen Wege sollten bereits zielführend sein.

Alternativ könnte man auch darüber nachdenken ein DesignerObject zu verwenden, welches unterschiedliche Parameter, basierend auf den Datensatzinhalten erhalten kann. Wir liefern hierzu bereits ein Beispiel mit einer Google Maps Integration mit, welches entsprechend angepasst werden kann. Das Beispiel finden Sie unter folgendem Pfad in Ihrer List & Label 25 Installation: …\combit\List & Label 25\Beispiele\Microsoft .NET\WinForms\C#\DesignerProperty Sample.

Hallo Patrick!

Vielen Dank! Dann werde ich es einmal mit einer Untertabelle in einer Spalte probieren. Sollte ich auf Probleme stoßen, dann melde ich mich noch einmal.

Hallo!

So, grundsätzlich klappt das schon ganz gut, auch wenn es natürlich eine ziemliche Frickelei ist. Was ich allerdings bisher nicht hinbekommen habe ist, diesen grauen Rahmen rund um die Zeile wegzubekommen:

FormFieldsBorder

Die durchscheinende Hintergrundfarbe habe ich durch einen 1mm Rahmen um die Zellen in derselben Farbe gemacht. Transparent als Rahmen habe ich nicht gefunden. Vielleicht gibt es aber eine elegantere Lösung dafür.

Weiters nicht gefunden habe ich, wie gesagt, eine Möglichkeit, um den grauen Rahmen zu entfernen, auf die Hintergrundfarbe zu setzen oder sonstwie nicht sichtbar zu gestalten. Weder am Berichtscontainer noch bei den Eigenschaften der Tabelle wäre mir hier eine Möglichkeit untergekommen. Wird aber wohl eine geben :wink:

Das sieht wirklich schon sehr gut aus :+1:

Können Sie den Rahmen mithife der zugehörigen Darstellungsbedingung ausblenden?
Um Ihnen besser assisstieren zu können, wäre es von Vorteil, wenn Sie ein Testsample hochladen könnten.

Hallo!

Das ist eben die Frage, welche Darstellungsbedingungen hier genau verantwortlich sind. Muss ich das an der Zelle einstellen, an der Zeilendefinition, an der Tabelle, am Berichtscontainer? Ich habe nichts gefunden was hier Wirkung gezeigt hätte. Wo genau sind diese Grauen Linien, die man auf dem Bild sieht definiert? Die waren von Anfang an zu sehen und mir ist nicht klar wo sie her kommen.

Habe einfach einen Berichtscontainer eingefügt, die Tabelle und die Felder definiert und sowohl die Breite als auch die Hintergrund- und Rahmenfarbe der Zellen einzeln angegeben. Das hat zu obigem Ergebnis geführt.

Hallo!

Habe es gerade nochmals über die Rahmendefinition probiert, aber es klappt nicht so wie ich es erwartet hätte. Hier ein Video mit den Schritten die ich vollzogen habe:

Man sieht, welche Farbe ich auswähle und dass am Ende der Rahmen trotzdem grau ist. Was muß ich tun, um den Rahmen entsprechend in der gewünschten Farbe zu erhalten?

Hoffe, das animierte gif-video funktioniert hier.
Edit: Es hat funktioniert, aber man muss das Bild(Video) anklicken, damit es in der vollen Größe angezeigt wird. Ansonsten sieht man die Rahmenlinie nicht.

Die Werte können in den Rahmeneigenschaften der Datenzeilen eingestellt werden.

Im Dialog aktivieren Sie die Voreinstellung “Ohne”. So sollte kein Rahmen mehr zu sehen sein. Alternativ können Sie die einzelnen Rahmenlinien (Oben, Unten, usw) editieren.

Hallo!

Vielen Dank. Mittlerweile habe ich das bereits herausgefunden, siehe Video.
Leider gibt es bereits das nächste Problem, weil sich die Farbgebung nicht ganz so verhält wie zu erwarten wäre.

Gibt es noch eine andere Lösung, die Abstände der Zellen hinzubekommen?

Hallo,

wenn ich das GIF/Video richtig deute, dann müsste beim Ändern der Eigenschaften einer Rahmenlinie (Farbe, Breite etc.) nochmal die betreffende Rahmenlinie erneut auswählen, damit die Änderung auch übernommen wird - also nochmal in dem Dialog auf die Rahmenlinie klicken (zweimal: einmal fürs wegnehmen und einmal fürs aktualisieren).

Sonst könnten aber die einzelnen Rahmenlinien auch ohne den Rahmendialog verändert werden. Einfach die Eigenschaften pro Linien individuell einstellen:
image

Kommen Sie damit zu Ziel?

Danke, ich habe es jetzt geschafft, die Rahmen so hinzubekommen wie ich wollte. Was ich genau anders gemacht hatte, war mir nicht klar, aber nach dieser Erklärung verstehe ich es. Ich habe nämlich zuerst alle Rahmen entfernt und dann die Rahmen nochmals neu in der richtigen Farbe gesetzt.

Dann noch eine andere Frage, die aber dazu passt:

Gibt es eine Möglichkeit, nochmals um die ganze Zeile einen Rahmen zu ziehen? Mit ein paar mm Abstand? Das würde ich für mein Layout nämlich benötigen, habe aber an der Zeilendefinition keine Eigenschaften für Rahmen gefunden.

Um einen Rahmen wie gewünscht zu setzen müssen Sie wieder Zellenrahmen setzen. Nur diesmal Setzen wir die den Rahmen wie folgt:

  • Das linke Element zeichnet drei Rahmenlinien - links, oben, unten, rechts keine Linie
  • Das rechte Element zeichnet auch drei Rahmenlinien - rechts, oben, unten, links keine Linie
  • Elemente dazwischen zeichen den Rahmen nur oben und unten

So bekommen sie dann die gewünschte “Umfassung” der ganzen Zeile!