Einzelnen Beitrag anzeigen

Benutzerbild von Panschi
Panschi

Registriert seit: 30. Aug 2011
Ort: Sauerland
51 Beiträge
 
Delphi XE2 Enterprise
 
#10

AW: Meherer Spalten glechzeitig anzeigen

  Alt 20. Sep 2011, 12:23
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.
Angehängte Grafiken
Dateityp: jpg Ergebnis.jpg (33,5 KB, 7x aufgerufen)
Warum mögen Frauen OOP-Programmierer? Weil sie Klasse haben
  Mit Zitat antworten Zitat