IntelliSense unter Navision Classic Client/Cside

Navision · Shopware · App

Na ja, nicht wirklich „Intelli“ wie in Intelligent. Aber trotzdem sehr schnell und sehr hilfreich.

Ac’tivAid (Active Aid) für das Automatisierungstool AutoHotKey

Nutzen Sie einfach Hot Strings aus der ac’tiv Aid Toolbox! Die von mir genutzte version Version finden Sie hier:
Ac’tive Aid Entwicklerversion von ?Michael Telgkamp?
Wenn Sie noch mehr Informationen zu dem Tool Autohotkey suchen, finden Sie hier interessante Anlaufstellen:
Neue Autohokey-Version mit Qt
Einen guten Einstieg bringt der C’t Artikel

Was ist ac’tive Aid (ac’tivAid, Active Aid, ActiveAid) oder Auto-Hotkey? In sehr kurz: Eine einfach zu „programmierende“ Scriptumgebung für eigene Tools. Kommt Ihnen bekannt vor? genau! Das passt perfekt zu unserer geliebten, einfach zu programmierenden Skriptumgebung Navision / Business Central! 🙂

Screenshotfunktion in ac’tivAid/AutoHotKey

Ich liebe auch die Screenshot-Funktion von ac’tivAid. Bei mir ist sie so eingestellt, das Sie einfach das aktuelle Window kopiert, und mir dieses direkt in IrfanView öffnet. Dort kann ich dann kinderleicht den gewünschten Ausschnitt in voller Auflösung ziehen, oder mir mit F12 die Zeichenfunktion holen und schnell ein rotes Kästchen um den interessanten Bereich zu markieren. Praktisch alle Screenshots auf dieser Homepage hier wurden damit gemacht. Ich habe bis heute kein einfacheres und schnelleres Tool gefunden… . Und ich habe viele Probiert. Ein bisschen wie bei Navision / Business Central 🙂

Navision / Business Central Hotstrings in ac’tivAid

Zurück zu HotStrings und „IntelliSense“ unter Navision / Business Central:
Ich habe mir die schlimmsten Fingerbrecher, wie z.B.
createdatetime(workdate,time),
strsubstno(‚,
If rec.findset then repeat […] until rec.next = 0;
einfach auf ein Kürzel gelegt.

Das sieht dann z.B. bei createdatetime(workdate,time) so aus:

Screenshot vom Ac'tivAid für Navision / Business Central am Beispiel Creadedatetime
Screenshot vom Ac’tivAid für Navision / Business Central am Beispiel Createdatetime

In der Folge kann ich nun in jedem (!) Navision / Business Central, sogar in der DOS-Version von Navision (3.53 und 3.56) einfach das Kürzel eintippen cdt( eintippen, und ac’tivAid macht daraus createdatetime(workdate,time)

Diese Textbausteine habe ich mir jeweils in der am meisten genutzten Variante gespeichert. So ist z.B. bei createdatetime(workdate,time) kein Semikolon am Ende. Findfirst benutze ich meistens in der Variante If findfirst then…, daher habe ich mir findfirst then abgespeichert. Bei den meisten Befehlen nutze ich die öffnende Klammer mit dabei, auch wenn Sie z.B. bei FindFirst gar nicht vorkommt. Ich tippe also if rec.ff( und activAid macht daraus if rec.findfirst then : die öffnende Klammer wird also gleich wieder gelöscht.

Noch spezieller ist dabei das tausendfach genutzte Konstrukt:
if rec.findset then repeat
until rec.next = 0;

Hier benutzt man ja nun praktisch nie rec. Davon aber abgesehen hat praktisch jeder Navision / Business Central Entwickler diese Schleife schon tausendfach eingetippt, z.B. in dieser Form:
if Cust.findset then repeat
until Cust.next = 0;

(natürlich mit irgendetwas dazwischen. Und etwas abgekürzt, natürlich müsste es Customer heißen….)

Scriptfunktionen für Navision / Business Central Hotstrings

Hier benutze ich dann die Scriptfunktionen von HotString aus der Scriptsammlung ac’tivAid für die Runtime AutoHotKey:

Send ^{left}
Send {CTRLDOWN}{SHIFTDOWN}{RIGHT}
Send ^c
Send {CTRLUP}{SHIFTUP}{End}
Send findset then repeat
Send {Enter 2}
Send until ^v
Send .next = 0;
Send {Home}{Up}{Space}{Space}

Was bringt das?
Ich tippe in Navision / Business Central z.B.
if cust.fs( – sonst nichts.
Das Script löscht erst einmal von sich aus den Teil fs(, (wegen der Option „Direkt ersetzen (sonst bei Leerzeichen, Enter…)), macht dann einen Sprung nach links, kopiert mir den RecordTeil Cust., springt wieder nach rechts, tippt findset then repeat, macht eine Zeilenschaltung, und fügt dann until Cust.next = 0; ein.
Weil der Recordteil selber per Copy gezogen wird, ist es egal, ob ich in diesem Fall Cust eingetippt habe, es per F5 aus dem Objektmenü geholt habe oder per STRG+V aus der Zwischenablage hole.

Das obige Script passt genau auf den C/side Client bis zur Version 2009R2. Danach hat sich das Springen bei dem Sonderzeichen . verändert, für die C/Side Nachfolgeversionen von Navision / Business Central, z.B. NAV 2013 oder NAV 2016, muss es also ein bisschen angepasst werden. Über die ac’tivAid Option „Nur“ oder „Nicht“ für Programm könnte das sogar so weit automatisiert werden, das man das gleiche Kürzel sowohl im Classic C/Side Client wie auch im RTC C/Side client nutzen kann.

Animation für das ac'tivAid Script "Findset" mit automatischem einfügen des Records in beide Statements für Navision / Business Central
Beispiel für das ac’tivAid Script Findset für Navision / Business Central

So habe ich mir die gängigsten Navision / Business Central Befehle in der am meisten genutzten Form abgespeichert:

cdt( für createdatetime(workdate,time)
ff( für findfirst then (if findfirst then)
fl( für findlast then (if findlast then)
intloop  für if Number = 1 then begin... if not rec.findset then CurrReport.BREAK end else if rec.next = 0 then CurrReport.BREAK; - unsere Lieblingsschleife beim Arbeiten mit Temporären Records in Berichten wie z.B. der Artikel Top 10 oder Debitoren Top 10.
sf( für setfilter(
sr( für setrange(
sk( für setcurrentkey(
sss( für strsubstno('
tf( für testfield(
fs( für if rec.findfirst then repeat...until rec.next = 0;

Mehr HotStrings / Hotkeys in AutoHotKey

In HotString habe ich noch mehr Textbausteine, wie z.B. meine AGB’s, automatisierte Texte für Absagen an Headhunter und verschiedenes mehr. Der Vorteil: Sie haben diese Textbausteine nicht nur in einem bestimmten Programm, wie z.B. Word oder outlook zur Verfügung, sondern in allen Programmen gleichzeitig!

Mehr Hotkeys / Abkürzungen in Navision / Business Central C/Side

Benutzen Sie aktiv die Zwischenablage

Nutzen Sie die Shortcuts Strg+G für Globals (Globale Variablen) und STRG + L für Locals (Lokale Variablen). Denken Sie auch daran, das Sie in C/Side genauso wie im ClassicClient und in Excel durch die Registerseiten mit STRG+BILDhoch und STRG+BILDrunter durchblättern können!
Mit Strg+L (für locals) und 2 x STRG+BILDrunter wechseln Sie also ganz Mausfrei auf die lokale Variablendeklaration in C/Side. Ihr Karpaltunnelsyndrom wird es ihnen danken…
„local“ in Funktionen abschalten? STRG+ (Globals), 2 x STRG+BILDrunter (um auf die Seite Funktionen zu kommen), Funktion auswählen, Shift+F4. Shift+F4 öffnet im ganzen S/Side Client die Eigenschaften. Yes bei Local löschen, nicht mit No überschreiben!