[Gelöst] Formularaufruf auf gefilterten Datensatz

3. Januar 2007 11:58

Hi,

ich möchte ein Formular aufrufen, das direkt auf einen bestimmten Datensatz springt. Hintergrund: Wenn bei einem Kontakt keine Bankverbindung hinterlegt wurde, dann soll der Benutzer aufgefordert werden, diesen zu hinterlegen. Ich dachte es reicht aus, wenn ich vor dem Formularaufruf die Sourcetable auf den betreffenden Datensatz filtere.

Code:

IF ((Contact."Bank Branch No." = '') OR (Contact."Bank Account No." = '')) THEN
BEGIN
  Message('Bitte Bankverbindung bei Kontakt Nr.' + ' ' + Contact."No." + ' ' + 'hinterlegen');
  Contact.SETRANGE(Contact."No.",DTAUSLines."Interne Kundennummer");
  ContactCard.RUN;
  CurrReport.BREAK;
END;


Funktioniert leider nicht. Das Formular wird zwar geöffnet, zeigt aber nicht direkt den gewünschten Datensatz an.
Zuletzt geändert von mgerhartz am 3. Januar 2007 12:27, insgesamt 1-mal geändert.

3. Januar 2007 12:25

Hallo,

probiers mal den Aufruf der ContactCard mt
FORM.RUN(Number [, Record] [, Field]).

Lass dir auch zur Sicherheit noch mal die "Interne Kunennummer" mit Message ausgeben

3. Januar 2007 12:25

Hat sich erledigt. Hier die Lösung:

Code:

IF ((Contact."Bank Branch No." = '') OR (Contact."Bank Account No." = '')) THEN
BEGIN
  Message('Bitte Bankverbindung bei Kontakt Nr.' + ' ' + Contact."No." + ' ' + 'hinterlegen');
  Contact.SETRANGE(Contact."No.",DTAUSLines."Interne Kundennummer");
  ContactCard.SETTABLEVIEW(Contact);
  ContactCard.SETRECORD(Contact);
  ContactCard.RUN;
  CurrReport.BREAK;
END;

3. Januar 2007 12:26

Hi Jürgen,

Das war wohl eine kleine Überscheidung. Trotzdem danke für den Tipp.

Gruß

Markus

3. Januar 2007 12:29

Hey Markus,

ruf die Form so auf:

Code:
Contact.GET(Contact."No.",DTAUSLines."Interne Kundennummer");
FORM.RUNMODAL(FORM::"Contact Card", Contact);


Gruß, Marc

3. Januar 2007 14:43

Hi Mark,

habe ich eben mal probiert. Allerdings kommt folgende Fehlermeldung:

Wo genau sollte ich denn den Commit absetzen? Mit meiner Methode hatte es aber ganz gut funktioniert.

Nachtrag: Den Get habe ich ein paar Zeilen vorher gemacht. Wie schon gesagt, meine Variante funktioniert eigentlich :-)
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

3. Januar 2007 16:34

In so einem Fall setze ich den COMMIT immer möglichst kurz vor dem RUNMODAL.

3. Januar 2007 17:22

rotsch hat geschrieben:In so einem Fall setze ich den COMMIT immer möglichst kurz vor dem RUNMODAL.

Sehe ich auch so.

Gruß, Marc