Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Meherer Spalten glechzeitig anzeigen (https://www.delphipraxis.net/163080-meherer-spalten-glechzeitig-anzeigen.html)

Panschi 15. Sep 2011 07:49

Datenbank: SQL • Version: - • Zugriff über: ADO

Meherer Spalten glechzeitig anzeigen
 
Hallo Forum,
Ich programmiere momentan ein Projekt, in dem zur Laufzeit zwei ADO-Connections erstellt werden, deren Daten dann mit jeweils einem Query in jeweils ein DBGrid geschrieben werden. Durch meinen SQL Code werden 3 Spalten aus den WErten erstellt, jedoch zeigt mir das DBGrid immer nur Eine an. Ich kann zwar per Scrollbar zur nächsten wechseln, aber ich krieg es nicht hin alle auf einmal darzustellen.
Hier im Forum hab ich lieder auch noch keine Antwort gefunden, also hoffe ich auf Hilfe

DeddyH 15. Sep 2011 07:57

AW: Meherer Spalten glechzeitig anzeigen
 
Falls ich Dich richtig verstanden habe: schau mal hier

Panschi 15. Sep 2011 08:25

AW: Meherer Spalten glechzeitig anzeigen
 
hmm... damit verändern sich die Tabellen leider auch nicht :/

DeddyH 15. Sep 2011 08:26

AW: Meherer Spalten glechzeitig anzeigen
 
Wie, Tabellen? Was genau soll denn erreicht werden?

Panschi 15. Sep 2011 08:37

AW: Meherer Spalten glechzeitig anzeigen
 
Liste der Anhänge anzeigen (Anzahl: 1)
2 Datenbanken werden in jeweils eine Tabelle geschrieben und später dann vergliechen und die Unterschiede ausgebessert. Das klappt auch alles, nur eben nicht die Darstellung der Tabelle, weil mir nur jeweils eine Spalte angzeigt wird. Ich kann zwar von Spalte zu Spalte wechseln, aber ich möchte gerne alle Spalten gleichzeitig in der Tabelle sehen...
Habe mal einen Screenshot angehängt wie es momentan aussieht...

DeddyH 15. Sep 2011 08:44

AW: Meherer Spalten glechzeitig anzeigen
 
Jepp, das ist die zu große Spaltenbreite. Der verlinkte Artikel befasst sich doch genau damit. Zur Not kannst Du die Spaltenbreite aber auch selbst festlegen.

Panschi 15. Sep 2011 08:53

AW: Meherer Spalten glechzeitig anzeigen
 
Ich sehe endich Licht am Ende des Tunnels :)

Der Quellcode von deinem Link funktioniert zwar nicht wie gewünscht, aber ich hab daraus einfach folgendes gebaut, was funktioniert:
Delphi-Quellcode:
  for i := 0 to dbgMaster.Columns.Count -1 do
  begin
    Spalte := dbgMaster.Columns[i];
    Spalte.Width := Round(dbgMaster.Width/3); //3 wegen 3 vorhandenen Spalten
  end;

  for i := 0 to dbgSlave.Columns.Count -1 do
  begin
    Spalte := dbgSlave.Columns[i];
    Spalte.Width := Round(dbgSlave.Width/3);
  end;
dankeschön :thumb:

DeddyH 15. Sep 2011 09:03

AW: Meherer Spalten glechzeitig anzeigen
 
Evtl. auch so (ungetestet):
Delphi-Quellcode:
procedure ResizeColumnsEqually(Grid: TDBGrid);
var
  i: integer;
begin
  if Assigned(Grid) then
    for i := 0 to Grid.Columns.Count - 1 do
      Grid.Columns[i].Width := Grid.ClientWidth div Grid.Columns.Count;
end;

Panschi 15. Sep 2011 09:16

AW: Meherer Spalten glechzeitig anzeigen
 
das funktioniert auch bestens :thumb:

Panschi 20. Sep 2011 11:23

AW: Meherer Spalten glechzeitig anzeigen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Kaum ist das erste Problem gelöst, habe ich schon wieder ein neues :(
Jetzt soll ich das Programm noch so umschreiben, dass die beiden Tabellen beim Aufruf direkt verglichen werden und bei Unterschieden in der Spalte "Description" sollen die jeweiligen Zeilen in der Slave-Tabelle farbig markiert werden.

Ich möchte das folgender Maßen machen:
Ich habe in der Slave ein berechnendes Feld eingefügt, welches den Description Wert der Slave-Tabelle, mit dem Description Wert der Master-Tabelle vergleicht. Sind die werte gleich wird keine Farbe gesetzt(wert = 0), ist in der Master kein wert, dann soll der Slave wertgelöscht werden und die Zeile rot markiert werden(wert = 2), soll ein Text in der Slave hinzugefügt werden oder geändert werden soll die Zeile gelb markiert werden(wert = 1). In der Prozedure dbgSlaveDrawColumnCell wird dann je nach Wert die richtige Farbe gesetzt, was auch funktioniert. Jedoch gibt es schwierigkeiten bei dem Calcfields...

Mein bisheriger Quelltext:
(mein berechnendes Feld heißt: QrySlaveVeraendert)

Delphi-Quellcode:
procedure TFMain.QrySlaveCalcFields(DataSet: TDataSet);
begin
  if ersterDurchgang = 0 then
  begin
    Inc(ersterDurchgang);
    QryMaster.First;
    QrySlave.First;
  end;

  if QryMaster.FieldByName('Description').Value <> QrySlave.FieldByName('Description').Value
  then
  begin
    if QryMaster.FieldByName('Description').Value = '' then
    begin
      QrySlaveVeraendert.Value := 2;
    end
    else begin
      QrySlaveVeraendert.Value := 1;
    end;
  end
  else begin
    QrySlaveVeraendert.Value := 0;
  end;

  if (QryMaster.Eof = false) and (QrySlave.Eof = false) then
  begin
    QryMaster.Next;
    QrySlave.Next;
  end
end;
Angehängt ist ein Screenshot meines Programmes nach Ausführen der Prozedur... wie zu sehen ist, bekommt er für die Master-Tabelle nicht die richtigen Werte. Falls ein Wert in der Slave vorhanden ist, wird dieser rot markiert, soll also gelöscht werden, obwohl in der Master Tabelle ein Wert vorhanden ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz