[Gelöst]Form:Daten aus einer anderen Tabelle und danach sort

10. Juli 2009 07:57

Hallo zusammen,

ich habe eine Form angelegt mit der SourceTable "Sales Line" und im OnAfterGetRecord hole ich mir per SalesHeader.GET("Document Type","Document No."); Daten aus der
"Sales Header" Tabelle. Ich habe neue Felder angelegt und z.B. mit der SourceExpr SalesHeader."Ship-to Name" Daten aus dieser Tabelle gezogen. Soweit funktioniert alles
hervoragend. Jetzt ist die Frage, ob man irgendwie über das Coding einen Key setzen kann, der mir die Daten nach Feldern sortiert, die ich aus der Sales Header hole und Sales Line.
Wenn ich einen SETCURRENTKEY in der OnOpenForm setze, gelingt mir das leider nicht :(

Gruß Owen


Edit:

Ich habe jetzt noch mal wie einige im Forum geschrieben haben das ganze im OnActiveForm ausprobiert, aber leider kein Ergebnis :(
Zuletzt geändert von owenw am 10. Juli 2009 14:10, insgesamt 1-mal geändert.

Re: Form: Daten aus einer anderen Tabelle und danach sortieren

10. Juli 2009 08:53

Hast du in der SalesLine nun richtig Felder angelegt, oder bloß Variablen, die du auf der Form in einigen Spalten darstellst?¿

Wenn du in der SalesLine neue Felder angelegt hast, dann solltest du die auch gleich vom SalesHeader in die SalesLine füllen. Also zB in der Auftragsmaske: wird dort eines deiner Felder im Kopf gefüllt -> direkte Weitergabe des Wertes an die zugehörigen SalesLines (Code wird allerdings in der Tabelle hinterlegt). In diesem Fall wäre es auch kein Problem, in der SalesLine darauf einen Schlüssel zu definieren, den du dann zB mit SetCurrentKey benutzen kannst.

Im zweiten Fall gäbe es nur die Chance, deine SalesLines in einem temporären Record selbst zu sortieren. Ist aber irgendwie wie mit Kanonen auf Spatzen schießen :wink:

Re: Form: Daten aus einer anderen Tabelle und danach sortieren

10. Juli 2009 09:00

Also ich habe in der Tabelle SalesLine keine neuen Felder angelegt, sondern habe in der Form jediglich ein ControlElement angelegt und als SourceExp SalesHeader."Ship-to Name" die Daten geholt bzw.
anzeigen lassen. Die Form würde ich aber gerne sortieren lassen :-)
Wenn ich dich aber richtig verstanden habe, kann ich das nur über einen Temp. Record machen? Wie stelle ich denn das an? :shock:

Re: Form: Daten aus einer anderen Tabelle und danach sortieren

10. Juli 2009 09:09

Du schreibst das temporäre Record entsprechend deiner Kriterien in der richtigen Reihenfolge voll, basierend auf einem existierenden Schlüssel oder einem, den du dafür anlegst (Irgendein BigInt-Feld bietet sich da an). Und deine Form lässt du auf diesem temp. Record laufen. Dafür gibt es das Property SourceTableTemporary.

Ist aber nicht ganz so leicht, wie es sich anhört. Je nach Menge der Datensätze musst du das zwischendurch neu schreiben, wenn zwischen zwei Datensätzen noch ein weiterer eingefügt werden muss, aber kein Platz mehr ist. Außerdem dauert es ein Weilchen.

Also lieber neue Felder anlegen, Schlüssel darauf anlegen, und fertig.

Re: Form: Daten aus einer anderen Tabelle und danach sortieren

10. Juli 2009 09:15

klingt jetzt vielleicht doof, aber hat vielleicht jemand ein beispiel und sowas schon mal gemacht?

irgendwie würde ich gerne diese variante probieren :-)

Re: Form: Daten aus einer anderen Tabelle und danach sortieren

10. Juli 2009 09:22

Ich sag mal so: es klingt eher blöd, das so lösen :mrgreen:

Ich habe das mal aus Blödheit gemacht, ganz zu Beginn. Im Prinzip so: erstes Record holen, in temp-Tab schreiben. Nächstes Record holen, den/die maßgeblichen Werte mit dem ersten vergleichen und davor/dahinter schreiben. Nächster Datensatz, vergleichen, einfügen. Halt immer so weiter.

Als ich damit fertig war, hat das allerdings für große Erheiterung unter den Kollegen gesorgt. Dieser Running Gag hing mir noch wochenlang nach :evil:

Re: Form: Daten aus einer anderen Tabelle und danach sortieren

10. Juli 2009 09:44

Ach ja: wenn du das fertig hast, kannst du dich noch an effektives Sortieren machen. Quicksort, Bubblesort oder sowas. Wenn's läuft, rück bitte den Code raus :wink:

Re: Form: Daten aus einer anderen Tabelle und danach sortieren

10. Juli 2009 14:10

Ich werde es doch wohl anders machen :D

Manchmal muss man einfach nur etwas von dem alten Ablauf weg gehen und nach neuen Wegen suchen :-)


Aber vielen Dank für deinen Denkansatz.