Autor Beitrag
WEBSTER
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 94



BeitragVerfasst: Mi 16.11.05 14:47 
Salute,

ich möchte mir eine Master/Detail Ansicht mit dem QuantumGrid 4 darstellen.

Leider bekomme ich das nicht hin. Es wird immer nur ein Detaildatensatz angezeigt.
Und das auch nicht immer, manchmal wird kein Detaildatensatz dargestellt, obwohl das Dataset welche beeinhaltet.

Als Datenbank benutze ich Firebird 1.5 und für den DB Zugriff FibPlus.

Vorgehen:

Ich habe zwei Selects. Erster Select für die Master DS und der Zweite für die Detail DS.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
   /////////////////////////////////////////////////////////////////////////////
   // Alle Immobilien des Kunden werden selektiert [MASTER]

   Str_SQL := 'Select * from kunden_immobilien where kunden_nr=' + chr(39) + Kunden_Nr + chr(39);

   //////////////////////////////////////////////////////////////////////////////
   // SQL wird aus geführt

   Immobilien_verwalten_DataSource.DataSet := Immobilien_verwalten_pFIBDataSet;

   Immobilien_verwalten_pFIBDataSet.Close;
   Immobilien_verwalten_pFIBDataSet.SelectSQL.clear;
   Immobilien_verwalten_pFIBDataSet.SelectSQL.Add(str_sql);
   try
      Immobilien_verwalten_pFIBDataSet.open;

      Result := TRUE;
   except
      //////////////////////////////////////////////////////////////////////////////
      // Cursor wird auf Default gesetzt

      Screen.Cursor := crDefault;

      ShowMessage('Fehler ! SQL Konnte nicht ausgeführt werden.' + chr(10) + chr(13) + Str_SQL);
   end;


   /////////////////////////////////////////////////////////////////////////////
   // Alle Geschäfte des Kunden werden selektiert [DETAIL]

   Str_SQL := 'Select * from geschaefte where kunden_nr=' + chr(39) + Kunden_Nr + chr(39);
   Str_SQL := Str_SQL+' and immobilien_nr is not null';

   //////////////////////////////////////////////////////////////////////////////
   // SQL wird aus geführt

   geschaefte_verwalten_DataSource.DataSet := geschaefte_verwalten_pFIBDataSet;

   geschaefte_verwalten_pFIBDataSet.Close;
   geschaefte_verwalten_pFIBDataSet.SelectSQL.clear;
   geschaefte_verwalten_pFIBDataSet.SelectSQL.Add(str_sql);
   try
      geschaefte_verwalten_pFIBDataSet.open;

      Result := TRUE;
   except
      //////////////////////////////////////////////////////////////////////////////
      // Cursor wird auf Default gesetzt

      Screen.Cursor := crDefault;

      ShowMessage('Fehler ! SQL Konnte nicht ausgeführt werden.' + chr(10) + chr(13) + Str_SQL);
   end;


Tabelle: kunden_immobilien [MASTER]
PK = ROW_ID

Tabelle: geschaefte [DETAIL]
PK = ROW_ID

Master/Detail wird über das Feld immobilien_nr realisiert. Beide Tabellen haben dieses Feld.


Nachfolgend ein paar Screenshots um die Geschichte etwas zu verdeutlichen.

www.wedvb.de/temp/bg/b_1.jpg

www.wedvb.de/temp/bg/b_2.jpg

www.wedvb.de/temp/bg/b_3.jpg

www.wedvb.de/temp/bg/b_4.jpg


Bitte um Hilfe !

THX
WEBSTER

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt

_________________
Wer etwas anders macht, aber nicht besser, der sollte besser etwas anderes machen.
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Mi 16.11.05 16:56 
ich hatte sowas auch mal, es liegt daran, wie die grids die Daten "holen".
Also die Optionen:
- DetailInSQLMode
- GridMode
- SmartRefresh
- SyncMode

und die Querry/Table dazu auf CursorType auf: ctServer und auch die Indizes verwenden.

musst a bissle rumpuzzeln.

grez
msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
WEBSTER Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 94



BeitragVerfasst: Mi 16.11.05 17:16 
Salute,

habe alle auf TRUE gesetzt

- DetailInSQLMode
- GridMode
- SmartRefresh
- SyncMode

und schon hat es funktioniert.....

Danke!!!!

WEBSTER

_________________
Wer etwas anders macht, aber nicht besser, der sollte besser etwas anderes machen.