12. April 2017 12:57
Hallo Gemeinde,
NAV stellt mich mal wieder vor ein Problem. Folgenden Code habe ich in einer gebastelt:
// Tabelle mit Adressen
lrc_ADR_Look.RESET;
lrc_ADR_Look.SETRANGE(Address_No,'70000','80000'); // Filterung auf Kreditoren
lrc_ADR_Look.SETRANGE(Town,pSeminar.Town); // Filterung auf Ort, der im Parameter übergeben wird
IF lrc_ADR_Look.FINDSET THEN BEGIN
// Befüllung temporärer Adress-Tabelle lrc_ADR
REPEAT
lrc_ADR.INIT;
lrc_ADR := lrc_ADR_Look;
lrc_ADR.INSERT;
UNTIL lrc_ADR_Look.NEXT = 0;
END;
// Ohne die beiden SETRANGES hier bekomme ich unverständlicherweise ALLE Adressen angezeigt, nicht nur die aus der Schleife da oben
lrc_ADR.SETRANGE(Address_No,'70000','80000');
lrc_ADR.SETRANGE(Town,pSeminar.Town);
IF lrc_ADR.FINDSET THEN BEGIN
// Aufruf einer Form, wo die gefilterten Einträge angezeigt werden. Der Benutzer soll hier mehrere Datensätze auswählen über ein Boolean-Feld, s.u.
lform_ADR.SETTABLEVIEW(lrc_ADR);
lform_ADR.LOOKUPMODE := TRUE;
IF lform_ADR.RUNMODAL = ACTION::LookupOK THEN BEGIN
lform_ADR.GETRECORD(lrc_ADR);
lrc_ADR_Work := lrc_ADR;
// Auf diesen Boolean filtere nun ich, da ich nur diese Datensätze weiterverwenden will
lrc_ADR_Work.SETRANGE(Auswahl_fuer_Anfrage,TRUE);
IF lrc_ADR_Work.FINDSET THEN BEGIN
REPEAT
.
.
.
usw.
Der Code soll folgendes leisten: je nach dem, wo das im Parameter pSeminar stehende Seminar stattfindet, sollen die Kreditoren im Bereich 70k-80k auf diesen Ort gefiltert und diese Liste dem Benutzer angezeigt werden. Der wählt dann mehrere davon aus (Boolean-Feld oder Satzmarke) und diese ausgewählten werden dann weiterbenutzt.
Ein bisschen habe ich im Code schon kommentiert, was wo passieren soll. Letztendlich bekomme ich den veränderten Rec mit den gesetzten Booleans aber nicht zurück und obwohl ich da nur eine temporäre Variable befülle, werden die Haken sogar in der normalen Tabelle gesetzt (was ich nicht möchte).
Mit der Satzmarke habe ich es auch schon versucht, die wurde mir auch nicht weitergereicht. Hab ich da etwas völlig falsch gemacht?
Zuletzt geändert von ChrisF am 12. April 2017 15:55, insgesamt 1-mal geändert.