[gelöst] Filter auf FlowField?

Bild Microsoft Dynamics NAV 1.xx und 2.xx
(ehem. Navision Financials)

[gelöst] Filter auf FlowField?

Beitragvon Dune » 22. März 2007 10:10

Guten Morgen,

hab diesmal ein kleines, wahrscheinlich unkompliziertes Problem. :oops:

Ich steige bei den FlowFields und FlowFilter nicht ganz durch, schätze ich:

Ich habe meine selbsterstellte Tabelle um ein FlowField erweitert, welches Datensätze in der selben Tabelle zählt. (Um Doppelte Records zu finden!)

count(MeineTab where (Nr=Field(Nr),Tabelle=Field(Tabelle),Feld=Field(Feld)))

Auf der entsprechenden Form, die die Daten meiner Tabelle anzeigt kann ich nun auf dieses Feld filtern.

Das Problem ist jetzt nur, dass die Geschwindigkeit beim Filtern auf dieses FlowField sehr leidet, aber ich dieses Feld ja auch nicht in die SchlĂĽssel bekomme!

Ich habe in ein paar Beiträgen hier gelesen, dass ich dafür ein FlowFilter benötige. Kann mir jemand sagen, wie genau das funktioniert und ob das meine Geschwindigkeitsproblem löst?

Danke im voraus.
Zuletzt geändert von Dune am 22. März 2007 16:46, insgesamt 1-mal geändert.
Dune
 
Beiträge: 112
Registriert: 7. Dezember 2006 10:25

Beitragvon Natalie » 22. März 2007 10:18

Gegenfrage:
Wäre es nicht sinnvoller, die Prüfung auf doppelte Datensätze als Funktion auszulagern, die du auf der entspr. Form aufrufen kannst? Oder daraus einen Report zu basteln (besser für die Anzeige der doppelten Datensätze)
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.

Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Beitragvon Dune » 22. März 2007 12:08

Hallo Natalie,

der Benutzer sollte später darauf filtern können. Sorry, aber ein Report wird da nicht das richtige für die Anforderungen sein. Eine Funktion wäre vermutlich umständlicher, da ich dann auf sämtliche Möglichkeiten wie Löschen, Einfügen usw. reagieren muss.

Geht´s nicht mit meinem FlowField?
Dune
 
Beiträge: 112
Registriert: 7. Dezember 2006 10:25

Beitragvon Natalie » 22. März 2007 12:17

Dann formuliere bitte deine Anforderung spezieller:
Was fĂĽr eine Tabelle mit welchen Felder ist das, was will der Benutzer sehen?
Ich hatte deinen Count-Befehl leider nicht verstanden.
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.

Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Beitragvon Dune » 22. März 2007 12:36

Ich setzte gerade ein Ă„nderungsprotokoll um.

Wenn bestimmte Felder geändert werden, wird dies in meiner neuen Tabelle festgehalten. Soweit auch kein Problem.

Jetzt geht´s um die Performance:

Doppelte Datensätze sollen auf der Form markiert werden, da sie auffällig sind. Gleichzeitig möchte ich die Möglichkeit haben, auf diese aufffälligen Datensätze meiner Tabelle zu filtern.

Das Suchen nach weiteren Records ĂĽbernimmt das FlowField indem es ĂĽber den Count-Befehl und die eingesetzten Filter Details wie Tabelle, Feld, Bezugsnummer vergleicht.

Es läuft auch alles relativ zufriedenstellend bis auf einige Kleinigkeiten (vgl. weitere Beiträge im Forum).

Das Filtern auf mein FlowField läuft sehr langsam und das ist auf die Dauer nicht praktikabel.

Das Problem einer Funktion wäre, dass ich auf alles "manuell" reagieren muss. D.H. beim Löschen oder Einfügen eines Datensatzes muss ich die records durchsuchen und anpassen.
Damit würde ich mich noch abfinden, obwohl ein FlowField natürlich eleganter wäre, aber ich muss ja in der Funktion jedesmal dieselbe Tabelle filtern und wirkt sich das auch nicht auf meine Form aus?
Dune
 
Beiträge: 112
Registriert: 7. Dezember 2006 10:25

Beitragvon Natalie » 22. März 2007 12:44

Ich verstehs leider trotzdem nicht....

Dune hat geschrieben:Doppelte Datensätze sollen auf der Form markiert werden, da sie auffällig sind.
Welcher Form? Was zeigt sie auf welche Weise an (Karte? Liste)? Ab wann gelten Datensätze als doppelt (Beispiel!).

Ich stelle mir vor, dass die Datensätze bunt durcheinander gewürfelt sind. Sind sie markiert, sehe ich nicht auf den ersten Blick, wo sich der doppelte Datensatz befindet, richtig?

Gleichzeitig möchte ich die Möglichkeit haben, auf diese aufffälligen Datensätze meiner Tabelle zu filtern.
Das heiĂźt, der Benutzer steht auf einem markierten Datensatz, und nach der Filterung sollen nur dieser und seine "Zwillinge" angezeigt werden?
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.

Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Beitragvon Dune » 22. März 2007 13:09

Sorry, ich versuch´s nochmal:

Meine neue Form zeigt in einer Liste die records meiner neuen Tabelle.

In die neue Tabelle werden bei Änderung z.B. des Feldes "VK-Preis" der Artikeltabelle Daten geschrieben. Daten wie z.B. die Tabelle und das Feld in der die Änderung erfolgte sowie die Bezugsnummer (Primärschlüssel) des records der geändert wurde und die Werte vor und nach der Änderung. Und noch ´n paar andere wie Datum und Zeit.

Doppelt, also auffällig ist ein record dieser Tabelle immer dann, wenn das gleiche Feld der gleichen Tabelle der gleichen Bezugsnummer mehrmals geändert wurde. Dann könnte es sein, dass jemand nur kurz einen Preis geändert hat, um diesen schnell berechnen zu lassen und danach wieder korrigiert hat! Und das ist auffällig!

Also, wieder zurĂĽck zu meinem Problem: Kann ich irgendwie auf FlowFields filtern (z.B. mit Hilfe von FlowFilter) ohne groĂźen Geschwindigkeitsverlust?

Wenn nicht überleg ich mir was anderes, aber das wäre die beste Lösung.
Dune
 
Beiträge: 112
Registriert: 7. Dezember 2006 10:25

Beitragvon Natalie » 22. März 2007 13:21

Dauert schon die alleinige Berechnung deines Counts so lange?
Falls nein, wĂĽrde ich auf die Filterfunktion verzichten und stattdessen den Drilldown ausprogrammieren (sofern ĂĽberhaupt notwendig).
Dann öffnet sich beim Klick auf dein Count-Feld ein neues Fenster, wo alle "gecounteten" Datensätze dieses Datensatzes angezeigt werden.
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.

Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Beitragvon Dune » 22. März 2007 13:28

Die Berechnung dauert nicht lange.

Nur das Filtern auf das FlowField dauert lange und man kann nur langsam von einem record in den nächsten skippen.

Das stört natürlich erheblich. Also meinst du, dass ich das nicht mit einem FlowField lösen kann?
Dune
 
Beiträge: 112
Registriert: 7. Dezember 2006 10:25

Beitragvon Natalie » 22. März 2007 13:50

Was meinst du jetzt mit Filtern auf FlowField?

Was sieht der Benutzer, was tut er?
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.

Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Beitragvon Dune » 22. März 2007 14:15

Die Form zeigt jetzt alle Records der Tabelle.

Ich möchte mir aber jetzt nur alle auffälligen Datensätze anzeigen lassen:

Also Filter ">1" setzen auf mein FlowField (welches die Datensätze zählt).

Schon werden mir nur die angezeigt, die im FlowField >1 stehen haben.

Und genau das dauert länger als Filter auf "normalen" Feldern. Und wie schon gesagt, das Skippen dauert lange.

Kann ich vernĂĽftig auf ein FlowField filtern oder werde ich immer mit Geschwindigkeitsverlust rechnen mĂĽssen, wenn ich meinen Filter auf ein FlowField setze?
Dune
 
Beiträge: 112
Registriert: 7. Dezember 2006 10:25

Beitragvon Natalie » 22. März 2007 14:45

Hm, ich glaube, ich würde das mit einem NormalField lösen:
Bei jedem OnInsert/OnDelete in deiner neuen Tabelle eine Prüffunktion ausführen, die dein "Auffällig-Feld" in allen betroffenen Zeilen aktualisiert.
Dann kann man auch problemlos darauf filtern.
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.

Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Beitragvon Michael Schumacher » 22. März 2007 16:23

@Dune:
Flowfilter beeinflussen die Auswahl der Datensätze, die von der Calcformula bearbeitet werden, hilft also nicht bei Deinem Problem.

Das Filtern auf ein bestimmtes Ergebnis (>1) dauert zwangsläufig länger, weil ja für jeden Datensatz das Flowfield berechnet werden muss, bevor du ein Ergebnis vergleichen kannst.
beschleunigen kannst du das nur mit der Methode, die Natalie zuletzt vorschlug, aber nicht beim Insert oder Delete, sondern als Funktion hinter einem Button, denn die Berechnung muss ja nur einmal erfolgen, wenn du die ĂśberprĂĽfung machen willst. Dann kannst du in Ruhe alles schnell ansehen, da dann die Filterung sehr schnell geht, und nach der Bearbeitung drĂĽckst du nochmal auf den Knopf um zu sehen, ob alles besser ist, wenn du Zeilen rausgeworfen hast.
mfg
Michael Schumacher


Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
Hmmm, ach heut' ist Backup-Tag, also alles schnell nach /dev/nul sichern!
Benutzeravatar
Michael Schumacher
Ehrenmitglied
 
Beiträge: 1762
Registriert: 1. August 2005 11:12
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 3.x, 4.x, 5.x

Beitragvon Dune » 22. März 2007 16:45

Hi Michael,

vielen Dank für deine Antwort. Ich denke, ich werde beides verwenden: das FlowField, um mir Datensätze farbig anzeigen zu lassen und dasselbe nochmal in einer Funktion hinter einem Button, um die Datenätze zu filtern.

Mir war nur wichtig ob ich auf FlowField auch schneller filtern kann.

Danke euch beiden.
Dune
 
Beiträge: 112
Registriert: 7. Dezember 2006 10:25


ZurĂĽck zu NAV 2.xx

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast