[gelöst] MARKERONLY gefiltert an Funktion übergeben

1. Dezember 2008 18:04

Hallo,

vielleicht weiß jemand Rat:
Folgender Fall:

Form mit Subform (Subform enthält Liste mit Daten aus einer eigenen Tabelle).
In der Liste der Subform werden Zeilen mit Satzmarke markiert.
Z.B. 10 Zeilen insgesamt, 2 satzmarkiert.

Problem:
In der Form mittels Funktion eines eigenen Menübuttons sollen die satzmarkierten an eine Codeunit übergeben werden.

Also in etwas so:
Zunächst Aufruf einer Funktion von der Form aus:
Code:
CurrForm.SubFormList.FORM.ChangeStatusOfMarkedLines();


In der Subform bei der Funktion ChangeStatusOfMarkedLines() wird die Funktion einer Codeunit aufgerufen:
Code:
Rec.MARKEDONLY := TRUE;
counter := Rec.COUNT;
//counter hat den Wert 2, weil 2 Zeilen satzmarkiert sind
CodeunitName.CodeUnitFkt(Rec);


In der Codeunit in der Funktion "CodeUnitFkt(Rec)":
Code:
counter := Rec.COUNT;
//counter hat nun den Wert 10, die satzmarkierten Zeilen werden nicht gefiltert übergeben.


Lösung:
Muss ich vor dem Aufruf der CodeunitFkt die satzmarkiert gefilterten alles einzeln durchgehen und in eine neue Variable speichern, die dann nur die satzmarkierten enthält (wobei die Eigenschaft "satzmarkiert" ja verloren geht?

Ich hoffe, ihr könnt mir folgen...

Bis bald,
naviii
Zuletzt geändert von Naviii am 2. Dezember 2008 09:23, insgesamt 1-mal geändert.

Re: MARKERDONLY gefiltert an Funktion übergeben

1. Dezember 2008 18:11

Dein Satzmarken-Filter sollte nicht mehr verloren gehen, wenn du in der Codeunit-Funktion CodeUnitFkt den Übergabeparameter Rec mit einem Call by Reference statt Call by Value aufrufst, sprich: in der Parameterzeile ganz links den Haken bei "Var" setzen.

Re: MARKERONLY gefiltert an Funktion übergeben

2. Dezember 2008 09:23

Hi Natali,

danke, stimmt natürlich, was Du sagst.
War kurz vor Feierabend und ich hatte da wohl irgendetwas mit meinen Augen...

Gruß,
naviii