Suche in Artikel Feldern!

Bild Microsoft Dynamics NAV 2017

Suche in Artikel Feldern!

Beitragvon iSam » 24. November 2017 10:39

Hallo Zusammen,

wenn ein Artikel gelöscht wird, muss noch geprüft werden, ob der Artikel in einem anderen Datensatz im Qualität Feld eingetragen ist, wenn ja, darf der Artikel nicht gelöscht werden, aber wenn nur diese Artikel mit seinem Qualität Feld eingetragen ist, darf es.
Kann jemand mir helfen, wie kann ich damit umgehen. Ist mein Code richtig oder?

Mein Code:

OnDeleteRecord() : Boolean
Item.SETFILTER(Quality,Rec."No.");
IF Item.FINDSET THEN BEGIN
IF Item.COUNT > 1 THEN BEGIN
ERROR(Text1);
EXIT;
END;
END;
iSam
 
Beiträge: 26
Registriert: 5. Oktober 2017 09:16
Realer Name: Sam
Arbeitsort: AT
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2017

Re: Suche in Artikel Feldern!

Beitragvon iSam » 24. November 2017 13:50

Dieser Code funktioniert schon 8-)
Zuletzt geändert von McClane am 24. November 2017 14:49, insgesamt 1-mal geändert.
Grund: Knigge beachten: keine Vollzitate!
iSam
 
Beiträge: 26
Registriert: 5. Oktober 2017 09:16
Realer Name: Sam
Arbeitsort: AT
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2017

Re: Suche in Artikel Feldern!

Beitragvon sschuh » 24. November 2017 14:44

Mahlzeit,

der Code ist nicht ganz optimal.

0. Die Feldbezeichnung "Quality" ist nicht optimal gewählt.
Hat "Quality" eine Referenz auf die Artikeltabelle?
Falls Ja, wäre eine Feldbezeichnung "Item Quality No." besser.
Falls Nein, ist die Filterung nicht in Ordnung.

1. SETFILTER, ist nicht notwendig (SETRANGE)
2. FINDSET, ist nicht notwendig (Performance)
3. COUNT, ist nicht notwendig (Performance)
4. Die Benennung der Textkonstanten sollte sprechend sein (Styleguide)
5. Das EXIT kannst du dir sparen. (Nicht erreichbarer Code)

Besser wäre....
Code: Alles auswählen
OnDeleteRecord() : Boolean

Item.SETRANGE(Quality,"No.");
IF NOT Item.ISEMPTY THEN
 ERROR(txtCanNotDelete);
sschuh
 
Beiträge: 6
Registriert: 24. November 2017 14:32
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: Suche in Artikel Feldern!

Beitragvon iSam » 24. November 2017 16:24

Ich habe es geändert:

Code: Alles auswählen
Item.SETRANGE(Quality,Rec."No.");
IF NOT Item.ISEMPTY THEN BEGIN
  IF Item.COUNT > 1 THEN BEGIN
    ERROR(C_DeleteErr);
  END ELSE IF ItemLoc.COUNT = 1 THEN BEGIN
    IF Rec."No." <> Rec.Quality THEN BEGIN
      ERROR(Text1);
    END;
  END;
END;


Wenn nur einer gefunden wird, kann er gelöscht werden, aber wenn es nicht unser aktueller Artikel ist.
iSam
 
Beiträge: 26
Registriert: 5. Oktober 2017 09:16
Realer Name: Sam
Arbeitsort: AT
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2017

Re: Suche in Artikel Feldern!

Beitragvon fiddi » 24. November 2017 16:59

Hallo,

schau dir das mal an:
Code: Alles auswählen
Item.SETRANGE(Quality,"No.");
Item.setFILTER("No.",'<>'%1',"No."); // den aktuellen willst du nicht
if not Item.isempty then // da ist ein anderer als der aktuelle
  ERROR('Artikel wird benutzt');


GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
fiddi
Moderator
Moderator
 
Beiträge: 7091
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell

Re: Suche in Artikel Feldern!

Beitragvon iSam » 24. November 2017 21:01

fiddi hat geschrieben:Hallo,

schau dir das mal an:
Code: Alles auswählen
Item.SETRANGE(Quality,"No.");
Item.setFILTER("No.",'<>'%1',"No."); // den aktuellen willst du nicht
if not Item.isempty then // da ist ein anderer als der aktuelle
  ERROR('Artikel wird benutzt');


GruĂź Fiddi


Ich danke dir. Es zieht sehr besser aus.
iSam
 
Beiträge: 26
Registriert: 5. Oktober 2017 09:16
Realer Name: Sam
Arbeitsort: AT
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2017

Re: Suche in Artikel Feldern!

Beitragvon fiddi » 24. November 2017 21:12

Hallo iSam,

es wäre nett, wenn du den ersten Beitrag deines Posts mit der Information "[Gelöst]" im Betreff versehen könntest, dann weiß jeder, dass der Beitrag abgeschlossen ist.

Außerdem mögen wir es nicht so gerne, wenn in den Beiträgen Vollzitate verwendet werden.

Besser du benutzt den "Antwort"- statt des Zitiern- Buttons, und kopierst dir nur die wichtigen Teile auf die du dich beziehen möchtest in deinen neuen Beitrag und versiehst Sie mit einem Quote-Tag.

GruĂź Fiddi
Wer aufhört besser zu werden, hat aufgehört gut zu sein. (frei nach Philip Rosenthal)
Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.
fiddi
Moderator
Moderator
 
Beiträge: 7091
Registriert: 9. Juni 2008 10:13
Realer Name: Hans Heinrich Fiddelke
Arbeitsort: Bremen
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: NAV2.6-aktuell


ZurĂĽck zu NAV 2017

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast