Suche geeignetes Steuerelement für Anwendung

Shakie

Erfahrenes Mitglied
Hallo!
Ich stehe vor dem Problem, dass ich nicht weiß welches Steuerelement ich für ein Programm verwenden soll.
Ich brauche ein Steuerelement, dass folgendes tun können sollte:
  1. ähnlich einem ListView brauche ich eine Tabelle. Dabei muss ich in ein Tabellenfeld aber Text mit Zeilenumbruch schreiben können. Das geht beim ListView leider nicht.
  2. Jede Spalte der Tabelle sollte eine eigene Hintergrundfarbe haben können und am besten sollte auch die Textfarbe veränderbar sein.
  3. Spalten sollten ausblendbar sein (oder wenigstens die Spaltenbreite auf Null stellen sollte möglich sein)
  4. Zum Schluss müsste ich ein Bild von der Tabelle machen können um sie auszudrucken.
Jetzt meine Frage: gibt es ein Steuerelement, dass mir hier weiterhelfen kann?
 
Ich habe grad die Bekanntschaft mit dem "DataGrid"-Control gemacht. Kennt sich jemand damit aus? Lässt sich das für meine Zwecke verwenden?
Ich hab schon überlegt, alles einfach in eine Excel-Tabelle zu schreiben. Hat jemand sonst noch kreative Vorschläge? ;)
 
Hallo Shakie,

das kannst du leider mit dem Datagrid vergessen.
Das Datagrid von VB Classic ist zwar sehr schnell wenn man
viele DS hat aber es läßt sich auch nur an ein Recordset
binden und hat keinen eigenen Cach.
Visuelle Spielereien mit Bildern oder Checkboxen im Grid sind
nicht möglich auch keine unterschiedlichen Zeilenfarben.
Vielleicht hilft dir das MSFlexgrid weiter ansonsten kommst
du an einem kommerziellen Grid eines Drittanbieters nicht
vorbei. Leider bietet VB da nicht viele Möglichkeiten.
In .NET hat sich dies etwas verbessert.

Jens
 
Hi Shakie,

neee so richtig brilliant hab ich auch keinen Vorschlag. Ich dachte auch an Excel. Was mich dabei gestört hat war das Teil als OLE einzubinden. Sieht einfach bescheiden aus :) Die Frage ist, ob man das Problem komplett in Excel mittels VBA lösen kann, dann währe das Erscheinungsbild freundlicher :)

Sorry
Das Orakel
 
Hab ich das richtig verstanden ? Es geht letztlich nur um den Ausdruck der Tabelle ?
Dann ist es am besten mit Excel zu arbeiten , aber nicht über das OLE Objekt sondern direkt Excel über Verweis einbinden , ein Excel Formular mit Tabelle erzeugen und die Spalten nach belieben füllen.
Da hilft der Macrorecorder von Excel sehr weiter um die Befehle rauszubekommen.

Jens
 
Nein es geht nicht nur um das Ausdrucken der Tabelle ;). Es müssen mit dem Programm noch Daten aus anderen Dateien eingelesen und verarbeitet werden. Das stell ich mir als Excel-Makro etwas kompliziert vor, deswegen möchte ich nicht VBA sondern VB verwenden.

Ich denke ich werde das MS FlexGrid verwenden, das habe ich mir nämlich grad angeschaut und es eignet sich ganz hervorragend! (Das ding kannte ich noch nicht, allerdings muss ich mich jetzt mit den ganzen Eigenschaften und Methoden des FlexGrids auseinandersetzen.....)

@JensG: Wie meinst du das mit "ein Excel Formular mit Tabelle erzeugen"? Kann man in VB ein Excel-Control auf einer Form platzieren?
(Wenn ich mit VB auf Excel zugreife, dann erzeuge ich immer mittels CreateObject ein Excel-Ding und steuere damit Excel.)

Danke euch beiden für eure Antworten!
 
Zuletzt bearbeitet:
Hi Shakie,

für das was du Vorhast ist das Flexgrid die einzige Möglichkeit das einigermassen vernünftig darzustellen vobei das Flexgrid an sich keine Checkboxen darstellen kann soweit ich weiss.

Alternativ wäre das Ultragrid von Infragistics oder auch die ssdbgrids ganz gut aber diese sind leider Kostenpflichtig und nicht wirklich billig ( es gibt auch eine Erweiterung des Flexgrids von Videosoft, diese ist aber auch Kostenpflichtig)

Jens meinte wohl auch nur das einbinden der Excel Application allerdings über Early-Binding wenn ich ihn da richtig verstanden habe

Grüsse bb
 
Hi,

@brainbyte

genau so meinte ich das :)
Wenn es um Auswertungen geht und der Kunde sowieso Excel installiert hat dann macht sich das immer ganz gut so, denn im Prinzip sind da von der Darstellung und von Schrift, Farbe etc. keine Grenzen gesetzt und das mit relativ wenig Aufwand.

@Shakie

Die Frage ist einfach die. Soll der Benutzer die Daten in dem Grid auch bearbeiten können etc. und spielt es eine Rolle wie die Daten im Programm selber dargestellt werden sollen.
Wenn dir ein Ausdruck oder die Darstellung in Excel letztlich ausreicht kommst du da schneller ans Ziel wenn du Excel einbindest, (was natürlich vorraussetzt das auf dem Zielrechner Excel auch installiert ist), meine ich. Denn das Flexgrid hat auch Grenzen und die Einarbeitung ist nicht so ganz ohne. Genauso ist aber bei vielen Drittanbietern die leistungsfähige Grids liefern.

Einlesen und Verarbeiten der daten hat ja nix mit dem Grid zu tun, das macht ja dein VB Programm. Nur zur Darstellung der Daten ist Excel sinnvoll und das hat nix mit nem Macro zu tun.
Ich meinte nur das du wenn du im VB Programm nicht weißt wie das Excel Dokument zu bearbeiten ist , dann den Macrorecorder als Hilfe nehmen sollst.

Jens
 
@JensG: Das mit dem Makrorekorder ist klar, da hatte ich dich oben irgendwie falsch verstanden.

Jetzt nehm ich doch Excel, denn mit den VBA-Befehlen dafür bin ich mehr vertraut als mit dem FlexGrid von Microsoft.
Außerdem hat sich jetzt (und leider nicht schon früher) herausgestellt, dass die fertige Tabelle unter Umständen in Word eingefügt werden soll. Mit einer Excel-Tabelle ist das ja leicht möglich.

Vielen Dank für eure Unterstützung, das hat mir viel Zeit erspart!

(Ich wusste gar nicht dass es sowas praktisches wie Early-Binding gibt! Da hab ich wieder was dazugelernt.)
 
Zurück