Einzelnen Beitrag anzeigen

Benutzerbild von samson
samson

Registriert seit: 26. Aug 2003
Ort: Hövelhof Riege
105 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Welche Tabelle gehört zum TField ????

  Alt 27. Feb 2004, 08:41
Hallo Robert_G,

also zur genauen Problematik.

Ich schreibe zur Zeit in meiner Firma, eine grosse Warenwirtschaftssoftware auf MDI-Basis. In einer Warenwirtschaftssoftware habe ich logischerweisse ziehmlich viele Formulare. Die Formulare sind standardmässig so aufgebaut, das ich oben ein Edit-Feld habe und daneben eine ComboBox. Unter den zwei Controls habe ich ein Grid mit dem zugrundeliegenden Daten.

Die Felder des Grids, werden zur Laufzeit automatisch in die ComboBox gefüllt. Somit hat der Benutzer die Möglichkeit über alle Felder bzw. über ein bestimmtes Feld eine Suche zu starten. In dem Edit-Feld kann nun ein Suchbegriff eingegeben werden und mit RETURN abgeschickt werden.

Da ich keine Lust habe für 50 und mehr Formulare diese Standardmässige Suche auszuprogrammieren, Bin ich angefangen eine globale Suche zu programmieren.

Das geht so lange gut, solange sich das Select-Statement über eine Tabelle erstreckt. Habe ich ein Grid, welches andere Tabellen referenziert, so kann die TOracleDataSet Komponente nicht mehr genau zuordnen, welches Attribut verknüpft werden soll. Nehmen wir an, wir haben eine Tabelle: Kunden, Faktura und Faktura_Typ. Alle Relationen verfügen über das Attribut: KBez (varchar2(50). Im zugrundeliegendem DataSet habe ich folgendes Statement:

SQL-Code:
select f.*, k.*, ft.* from faktura f, kunden k, faktura_typ ft
where f.NRFAKTURA_TYP = ft.id
and f.NRKUNDE = f.id
Wenn der Benutzer nun über alle Attribute mit folgendem Begriff sucht: 'trecker'

Entsteht folgendes SQL-Statement:
SQL-Code:
select f.*, k.*, ft.* from faktura f, kunden k, faktura_typ ft
where f.NRFAKTURA_TYP = ft.id
and f.NRKUNDE = f.id
and (upper(kbez) like '%TRECKER%'
or upper(projekt) like '%TRECKER%')
..
..
..
und und und.

So. Jetzt hat das Dataset die Schwierigkeit, das es dem Attribut: 'KBEZ' nicht genau zuordnen kann. Folglich müsste ich also haben: KUNDEN.KBEZ oder FAKTURA.KBEZ oder FAKTURA_TYP.KBEZ.

Dazu fehlt mir der Tabellenname aus dem Grid. Wenn ich weiss, aus welcher Tabelle die Daten aus dem Grid kommen, hätte ich gewonnen. Dann nehmlich könnte ich das SQL-STATEMENT aufbauen, welches ich brauch.

Weisst Du ne Möglichkeit?

Ich kann auch noch das Grid in die allgemeine Suche übergeben. Das wäre für mich keine Grosse Änderung da ich mit einem Basisformular arbeite, welches mir grosse Arbeiten ersparen kann.

Ich danke für weiter Hilfe.

Gruss


Samson
Frank Gellermann
Wer Informationen hat, hat Macht. Wer Macht hat, hat Informationen!!!
  Mit Zitat antworten Zitat