AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Meherer Spalten glechzeitig anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

Meherer Spalten glechzeitig anzeigen

Ein Thema von Panschi · begonnen am 15. Sep 2011 · letzter Beitrag vom 20. Sep 2011
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.662 Beiträge
 
Delphi 12 Athens
 
#1

AW: Meherer Spalten glechzeitig anzeigen

  Alt 15. Sep 2011, 09:03
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;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Panschi
Panschi

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

AW: Meherer Spalten glechzeitig anzeigen

  Alt 15. Sep 2011, 09:16
das funktioniert auch bestens
Warum mögen Frauen OOP-Programmierer? Weil sie Klasse haben
  Mit Zitat antworten Zitat
Benutzerbild von Panschi
Panschi

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

AW: Meherer Spalten glechzeitig anzeigen

  Alt 20. Sep 2011, 11: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
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Meherer Spalten glechzeitig anzeigen

  Alt 20. Sep 2011, 11:40
Also eigentlich sollte sich der Satzzeiger des Slave im OnCalcFields nicht ändern. Die Berechnung erfolgt pro Datensatz. Du musst also ausserhalb für Synchronisierung von Master/Slave sorgen, in der Funktion selber vergleichst Du dann nur die Werte.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Panschi
Panschi

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

AW: Meherer Spalten glechzeitig anzeigen

  Alt 20. Sep 2011, 12:01
danke für die Hilfe
jetzt wird der Zeiger auf QrySlave nicht mehr geändert und siehe da... es klappt

Delphi-Quellcode:
procedure TFMain.QrySlaveCalcFields(DataSet: TDataSet);
begin
  if ersterDurchgang = 0 then
  begin
    Inc(ersterDurchgang);
    QryMaster.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 then
  begin
    QryMaster.Next;
  end
end;
Warum mögen Frauen OOP-Programmierer? Weil sie Klasse haben
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Meherer Spalten glechzeitig anzeigen

  Alt 20. Sep 2011, 12:12
Erstelle nächstes mal bitte (entsprechend den Forenregeln denen du bei der Anmeldung zugestimmt hast) für eine neue Frage ein neues Thema.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:05 Uhr.
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