[GELÖST]GET-Befehl, Datensatz wird nicht gefunden

24. Juli 2009 12:14

Erstmal ein herzliches Hallo an alle :-D

Ich bin eher noch Anfänger in Navision und habe folgendes Problem...
Ich möchte eine Form realisieren wo ich mehrere mehrere Fields aus verschiedenen Tabellen brauche.
Die Form basierd auf der Artikeltabelle. Jetzt benötige ich noch die Tabellen Artikel-VK Preis und Artikel Kompositionen.
Das habe ich so gelöst:
Im C/AL Code des Form´s habe ich folgendes eingetragen:

recVKpreis.GET("Nr.");
recKompositionen.GET("Nr.");

recVkPreis bezieht sich auf die VK - Preis Tabelle. Und die Andere ist die Kompositionstabelle.
Jetzt zum Problem: Ich habe in der Artikeltabelle Datensätze, die im VK-Preis und in der Komposiotionstabelle nicht gefunden
werden können. Dann bekomme ich aber eine Fehlermeldung.
Ist es möglich, das man die Datensätze 'leer' lassen kann, wenn diese nicht gefunden werden. Oder das diese
Datensätze übersprungen werden?
Hoffe ihr versteht was ich meine...

Danke + Gruß,
André
Zuletzt geändert von MasterBade am 31. Juli 2009 10:18, insgesamt 1-mal geändert.

Re: GET-Befehl, Datensatz wird nicht gefunden

24. Juli 2009 12:34

So in etwa:
Code:
if not recVKpreis.GET("Nr.")then
  recVKpreis.init;

Re: GET-Befehl, Datensatz wird nicht gefunden

24. Juli 2009 12:55

Achtung: Rec.INIT löscht nicht die Felder des Primary Keys.
Besser ist hier der CLEAR-Befehl, der wirklich alle Felder auf Null bzw. leer setzt.

Code:
IF NOT recVKpreis.GET("Nr.") THEN
  CLEAR(recVKpreis);


So kann man später mit recVKpreis."Nr." <> '' testen, ob überhaupt
ein Preis gefunden wurde.

Nachtrag: Wenn du mit recVKpreis die Tabelle 7002 "Sales Price" meinst, reicht ein recVKpreis.GET unter Umständen nicht, da der Primary Key mehrere Felder umfasst.

Re: GET-Befehl, Datensatz wird nicht gefunden

24. Juli 2009 13:09

Schon mal vielen Dank.

Ich meine die Tabelle 28...

Re: GET-Befehl, Datensatz wird nicht gefunden

24. Juli 2009 14:10

MasterBade hat geschrieben:Schon mal vielen Dank.

Ich meine die Tabelle 28...

Dann hast du keine Version 5, die wurde schon in Version 3 entfernt :wink:. Aber auch da hat der Primärschlüssel mehrere Felder, die alle als GET-Parameter angegeben werden müssen.

->Thema verschoben nach 2.x-Forum

Re: GET-Befehl, Datensatz wird nicht gefunden

24. Juli 2009 14:31

Kern ist die Version 2.X und Interface ist V. 5...
Naja sorry :-)

Ich erkläre mal kurz was ich vor habe:
Im Moment wird ein Musterarchiv noch per Hand in Access gepflegt.
Dieses möchte ich in Navision realisieren, da wir die meisten Daten in
Navision haben. Bis auf die 3 Spalten:

Musternr.|Containernr.|Albumnr.

Jetzt habe ich die 3 Spalten + die Spalte Bezeichnung (Artikelname) in eine Tabelle importiert.
Und nun dachte ich mir, ich füge die anderen Felder die ich noch benötige per Textbox hinzu.

Jetzt habe ich eine Frage zum GET Befehl:
Und zwar würde ich gerne wissen, wie ich einen anderen Primary Key mit übergebe...
Wenn ich z.B.
recArtikel.GET(Bezeichnung); eingebe wird aus der Tabelle Artikel der Key "Nr." gewählt.
Ich brauche aber den Key "Name"

Hoffe ihr versteht was ich schreibe :-D

Re: GET-Befehl, Datensatz wird nicht gefunden

24. Juli 2009 14:36

Hast du dir schon die Onlinehilfe zu GET sowie die Forenbeiträge hier angesehen?
GET verlangt IMMER den Primärschlüssel. Wenn dir nicht alle Primärschlüsselfeldinhalte vorliegen, musst du statt GET mit SETFILTER/SETRANGE (auf die Feldinhalte filtern, die du kennst) und anschließendem FIND arbeiten. Hierbei können theoretisch mehrere Datensätze (statt wie bei GET nur einen) herauskommen.

Re: GET-Befehl, Datensatz wird nicht gefunden

24. Juli 2009 19:51

Ja habe ich mir angeschaut...
Gibt es nicht mehrere Primärschlüssel für eine Tabelle?
Wenn ich mir die Keys für die Artikel anschaue, finde ich da auch den Key "Name". Und nach diesem Key müsste man
doch auch den GET - Befehl anwenden können!?

Re: GET-Befehl, Datensatz wird nicht gefunden

24. Juli 2009 21:12

MasterBade hat geschrieben:Gibt es nicht mehrere Primärschlüssel für eine Tabelle?

Es kann mehrere Schlüssel pro Tabelle geben ja, aber nur der erste, oberste ist der Primärschlüssel und kennzeichnet einen Datensatz eindeutig. Die anderen Schlüssel in Navision dienen nur der alternativen Sortierung (anders als Schlüssel in Datenbanken).

Wenn ich mir die Keys für die Artikel anschaue, finde ich da auch den Key "Name". Und nach diesem Key müsste man
doch auch den GET - Befehl anwenden können!?

Nein, weil dies nicht der Primärschlüssel ist. Also musst du mit SETRANGE(Name, 'derSuchname') + FIND arbeiten.
Allerdings solltest du wissen, was du tust, falls es doch mal mehr als einen Datensatz gibt, der auf dieses Kriterium zutrifft.

Re: GET-Befehl, Datensatz wird nicht gefunden

24. Juli 2009 21:40

Ah stimmt, daran habe ich gar nicht gedacht mit SETRANGE zu arbeiten...
Dank dir Natalie...