[Gelöst] Regular Expressions in NAV verwenden

Bild Tipps & Tricks zu den Dynamics NAV Versionen
Hier bitte keine Fragen stellen, sondern nur bereits vorhandene Tricks veröffentlichen.
Forumsregeln
Impressum • Community-Knigge • Nutzungsbedingungen • Datenschutzrichtlinie
Hier bitte keine Fragen stellen, sondern nur bereits vorhandene Tricks veröffentlichen.

[Gelöst] Regular Expressions in NAV verwenden

Beitragvon ralf5 » 24. Juni 2010 11:29

Hallo,

ist es möglich Regular Expressions in NAV zu verwenden?

GruĂź
Ralf
Zuletzt geändert von ralf5 am 24. Juni 2010 12:24, insgesamt 1-mal geändert.
Ich weiĂź, dass ich nichts weiĂź! Manchmal vergesse ich das aber. Danke fĂĽr die Hilfe.
ralf5
 
Beiträge: 244
Registriert: 15. September 2009 13:45

Re: Regular Expressions in NAV verwenden

Beitragvon Natalie » 24. Juni 2010 11:49

Reguläre Ausdrücke werden in C/AL zumindest nicht direkt unterstützt.
Was genau möchtest du denn abbilden?
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? 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.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: Regular Expressions in NAV verwenden

Beitragvon ralf5 » 24. Juni 2010 12:24

Hallo Natalie

Danke, habe es doch tatsächlich selbst hinbekommen.

ich möchte in der Tabelle Contact alle Datensätze, bei denen die E-Mailadresse ungültig ist.


So gehts:
In den Globals eine Variable deklarieren
Name      DataType       Subtype
RegExp   Automation     'Microsoft VBScript Regular Expressions 1.0'.RegExp

Und im Report:
Code: Alles auswählen
Contact - OnPreDataItem()
SETFILTER(Contact."E-Mail", '<>''''');
CREATE(RegExp);
RegExp.Pattern('^([\w-]+\.)*?[\w-]+@[\w-]+\.([\w-]+\.)*?[\w]+$');

Contact - OnAfterGetRecord()
IF RegExp.Test(Contact."E-Mail") THEN
  CurrReport.SKIP;


GruĂź
Ralf
Ich weiĂź, dass ich nichts weiĂź! Manchmal vergesse ich das aber. Danke fĂĽr die Hilfe.
ralf5
 
Beiträge: 244
Registriert: 15. September 2009 13:45

Re: [Gelöst] Regular Expressions in NAV verwenden

Beitragvon Natalie » 24. Juni 2010 12:43

Dann danke fĂĽr das Codebeispiel!
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? 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.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: [Gelöst] Regular Expressions in NAV verwenden

Beitragvon Timo Lässer » 24. Juni 2010 13:24

Ich habe es mal in unsere Tipps & Tricks Sammlung verschoben.
Gruß, Timo Lässer

Frage beantwortet? Schreibe bitte "[Gelöst]" vor den Titel deines ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, E-Mail, Instant Messanger, Soziale Netzwerke, Telefon oder Fax! DafĂĽr ist dieses Forum da.
Hier kannst du fĂĽr MSDynamics.de spenden.
Benutzeravatar
Timo Lässer
Administrator
Administrator
 
Beiträge: 5279
Registriert: 14. November 2004 22:18
Wohnort: DE 49716 Meppen
Arbeitsort: DE 49733 Haren (Ems)
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 1.10a - 2018, BC14, BC21

Re: Regular Expressions in NAV verwenden

Beitragvon Natalie » 25. Juni 2010 09:53

ralf5 hat geschrieben:
Code: Alles auswählen
Contact - OnPreDataItem()
SETFILTER(Contact."E-Mail", '<>''''');
CREATE(RegExp);
RegExp.Pattern('^([\w-]+\.)*?[\w-]+@[\w-]+\.([\w-]+\.)*?[\w]+$');

Contact - OnAfterGetRecord()
IF RegExp.Test(Contact."E-Mail") THEN
  CurrReport.SKIP;


viewtopic.php?p=52476#p52476
ralf5 hat geschrieben:Kurze Erläuterung zu dem verwendeten Muster:
Das erste \w steht für ein beliebiges Wortzeichen (inkl. Unterstrich). Durch das anschließende +-Zeichen wird festgelegt, dass auch mehrere aufeinanderfolgende Wortzeichen zulässig sind. \. bedeutet, dass auf die Wortzeichen ein Punkt folgen muss. Durch Angabe von *? wird festgelegt, dass es sich bei der bisherigen Musterfestlegung um eine optionale Gruppe handelt, sich diese Gruppe jedoch auch wiederholen darf. Das zweite \w bedeutet, dass hier wieder ein Wortzeichen folgen muss. Durch Angabe des nachfolgenden +-Zeichens wird festgelegt, dass sich das Wortzeichen beliebig wiederholen darf, aber mindestens eines vorhanden sein muss, ehe dann durch Angabe von @ das @-Zeichen folgen muss. Der zweite Teil des Musters nach dem @-Zeichen entspricht weitestgehend dem des ersten Teils.

Quelle: http://www.vbarchiv.net/tipps/tipp_1311 ... n-net.html
GruĂź, Natalie

Frage beantwortet oder Problem von allein gelöst? 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.
Benutzeravatar
Natalie
Moderator
Moderator
 
Beiträge: 9257
Registriert: 31. Oktober 2006 19:51
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV

Re: [Gelöst] Regular Expressions in NAV verwenden

Beitragvon tepler » 12. März 2018 12:33

Kleine Aktualisierung, falls man statt Abhängigkeit zu VBScript lieber .NET verwenden möchte. Über die folgende NAV Funktion "ValidateText" kann man prüfen lassen, ob der Text "PT_Text" dem regulären Ausdruck "PT_RegEx" entspricht:

Code: Alles auswählen
Notwendige Variable:
Name     LDN_Regex
DataType DotNet
Subtype  System.Text.RegularExpressions.Regex.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'   


Code: Alles auswählen
ValidateText(PT_Text : Text[250];PT_RegEx : Text[250]) result : Boolean
result := LDN_Regex.IsMatch(PT_Text, PT_RegEx);


GruĂź, Ralf
tepler
Microsoft Partner
Microsoft Partner
 
Beiträge: 100
Registriert: 22. Februar 2010 12:53
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 5.0 SP1, ..., 2016

Re: [Gelöst] Regular Expressions in NAV verwenden

Beitragvon Danis » 12. März 2018 14:31

In der C/AL Open Library werden ĂĽbrigens auch einige RegEx Funktionen zur VerfĂĽgung gestellt:

hier zB. RegexReplace
Benutzeravatar
Danis
Microsoft Partner
Microsoft Partner
 
Beiträge: 119
Registriert: 21. August 2006 12:02
Wohnort: LĂĽbeck
Realer Name: Danis Flohr
Arbeitsort: Kiel
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: Ab 3.X bis aktuellste Version

Re: [Gelöst] Regular Expressions in NAV verwenden

Beitragvon ERP-Berater » 12. März 2018 16:04

Danis hat geschrieben:In der C/AL Open Library werden ĂĽbrigens auch einige RegEx Funktionen zur VerfĂĽgung gestellt:

hier zB. RegexReplace


Danke, denn das ist sehr nĂĽtzlich fĂĽr eine Datenbereinigung nach fest definiertem Muster!
ERP-Berater
 
Beiträge: 146
Registriert: 27. September 2017 17:06
Arbeitsort: D-A-CH
Bezug zu Microsoft Dynamics: Freiberufler
Microsoft Dynamics Produkt: Microsoft Dynamics NAV
Microsoft Dynamics Version: 2009,2013,2016


ZurĂĽck zu NAV Tipps & Tricks

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast