Kategorien
Allgemein

Belegmanager pro: automatische Belegnummer (Kurzbefehl-Tutorial)

Vor gut anderthalb Jahren habe ich mein Tutorial zum Belegmanager-Kurzbefehl vorgestellt. In den Folgevideos habe ich dann noch zusätzliche Funktionen nachgerüstet, etwa um die Adresse des Geschäfts zu erfassen oder mehrseitige Belege zu scannen.

Bis heute ist es mein beliebtestes Projekt bei YouTube. Und es gab zusätzliche Fähigkeiten, die Ihr Euch für die Quittungserfassung gewünscht habt. Einer der häufigsten Wünsche: Eine laufende Belegnummer. Dafür muss der Kurzbefehl herausfinden können, was er im letzten Durchlauf für eine Zahl verwendet hat.

Damit das gelingt, fange ich nochmal ganz von vorn an, verzichte auf die Aktionen der Tabellenkalkulation Numbers und wechsle auf das Klartextformat CSV.

Youtube-Video: Belegmanager pro (öffnet in neuem Fenster)

Ich führe das wieder am iPad vor mit drahtloser Tastatur und Trackpad, dann könnt Ihr am besten erkennen, was ich gerade mache. Am iPhone gelingt das genauso – und seit macOS 12, Monterey, auch am Mac. Da sieht’s halt nur etwas anders aus.

Ich starte in der Bibliothek-Ansicht und füge mit dem Plus einen neuen Kurzbefehl hinzu. Als erstes kläre ich mal die Formalitäten: Name, Farbe, Icon. Ich nenne ihn Belegmanager pro.

Zuerst baue ich die beiden Kernfunktionen des Belegmanagers auf: Erstens will ich ein Bild von meiner Quittung aufnehmen und speichern. Zweitens: Der Kurzbefehl soll mich beim Ausführen nach Beschreibung, Kategorie und Preis fragen. Diese Infos schreibt er dann zusammen mit dem Datum in eine Tabelle und verwendet sie gleichzeitig, um dem Belegfoto einen passenden Namen zu geben.

Wie das mit Apples Tabellenkalkulation „Numbers“ funktioniert, habe ich bereits in einem Video beschrieben – das taucht jetzt oben rechts auf. Nun will ich die Resultate aber in einer Text-Datei unterbringen. Das Bild zu sichern ist für mich nichts Neues, darum fange ich mit dem Sammeln der Infos für die Tabelle an.

Daten sammeln

Für die Tabelle soll der Kurzbefehl weiterhin Beschreibung, Preis und Kategorie abfragen. Ich erleichtere mir den Start, indem ich die ersten beiden „Nach Eingabe fragen“ Aktionen aus dem bestehenden Belegmanager kopiere.

Dafür wechsle ich zurück in die Übersicht, tippe lange auf den Belegmanager und wähle „Fenster anzeigen“. Dann erscheint er rechts im Bildschirm. Links tippe ich nun das Bearbeiten-Icon im Belegmanager pro an, so dass ich beide Kurzbefehle nebeneinander habe. Jetzt rechts ziemlich weit nach unten scrollen – und dann die Aktion von rechts nach links rüberziehen. Unter iOS 15 kann es manchmal etwas fummelig sein, den richtigen Ablageort zu finden. Erst wenn oben rechts an der Aktion das grüne Plus erscheint, kann ich sie loslassen und sie wird kopiert.

Für die Kategorie nutze ich die beiden Aktionen „Liste“ und „Aus Liste auswählen“. Neu kommt dann noch die Belegnummer dazu – für die erste Quittung lege ich einen Startwert fest mit der Aktion „Zahl“. Die Antworten fasse ich – wie beim alten Belegmanager – in einem zweiten Listenobjekt zusammen. Das Datum steht am Anfang, dafür gibt es eine Standardvariable. Ich muss nur das Format einstellen.

Diesmal lasse ich die Uhrzeit mit drin. Die einzelnen Listenobjekte verknüpfe ich nun über magische Variablen mit den einzelnen Dateneingaben und der Belegnummer. Sie bekommen dabei von mir individuelle Namen. Bei Preis und Beschreibung muss ich das übrigens nicht – beim Kopieren aus dem alten Belegmanager kamen die Variablennamen mit rüber.

Nun muss ich die einzelnen Listenelemente in eine Zeile zusammenfügen – und sie durch ein Zeichen trennen, das nicht im Text vorkommt. Das kann die Aktion „Text kombinieren“. Als Trennsymbol verwende ich das Semikolon. Denn obwohl CSV für Comma-separated Values steht, also durch Komma getrennte Werte, funktioniert das auch bestens mit Semikolon oder Tabulator.

Meine beste Freundin beim Gestalten neuer Kurzbefehle, die Übersicht-Aktion, soll mir dann beim ersten Testlauf das Resultat anzeigen. Und für den bin ich jetzt auch bereit. Okay, die Fragen kommen rein, ich gebe erst Text, dann eine Zahl ein und wähle schließlich aus einer Liste aus – und als Resultat gibt es eine Zeile Text mit Datum, Uhrzeit, der Platzhalter-Belegnummer und den Werten, fein säuberlich durch Semikola getrennt.

Tabelle anlegen

Die nächste Herausforderung ist die Text-Datei, in der die Werte landen sollen. Dafür lege ich einen zweiten Kurzbefehl an, der sie mir erzeugt und gleich mit Spaltentiteln füllt.

Also zurück in die Kurzbefehl-Sammlung, neuer Kurzbefehl, dieser heißt jetzt „Neue Beleg-Tabelle“. In einer Text-Aktion entsteht jetzt die erste Zeile der Tabelle – wieder mittels Semikola getrennt. Daraus wird dann eine Textdatei. Dann noch die Aktion „Datei sichern“. Für den Dateinamen verwende ich das Wort „aktuell“. Um die Dateiendung kümmert sich die Aktion selbst, ob Ihr es wollt oder nicht – auch wenn Ihr ein .csv an den Namen anhängt, macht sie eine .txt-Datei daraus.

Der Kurzbefehl muss heute nur ein einziges Mal laufen. Zum Zugucken wische ich mal die Dateien-App rein. Dann starte ich ihn – und zack, weg ist die Kurzbefehle-App. Aber nicht der Auftrag: Der Kurzbefehl funktioniert und erzeugt im Ordner Shortcuts die Datei namens aktuell.txt mit den Spaltentiteln.

Damit bin ich für auch schon fertig mit diesem Kurzbefehl. Jetzt geht’s wieder weiter mit dem „Belegmanager pro“.

Zeile sichern

Als Nächstes suche ich die Aktion „An Textdatei anfügen“ in der Kategorie „Dokumente“. In der Beschreibung zu der Aktion steht übrigens, wenn die Zieldatei nicht existiere, würde die Aktion sie neu anlegen. Das hat bei mir in iOS 15.1 leider nie geklappt. Darum das Ganze mit dem separaten Kurzbefehl – aber so kommen dann auch gleich die Spaltentitel dazu. Diese Aktion erwartet zwei Eingaben: zuerst den Zielordner, und als zweites den anzuhängenden Text. Das seltsame Format ist wohl einer missratenen Übersetzung geschuldet, ich habe das erst nach einigem Herumprobieren gerafft. Aber so geht’s!

Darunter legt Ihr noch fest, wie die zu ergänzende Datei heißt („aktuell.txt“ – und hier müsst Ihr die Endung unbedingt reinschreiben), und ob eine neue Zeile angelegt werden soll (ja!). Ich ziehe wieder die Dateien-App herein, um dann den Kurzbefehl auszuführen, damit ich das Ergebnis live mitverfolgen kann.

Beleg umbenennen und sichern

Nun geht es an die Dateiverwaltung. Um nicht jedes Mal beim Ausprobieren einen Beleg fotografieren zu müssen, habe ich mir ein PDF namens „Beispielrechnung“ in den Ordner „Shortcuts“ gelegt. So lange ich noch am Basteln bin, verwende ich die Aktion „Datei“ am Anfang des Kurzbefehls, um dieses PDF zu importieren und sie dann mittels „Variable konfigurieren“ als Quittung zu verwenden. Das geht schneller und ist später dann ganz einfach ersetzt.

Jetzt muss ich einen Zielort für die Quittungen festlegen. Bisher habe ich den Ordner „Shortcuts/Belege“ verwendet. Ich bleibe erstmal dabei.

Fürs Ablegen der Datei kommt die Aktion „Datei sichern“ zum Einsatz. In der Standardansicht hat sie nur ein Eingabefeld. Dieses Feld verhält sich unterschiedlich, je nachdem, wie ich es berühre: Kurzes Tippen öffnet die Dateien-Auswahl, langes Tippen öffnet das Kontext-Menü. Darin könnt Ihr „Magische Variable“ auswählen und dann die Quittungsdatei weiter oben im Kurzbefehl aussuchen.

Tippt danach noch auf das Aufklappsymbol, um der Datei einen Ort und einen Namen zu geben. Automatisch wird der Ordner „Kurzbefehle“ als Ziel ausgewählt, hier fehlt aber noch der Unterordner „Belege“ sowie der Dateiname. Den gebe ich hier gleich mal ein: Belege, Schrägstrich (damit lege ich den Unterordner fest), dann Datum, Unterstrich, Kategorie, Unterstrich, Beschreibung. Das ergibt dann den Dateinamen – Ihr müsst den nicht so lang machen wie ich und könnt Euch auch die Unterstriche sparen. Ganz wie’s Euch passt. Um die Endung kümmert sich der Kurzbefehl übrigens selbst.

So, jetzt kann ich das Ganze ausprobieren. Ich schaue mir das Resultat direkt in der Dateien-App an.

Belegnummer hochzählen

Bisher kann der Kurzbefehl nichts Neues im Vergleich zum alten. Aber gleich! Als nächstes zähle ich die Belegnummer hoch. Dafür muss ich den Inhalt der Datei einlesen, die neueste Belegnummer herausfiltern und um eins erhöht für den nächsten Beleg verwenden. Okay, schnallt Euch an, das wird

Erstmal importiere ich die CSV-Datei mit der Datei-Aktion. Für die zuletzt verwendete Belegnummer brauche ich die letzte Zeile. Dafür nutze ich die Aktion „Text aufteilen“. Das ist quasi das Gegenstück zu der „Text-Kombinieren“-Aktion. Sie wandelt den durchgehenden Text um in eine Liste. Ich zeige Euch das mal kurz, wieder mit der Aktion „Übersicht.“ Unten rechts zeigt mir das Symbol, dass ich mehrere Einträge habe, und ich kann zwischen den einzelnen Elementen hin- und herwischen. Ich will nur die letzte, also nehme ich die Aktion „Objekt aus Liste abrufen“ und wähle das letzte Objekt im Aufklappmenü.

Mit fünf aufeinanderfolgenden Aktionen kann ich einen definierten Tabellenwert aus einer CSV-Datei auslesen.

Wenn ich jetzt die Überblick-Aktion dahinterhänge und einen Probelauf starte, bekomme ich als Resultat keine Liste, sondern nur die eine, letzte Zeile.

Ihr sind die einzelnen Werte mit Semikola getrennt. Mit ihr wiederhole ich die Prozedur. In der Aktion „Text aufteilen“ wähle ich diesmal das Semikolon als Erkennungsmerkmal. Die Belegnummer ist in der zweiten Tabellenspalte , also wähle ich in der Aktion „Objekt aus Liste auswählen“ diesmal „Objekt an Index“ und gebe 2 ein.

Das Resultat kann ich dann mit der Berechnen-Aktion um einen hochzählen. Das verknüpfe ich nun als Wert in der Liste, die in die Tabelle gehen, lösche die Zahl-Aktion und voilá – der Kurzbefehl kann laufende Nummern!

Fürs Arbeiten mit echten Belegen schalte die Anzeige im Share-Sheet ein. Mit einer Wenn-Aktion bringe ich den Kurzbefehl dazu, dass er ein Foto macht, wenn es keinen Inhalt überreicht bekommt, und es dann als Quittung-Variable definiert. Dazu hatte ich schon mal ein ausführliches Tutorial gedreht.

Update: Bessere Startbedingungen

Im Nachhinein habe ich den Kurzbefehl noch einmal nachbearbeitet – Im Video seht Ihr die Anfänge im Zeitraffer. Die Probleme, die ich dabei löse, beziehen sich auf den ersten Start. Denn im Resultat läuft der Kurzbefehl, weil die CSV-Datei namens „aktuell.txt“ bereits im Ordner „Shortcuts“ auf der iCloud existiert, und weil dort sowohl Spaltentitel als auch der erste Eintrag mit Belegnummer vorhanden ist.

Damit der Kurzbefehl auch beim Herunterladen und ersten Ausprobieren funktioniert, habe ich zwei Wenn-Aktionen hinzugefügt. Die erste überprüft, ob die Datei „aktuell.txt“ existiert. Falls die importierte Datei „keinen Wert hat“, gibt es sie nicht, also erzeugt der Kurzbefehl sie, speichert sie und nutzt sie als Ziel für die Datensicherung. Falls die Datei schon da ist, geht es direkt mit ihr weiter.

Die Aktionen zum Anlegen der CSV-Dateien passen prima in den Kurzbefehl – die Wenn-Aktion erkennt, dass die Ziel-Datei nicht existiert.

Für den ersten Tabelleneintrag zählt der Kurzbefehl nach dem Aufteilen der Datei in einzelne Zeilen durch. Wenn er weniger als zwei Zeilen entdeckt (also nur die Spaltentitel), fragt er nach einer Zahl, mit der er loslegen soll.

Wenn es sich um die erste Eintragung handelt, fragt der Belegmanager pro nach einer Startnummer. Sonst zählt er die letzte Zahl hoch.

Wichtig ist, die jeweiligen Variablen (erstens die Datei, zweitens die Belegnummer) sauber zu verknüpfen. Besonders bei der Belegnummer müsst Ihr aufpassen, sie wird sowohl in der Tabelle als auch im Dateinamen verwendet. Dafür könnt Ihr innerhalb der Wenn-Aktion mit Hilfe von „Variable konfigurieren“ eine eigene benannte Variable festlegen. Oder Ihr verwendet die magische Variable „Wenn-Ergebnis“, denn was in einem der beiden Wenn-Blöcke als Letztes als Variable entsteht, könnt Ihr direkt weiterverwenden (und umbenennen wie jede andere magische Variable).

Das Wenn-Ergebnis habe ich in Tabelle und Dateiname als magische Variable eingebunden.

Kurzbefehl zum Herunterladen

Belegmanager pro 1.0

Erste Veröffentlichung. Benötigt zwingend die Datei „aktuell.txt“ im Shortcuts-Ordner, darin die Spaltentitel und einen ersten Eintrag – so wie die Version am Ende des Video-Tutorials.

04.11.2021

Belegmanager pro 1.0.1

Legt beim ersten Durchlauf selbstständig eine CSV-Datei an, fragt beim ersten Eintrag nach der Start-Belegnummer.

11.11.2021

Von Immo Junghärtchen

Seit 1996 bin ich Mac-Anwender mit Begeisterung. Während meines Studiums habe ich mich um die Apple-Computer meiner Freundinnen und Freunde gekümmert und als Promoter im damaligen iTeam für iMacs, iBooks und die ersten iPods geworben. Bei Gravis sammelte ich Erfahrungen im Apple-zentrierten Einzelhandel, in Selbstständigkeit gab ich Kurse für Mac-Neulinge. Über sechs Jahre arbeitete ich als Redakteur für die Zeitschrift "Mac & i" und arbeite jetzt als freier Redakteur, unter anderem für Heise Online und die c't.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.