Visual Dataflex
Zur Startseite Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen
Datenbank RSS Feed Selector Zur User-Map

 
Boardmenü
» Forum
» Portal

» Registrieren
» Suche
» Statistik
» Mitglieder
» Team
» Kalender
» Sponsoren
» Partner

» F.A.Q

Portalmenü
» Datenbank anlegen
» Datenbank Entwicklung
» Empfehlungen
» Portal
» Programm erstellen
» Über visual Dataflex

» Statistik

Dataflex Empfehlungen

Englisches Dataflex Forum


Anzeigen

Sponsoren
Kostenloser Linktausch

Antivirus Software

Foren Verzeichnis

HP Color Laserjet 1600

Windows 7 Forum


Social Bookmark Script

Visual Dataflex » VDF Fortgeschrittene » dynamische, benutzerabhängige Filter » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen dynamische, benutzerabhängige Filter
Autor
Beitrag
exli2 exli2 ist männlich
Mitglied


Dabei seit: 02.12.2009
Beiträge: 37
Einsatzart von VDF: gewerblich
Anwenderstatus: Newbie
Herkunft: Berliner Gegend
Betriebssystem: XP

dynamische, benutzerabhängige Filter Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo an alle,
Problem: es sollen Filter in einer Artikeltabelle gesetzt werden, bei denen der Benutzer das zu filternde Feld selbst aus der Feldliste auswählt und in eine Form den Filterwert einträgt. Nun kann zwar das zu filternde Feld und der Filterwert an das DD übergeben werden, aber das constrain akzeptiert nur die Regel File.field. Die Variante mit der Bar |FN2,23 funktioniert zwar, aber ändert nichts an der Tatsache, dass während der Laufzeit nicht klar ist, welches Feld der Benutzer auswählt und es demzufolge als Variable übergeben werden muß.
Ich habe gerade keine Idee mehr! traurig
Gibt es hier eine andere Möglichkeit? Habe mal ein Bildchen zum besseren Verständnis angehängt.
Gruß
Andreas

exli2 hat dieses Bild (verkleinerte Version) angehängt:
AusschnittArtTabelle.jpg



__________________
Programme sind nur so gut, wie das Zusammenspiel der Synapsen des Entwicklers.
28.09.2010 16:45 exli2 ist offline E-Mail an exli2 senden Beiträge von exli2 suchen Nehmen Sie exli2 in Ihre Freundesliste auf
Roman Köhler Roman Köhler ist männlich
Administrator


images/avatars/avatar-4.jpg

Dabei seit: 29.08.2007
Beiträge: 202
Einsatzart von VDF: gewerblich
Anwenderstatus: VDF-Entwickler
Herkunft: Mannheim
Betriebssystem: Windows XP

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hi Andreas,

ich habe meine benutzerdefinierten constraints wie folgt verwirklicht:

1. In der View properties definieren
2. In der constraints-prozedur ein constraints mit dieser Property einbauen. Aber nur, wenn diese Property einen Wert aufweist
3. In der onKillFocus bzw auf einen Knopfdruck die Properties mit den Feldinhalten füllen und einen rebuildconstraints zu dem dd schicken.

Bsp:
zu 1:
property piArtikelNummer

zu 2:
if (piArtikelNummer(Self)) constrain Datei.Artikelnummer eq (piArtikelnummer(Self))

zu 3:
procedure onKillFocus
integer iArtikelnummer
get Value to iArtikelnummer
set piArtikelnummer to artikelnummer
send rebuildConstraints to artikel_dd

Das sollte eigentlich funktionieren. Bei mir tuts das jedenfalls ;-)
Wenn nicht, melde Dich einfach noch mal.

LG
Roman
29.09.2010 08:40 Roman Köhler ist offline E-Mail an Roman Köhler senden Homepage von Roman Köhler Beiträge von Roman Köhler suchen Nehmen Sie Roman Köhler in Ihre Freundesliste auf
Matthias Matthias ist männlich
Super Moderator


Dabei seit: 09.07.2007
Beiträge: 233
Einsatzart von VDF: gewerblich
Anwenderstatus: VDF-Entwickler
Herkunft: Niedernhausen
Betriebssystem: XP, Vista, Win7, 2008 Ser

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Der Einfachheit halber würde ich die Methode von Roman bevorzugen. Ich denke, dass es eine endliche Zahl von Möglichkeiten gibt, die der Benutzer auswählen kann.

Wenn |FN2,23 funktioniert kann man es evtl. ganz variabel machen, indem man zur Laufzeit mit der (mittlerweile nicht mehr in der Hilfe erwähnten) globalen Variable FileNumber / FieldIndex arbeitet.
Folgende Zeilen könnten eine Idee geben (nicht getestet!):

code:
1:
2:
3:
4:
5:
Move 2 to FileNumber
Move 3 to FieldIndex
Constrain |FN0,0& Eq xyz


Matthias
29.09.2010 09:44 Matthias ist offline E-Mail an Matthias senden Homepage von Matthias Beiträge von Matthias suchen Nehmen Sie Matthias in Ihre Freundesliste auf
exli2 exli2 ist männlich
Mitglied


Dabei seit: 02.12.2009
Beiträge: 37
Einsatzart von VDF: gewerblich
Anwenderstatus: Newbie
Herkunft: Berliner Gegend
Betriebssystem: XP

Themenstarter Thema begonnen von exli2
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo Roman, hallo Matthias,
DANKE für diese Tipps! Zu Roman´s Tip: Ich arbeite bereits mit Propertys, allerdings nur in der Listenansicht, weil der Filter nur in dieser Ansicht Sinn macht. Desweiteren habe ich aber das Problem, dass der Benutzer während der Laufzeit das Filterfeld von bsp.weise ArtikelNr auf LID oder ein anderes der restlichen 30 Felder setzen kann. Aber dem Constrain kann ich keine Variable File.field übergeben. Somit müßte ich bsp.weise 30 constrains setzen, die je nachdem, ob das dazugehörige Feld in der Combobox ausgewählt ist und der (vom Benutzer eingegebene) Suchwert gültig ist, und dann den RebuildConstrain ausführen. Das ist eine Menge Schreibarbeit. Beim SQL gibt es da eine einfachere Möglichkeit, immer tiefer, nach unterschiedlichen Feldwerten und mit unterschiedlichen Operatoren verschiedener Felder zu filtern. Hinzu kommt ja die Auswahl gt eq und lt, bzw. between und matches. So hätte ich das gerne....

Zu Matthias´ Tip: Das werde ich jetzt mal probieren und gebe Signal, was daraus geworden ist

Derzeit sieht das Ganze bei mir so aus:
Procedure OnConstrain
Integer iAktiv iLid iComboItem1
String strFeldName
Number nWert
Forward Send OnConstrain

Get piAktiv to iAktiv
Get Value of oCF1 to strFeldName
Get Value of oNumWert to nWert
Get piPosCF1 to iComboItem1

If (iAktiv<2) Constrain artikel.Aktiv eq iAktiv //alle aktiven Artikel
If (iAktiv=2) Constrain artikel.aktiv lt iAktiv //alle Artikel
If (iAktiv=3) Begin //alle Artikel und in Bearbeitung
Constrain artikel.aktiv lt iAktiv
Constrain Artikel as (Artikel.inbearbeitung=1)
End

Case Begin
Case ((strFeldName="LID") and (nWert>0))
If (iComboItem1=0) Constrain Artikel.LID eq nWert
If (iComboItem1=1) Constrain Artikel.LID gt nWert
If (iComboItem1=2) Constrain Artikel.LID lt nWert
Case Break
Case ((strFeldName="WG") and (nWert>0))
If (iComboItem1=0) Constrain Artikel.WG eq nWert
If (iComboItem1=1) Constrain Artikel.WG gt nWert
If (iComboItem1=2) Constrain Artikel.WG lt nWert
Case Break

Case End

End_Procedure

__________________
Programme sind nur so gut, wie das Zusammenspiel der Synapsen des Entwicklers.
29.09.2010 11:19 exli2 ist offline E-Mail an exli2 senden Beiträge von exli2 suchen Nehmen Sie exli2 in Ihre Freundesliste auf
Gehe zu:
Neues Thema erstellen Antwort erstellen
Visual Dataflex » VDF Fortgeschrittene » dynamische, benutzerabhängige Filter

Views heute: 1.556 | Views gestern: 2.645 | Views gesamt: 2.186.737

Impressum

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH | SEO by seo-wbb.de - Sponsored by Rene Urlaub und Reise Infos Frankenthal