[Gelöst]Grid nur mit bestimmten Daten aus Table füllen

14. November 2009 18:42

Hallo alle zusammen.

habe das Problem leider nicht kürzer beschreiben können und leider kein Platz mehr im Betreff.
Also meine Frage ist: Wie kann ich ein Grid (dem ich in den Einstellungen eine DataSource zugewiesen habe) nur mit bestimmten Rows füllen - und zwar diejenigen (Rows), die in einer Spalte zB den Wert 0 oder 1 haben.

Ich hoffe die Frage ist verständlich - und ich weiß dass das bestimmt eine ziemlich einfache Frage ist. Aber leider nur für jemanden der sich damit auskennt ;)
Hab schon viel herumprobiert und auch gegoogelt - aber habe bis jetzt nichts gefunden.

Bin dankbar für jede Hilfe
Zuletzt geändert von helpless am 18. November 2009 22:10, insgesamt 1-mal geändert.

Re: Grid nur mit bestimmten Daten aus Table füllen (abhängig vom

17. November 2009 10:47

Hi,

einem Grid sollte eigentlich immer eine DataSource als Datenquelle "zugewiesen" werden/sein.
Diese DataSource bezieht die Daten aus einer bestimmten Tabelle mittels einer Query (Abfrage).

Um die Daten, welche in dem Grid angezeigt werden (sollen) einzuschränken (z.B. nur die Datensätze anzeigen welche den Wert 0 oder 1 haben) muss die Query, welche zum Abfragen der Daten aus der Datenbanktabelle verwendet wird, angepasst werden.

Für die Query muss eine entsprechende Range (Einschränkung) gesetzt werden. Dies ist im Grunde nichts anderes als ein Where-Ausdruck einer "normalen" Select-Anweisung.

Wo die Query eingeschränkt werden muss, hängt davon ab, was genau du machen möchtest.
Wenn deine Einschränkung auf die Werte 0 und 1 immer "gültig" sein soll, musst du die Query in der Method "init" der DataSource mittels X++ einschränken.

Beispiel:
Code:
public void init()
{
    QueryBuildRange    queryRange;
    ;
    super();
    queryRange = this.query().dataSourceTable(tablenum(<DeineTabelle>)).addRange(fieldnum(<DeineTabelle>, <DeinFeld>));
    queryRange.value(<DeinWert>);
}


In meinem Blog kannst du einen Artikel über Querymanipulationen finden, der dir evtl. weiter helfen könnte.

Re: Grid nur mit bestimmten Daten aus Table füllen (abhängig vom

17. November 2009 23:32

Guten Abend,

danke für die Antwort!
Ich habe in der Zwischenzeit nun aber schon eine andere Lösung gefunden.
Und zwar wird einfach diese Zeile in die Init oder Run der Form eingefügt - und damit auch gefiltert

Code:
TABELLE_ds.filter(fieldNum(TABELLE, FELD), STRING-WERT);


(funktioniert auch mit
Code:
int2Str()
im "String"

Danke trotzdem!

Re: Grid nur mit bestimmten Daten aus Table füllen

2. Juni 2010 11:45

Ich hab zwar eine Table als DataSource eingebunden, aber bei mir gibt es kein "this.query()" woran kann das liegen?
Daran, dass ich eine Table statt einer Query als DataSource habe?

Mein Problem ist glaub ich auf die selbe Art und Weise zu lösen wie das des Threads:
Ich will eine selbst entwickelte Form in AX aufrufen, die mir einen bestimmten DatenSatz aus meiner DataSource-Table anzeigen soll.
Momentan, wenn ich die Form aufrufe, wird mir aber immer der erste Eintrag der Table angezeigt, statt der den ich haben will.