Seite 5 von 5

Re: PB.Ex-Wünsche

Verfasst: 16.05.2019 13:22
von Kiffi
Hi Ray,

die Liste ist schon mal ein guter Anfang. :allright:

Um allerdings einen echten Mehrwert gegenüber dem ListIconGadget zu haben, sollte es auf lange Sicht z.B. auch die Möglichkeit geben, die Formatierung von Zellen (Event: CellFormatting) angeben zu können.

Des weiteren fülle ich ein DataGridView nie Zeile für Zeile, sondern koppel dessen DataSource an eine DataTable. Das geht wesentlich schneller und ich brauche mich auch nicht um die Spalten zu kümmern, da sie automatisch angelegt werden.

Falls Du da Hintergrund-Infos benötigst, kannst Du Dich gerne melden.

Grüße ... Peter

Re: PB.Ex-Wünsche

Verfasst: 16.05.2019 13:55
von RSBasic
Kiffi hat geschrieben:Des weiteren fülle ich ein DataGridView nie Zeile für Zeile, sondern koppel dessen DataSource an eine DataTable.
Mir fallen nur zwei Quellen ein:
-MSSQL-Datenbank
-Access-Datenbankdatei

Was für DataSources braucht man noch?

Re: PB.Ex-Wünsche

Verfasst: 16.05.2019 14:04
von RSBasic
Kiffi hat geschrieben:Um allerdings einen echten Mehrwert gegenüber dem ListIconGadget zu haben, sollte es auf lange Sicht z.B. auch die Möglichkeit geben, die Formatierung von Zellen (Event: CellFormatting) angeben zu können.
Ja, das ist eine gute Idee. Ich muss nur schauen, wie ich das automatisieren kann bzw. was für Varianten (z.B. Datumskonvertierung, automatisches Einfärben, ...) ich bereitstellen kann.

Re: PB.Ex-Wünsche

Verfasst: 16.05.2019 14:15
von Kiffi
RSBasic hat geschrieben:Mir fallen nur zwei Quellen ein: [...]
nee, ich meine eine System.Data.DataTable.

sowas in der Art:

Code: Alles auswählen

myDataTable = New DataTable

myDataTable.Columns.Add("Col1", System.Type.GetType("System.String"))
myDataTable.Columns.Add("Col2", System.Type.GetType("System.String"))
myDataTable.Columns.Add("Col3", System.Type.GetType("System.String"))

For Counter = 0 To 100

  Dim newRow As DataRow = myDataTable.NewRow

  newRow.Item("Col1") = "Value1 " & Counter
  newRow.Item("Col2") = "Value2 " & Counter
  newRow.Item("Col3") = "Value3 " & Counter

  myDataTable.Rows.Add(newRow)

Next

myDataGridView.DataSource = myDataTable
Die DataTable hat primär erst einmal keinen Bezug zu den Datenbanken. Sie kann allerdings mittels eines DataAdapters (der dann wiederum an eine Datenbank gekoppelt wird) befüllt werden.

Es ist vielleicht überlegenswert, ob man den ganzen Data-Krams in eine eigene DLL auslagert, die dann parallel zur DataGridView-DLL verwendet werden kann.

Grüße ... Peter

Re: PB.Ex-Wünsche

Verfasst: 16.05.2019 14:33
von RSBasic
Kiffi hat geschrieben:Es ist vielleicht überlegenswert, ob man den ganzen Data-Krams in eine eigene DLL auslagert, die dann parallel zur DataGridView-DLL verwendet werden kann.
Das hätte ich eigentlich auch vorgeschlagen, aber dann wüsste ich nicht, wie ich das C#-DataTable-Objekt mit allen von dir erstellten Daten von einer DLL in eine andere DLL übergeben kann, ohne selber einen Konverter-Passing-Methode zu schreiben. Handle eines Objektes übergeben und Speicherbereich kopieren geht in C# soweit ich weiß nicht.

Re: PB.Ex-Wünsche

Verfasst: 16.05.2019 14:50
von ¯\_(ツ)_/¯
Kiffi hat geschrieben:Des weiteren fülle ich ein DataGridView nie Zeile für Zeile

sowas in der Art:

Code: Alles auswählen

myDataTable = New DataTable

myDataTable.Columns.Add("Col1", System.Type.GetType("System.String"))
myDataTable.Columns.Add("Col2", System.Type.GetType("System.String"))
myDataTable.Columns.Add("Col3", System.Type.GetType("System.String"))

For Counter = 0 To 100

  Dim newRow As DataRow = myDataTable.NewRow

  newRow.Item("Col1") = "Value1 " & Counter
  newRow.Item("Col2") = "Value2 " & Counter
  newRow.Item("Col3") = "Value3 " & Counter

  myDataTable.Rows.Add(newRow)

Next

myDataGridView.DataSource = myDataTable
Was ist der Unterschied oder Vorteil wen man zuerst in dieses Datatable erstellt und dann an Datagridview ? Warum nicht direkt ins Gadget ? Ins Datatable füllst du auch Zeile für Zeile...

Re: PB.Ex-Wünsche

Verfasst: 19.05.2019 08:37
von RSBasic
Hi Kiffi,

es ist grundsätzlich doch möglich, DataTable in einer separaten DLL-Datei zu erstellen und diese an PB.Ex GridGadget als Speicheradresse zu übergeben. Dann kann man auch DataTables ohne GridGadget erstellen und mit einer Methode als XML exportieren und importieren.
Aber leider kann ich beim GridGadget nicht einfach die Speicheradresse mit Property "DataSource" verknüpfen, sondern ich muss in der Ziel-Instanz eine eigene DataTable mit dem Inhalt aus der Speicheradresse neu erstellen und diese neu erstellte DataTable kann ich mit DataSource binden.
Du wolltest bestimmt eine direkte Bindung zwischen DataTable und GridGadget haben oder? So müsste man jegliche Änderung dem PB.Ex GridGadget mitteilen.