<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.bergau.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki-Admin</id>
	<title>OBS Wiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bergau.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki-Admin"/>
	<link rel="alternate" type="text/html" href="https://wiki.bergau.de/Spezial:Beitr%C3%A4ge/Wiki-Admin"/>
	<updated>2026-08-23T17:19:58Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Kostenpflichtige_Module/SteVe&amp;diff=62711</id>
		<title>OBS/Kostenpflichtige Module/SteVe</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Kostenpflichtige_Module/SteVe&amp;diff=62711"/>
		<updated>2024-02-01T09:46:22Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Kostenpflichtige Module}}&lt;br /&gt;
&lt;br /&gt;
=SteVe =&lt;br /&gt;
SteVe gehört zum [[OBS/Kostenpflichtige Module/OCPP Ladestationen|OCPP Ladestationen Modul]]&lt;br /&gt;
==Home-Screen==&lt;br /&gt;
Hier werden grundlegende Informationen angezeigt:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:SteVe_HomeScreen.png|1300px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ladekarten verwalten==&lt;br /&gt;
Aufruf: &#039;&#039;&#039;Data Management&#039;&#039;&#039; → &#039;&#039;&#039;OCPP Tags &#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier kann über die Schaltfläche &#039;&#039;Add New&#039;&#039; neue Ladekarten hinterlegt und mit entsprechenden Eigenschaften (bspw. &#039;&#039;Blocked&#039;&#039;?) versehen werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:SteVe_OCPPTags.png|1300px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==User anlegen==&lt;br /&gt;
Aufruf: &#039;&#039;&#039;Data Management&#039;&#039;&#039; → &#039;&#039;&#039;Users&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Hier können User angelegt werden und mit Personeninformationen hinterlegt werden. So kann bspw. eine Karte bzw. ein OCPP Tag zu einem Fahrzeug zugeordnet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:SteVe_Users.png|1300px]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Weitere Optionen==&lt;br /&gt;
SteVe verfügt über zahlreiche weitere Optionen und Möglichkeiten, welche jedoch nicht weiter benutzt werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hierzu gehören bspw. das Anlegen von Reservierungen oder auch Ladeprofilen…&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:SteVe_ChargePointDetails.png|1300px]]&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/H%C3%A4ufig_gestellte_Fragen/Hardwareanforderungen&amp;diff=61238</id>
		<title>OBS/Häufig gestellte Fragen/Hardwareanforderungen</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/H%C3%A4ufig_gestellte_Fragen/Hardwareanforderungen&amp;diff=61238"/>
		<updated>2022-08-01T06:37:07Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* Systemvoraussetzungen Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Häufig gestellte Fragen}}&lt;br /&gt;
&lt;br /&gt;
=Systemvoraussetzungen Workstations=&lt;br /&gt;
&lt;br /&gt;
*OBS unterstützt Microsoft Betriebssysteme nicht über ihren erweiterten Support-Zeitraum hinaus. Eine Liste aller Support-Zeiträume von Microsoft finden Sie unter folgendem Link:&amp;lt;br/&amp;gt; [https://support.microsoft.com/de-de/help/13853/windows-lifecycle-fact-sheet Informationsblatt zum Lebenszyklus von Windows]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Ab OBS 4.0 (KW 39, 2021) wird mindestens Windows 10 benötigt.}}&lt;br /&gt;
{{Achtung|Ab dem OBS-Update vom 30.03.2022 ist es nicht mehr möglich OBS auf einem PC mit Windows 7 zu starten.}}&lt;br /&gt;
&lt;br /&gt;
*Arbeitsspeicher: Mindestens 4 GB &lt;br /&gt;
*Festplatte: Mindestens 128 GB&lt;br /&gt;
&lt;br /&gt;
=Systemvoraussetzungen Server=&lt;br /&gt;
OBS unterstützt Microsoft Server-Betriebssysteme nicht über ihren erweiterten Support-Zeitraum hinaus. Sie können den Support-Zeitraum von Microsoft Server-Betriebssystemen unter folgendem Link finden:&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://docs.microsoft.com/de-de/lifecycle/]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Verwenden von Betriebssystemen über den Support-Zeitraum hinaus zu verwenden ist allgemein nicht zu empfehlen. So ist z.B. Windows Server 2008 R2 seit Anfang 2020 nicht mehr DSGVO konform: &lt;br /&gt;
[[https://news.microsoft.com/de-de/supportende-windows-server-2008-umstieg-auf-microsoft-azure/ Microsoft rät Kunden mit Windows Server 2008 zum schnellen Umstieg auf Azure-Cloud]]&amp;lt;br/&amp;gt; &lt;br /&gt;
Die Dimensionierung des Servers ist von mehreren Faktoren abhängig:&lt;br /&gt;
*Anzahl der Arbeitsplätze (siehe Unten)&lt;br /&gt;
*Wird das DMS verwendet? (Jährlich 30.000 Dokumente entsprechen etwa 30GB Festplattenspeicher im Jahr)&lt;br /&gt;
*Wird das System als Terminalserver genutzt?&lt;br /&gt;
&lt;br /&gt;
Allgemeine Anforderungen an den Server: &lt;br /&gt;
*64-Bit Betriebssystem&lt;br /&gt;
*Der Server muss 24 Stunden täglich über das Internet erreichbar sein (Updates, Shoppflege, Artikelimporte, ...)&lt;br /&gt;
*OBS unterstützt bisher Microsoft Server-Betriebssysteme bis &#039;&#039;&#039;Windows Server 2022&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Probleme und mögliche Störungen des Serversystems:&amp;lt;br&amp;gt;&lt;br /&gt;
[[OBS/System/Systemstörungen_von_Serversystemen | Systemstörungen von Serversystemen]]&lt;br /&gt;
&lt;br /&gt;
=Hardwareanforderungen (Beispiele):=&lt;br /&gt;
Im Folgenden erhalten Sie einige Beispiele, mit welcher Hardware eine Firma ausgestattet sein könnte. Setzten Sie sich jedoch bitte mit Firma Bergau in Verbindung um Ihre genauen Anforderungen abzustimmen. &lt;br /&gt;
==1 Arbeitsplatz==&lt;br /&gt;
Einzelplatz-Lösung:&lt;br /&gt;
*Betriebssystem: Windows 10 64 Bit&lt;br /&gt;
*Arbeitsspeicher: 16 GB &lt;br /&gt;
*Quadcore Prozessor 3GHz&lt;br /&gt;
&lt;br /&gt;
==bis 3 Arbeitsplätze==&lt;br /&gt;
Client/Server-Lösung:&lt;br /&gt;
*Betriebssystem: Windows Server 2019 64 Bit&lt;br /&gt;
*Arbeitsspeicher: 32GB&lt;br /&gt;
*Quadcore Prozessor 3GHz&lt;br /&gt;
*Thin-Client mit Terminalserver oder Desktop-PCs&lt;br /&gt;
&lt;br /&gt;
==ab 4 Arbeitsplätzen==&lt;br /&gt;
Ab 4 Arbeitsplätzen sollte immer eine Client/Server-Lösung verwendet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
*Betriebssystem: Windows Server 2019 64 Bit&lt;br /&gt;
*Arbeitsspeicher: 32GB&lt;br /&gt;
*Quadcore Prozessor 3GHz&lt;br /&gt;
*Thin-Client mit Terminalserver oder Desktop-PCs&lt;br /&gt;
==ab 40 Arbeitsplätzen==&lt;br /&gt;
*In jedem Fall vorher mit Firma Bergau abstimmen&lt;br /&gt;
*Arbeitsspeicher: 80Gb (InnoDB)&lt;br /&gt;
*Raid 1 mit mindestens 500GB&lt;br /&gt;
*Optimalerweise HotSpare-Festplatte&lt;br /&gt;
*Xeon Quadcore CPU&lt;br /&gt;
==ab 100 Arbeitsplätze==&lt;br /&gt;
Aus Erfahrung unserer Großkunden um 100 Benutzer&lt;br /&gt;
Vorschlag zur Umsetzung der OBS Umgebung auf ein neues Serverumfeld. &lt;br /&gt;
Es ist wichtig wegen der Redundanz zwei Domänencontroller zu haben weil sonst bei Ausfall eines Domänencontrollers keine Anmeldungen mehr möglich sind.&lt;br /&gt;
Die User melden sich an dem Terminal RDS Balancer an und werden dann auf die nachgelagerten Terminalserver je nach Auslastung verteilt. Der OBS DB Server wird idealerweise auf einem Host mit hochgeachtetem XEON Prozessor gefahren. Wegen der idealen Geschwindigkeit ist dieses Plattensystem auf einem RAID 10 System zu installieren.&lt;br /&gt;
Für Druckaufbereitung und einen Antivirusserver kann einer der zwei Domänencontroller genutzt werden.&lt;br /&gt;
&lt;br /&gt;
*VM Domänencontroller 1 120 GB VHDX im Raid5, 2 x XEON CORE, 4  GB RAM&lt;br /&gt;
*VM Domänencontroller 2 120 GB VHDX im Raid5 auf anderen Host 2 x XEON CORE, 4  GB RAM&lt;br /&gt;
*Terminalserverbalancer 8 GB RAM, 240 GB VHDX im RAID 5 (Userprofile) 4 x XEON CORE&lt;br /&gt;
*Terminalserver 1 400 GB VHDX im RAID 5 128 GB RAM 12 x XEON CORE&lt;br /&gt;
*Terminalserver 2 400 GB VHDX im RAID 5 128 GB RAM 12 x XEON CORE&lt;br /&gt;
*OBS DB Server 8 x Xeon Core hoher Takt, 192 GB RAM, 1 TB VDX in separatem RAID 10&lt;br /&gt;
*Fileserver 1000 GB (bitte Bedarf selber ermitteln)  VHDX im RAID 5 8 GB RAM 2 x XEON CORE&lt;br /&gt;
&lt;br /&gt;
=Infrastrukturelle Anforderungen=&lt;br /&gt;
==Firewall==&lt;br /&gt;
*Der Port 1337 muss für OBS-Kommunikation (Tickets, OBS-Updates, Update-Informationen, Support, etc.) freigeschaltet werden.&lt;br /&gt;
*Für zeitnahen Support sollte eine Möglichkeit für einen festen Fernzugriff gegeben sein. &lt;br /&gt;
==Netzwerkanbindung==&lt;br /&gt;
Mindestens 100Mbit, eine 1GBit-Verbindung ist allerdings ausdrücklich empfohlen.&lt;br /&gt;
==Terminalanbindung==&lt;br /&gt;
Wenn eine Terminalserverlösung eingesetzt wird, muss diese auf einem separaten Rechner installiert werden. Wir empfehlen hierfür den Einsatz von mindestens Microsoft Windows-Server 2012.&lt;br /&gt;
==Homeoffice/Remote Arbeiten==&lt;br /&gt;
Wenn OBS außerhalb des lokalen Firmennetzwerkes verwendet werden soll muss OBS in einer [https://de.wikipedia.org/wiki/Remote_Desktop_Protocol RDP]-Sitzung gestartet werden. &lt;br /&gt;
{{Achtung|Es reicht nicht aus eine VPN-Verbindung herzustellen um OBS dann über das VPN auf dem externen Client zu starten.}}&lt;br /&gt;
==Datensicherung (Backup)==&lt;br /&gt;
Ein regelmäßiges Backup auf eine externe HDD oder ein NAS muss mit geeigneter Software (Unsere Empfehlung: StorageCraft Shadow Protect) durchgeführt werden.&lt;br /&gt;
==USV==&lt;br /&gt;
Es wird eine für den Server ausreichende unterbrechungsfreie Stromversorgung benötigt.&lt;br /&gt;
==Rechtevergabe, Dateifreigabe, Antivirenprogramm Ausnahmen==&lt;br /&gt;
===OBS- und MySQL Verzeichnis===&lt;br /&gt;
Die MySQL-Datenbank wird standardmäßig in einem gesonderten Verzeichnis installiert. Das OBS-Verzeichnis muss innerhalb des Netzwerks für alle Clients im Vollzugriff verfügbar sein, da hieraus sowohl OBS gestartet wird als auch von OBS im Betrieb Daten gespeichert und verändert werden. Das MySQL Verzeichnis sollte aus Sicherheitsgründen auf keinen Fall von außerhalb des Server zugreifbar sein. &lt;br /&gt;
===Antivirenprogramm Ausnahmen===&lt;br /&gt;
Je nach Antivirenprogramm (AV) kann es erforderlich sein, unterschiedliche Ausnahmeregeln zu bestimmen. Einige AVs erkennen in den OBS*.EXE Dateien des OBS-Hauptverzeichnisses Schadcode, da diese Dateien von unser verschüsselt werden und die AVs diese so nicht prüfen können. Es ist daher ratsam auf jeden Fall diese von einer Überprüfung auszuschließen. &lt;br /&gt;
In einigen Fällen kann es auch passieren, dass AVs Einfluss auf Datenbankoperationen nehmen. Aus diesem Grund ist es ratsam auch das MySQL Verzeichnis von einer Prüfung auszuschließen.&lt;br /&gt;
==Microsoft Windows Server Updates==&lt;br /&gt;
Vor Windows-Server-Updates ist es zu empfehlen den MySQL Dienst zu beenden. Nach dem Windows Update ohne Server Neustart muss dieser dann manuell wieder gestartet.&lt;br /&gt;
Bei einem Server Neustart muss kontrolliert werden ob der MySQL Dienst wieder korrekt gestartet ist.&lt;br /&gt;
Der Name des MySQL Servers kann je nach Version variieren.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Windows_service.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Weitere Anforderungen=&lt;br /&gt;
==Browser==&lt;br /&gt;
Bestimmte OBS-Module benötigen den aktuellen Microsoft Edge Browser um zu funktionieren. Ab Windows 10 ist dieser standardmäßig installiert. Für ältere Betriebssystem können Sie ihn hier herunterladen und installieren:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[https://www.microsoft.com/de-de/edge Microsoft Edge]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[https://www.microsoft.com/en-us/edge/business/download Microsoft Edge Business]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Internet Explorer und Edge Legacy===&lt;br /&gt;
*Internet Explorer Support für bestimmte Betriebssysteme ab dem 15. Juni 2022 beendet&amp;lt;br/&amp;gt;[[https://docs.microsoft.com/de-de/lifecycle/products/internet-explorer-11 Internet Explorer 11 Lebenzyklus]]&amp;lt;br/&amp;gt;[[https://docs.microsoft.com/en-us/lifecycle/announcements/internet-explorer-11-end-of-support?form=MY01SV&amp;amp;OCID=MY01SV Internet Explorer 11 Support-Ende]]&lt;br /&gt;
*Ende des Support für andere Anwendungen von MS&amp;lt;br/&amp;gt;Ab dem 30. November 2020 wird die Anwendung Microsoft Teams den Internet Explorer 11 schon mal nicht mehr unterstützen. Die übrigen Microsoft-365-Apps und Microsoft-365-Dienste stellen ihren Support für den Internet Explorer 11 dann am 17. August 2021 ein. Über den Internet Explorer 11 wird man sich dann also nicht mehr mit Microsoft-365-Apps und -Diensten verbinden können. Die übrigen Microsoft-365-Funktionen würden nach diesem Datum nur noch sehr eingeschränkt über den Internet Explorer 11 verfügbar sein. &amp;lt;br/&amp;gt;[[https://www.pcwelt.de/news/Aus-fuer-IE-11-und-alten-Edge-Das-muessen-Sie-wissen-10867151.html PC-Welt: Aus für Internet Explorer 11 und alten Edge]]&lt;br /&gt;
*Alter Edge Browser&amp;lt;br/&amp;gt;Den Support für Edge Legacy stellt Microsoft am 9. März 2021 ein. Ab diesem Zeitpunkt liefert Microsoft keine neuen Sicherheitsupdates mehr für den alten Edge aus. &amp;lt;br/&amp;gt;[[https://docs.microsoft.com/en-us/lifecycle/announcements/internet-explorer-11-end-of-support?form=MY01SV&amp;amp;OCID=MY01SV Internet Exporer 11 Support-Ende]]&lt;br /&gt;
&lt;br /&gt;
===Betroffene Module===&lt;br /&gt;
*Google Maps&amp;lt;br/&amp;gt;[[https://developers.google.com/maps/documentation/javascript/browsersupport Google Browsersupport]]&amp;lt;br/&amp;gt;&#039;&#039;&#039;Ab August 2021 wird für Nutzer des Internet Explorer 11 eine Warnmeldung am oberen Rand der Karten angezeigt. Die letzte Version der Maps JavaScript API, die Internet Explorer 11 unterstützt, ist v3.47. Die Unterstützung für Internet Explorer 11 wird im August 2022 vollständig eingestellt. Dies gilt auch für den IE-Modus in Edge.&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
*HTML Anzeige für E-Mails&lt;br /&gt;
*Alle Browser Komponenten in OBS&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Google scheint den Support für IE bereits am 17.02.2022 eingestellt zu haben. Ab OBS Version 003917 sind die betroffenen Module in der Neuen Version verfügbar}}&lt;br /&gt;
&lt;br /&gt;
=Serverumzug=&lt;br /&gt;
Falls Sie OBS schon im Einsatz haben und einen neuen OBS-Server beschaffen möchten, ist folgendes zu beachten:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Serverumzüge sind Kostenpflichtig und fallen nicht in die Servicevertrags-Leistungen.}}&lt;br /&gt;
&lt;br /&gt;
Bei einem Serverumzug installieren und konfigurieren wir auf dem neuen Server die MySQL Datenbank und das OBS. Hierbei wird durch OBS und MySQL jeweils ein neuer Dienst in der Windows Diensteverwaltung angelegt. &lt;br /&gt;
Die reine Einrichtung und Konfiguration dauert ca. 1 - 2 Stunden. Hinzu kommt die Übertragung der Daten: Es müssen Dumps der Datenbank angefertigt, kopiert und auf dem neuen Server importiert werden. Der OBS-Ordner muss komplett kopiert werden. Wie lange dies insgesamt dauert lässt sich nur schwer einschätzen, da dies von der Menge der Daten, der Geschwindigkeit des alten Servers (Erstellen der Dumps) und der Übertragungsgeschwindigkeit abhängt. &lt;br /&gt;
&lt;br /&gt;
Die beste Konstellation für einen Serverumzug ist, wenn wir zeitlich Zugriff auf den alten und den neuen Server erhalten. Dann können die Daten schon einmal kopiert und alles für den eigentlich Umzug vorbereitet werden. Zum gewünschten Umzugszeitpunkt müssen dann nur noch einmal die geänderten Daten aus dem OBS-Verzeichnis kopiert und die MySQL Dumps importiert werden. &lt;br /&gt;
Ein weiterer Vorteil ist, dass so vor dem eigentlichen Umzug OBS schon einmal getestet werden kann.&lt;br /&gt;
&lt;br /&gt;
Wir können den Umzug prinzipiell jederzeit durchführen. Wenn wir dies jedoch außerhalb unserer gewöhnlichen Geschäftszeiten (08:00-16:30) durchführen erheben wir einen Aufschlag von 50% auf die Aufwandskosten.&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/H%C3%A4ufig_gestellte_Fragen/Hardwareanforderungen&amp;diff=61237</id>
		<title>OBS/Häufig gestellte Fragen/Hardwareanforderungen</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/H%C3%A4ufig_gestellte_Fragen/Hardwareanforderungen&amp;diff=61237"/>
		<updated>2022-08-01T06:36:45Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* Systemvoraussetzungen Server */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Häufig gestellte Fragen}}&lt;br /&gt;
&lt;br /&gt;
=Systemvoraussetzungen Workstations=&lt;br /&gt;
&lt;br /&gt;
*OBS unterstützt Microsoft Betriebssysteme nicht über ihren erweiterten Support-Zeitraum hinaus. Eine Liste aller Support-Zeiträume von Microsoft finden Sie unter folgendem Link:&amp;lt;br/&amp;gt; [https://support.microsoft.com/de-de/help/13853/windows-lifecycle-fact-sheet Informationsblatt zum Lebenszyklus von Windows]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Ab OBS 4.0 (KW 39, 2021) wird mindestens Windows 10 benötigt.}}&lt;br /&gt;
{{Achtung|Ab dem OBS-Update vom 30.03.2022 ist es nicht mehr möglich OBS auf einem PC mit Windows 7 zu starten.}}&lt;br /&gt;
&lt;br /&gt;
*Arbeitsspeicher: Mindestens 4 GB &lt;br /&gt;
*Festplatte: Mindestens 128 GB&lt;br /&gt;
&lt;br /&gt;
=Systemvoraussetzungen Server=&lt;br /&gt;
OBS unterstützt Microsoft Server-Betriebssysteme nicht über ihren erweiterten Support-Zeitraum hinaus. Sie können den Support-Zeitraum von Microsoft Server-Betriebssystemen unter folgendem Link finden:&amp;lt;br/&amp;gt; &lt;br /&gt;
[https://docs.microsoft.com/de-de/lifecycle/]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Verwenden von Betriebssystemen über den Support-Zeitraum hinaus zu verwenden ist allgemein nicht zu empfehlen. So ist z.B. Windows Server 2008 R2 seit Anfang 2020 nicht mehr DSGVO konform: &lt;br /&gt;
[[https://news.microsoft.com/de-de/supportende-windows-server-2008-umstieg-auf-microsoft-azure/ Microsoft rät Kunden mit Windows Server 2008 zum schnellen Umstieg auf Azure-Cloud]]&amp;lt;br/&amp;gt; &lt;br /&gt;
Die Dimensionierung des Servers ist von mehreren Faktoren abhängig:&lt;br /&gt;
*Anzahl der Arbeitsplätze (siehe Unten)&lt;br /&gt;
*Wird das DMS verwendet? (Jährlich 30.000 Dokumente entsprechen etwa 30GB Festplattenspeicher im Jahr)&lt;br /&gt;
*Wird das System als Terminalserver genutzt?&lt;br /&gt;
&lt;br /&gt;
Allgemeine Anforderungen an den Server: &lt;br /&gt;
*64-Bit Betriebssystem&lt;br /&gt;
*Der Server muss 24 Stunden täglich über das Internet erreichbar sein (Updates, Shoppflege, Artikelimporte, ...)&lt;br /&gt;
*OBS unterstützt bisher Microsoft Server-Betriebssysteme bis &#039;&#039;&#039;Windows Server 2022&#039;&#039;&#039; geprüft.&lt;br /&gt;
&lt;br /&gt;
Probleme und mögliche Störungen des Serversystems:&amp;lt;br&amp;gt;&lt;br /&gt;
[[OBS/System/Systemstörungen_von_Serversystemen | Systemstörungen von Serversystemen]]&lt;br /&gt;
&lt;br /&gt;
=Hardwareanforderungen (Beispiele):=&lt;br /&gt;
Im Folgenden erhalten Sie einige Beispiele, mit welcher Hardware eine Firma ausgestattet sein könnte. Setzten Sie sich jedoch bitte mit Firma Bergau in Verbindung um Ihre genauen Anforderungen abzustimmen. &lt;br /&gt;
==1 Arbeitsplatz==&lt;br /&gt;
Einzelplatz-Lösung:&lt;br /&gt;
*Betriebssystem: Windows 10 64 Bit&lt;br /&gt;
*Arbeitsspeicher: 16 GB &lt;br /&gt;
*Quadcore Prozessor 3GHz&lt;br /&gt;
&lt;br /&gt;
==bis 3 Arbeitsplätze==&lt;br /&gt;
Client/Server-Lösung:&lt;br /&gt;
*Betriebssystem: Windows Server 2019 64 Bit&lt;br /&gt;
*Arbeitsspeicher: 32GB&lt;br /&gt;
*Quadcore Prozessor 3GHz&lt;br /&gt;
*Thin-Client mit Terminalserver oder Desktop-PCs&lt;br /&gt;
&lt;br /&gt;
==ab 4 Arbeitsplätzen==&lt;br /&gt;
Ab 4 Arbeitsplätzen sollte immer eine Client/Server-Lösung verwendet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
*Betriebssystem: Windows Server 2019 64 Bit&lt;br /&gt;
*Arbeitsspeicher: 32GB&lt;br /&gt;
*Quadcore Prozessor 3GHz&lt;br /&gt;
*Thin-Client mit Terminalserver oder Desktop-PCs&lt;br /&gt;
==ab 40 Arbeitsplätzen==&lt;br /&gt;
*In jedem Fall vorher mit Firma Bergau abstimmen&lt;br /&gt;
*Arbeitsspeicher: 80Gb (InnoDB)&lt;br /&gt;
*Raid 1 mit mindestens 500GB&lt;br /&gt;
*Optimalerweise HotSpare-Festplatte&lt;br /&gt;
*Xeon Quadcore CPU&lt;br /&gt;
==ab 100 Arbeitsplätze==&lt;br /&gt;
Aus Erfahrung unserer Großkunden um 100 Benutzer&lt;br /&gt;
Vorschlag zur Umsetzung der OBS Umgebung auf ein neues Serverumfeld. &lt;br /&gt;
Es ist wichtig wegen der Redundanz zwei Domänencontroller zu haben weil sonst bei Ausfall eines Domänencontrollers keine Anmeldungen mehr möglich sind.&lt;br /&gt;
Die User melden sich an dem Terminal RDS Balancer an und werden dann auf die nachgelagerten Terminalserver je nach Auslastung verteilt. Der OBS DB Server wird idealerweise auf einem Host mit hochgeachtetem XEON Prozessor gefahren. Wegen der idealen Geschwindigkeit ist dieses Plattensystem auf einem RAID 10 System zu installieren.&lt;br /&gt;
Für Druckaufbereitung und einen Antivirusserver kann einer der zwei Domänencontroller genutzt werden.&lt;br /&gt;
&lt;br /&gt;
*VM Domänencontroller 1 120 GB VHDX im Raid5, 2 x XEON CORE, 4  GB RAM&lt;br /&gt;
*VM Domänencontroller 2 120 GB VHDX im Raid5 auf anderen Host 2 x XEON CORE, 4  GB RAM&lt;br /&gt;
*Terminalserverbalancer 8 GB RAM, 240 GB VHDX im RAID 5 (Userprofile) 4 x XEON CORE&lt;br /&gt;
*Terminalserver 1 400 GB VHDX im RAID 5 128 GB RAM 12 x XEON CORE&lt;br /&gt;
*Terminalserver 2 400 GB VHDX im RAID 5 128 GB RAM 12 x XEON CORE&lt;br /&gt;
*OBS DB Server 8 x Xeon Core hoher Takt, 192 GB RAM, 1 TB VDX in separatem RAID 10&lt;br /&gt;
*Fileserver 1000 GB (bitte Bedarf selber ermitteln)  VHDX im RAID 5 8 GB RAM 2 x XEON CORE&lt;br /&gt;
&lt;br /&gt;
=Infrastrukturelle Anforderungen=&lt;br /&gt;
==Firewall==&lt;br /&gt;
*Der Port 1337 muss für OBS-Kommunikation (Tickets, OBS-Updates, Update-Informationen, Support, etc.) freigeschaltet werden.&lt;br /&gt;
*Für zeitnahen Support sollte eine Möglichkeit für einen festen Fernzugriff gegeben sein. &lt;br /&gt;
==Netzwerkanbindung==&lt;br /&gt;
Mindestens 100Mbit, eine 1GBit-Verbindung ist allerdings ausdrücklich empfohlen.&lt;br /&gt;
==Terminalanbindung==&lt;br /&gt;
Wenn eine Terminalserverlösung eingesetzt wird, muss diese auf einem separaten Rechner installiert werden. Wir empfehlen hierfür den Einsatz von mindestens Microsoft Windows-Server 2012.&lt;br /&gt;
==Homeoffice/Remote Arbeiten==&lt;br /&gt;
Wenn OBS außerhalb des lokalen Firmennetzwerkes verwendet werden soll muss OBS in einer [https://de.wikipedia.org/wiki/Remote_Desktop_Protocol RDP]-Sitzung gestartet werden. &lt;br /&gt;
{{Achtung|Es reicht nicht aus eine VPN-Verbindung herzustellen um OBS dann über das VPN auf dem externen Client zu starten.}}&lt;br /&gt;
==Datensicherung (Backup)==&lt;br /&gt;
Ein regelmäßiges Backup auf eine externe HDD oder ein NAS muss mit geeigneter Software (Unsere Empfehlung: StorageCraft Shadow Protect) durchgeführt werden.&lt;br /&gt;
==USV==&lt;br /&gt;
Es wird eine für den Server ausreichende unterbrechungsfreie Stromversorgung benötigt.&lt;br /&gt;
==Rechtevergabe, Dateifreigabe, Antivirenprogramm Ausnahmen==&lt;br /&gt;
===OBS- und MySQL Verzeichnis===&lt;br /&gt;
Die MySQL-Datenbank wird standardmäßig in einem gesonderten Verzeichnis installiert. Das OBS-Verzeichnis muss innerhalb des Netzwerks für alle Clients im Vollzugriff verfügbar sein, da hieraus sowohl OBS gestartet wird als auch von OBS im Betrieb Daten gespeichert und verändert werden. Das MySQL Verzeichnis sollte aus Sicherheitsgründen auf keinen Fall von außerhalb des Server zugreifbar sein. &lt;br /&gt;
===Antivirenprogramm Ausnahmen===&lt;br /&gt;
Je nach Antivirenprogramm (AV) kann es erforderlich sein, unterschiedliche Ausnahmeregeln zu bestimmen. Einige AVs erkennen in den OBS*.EXE Dateien des OBS-Hauptverzeichnisses Schadcode, da diese Dateien von unser verschüsselt werden und die AVs diese so nicht prüfen können. Es ist daher ratsam auf jeden Fall diese von einer Überprüfung auszuschließen. &lt;br /&gt;
In einigen Fällen kann es auch passieren, dass AVs Einfluss auf Datenbankoperationen nehmen. Aus diesem Grund ist es ratsam auch das MySQL Verzeichnis von einer Prüfung auszuschließen.&lt;br /&gt;
==Microsoft Windows Server Updates==&lt;br /&gt;
Vor Windows-Server-Updates ist es zu empfehlen den MySQL Dienst zu beenden. Nach dem Windows Update ohne Server Neustart muss dieser dann manuell wieder gestartet.&lt;br /&gt;
Bei einem Server Neustart muss kontrolliert werden ob der MySQL Dienst wieder korrekt gestartet ist.&lt;br /&gt;
Der Name des MySQL Servers kann je nach Version variieren.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Windows_service.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Weitere Anforderungen=&lt;br /&gt;
==Browser==&lt;br /&gt;
Bestimmte OBS-Module benötigen den aktuellen Microsoft Edge Browser um zu funktionieren. Ab Windows 10 ist dieser standardmäßig installiert. Für ältere Betriebssystem können Sie ihn hier herunterladen und installieren:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[https://www.microsoft.com/de-de/edge Microsoft Edge]]&amp;lt;br/&amp;gt;&lt;br /&gt;
[[https://www.microsoft.com/en-us/edge/business/download Microsoft Edge Business]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Internet Explorer und Edge Legacy===&lt;br /&gt;
*Internet Explorer Support für bestimmte Betriebssysteme ab dem 15. Juni 2022 beendet&amp;lt;br/&amp;gt;[[https://docs.microsoft.com/de-de/lifecycle/products/internet-explorer-11 Internet Explorer 11 Lebenzyklus]]&amp;lt;br/&amp;gt;[[https://docs.microsoft.com/en-us/lifecycle/announcements/internet-explorer-11-end-of-support?form=MY01SV&amp;amp;OCID=MY01SV Internet Explorer 11 Support-Ende]]&lt;br /&gt;
*Ende des Support für andere Anwendungen von MS&amp;lt;br/&amp;gt;Ab dem 30. November 2020 wird die Anwendung Microsoft Teams den Internet Explorer 11 schon mal nicht mehr unterstützen. Die übrigen Microsoft-365-Apps und Microsoft-365-Dienste stellen ihren Support für den Internet Explorer 11 dann am 17. August 2021 ein. Über den Internet Explorer 11 wird man sich dann also nicht mehr mit Microsoft-365-Apps und -Diensten verbinden können. Die übrigen Microsoft-365-Funktionen würden nach diesem Datum nur noch sehr eingeschränkt über den Internet Explorer 11 verfügbar sein. &amp;lt;br/&amp;gt;[[https://www.pcwelt.de/news/Aus-fuer-IE-11-und-alten-Edge-Das-muessen-Sie-wissen-10867151.html PC-Welt: Aus für Internet Explorer 11 und alten Edge]]&lt;br /&gt;
*Alter Edge Browser&amp;lt;br/&amp;gt;Den Support für Edge Legacy stellt Microsoft am 9. März 2021 ein. Ab diesem Zeitpunkt liefert Microsoft keine neuen Sicherheitsupdates mehr für den alten Edge aus. &amp;lt;br/&amp;gt;[[https://docs.microsoft.com/en-us/lifecycle/announcements/internet-explorer-11-end-of-support?form=MY01SV&amp;amp;OCID=MY01SV Internet Exporer 11 Support-Ende]]&lt;br /&gt;
&lt;br /&gt;
===Betroffene Module===&lt;br /&gt;
*Google Maps&amp;lt;br/&amp;gt;[[https://developers.google.com/maps/documentation/javascript/browsersupport Google Browsersupport]]&amp;lt;br/&amp;gt;&#039;&#039;&#039;Ab August 2021 wird für Nutzer des Internet Explorer 11 eine Warnmeldung am oberen Rand der Karten angezeigt. Die letzte Version der Maps JavaScript API, die Internet Explorer 11 unterstützt, ist v3.47. Die Unterstützung für Internet Explorer 11 wird im August 2022 vollständig eingestellt. Dies gilt auch für den IE-Modus in Edge.&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
*HTML Anzeige für E-Mails&lt;br /&gt;
*Alle Browser Komponenten in OBS&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Google scheint den Support für IE bereits am 17.02.2022 eingestellt zu haben. Ab OBS Version 003917 sind die betroffenen Module in der Neuen Version verfügbar}}&lt;br /&gt;
&lt;br /&gt;
=Serverumzug=&lt;br /&gt;
Falls Sie OBS schon im Einsatz haben und einen neuen OBS-Server beschaffen möchten, ist folgendes zu beachten:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Serverumzüge sind Kostenpflichtig und fallen nicht in die Servicevertrags-Leistungen.}}&lt;br /&gt;
&lt;br /&gt;
Bei einem Serverumzug installieren und konfigurieren wir auf dem neuen Server die MySQL Datenbank und das OBS. Hierbei wird durch OBS und MySQL jeweils ein neuer Dienst in der Windows Diensteverwaltung angelegt. &lt;br /&gt;
Die reine Einrichtung und Konfiguration dauert ca. 1 - 2 Stunden. Hinzu kommt die Übertragung der Daten: Es müssen Dumps der Datenbank angefertigt, kopiert und auf dem neuen Server importiert werden. Der OBS-Ordner muss komplett kopiert werden. Wie lange dies insgesamt dauert lässt sich nur schwer einschätzen, da dies von der Menge der Daten, der Geschwindigkeit des alten Servers (Erstellen der Dumps) und der Übertragungsgeschwindigkeit abhängt. &lt;br /&gt;
&lt;br /&gt;
Die beste Konstellation für einen Serverumzug ist, wenn wir zeitlich Zugriff auf den alten und den neuen Server erhalten. Dann können die Daten schon einmal kopiert und alles für den eigentlich Umzug vorbereitet werden. Zum gewünschten Umzugszeitpunkt müssen dann nur noch einmal die geänderten Daten aus dem OBS-Verzeichnis kopiert und die MySQL Dumps importiert werden. &lt;br /&gt;
Ein weiterer Vorteil ist, dass so vor dem eigentlichen Umzug OBS schon einmal getestet werden kann.&lt;br /&gt;
&lt;br /&gt;
Wir können den Umzug prinzipiell jederzeit durchführen. Wenn wir dies jedoch außerhalb unserer gewöhnlichen Geschäftszeiten (08:00-16:30) durchführen erheben wir einen Aufschlag von 50% auf die Aufwandskosten.&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Vorlage:ZugriffOBS&amp;diff=61236</id>
		<title>Vorlage:ZugriffOBS</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Vorlage:ZugriffOBS&amp;diff=61236"/>
		<updated>2022-07-27T11:31:04Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;accesscontrol&amp;gt;Programmierer&amp;lt;/accesscontrol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;Navigation zwischen den Seiten des Namensraumes für OBS Programmierer (Adminhilfe).&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; clear:both; margin-left:2px; padding:0px; background:#FFFFFF; width:19em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:none;margin-top:0pt;padding:0pt;&amp;quot; id=&amp;quot;navigation&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative;top:-20pt;color:#000000;background:#ffffff; border: 3pt double #cfcfcf; padding: 5pt; margin: 0pt;margin-bottom:-20pt; z-index:1;border-top-right-radius:7pt;-moz-border-radius-topright:7pt;-webkit-border-top-right-radius:7pt;border-bottom-left-radius:7pt;-moz-border-radius-bottomleft:7pt;-webkit-border-bottom-left-radius:7pt;box-shadow: 3px 3px 4px #c0c0c0;-webkit-box-shadow: 3px 3px 4px #c0c0c0;-moz-box-shadow: 3px 3px 4px #c0c0c0;&amp;quot;&amp;gt;[[Hauptseite|Wiki]] » [[Admin|Admin-Hilfe]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Vorlage:Textbox-Rot|1=Admin-Hilfe |2=&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
{{Vorlage:Klapptext|kopf=FAQ|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/System Überwachnung|System Überwachung]]&lt;br /&gt;
* [[OBS/Adminhilfe/Datenausführungsverhinderung ausschalten|DEP deaktivieren]]&lt;br /&gt;
* [[OBS/Adminhilfe/Bildschirmdarstellsung der Listen und Masken unter Windows Vista und Windows 7|Darstellung unter Windows 7]]&lt;br /&gt;
* [[OBS/Adminhilfe/Einwahl Windows 2000|Einwahl auf Windows 2000 Server]]&lt;br /&gt;
* [[OBS/Preislistenhilfe|Preislisten]]&lt;br /&gt;
** [[OBS/Häufig gestellte Fragen/Pflege von Preislisten / Preisgruppen|Preislistenpflege]]&lt;br /&gt;
* [[OBS/Adminhilfe/Periodisches Datenbank-Backup mit dem Scheduler|Datenbank Sicherung]]&lt;br /&gt;
* [[OBS/Adminhilfe/Anleitung Customize Edit|Customize]]&lt;br /&gt;
* [[OBS/Adminhilfe/Zentrallösung|Zentrale]]&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL Korrekturen|MySQL Korrekturen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Support Macro|Support Macro]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Debug|Service Debug]]&lt;br /&gt;
* [[OBS/Adminhilfe/Historienprotokoll|Historienprotokoll (Datenänderung OBS)]]&lt;br /&gt;
* [[OBS/Adminhilfe/Fernwartung|Fernwartungsprobleme]]&lt;br /&gt;
* [[OBS/Adminhilfe/Startparameter|Startparameter]]&lt;br /&gt;
* [[OBS/Adminhilfe/Kassenabschluss_korrigieren|Fehler beim Kassenabschluss]]&lt;br /&gt;
* [[OBS/Adminhilfe/Diverses|Diverse Informationen]]&lt;br /&gt;
{{vorlage:Klapptext|kopf=FIBU|inhalt=&lt;br /&gt;
&lt;br /&gt;
* [[OBS/Adminhilfe/E-BANKO Löschen|E-BANKO Löschen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Buchung offene Posten|Buchungsmöglichkeiten mit offenen Posten]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{vorlage:Klapptext|kopf=Häufige Fehler FAQs|inhalt=&lt;br /&gt;
&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige Shop-Fehler|Shop Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige OBS-MAIL Fehler|OBS-MAIL Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige OBS-FTP Fehler|OBS-FTP Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige Service Fehler|Service Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige Druck Fehler|Druck Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige FIBU Fehler|FIBU Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige Preis-Fehler|Preis-Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige MySQL Fehler|MySQL-Fehler]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Allgemeines|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Homeoffice|Home Office Kompendium]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Tools|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Tools|Auflistung verschiedener Tools]]&lt;br /&gt;
* [[OBS/Adminhilfe/Demo Builder|Videos mit Demo Builder]]&lt;br /&gt;
* [[OBS/Adminhilfe/Autohotkey|Autohotkey]]&lt;br /&gt;
* [[OBS/Adminhilfe/Open Broadcaster Software|Videos mit Open Broadcaster Software]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS-Monitor|OBS-Monitor]]&lt;br /&gt;
}}&lt;br /&gt;
* [[OBS/Adminhilfe/Kassendruck für Terminalserverbetrieb einrichten|Kassendruck für Terminalserverbetrieb einrichten]]&lt;br /&gt;
* [[OBS/Adminhilfe/KundenSysInfo|KundenSysInfo]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Updates und deren Ablauf|OBS Update]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Update(alt)|OBS Update(alt)]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Versionshistorie|OBS Versionshistorie]]&lt;br /&gt;
* [[OBS/Adminhilfe/Flex Archiv Kontrolle|Flex Archiv Kontrolle]]&lt;br /&gt;
* [[OBS/Adminhilfe/RTF|RTF-Umstellung]]&lt;br /&gt;
* [[OBS/Adminhilfe/Druckumstellung| Druckumstellung]]&lt;br /&gt;
* [[OBS/Adminhilfe/PDF-Generierung| PDF-Generierung]]&lt;br /&gt;
* [[OBS/Adminhilfe/SupportBerrechnung|Support Berechnen]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Kosten|OBS Kosten und Berechnung]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS-Hilfetexte erstellen|OBS-Hilfetexte erstellen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Batch-Befehle|Nützliche Batch-Befehle (CMD)]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Widgets|inhalt=&lt;br /&gt;
*[[OBS/Adminhilfe/ OBS Logs/Protokolle| OBS Logs/Protokolle]]&lt;br /&gt;
*[[OBS/Adminhilfe/ MySQL Process Liste| MySQL Process Liste]]&lt;br /&gt;
*[[OBS/Adminhilfe/ Ticketsystem| Ticketsystem]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{vorlage:Klapptext|kopf=Wiki Hilfe|inhalt=&lt;br /&gt;
  {{vorlage:Klapptext|kopf=Syntax|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/SyntaxTabellen|Tabellen]]&lt;br /&gt;
* [[OBS/Adminhilfe/SyntaxBilder|Bilder]]&lt;br /&gt;
* [[OBS/Adminhilfe/Syntaxbefehle|Häufig Verwendet]]&lt;br /&gt;
* [[OBS/Adminhilfe/Artikel: HTML-Befehle für Textformatierung]]&lt;br /&gt;
* [[OBS/Adminhilfe/Textverknüpfungen|Textverknüpfungen]]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Extension:Cite/Cite.php/de Einzelnachweise]&lt;br /&gt;
  }}&lt;br /&gt;
* [[OBS/Adminhilfe/Wiki-Seiten erstellen|Wiki-Seiten erstellen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Wiki-Suche|Wiki Suche verwenden]]&lt;br /&gt;
* [[OBS/Adminhilfe/Wiki-Admin|Wiki-Admin]]&lt;br /&gt;
* [[OBS/Adminhilfe/Wiki Benutzer erstellen-bearbeiten|Wiki Benutzer erstellen-bearbeiten]]&lt;br /&gt;
  {{vorlage:Klapptext|kopf=Wiki-Gruppen Benutzerlisten|inhalt=&lt;br /&gt;
* [[Administrator|Administrator]]&lt;br /&gt;
* [[Programmierer|Programmierer]]&lt;br /&gt;
* [[Expert|Expert]]&lt;br /&gt;
* [[Bürokraten|Bürokraten]]&lt;br /&gt;
* [[IT-Techniker|IT-Techniker]]&lt;br /&gt;
* [[Officestar|Officestar]]&lt;br /&gt;
  }}&lt;br /&gt;
* [[OBS/Adminhilfe/veraltete Seiten|Veraltete Seiten]]&lt;br /&gt;
* [[OBS/Adminhilfe/Documentation Insight|Documentation Insight]]&lt;br /&gt;
* [[:Kategorie:Vorlage:Formatierungshilfe|Formatierungshilfe]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=MySQL|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL Tipps|MySQL Tipps]]&lt;br /&gt;
* [[OBS/Admihilfe/MySQL Aufgaben|MySQL Aufgaben]]&lt;br /&gt;
* [[OBS/Adminhilfe/Join Erläuterungen|MySQL Join Erläuterungen]]&lt;br /&gt;
* [[OBS/Admihilfe/Dump|Datenbankdump]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Programmierung und Mergen|inhalt=&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Delphi|inhalt=&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Einrichtung|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Anleitung zur Neuinstallatin von Borland Delphi 5|Delphiinstallation]]&lt;br /&gt;
* [[OBS/Adminhilfe/Delphi 5 Konfiguration|Delphi 5 Konfiguration]]&lt;br /&gt;
* [[OBS/Adminhilfe/Delphi 10 Konfiguration|Delphi 10 Konfiguration]]&lt;br /&gt;
* [[OBS/Adminhilfe/Vererbung Objectpascal|Vererbung Objectpascal]]&lt;br /&gt;
* [[OBS/Adminhilfe/Delphi IMP *.Pas-Dateien|Delphi IMP_*.PAS Dateien]]&lt;br /&gt;
* [[OBS/Adminhilfe/Delphi-Virus|Delphi-Virus (W32.Induc.A!dcu)]]&lt;br /&gt;
* [[OBS/Adminhilfe/ADOM Update|ADOM Update]]&lt;br /&gt;
* [[OBS/Adminhilfe/Allgemeine Fragen und Tipps zu Delphi|Allgemeine Fragen und Tipps zu Delphi]]&lt;br /&gt;
* [[OBS/Adminhilfe/Packages|Packages]]&lt;br /&gt;
* [[OBS/Adminhilfe/Generics|Generics in Delphi XE8]]&lt;br /&gt;
}}&lt;br /&gt;
* [[OBS/Adminhilfe/Code-Guideline|Guideline]]&lt;br /&gt;
* [[OBS/Adminhilfe/Syntax|Syntax-Regeln]]&lt;br /&gt;
* [[OBS/Adminhilfe/DebugTimer|DebugTimer]]&lt;br /&gt;
* [[OBS/Adminhilfe/SQLite|Arbeiten mit SQLite]]&lt;br /&gt;
* [[OBS/Adminhilfe/Schnittstelle testen|Schnittstelle testen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Semaphoren|Semaphoren]]&lt;br /&gt;
* [[OBS/Adminhilfe/Threading|Threading]]&lt;br /&gt;
* [[OBS/Adminhilfe/MemoryLeak|MemoryLeak Hunt]]&lt;br /&gt;
* [[OBS/Adminhilfe/Collections|Collections]]&lt;br /&gt;
* [[OBS/Adminhilfe/Pax-Freigabe|Pax-Freigabe]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=MMX|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/MMX|MMX]]&lt;br /&gt;
* [[OBS/Adminhilfe/MMX Einstellungen|Einstellungen]]&lt;br /&gt;
* [[OBS/Adminhilfe/MMX Code Explorer|Code Explorer]]&lt;br /&gt;
* [[OBS/Adminhilfe/MMX Source Indexer|Source Indexer]]&lt;br /&gt;
* [[OBS/Adminhilfe/MMX Navigation and Move|Navigation and Move]]&lt;br /&gt;
* [[OBS/Adminhilfe/MMX Text Tools|Text Tools]]&lt;br /&gt;
* [[OBS/Adminhilfe/MMX Code Generierung &amp;amp; Refactoring|Code Generierung &amp;amp; Refactoring]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Shop|inhalt=&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Git/SmartGit|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Git_Fork/Anleitung|Anleitung]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Programm Update|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update|Übersicht]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS_Programm_Update/Programm_Ini|Programm.ini]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Schaltflächen|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/Liste Weitere Funktionen/Source einspielen Main zu User|Source einspielen Main zu User]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/Liste Weitere Funktionen/Source einspielen User zu User|Source einspielen User zu User]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/Liste Weitere Funktionen/User Sourcen sichern|User Sourcen sichern]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/Liste Weitere Funktionen/Source Änderungen in den Versionen|Source Änderungen in den Versionen]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/F5 Projekte|F5 - Projekte]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/F6 Protokoll|F6 - Protokoll]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/F7 P-Lösch|F7 - Protokoll Löschen]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/F8 Update|F8 - Update]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/F9 FTP|F9 - FTP]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=F10: Weitere Funktionen|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/OBS_Programm_Update/F10_Weitere_Funktionen|Übersicht]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=PAX|inhalt=&lt;br /&gt;
*[[OBS/Adminhilfe/Pax Konvertierung| Konvertierung]]&lt;br /&gt;
*[[OBS/Adminhilfe/Pax Ereignisbehandlung| Ereignisbehandlung]]&lt;br /&gt;
*[[OBS/Adminhilfe/Pax SQL-Export| SQL-Export]]&lt;br /&gt;
*[[OBS/Adminhilfe/Pax Customize| Customize-Scripte]]&lt;br /&gt;
*[[OBS/Adminhilfe/Pax Listenrework| Listenrework]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Nützliche Funktionen|inhalt=&lt;br /&gt;
*[[OBS/Adminhilfe/Pax Barcode Beispiele| Barcodes]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=OBS-Administration / Installation|inhalt=&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Einrichtung|inhalt=&lt;br /&gt;
{{Vorlage:Klapptext|kopf=MySQL|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL Installation|MySQL Installieren]]&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL ODBC Treiber|MySQL ODBC Treiber]]&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL Upgrade|MySQL Upgrade]]&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL Tipps|MySQL Tipps]]&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL Datenbankeinstellungen|MySQL Tuning &amp;amp; Einstellungen]]&lt;br /&gt;
* [[OBS/Admihilfe/Dump|Datenbankdump]]&lt;br /&gt;
* [[Admin/SQL-Benutzer|Admin/SQL-Benutzer]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=OBS|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Installation|OBS Installation]]&lt;br /&gt;
* [[OBS/Adminhilfe/Artikelpflege Besonderheiten|Artikelpflege Besonderheiten]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS.ini|OBS.ini]]&lt;br /&gt;
* [[OBS/Adminhilfe/Serverumzug|Serverumzug]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Dienste|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Dienste auf verschiedenen Servern|Dienste auf verschiedenen Servern]]&lt;br /&gt;
* [[OBS/Adminhilfe/Problembehandlung Dienste|Problembehandlung]]&lt;br /&gt;
* [[ADMINMAIL | Mail]]&lt;br /&gt;
** [[OBS/Adminhilfe/EMAILROU.ini|EMAILROU.ini]]&lt;br /&gt;
* [[ADMINFTP | FTP]]&lt;br /&gt;
** [[OBS/Adminhilfe/OBS FTP Sync|FTP Synchronisation]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS-FAX-MODUL|Fax]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS-Update|OBS Update]]&lt;br /&gt;
* [[OBS/Adminhilfe/Dienste-Start-Parameter|Startparameter für Dienste]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Kasse/Notfallkasse|inhalt=&lt;br /&gt;
* [[Admin/Notfallkasse|Notfallkasse]]&lt;br /&gt;
* [[Admin/Notfallkassendrucksystem|Notfallkassendrucksystem]]&lt;br /&gt;
* [[Admin/TSEEinrichtung|TSE Einrichtung]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Replikation|inhalt=&lt;br /&gt;
* [[Admin/Replikation/Allgemeine Informationen|Allgemeine Informationen]]&lt;br /&gt;
* [[Admin/Replikation/Segel Daten Replikation|Segel Daten Replikation]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Zentrale|inhalt=&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Fleet-Management einrichten|inhalt=&lt;br /&gt;
* [[Admin/Einrichtung/FleetManagement|Fleet-Management einrichten]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=VirtualUI|inhalt=&lt;br /&gt;
* [[Admin/Einrichtung/VirtualUI|VirtualUI einrichten]]&lt;br /&gt;
* [[Admin/Einrichtung/VUIFAQ|VirtualUI Tipps und Probleme]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=OBS Umzug|inhalt=&lt;br /&gt;
{{vorlage:Klapptext|kopf=Allgemein|inhalt=&lt;br /&gt;
}}&lt;br /&gt;
{{vorlage:Klapptext|kopf=Bergau|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Umzug/Bergau/Besonderheiten|Besonderheiten]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Admin Funktionen|inhalt=&lt;br /&gt;
{{vorlage:Klapptext|kopf=Service Firmen|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste|Service Firmen Liste]]&lt;br /&gt;
** [[OBS/Adminhilfe/Service Firmen/Liste/F6 Einwahl|F6 Einwahl]]&lt;br /&gt;
{{vorlage:Klapptext|kopf=F10|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/A ras.pbk|A ras.pbk]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/B Command Line Interpreter|B Command Line Interpreter]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/C File Zilla Benutzer XML erzeugen|C File Zilla Benutzer XML erzeugen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/D1 OBS_UPDATE.EXE zum OBS Update Server hochladen|D1 OBS_UPDATE.EXE zum OBS Update Server hochladen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/D2 SUPPORT_MACRO zum OBS Update Server hochladen|D2 SUPPORT_MACRO zum OBS Update Server hochladen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/H1 Remote Service Protokoll-Übersicht (Alles)|H1 Remote Service Protokoll-Übersicht (Alles)]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/H Remote Service Protokoll-Übersicht|H Remote ServiceProtokoll-Übersicht]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/I Remote Service Commands|I Remote Service Commands]]&lt;br /&gt;
** [[OBS/Adminhilfe/Service Firmen/Liste/F10/I Remote Service Commands/Eingabemaske|Eingabemaske]]&lt;br /&gt;
** [[OBS/Adminhilfe/Service_Firmen/Weitere/Multi_Service_Kommando|Multi-Kommando]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/I1 (Admin) Globaler Hinweis für Updates|I1 (Admin) Globaler Hinweis für Updates]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/J Liste der OBS Updates|J Liste der OBS Updates]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/K Angemeldete Service Firmen|K Angemeldete Service Firmen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/L Systeminformationen einlesen|L Systeminformationen einlesen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/M Kundendaten anzeigen|M Kundendaten anzeigen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/M1 Kundendatenbankinformationen anzeigen|M1 Kundendatenbankinformationen anzeigen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/N Kundendaten einlesen|N Kundendaten einlesen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/O Kunden-Update Informationen anzeigen|O Kunden-Update Informationen anzeigen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/P Modul Registrierung OBS|P Modul Registrierung OBS]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/Q App Verwaltung|Q App Verwaltung]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/S1 Firmen Statistik Protokolle OBS|S1 Firmen Statistik Protokolle OBS]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/S2 Statistik Notfallkassen|S2 Statistik Notfallkassen]]&lt;br /&gt;
}}&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Eingabemaske|Service Firmen Eingabemaske]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Remotecon|Remotecon]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{vorlage:Klapptext|kopf=O Support|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/A Update-Programme|A Update Programme]]&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/B Datenbankoperationen|B Datenbankoperationen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/C Tools|C Tools]]&lt;br /&gt;
{{vorlage:Klapptext|kopf=D Programmierer-Tools|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Programmierer_Tools/N_Datenbank_verfremden|Datenbank verfremden]]&lt;br /&gt;
{{vorlage:Klapptext|kopf=V Crypt Autologin Edit|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Programmierer_Tools/Zugang.ini|Zugang.ini]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/E Interne Sonderprogramme|E Interne Sonderprogramme]]&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/G Service Tools|G Service Tools]]&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/H Script-Tools|H Script-Tools]]&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/I Flex Archive|I Flex Archive]]&lt;br /&gt;
{{vorlage:Klapptext|kopf=J Update Marko Lib/Pmode/Script Lib|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/MacroLibary|A Macro Library]]&lt;br /&gt;
* [[OBS/Adminhilfe/ScriptLibrary|C Script Library]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=kundenspezifische Anpassungen|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/OBSAdministration/kundenspez_Anpassungen/UserDB_sys|UserDB.sys]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=OBS Protokolle|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/OBSAdministration/Protokolle/HistorieProto|HistorieProto]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=OBS DEMO|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/DEMO/OBS-DEMO|OBS-Demo Allgemeines]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Shop-Administration|inhalt=&lt;br /&gt;
* [[Admin/Shop|Shop Übersicht Voraussetzungen und Einrichtung]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=modified eCommerce 2.x|inhalt=&lt;br /&gt;
* [[Admin/ModifiedECommerce2/FAQ|FAQ]]&lt;br /&gt;
* [[Admin/ModifiedECommerce2/Installation|Installation]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=modified eCommerce 1.06|inhalt=&lt;br /&gt;
* [[Admin/ModifiedECommerce|Shop modified eCommerce]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Amazon|inhalt=&lt;br /&gt;
* [[Admin/Amazon|Schnittstelle Amazon]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=VShop 4.0|inhalt=&lt;br /&gt;
* [[Admin/VShop|Shop VShop]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Kundeninformationen|inhalt=&lt;br /&gt;
{{Vorlage:Klapptext|kopf=OfficeStar|inhalt=&lt;br /&gt;
* [[Admin/OfficeStar/Allgemeine Informationen|Allgemeine Informationen]]&lt;br /&gt;
* [[Admin/OfficeStar/Hinweiszeiten|Hinweiszeiten]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=MDS|inhalt=&lt;br /&gt;
* [[Admin/MDS/Skrip-Automatische Ablage von Dokumenten|Skrip-Automatische Ablage von Dokumenten]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt; &lt;br /&gt;
----&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Vorlage fügt die Zugriffsberechtigung für Techniker zu.&lt;br /&gt;
Gäste bzw. nicht angemeldete Benutzer dürfen diese Seite dann nicht mehr sehen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folgender Code muss in die jeweils gewünschte Seite hinzugefügt werden:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ZugriffOBS}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
[[Kategorie:Templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:OBS]]&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Vorlage:ZugriffOBS&amp;diff=61234</id>
		<title>Vorlage:ZugriffOBS</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Vorlage:ZugriffOBS&amp;diff=61234"/>
		<updated>2022-07-27T11:10:17Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;accesscontrol&amp;gt;Programmierer&amp;lt;/accesscontrol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;Navigation zwischen den Seiten des Namensraumes für OBS Programmierer (Adminhilfe).&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; clear:both; margin-left:2px; padding:0px; background:#FFFFFF; width:19em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:none;margin-top:0pt;padding:0pt;&amp;quot; id=&amp;quot;navigation&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative;top:-20pt;color:#000000;background:#ffffff; border: 3pt double #cfcfcf; padding: 5pt; margin: 0pt;margin-bottom:-20pt; z-index:1;border-top-right-radius:7pt;-moz-border-radius-topright:7pt;-webkit-border-top-right-radius:7pt;border-bottom-left-radius:7pt;-moz-border-radius-bottomleft:7pt;-webkit-border-bottom-left-radius:7pt;box-shadow: 3px 3px 4px #c0c0c0;-webkit-box-shadow: 3px 3px 4px #c0c0c0;-moz-box-shadow: 3px 3px 4px #c0c0c0;&amp;quot;&amp;gt;[[Hauptseite|Wiki]] » [[Admin|Admin-Hilfe]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Vorlage:Textbox-Rot|1=Admin-Hilfe |2=&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
{{Vorlage:Klapptext|kopf=FAQ|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/System Überwachnung|System Überwachung]]&lt;br /&gt;
* [[OBS/Adminhilfe/Datenausführungsverhinderung ausschalten|DEP deaktivieren]]&lt;br /&gt;
* [[OBS/Adminhilfe/Bildschirmdarstellsung der Listen und Masken unter Windows Vista und Windows 7|Darstellung unter Windows 7]]&lt;br /&gt;
* [[OBS/Adminhilfe/Einwahl Windows 2000|Einwahl auf Windows 2000 Server]]&lt;br /&gt;
* [[OBS/Preislistenhilfe|Preislisten]]&lt;br /&gt;
** [[OBS/Häufig gestellte Fragen/Pflege von Preislisten / Preisgruppen|Preislistenpflege]]&lt;br /&gt;
* [[OBS/Adminhilfe/Periodisches Datenbank-Backup mit dem Scheduler|Datenbank Sicherung]]&lt;br /&gt;
* [[OBS/Adminhilfe/Anleitung Customize Edit|Customize]]&lt;br /&gt;
* [[OBS/Adminhilfe/Zentrallösung|Zentrale]]&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL Korrekturen|MySQL Korrekturen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Support Macro|Support Macro]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Debug|Service Debug]]&lt;br /&gt;
* [[OBS/Adminhilfe/Historienprotokoll|Historienprotokoll (Datenänderung OBS)]]&lt;br /&gt;
* [[OBS/Adminhilfe/Fernwartung|Fernwartungsprobleme]]&lt;br /&gt;
* [[OBS/Adminhilfe/Startparameter|Startparameter]]&lt;br /&gt;
* [[OBS/Adminhilfe/Kassenabschluss_korrigieren|Fehler beim Kassenabschluss]]&lt;br /&gt;
* [[OBS/Adminhilfe/Diverses|Diverse Informationen]]&lt;br /&gt;
{{vorlage:Klapptext|kopf=FIBU|inhalt=&lt;br /&gt;
&lt;br /&gt;
* [[OBS/Adminhilfe/E-BANKO Löschen|E-BANKO Löschen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Buchung offene Posten|Buchungsmöglichkeiten mit offenen Posten]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{vorlage:Klapptext|kopf=Häufige Fehler FAQs|inhalt=&lt;br /&gt;
&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige Shop-Fehler|Shop Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige OBS-MAIL Fehler|OBS-MAIL Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige OBS-FTP Fehler|OBS-FTP Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige Service Fehler|Service Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige Druck Fehler|Druck Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige FIBU Fehler|FIBU Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige Preis-Fehler|Preis-Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige MySQL Fehler|MySQL-Fehler]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Allgemeines|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Homeoffice|Home Office Kompendium]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Tools|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Tools|Auflistung verschiedener Tools]]&lt;br /&gt;
* [[OBS/Adminhilfe/Demo Builder|Videos mit Demo Builder]]&lt;br /&gt;
* [[OBS/Adminhilfe/Autohotkey|Autohotkey]]&lt;br /&gt;
* [[OBS/Adminhilfe/Open Broadcaster Software|Videos mit Open Broadcaster Software]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS-Monitor|OBS-Monitor]]&lt;br /&gt;
}}&lt;br /&gt;
* [[OBS/Adminhilfe/Kassendruck für Terminalserverbetrieb einrichten|Kassendruck für Terminalserverbetrieb einrichten]]&lt;br /&gt;
* [[OBS/Adminhilfe/KundenSysInfo|KundenSysInfo]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Updates und deren Ablauf|OBS Update]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Update(alt)|OBS Update(alt)]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Versionshistorie|OBS Versionshistorie]]&lt;br /&gt;
* [[OBS/Adminhilfe/Flex Archiv Kontrolle|Flex Archiv Kontrolle]]&lt;br /&gt;
* [[OBS/Adminhilfe/RTF|RTF-Umstellung]]&lt;br /&gt;
* [[OBS/Adminhilfe/Druckumstellung| Druckumstellung]]&lt;br /&gt;
* [[OBS/Adminhilfe/PDF-Generierung| PDF-Generierung]]&lt;br /&gt;
* [[OBS/Adminhilfe/SupportBerrechnung|Support Berechnen]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Kosten|OBS Kosten und Berechnung]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS-Hilfetexte erstellen|OBS-Hilfetexte erstellen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Batch-Befehle|Nützliche Batch-Befehle (CMD)]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Widgets|inhalt=&lt;br /&gt;
*[[OBS/Adminhilfe/ OBS Logs/Protokolle| OBS Logs/Protokolle]]&lt;br /&gt;
*[[OBS/Adminhilfe/ MySQL Process Liste| MySQL Process Liste]]&lt;br /&gt;
*[[OBS/Adminhilfe/ Ticketsystem| Ticketsystem]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{vorlage:Klapptext|kopf=Wiki Hilfe|inhalt=&lt;br /&gt;
  {{vorlage:Klapptext|kopf=Syntax|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/SyntaxTabellen|Tabellen]]&lt;br /&gt;
* [[OBS/Adminhilfe/SyntaxBilder|Bilder]]&lt;br /&gt;
* [[OBS/Adminhilfe/Syntaxbefehle|Häufig Verwendet]]&lt;br /&gt;
* [[OBS/Adminhilfe/Artikel: HTML-Befehle für Textformatierung]]&lt;br /&gt;
* [[OBS/Adminhilfe/Textverknüpfungen|Textverknüpfungen]]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Extension:Cite/Cite.php/de Einzelnachweise]&lt;br /&gt;
  }}&lt;br /&gt;
* [[OBS/Adminhilfe/Wiki-Seiten erstellen|Wiki-Seiten erstellen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Wiki-Suche|Wiki Suche verwenden]]&lt;br /&gt;
* [[OBS/Adminhilfe/Wiki-Admin|Wiki-Admin]]&lt;br /&gt;
* [[OBS/Adminhilfe/Wiki Benutzer erstellen-bearbeiten|Wiki Benutzer erstellen-bearbeiten]]&lt;br /&gt;
  {{vorlage:Klapptext|kopf=Wiki-Gruppen Benutzerlisten|inhalt=&lt;br /&gt;
* [[Administrator|Administrator]]&lt;br /&gt;
* [[Programmierer|Programmierer]]&lt;br /&gt;
* [[Expert|Expert]]&lt;br /&gt;
* [[Bürokraten|Bürokraten]]&lt;br /&gt;
* [[IT-Techniker|IT-Techniker]]&lt;br /&gt;
* [[Officestar|Officestar]]&lt;br /&gt;
  }}&lt;br /&gt;
* [[OBS/Adminhilfe/veraltete Seiten|Veraltete Seiten]]&lt;br /&gt;
* [[OBS/Adminhilfe/Documentation Insight|Documentation Insight]]&lt;br /&gt;
* [[:Kategorie:Vorlage:Formatierungshilfe|Formatierungshilfe]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=MySQL|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL Tipps|MySQL Tipps]]&lt;br /&gt;
* [[OBS/Admihilfe/MySQL Aufgaben|MySQL Aufgaben]]&lt;br /&gt;
* [[OBS/Adminhilfe/Join Erläuterungen|MySQL Join Erläuterungen]]&lt;br /&gt;
* [[OBS/Admihilfe/Dump|Datenbankdump]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Programmierung und Mergen|inhalt=&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Delphi|inhalt=&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Einrichtung|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Anleitung zur Neuinstallatin von Borland Delphi 5|Delphiinstallation]]&lt;br /&gt;
* [[OBS/Adminhilfe/Delphi 5 Konfiguration|Delphi 5 Konfiguration]]&lt;br /&gt;
* [[OBS/Adminhilfe/Delphi 10 Konfiguration|Delphi 10 Konfiguration]]&lt;br /&gt;
* [[OBS/Adminhilfe/Vererbung Objectpascal|Vererbung Objectpascal]]&lt;br /&gt;
* [[OBS/Adminhilfe/Delphi IMP *.Pas-Dateien|Delphi IMP_*.PAS Dateien]]&lt;br /&gt;
* [[OBS/Adminhilfe/Delphi-Virus|Delphi-Virus (W32.Induc.A!dcu)]]&lt;br /&gt;
* [[OBS/Adminhilfe/ADOM Update|ADOM Update]]&lt;br /&gt;
* [[OBS/Adminhilfe/Allgemeine Fragen und Tipps zu Delphi|Allgemeine Fragen und Tipps zu Delphi]]&lt;br /&gt;
* [[OBS/Adminhilfe/Packages|Packages]]&lt;br /&gt;
* [[OBS/Adminhilfe/Generics|Generics in Delphi XE8]]&lt;br /&gt;
}}&lt;br /&gt;
* [[OBS/Adminhilfe/Code-Guideline|Guideline]]&lt;br /&gt;
* [[OBS/Adminhilfe/Syntax|Syntax-Regeln]]&lt;br /&gt;
* [[OBS/Adminhilfe/DebugTimer|DebugTimer]]&lt;br /&gt;
* [[OBS/Adminhilfe/SQLite|Arbeiten mit SQLite]]&lt;br /&gt;
* [[OBS/Adminhilfe/Schnittstelle testen|Schnittstelle testen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Semaphoren|Semaphoren]]&lt;br /&gt;
* [[OBS/Adminhilfe/Threading|Threading]]&lt;br /&gt;
* [[OBS/Adminhilfe/MemoryLeak|MemoryLeak Hunt]]&lt;br /&gt;
* [[OBS/Adminhilfe/Collections|Collections]]&lt;br /&gt;
* [[OBS/Adminhilfe/Pax-Freigabe|Pax-Freigabe]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=MMX|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/MMX|MMX]]&lt;br /&gt;
* [[OBS/Adminhilfe/MMX Einstellungen|Einstellungen]]&lt;br /&gt;
* [[OBS/Adminhilfe/MMX Code Explorer|Code Explorer]]&lt;br /&gt;
* [[OBS/Adminhilfe/MMX Source Indexer|Source Indexer]]&lt;br /&gt;
* [[OBS/Adminhilfe/MMX Navigation and Move|Navigation and Move]]&lt;br /&gt;
* [[OBS/Adminhilfe/MMX Text Tools|Text Tools]]&lt;br /&gt;
* [[OBS/Adminhilfe/MMX Code Generierung &amp;amp; Refactoring|Code Generierung &amp;amp; Refactoring]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Shop|inhalt=&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Git/SmartGit|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Git_Fork/Anleitung|Anleitung]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Programm Update|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update|Übersicht]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS_Programm_Update/Programm_Ini|Programm.ini]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Schaltflächen|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/Liste Weitere Funktionen/Source einspielen Main zu User|Source einspielen Main zu User]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/Liste Weitere Funktionen/Source einspielen User zu User|Source einspielen User zu User]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/Liste Weitere Funktionen/User Sourcen sichern|User Sourcen sichern]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/Liste Weitere Funktionen/Source Änderungen in den Versionen|Source Änderungen in den Versionen]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/F5 Projekte|F5 - Projekte]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/F6 Protokoll|F6 - Protokoll]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/F7 P-Lösch|F7 - Protokoll Löschen]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/F8 Update|F8 - Update]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/F9 FTP|F9 - FTP]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=F10: Weitere Funktionen|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/OBS_Programm_Update/F10_Weitere_Funktionen|Übersicht]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=PAX|inhalt=&lt;br /&gt;
*[[OBS/Adminhilfe/Pax Konvertierung| Konvertierung]]&lt;br /&gt;
*[[OBS/Adminhilfe/Pax Ereignisbehandlung| Ereignisbehandlung]]&lt;br /&gt;
*[[OBS/Adminhilfe/Pax SQL-Export| SQL-Export]]&lt;br /&gt;
*[[OBS/Adminhilfe/Pax Customize| Customize-Scripte]]&lt;br /&gt;
*[[OBS/Adminhilfe/Pax Listenrework| Listenrework]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Nützliche Funktionen|inhalt=&lt;br /&gt;
*[[OBS/Adminhilfe/Pax Barcode Beispiele| Barcodes]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=OBS-Administration / Installation|inhalt=&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Einrichtung|inhalt=&lt;br /&gt;
{{Vorlage:Klapptext|kopf=MySQL|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL Installation|MySQL Installieren]]&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL ODBC Treiber|MySQL ODBC Treiber]]&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL Upgrade|MySQL Upgrade]]&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL Tipps|MySQL Tipps]]&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL Datenbankeinstellungen|MySQL Tuning &amp;amp; Einstellungen]]&lt;br /&gt;
* [[OBS/Admihilfe/Dump|Datenbankdump]]&lt;br /&gt;
* [[Admin/SQL-Benutzer|Admin/SQL-Benutzer]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=OBS|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Installation|OBS Installation]]&lt;br /&gt;
* [[OBS/Adminhilfe/Artikelpflege Besonderheiten|Artikelpflege Besonderheiten]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS.ini|OBS.ini]]&lt;br /&gt;
* [[OBS/Adminhilfe/Serverumzug|Serverumzug]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Dienste|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Dienste auf verschiedenen Servern|Dienste auf verschiedenen Servern]]&lt;br /&gt;
* [[OBS/Adminhilfe/Problembehandlung Dienste|Problembehandlung]]&lt;br /&gt;
* [[ADMINMAIL | Mail]]&lt;br /&gt;
** [[OBS/Adminhilfe/EMAILROU.ini|EMAILROU.ini]]&lt;br /&gt;
* [[ADMINFTP | FTP]]&lt;br /&gt;
** [[OBS/Adminhilfe/OBS FTP Sync|FTP Synchronisation]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS-FAX-MODUL|Fax]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS-Update|OBS Update]]&lt;br /&gt;
* [[OBS/Adminhilfe/Dienste-Start-Parameter|Startparameter für Dienste]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Kasse/Notfallkasse|inhalt=&lt;br /&gt;
* [[Admin/Notfallkasse|Notfallkasse]]&lt;br /&gt;
* [[Admin/Notfallkassendrucksystem|Notfallkassendrucksystem]]&lt;br /&gt;
* [[Admin/TSEEinrichtung|TSE Einrichtung]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Replikation|inhalt=&lt;br /&gt;
* [[Admin/Replikation/Allgemeine Informationen|Allgemeine Informationen]]&lt;br /&gt;
* [[Admin/Replikation/Segel Daten Replikation|Segel Daten Replikation]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Zentrale|inhalt=&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Fleet-Management einrichten|inhalt=&lt;br /&gt;
* [[Admin/Einrichtung/FleetManagement|Fleet-Management einrichten]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=VirtualUI|inhalt=&lt;br /&gt;
* [[Admin/Einrichtung/VirtualUI|VirtualUI einrichten]]&lt;br /&gt;
* [[Admin/Einrichtung/VUIFAQ|VirtualUI Tipps und Probleme]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=OBS Umzug|inhalt=&lt;br /&gt;
{{vorlage:Klapptext|kopf=Allgemein|inhalt=&lt;br /&gt;
}}&lt;br /&gt;
{{vorlage:Klapptext|kopf=Bergau|inhalt=&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Admin Funktionen|inhalt=&lt;br /&gt;
{{vorlage:Klapptext|kopf=Service Firmen|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste|Service Firmen Liste]]&lt;br /&gt;
** [[OBS/Adminhilfe/Service Firmen/Liste/F6 Einwahl|F6 Einwahl]]&lt;br /&gt;
{{vorlage:Klapptext|kopf=F10|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/A ras.pbk|A ras.pbk]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/B Command Line Interpreter|B Command Line Interpreter]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/C File Zilla Benutzer XML erzeugen|C File Zilla Benutzer XML erzeugen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/D1 OBS_UPDATE.EXE zum OBS Update Server hochladen|D1 OBS_UPDATE.EXE zum OBS Update Server hochladen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/D2 SUPPORT_MACRO zum OBS Update Server hochladen|D2 SUPPORT_MACRO zum OBS Update Server hochladen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/H1 Remote Service Protokoll-Übersicht (Alles)|H1 Remote Service Protokoll-Übersicht (Alles)]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/H Remote Service Protokoll-Übersicht|H Remote ServiceProtokoll-Übersicht]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/I Remote Service Commands|I Remote Service Commands]]&lt;br /&gt;
** [[OBS/Adminhilfe/Service Firmen/Liste/F10/I Remote Service Commands/Eingabemaske|Eingabemaske]]&lt;br /&gt;
** [[OBS/Adminhilfe/Service_Firmen/Weitere/Multi_Service_Kommando|Multi-Kommando]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/I1 (Admin) Globaler Hinweis für Updates|I1 (Admin) Globaler Hinweis für Updates]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/J Liste der OBS Updates|J Liste der OBS Updates]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/K Angemeldete Service Firmen|K Angemeldete Service Firmen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/L Systeminformationen einlesen|L Systeminformationen einlesen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/M Kundendaten anzeigen|M Kundendaten anzeigen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/M1 Kundendatenbankinformationen anzeigen|M1 Kundendatenbankinformationen anzeigen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/N Kundendaten einlesen|N Kundendaten einlesen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/O Kunden-Update Informationen anzeigen|O Kunden-Update Informationen anzeigen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/P Modul Registrierung OBS|P Modul Registrierung OBS]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/Q App Verwaltung|Q App Verwaltung]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/S1 Firmen Statistik Protokolle OBS|S1 Firmen Statistik Protokolle OBS]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/S2 Statistik Notfallkassen|S2 Statistik Notfallkassen]]&lt;br /&gt;
}}&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Eingabemaske|Service Firmen Eingabemaske]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Remotecon|Remotecon]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{vorlage:Klapptext|kopf=O Support|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/A Update-Programme|A Update Programme]]&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/B Datenbankoperationen|B Datenbankoperationen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/C Tools|C Tools]]&lt;br /&gt;
{{vorlage:Klapptext|kopf=D Programmierer-Tools|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Programmierer_Tools/N_Datenbank_verfremden|Datenbank verfremden]]&lt;br /&gt;
{{vorlage:Klapptext|kopf=V Crypt Autologin Edit|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Programmierer_Tools/Zugang.ini|Zugang.ini]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/E Interne Sonderprogramme|E Interne Sonderprogramme]]&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/G Service Tools|G Service Tools]]&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/H Script-Tools|H Script-Tools]]&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/I Flex Archive|I Flex Archive]]&lt;br /&gt;
{{vorlage:Klapptext|kopf=J Update Marko Lib/Pmode/Script Lib|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/MacroLibary|A Macro Library]]&lt;br /&gt;
* [[OBS/Adminhilfe/ScriptLibrary|C Script Library]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=kundenspezifische Anpassungen|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/OBSAdministration/kundenspez_Anpassungen/UserDB_sys|UserDB.sys]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=OBS Protokolle|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/OBSAdministration/Protokolle/HistorieProto|HistorieProto]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=OBS DEMO|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/DEMO/OBS-DEMO|OBS-Demo Allgemeines]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Shop-Administration|inhalt=&lt;br /&gt;
* [[Admin/Shop|Shop Übersicht Voraussetzungen und Einrichtung]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=modified eCommerce 2.x|inhalt=&lt;br /&gt;
* [[Admin/ModifiedECommerce2/FAQ|FAQ]]&lt;br /&gt;
* [[Admin/ModifiedECommerce2/Installation|Installation]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=modified eCommerce 1.06|inhalt=&lt;br /&gt;
* [[Admin/ModifiedECommerce|Shop modified eCommerce]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Amazon|inhalt=&lt;br /&gt;
* [[Admin/Amazon|Schnittstelle Amazon]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=VShop 4.0|inhalt=&lt;br /&gt;
* [[Admin/VShop|Shop VShop]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Kundeninformationen|inhalt=&lt;br /&gt;
{{Vorlage:Klapptext|kopf=OfficeStar|inhalt=&lt;br /&gt;
* [[Admin/OfficeStar/Allgemeine Informationen|Allgemeine Informationen]]&lt;br /&gt;
* [[Admin/OfficeStar/Hinweiszeiten|Hinweiszeiten]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=MDS|inhalt=&lt;br /&gt;
* [[Admin/MDS/Skrip-Automatische Ablage von Dokumenten|Skrip-Automatische Ablage von Dokumenten]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt; &lt;br /&gt;
----&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Vorlage fügt die Zugriffsberechtigung für Techniker zu.&lt;br /&gt;
Gäste bzw. nicht angemeldete Benutzer dürfen diese Seite dann nicht mehr sehen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folgender Code muss in die jeweils gewünschte Seite hinzugefügt werden:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ZugriffOBS}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
[[Kategorie:Templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:OBS]]&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Stammdaten/Personen/Weitere_Funktionen/B3-_Definierte_Adressen&amp;diff=61219</id>
		<title>OBS/Stammdaten/Personen/Weitere Funktionen/B3- Definierte Adressen</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Stammdaten/Personen/Weitere_Funktionen/B3-_Definierte_Adressen&amp;diff=61219"/>
		<updated>2022-07-27T05:57:13Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* {{F10}} Weitere Funktionen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OBS/Stammdaten/Personen/Weitere Funktionen/B3 - Definierte Adressen &lt;br /&gt;
{{Vorlage:Stammdaten}}&lt;br /&gt;
&lt;br /&gt;
=Definierte Adressen abgleichen mit dem OBS Personenstamm=&lt;br /&gt;
Um vorhandene Personenstammdaten mit Ihrem Kunden/Lieferanten abzugleichen gibt es nun einen Adressen Konfliktmanager. Hier können Adresslisten ihres Lieferanten/Kunden eingespielt werden.&lt;br /&gt;
Dies ist notwendig um einen automatischen Austausch der Adressen mit ihrem Kunden/Lieferanten mit Adressdaten zu gewährleisten. Außerdem verringert es Rückläufer bei den Versendern.&lt;br /&gt;
&lt;br /&gt;
Aufruf definierte Adresse unter Personenstamm → F10 → B3 Definierte Adressen&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:DefinierteAdressen_Liste.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=={{F7}} Konflikt==&lt;br /&gt;
Hierüber kann der Konfliktmanager aufgerufen werden. Weitere Informationen hierzu erhalten Sie hier:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[OBS/Stammdaten/Personen/Weitere_Funktionen/B3-_Definierte_Adressen#Adressen_Konfliktmanager|Adressen Konfliktmanager]]&lt;br /&gt;
=={{F9}} Protokoll==&lt;br /&gt;
Hier wird jede Änderung im Konfliktmanager Benutzerbezogen festgehalten&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:DefinierteAdressen_Log.png|700px]]&lt;br /&gt;
&lt;br /&gt;
=={{F10}} Weitere Funktionen==&lt;br /&gt;
Unter {{F10}} finden sie Weitere Funktionen&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:DefinierteAdressen_Liste_F10.png]]&lt;br /&gt;
&lt;br /&gt;
===A Adressdatei Importieren===&lt;br /&gt;
Die zu Importierenden TXT Dateien müssen folgendes Format besitzen:&lt;br /&gt;
*Als Feldtrenner muss Chr(9) &#039;&#039;&#039;Tab&#039;&#039;&#039; verwendet werden&lt;br /&gt;
*Als Zeilentrenner muss Chr(13) Chr(10) &#039;&#039;&#039;Zeilenumbruch&#039;&#039;&#039; werden&lt;br /&gt;
*CharSet ist Unicode&lt;br /&gt;
*Die Datei muss im Verzeichnis ..\OBS\DATA\DataInOut abgelegt sein.&lt;br /&gt;
Felder (Ort | Ortsteil | PLZ | Straße | Haus Nr. | Haus-Nr. Zusastz)&lt;br /&gt;
Es werden 1000 Adressen pro Sekunde importiert&lt;br /&gt;
&lt;br /&gt;
===B Adressliste zum Shop hochladen===&lt;br /&gt;
Besitzen sie einen Shop der Adressen verwaltet und eine Schnittstelle zu OBS  besitzt, können sie diese Adressen zum Shop hochladen.&lt;br /&gt;
===C OBS Adressen auf Normalisierung Prüfen===&lt;br /&gt;
&lt;br /&gt;
Eine Normalisiert Adresse muss folgenden Aufbau besitzen:&lt;br /&gt;
&lt;br /&gt;
*Muss eine PLZ besitzen&lt;br /&gt;
*Muss einen Ort besitzen&lt;br /&gt;
*Kann einen Ortsteil besitzen&lt;br /&gt;
*Muss eine Hausnummer besitzen&lt;br /&gt;
*Kann einen Zusatz besitzen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|21684 Musterhausen Musterstr. 1 ||(Minimum)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|21684 Musterhausen (Muster) Musterstr. 1 ||Ortsteil&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|21684 Musterhausen (Ortsteil1/Ortsteil2) Musterstr. 1A || Ortsteil + Zusatz&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Regeln:&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
*Ortsteile müssen immer in Klammern stehen ()&lt;br /&gt;
*Die Hausnummer muss mit einem Leerzeichen von der Straße getrennt sein&lt;br /&gt;
*Der Zusatz muss direkt nach der Hausnummer folgen&lt;br /&gt;
*Eine Hausnummer darf nur aus Zahlen bestehen&lt;br /&gt;
*Klammern dürfen nicht im Zusatz und in der Straße benutzt werden&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis finden Sie unter {{F9}} im Protokoll&lt;br /&gt;
&lt;br /&gt;
===D  OBS Adressen Normalisieren===&lt;br /&gt;
&lt;br /&gt;
Nach dem oberen Regelwerk werden vorhandene Adressen automatisch Formatiert&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=={{Return}} Ändern==&lt;br /&gt;
Einfügen / Ändern von Definierten Adressen&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:DefinierteAdressen_Maske.png]]&lt;br /&gt;
(1) Manuelle Veränderung  (Der Datensatz wurde abgeändert oder neu angelegt)&amp;lt;br/&amp;gt;&lt;br /&gt;
(2) Letzte Übertragung des Datensatzes zum Shop, wenn vorhanden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jede Änderung wird protokolliert und kann unter F9 eingesehen werden&lt;br /&gt;
&lt;br /&gt;
=Adressen Konfliktmanager=&lt;br /&gt;
{{Hinweis|Vorraussetzunge: Konflikt-Personen müssen eine passende Eigenschaft besitzen!}}&lt;br /&gt;
&lt;br /&gt;
Legen sie eine Personenauswertung:&amp;lt;br/&amp;gt;&lt;br /&gt;
Mit gewünschtem Ort oder PLZ&amp;lt;br/&amp;gt;&lt;br /&gt;
Geben sie allen Personen die Eigenschaft &#039;&#039;&#039;9106 Konfliktadresse&#039;&#039;&#039;.&amp;lt;br/&amp;gt;&lt;br /&gt;
Dieses können sie mehrmals &#039;&#039;&#039;wiederholen&#039;&#039;&#039; bis sie alle gewünschten Adressen mit der Eigenschaft ausgestattet haben. [[OBS/AUSWERTUNG/Auswertung#F8_Gef.|Auswertung → F8 Gef.]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit {{F7}} können sie den Konfliktmanager aufrufen&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:DefinierteAdressen_Konfliktmanager.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Positionieren sie beide Listen entsprechen und speichern sie „Größe und Position“ der Fenster&lt;br /&gt;
Achten sie beim Arbeiten mit dem Konfliktmanager das keine Auswahl in den Auswahlboxen (2) ausgewählt worden sind. Stellen sie unter F4 ihre gewünschte Sortierung ein. Wenn gewünscht können die unter (1 PLZ) mit einem Postleitzahlenbereich ihre Adressen reduzieren.&lt;br /&gt;
Schalten sie die Live Suche in den Listen als Priorität ein. Sollten Daten Exportiert werden, schalten sie den XLSX Export  für Listen (CTRL-F5) bei ihren Benutzern frei.&lt;br /&gt;
Wenn sie Adressen manuell hinzufügt haben, können sie den Adressherausgeber mit der XLSX Datei auf den neusten Stand bringen (Manuelle Adressen werden in der Liste Fett angezeigt)&lt;br /&gt;
&lt;br /&gt;
Benutzen Sie den Live Filter (4) und (3) um Einschränkungen in den Listen zu Erzeugen.&lt;br /&gt;
&lt;br /&gt;
In (5) finden Sie Angaben zur Person&lt;br /&gt;
Über die Schnellstart Icons gelangen sie direkt zu der Personenliste der angezeigten Person&lt;br /&gt;
(Schnellstart Icons müssen beim Benutzer aktiviert sein!)&lt;br /&gt;
==Mögliche Einstellungen Auswahlboxen (1)==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Auswahlbox !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|Konflikte mit Definierten Adressen || In der Liste werden nur Adressen mit Konflikten angezeigt&lt;br /&gt;
|-&lt;br /&gt;
|Übereinstimmungen || In der Liste werden nur korrekte Adressen angezeigt&lt;br /&gt;
|-&lt;br /&gt;
|Mögliche Werte || In der Liste Definierte Adressen Konflikte werden links mögliche Adressen angezeigt&lt;br /&gt;
|-&lt;br /&gt;
|Mit Adressen Synchronisieren || Die Obere Liste wird mit der Adresse Synchronisiert&lt;br /&gt;
|-&lt;br /&gt;
|Mit Eigenschaft Konfliktadresse || Es werden nur Adressen mit der Eigenschaft Konfliktadresse angezeigt&lt;br /&gt;
|-&lt;br /&gt;
|Mit HausNr. || Die Hausnummer wird in der Überprüfung mit einbezogen. (Viele Konflikte)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Synchronisation {{F7}} oder mit der rechten Maustaste==&lt;br /&gt;
Rechte Maustaste in Spalte PLZ&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:DefinierteAdressen_RClick_PLZ.png]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Menüpunkt !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|PLZ Übernehmen || Die PLZ aus Definierte Adressen wird in den Personenstamm übernommen&lt;br /&gt;
|-&lt;br /&gt;
|Live Filter löschen || Der Live Filter in der Liste Definierte Adressen wird gelöscht&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Rechte Maustaste in Spalte Ort&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:DefinierteAdressen_RClick_ORT.png]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Menüpunkt !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|Ort/Ortsteil Übernehmen || Der Ort + Ortsteil aus Definierte Adressen wird in den Personenstamm übernommen&lt;br /&gt;
|-&lt;br /&gt;
|Live Filter löschen || Der Live Filter in der Liste Definierte Adressen wird gelöscht&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Rechte Maustaste in Spalte Straße&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:DefinierteAdressen_RClick_STRASSE.png]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Menüpunkt !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|Nur Straße Übernehmen || Nur die Strasse aus Definierte Adressen wird in den Personenstamm übernommen. Die Hausnummer bleibt in der Straße erhalten&lt;br /&gt;
|-&lt;br /&gt;
|Straße,HausNr,Zusatz Übernehmen || Straße,Hausnummer und Zusatz aus Definierte Adressen wird in den Personenstamm übernommen.&lt;br /&gt;
|-&lt;br /&gt;
|Live Filter übernehmen || Die Straße ohne Hausnummer wird in den Live Filter Definierte Adressen übernommen&lt;br /&gt;
|-&lt;br /&gt;
|Live Filter löschen || Der Live Filter in der Liste Definierte Adressen wird gelöscht&lt;br /&gt;
|-&lt;br /&gt;
|Adresse in Definierte Liste übernehmen || Die komplette Adresse wir in die Liste Definierte Adressen Übernehmen übernommen. Und als manuelle Eingabe gekennzeichnet. Durch die Auswahlbox „Nur Manuelle Adressen anzeigen“ könne in diese in der Liste Definierte Adressen angezeigt werden.&lt;br /&gt;
|-&lt;br /&gt;
|Eigenschaft keine Definierte Adresse setzen || In der Person wird die Eigenschaft „Keine  definierte Adresse“ gesetzt. Diese Adressen werden nicht mehr im Konfliktmanager überprüft/angezeigt.&lt;br /&gt;
|-&lt;br /&gt;
|Eigenschaft Konfliktadresse löschen || In der Person wird die Eigenschaft „Konfliktadresse“ gelöscht. Diese Adressen werden nicht mehr im Konfliktmanager überprüft/angezeigt.&lt;br /&gt;
|}&lt;br /&gt;
Rechte Maustaste in Spalte Haus-Nr.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:DefinierteAdressen_RClick_STRASSE2.png]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Menüpunkt !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|Zusatz Übernehmen || Der Zusatz aus Definierte Adressen wird in den Personenstamm übernommen (Straße)&lt;br /&gt;
|-&lt;br /&gt;
|Live Filter löschen || Der Live Filter in der Liste Definierte Adressen wird gelöscht&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Stammdaten/Personen/Weitere_Funktionen/B3-_Definierte_Adressen&amp;diff=61218</id>
		<title>OBS/Stammdaten/Personen/Weitere Funktionen/B3- Definierte Adressen</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Stammdaten/Personen/Weitere_Funktionen/B3-_Definierte_Adressen&amp;diff=61218"/>
		<updated>2022-07-27T05:54:56Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* {{F10}} Weitere Funktionen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;OBS/Stammdaten/Personen/Weitere Funktionen/B3 - Definierte Adressen &lt;br /&gt;
{{Vorlage:Stammdaten}}&lt;br /&gt;
&lt;br /&gt;
=Definierte Adressen abgleichen mit dem OBS Personenstamm=&lt;br /&gt;
Um vorhandene Personenstammdaten mit Ihrem Kunden/Lieferanten abzugleichen gibt es nun einen Adressen Konfliktmanager. Hier können Adresslisten ihres Lieferanten/Kunden eingespielt werden.&lt;br /&gt;
Dies ist notwendig um einen automatischen Austausch der Adressen mit ihrem Kunden/Lieferanten mit Adressdaten zu gewährleisten. Außerdem verringert es Rückläufer bei den Versendern.&lt;br /&gt;
&lt;br /&gt;
Aufruf definierte Adresse unter Personenstamm → F10 → B3 Definierte Adressen&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:DefinierteAdressen_Liste.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=={{F7}} Konflikt==&lt;br /&gt;
Hierüber kann der Konfliktmanager aufgerufen werden. Weitere Informationen hierzu erhalten Sie hier:&amp;lt;br/&amp;gt;&lt;br /&gt;
[[OBS/Stammdaten/Personen/Weitere_Funktionen/B3-_Definierte_Adressen#Adressen_Konfliktmanager|Adressen Konfliktmanager]]&lt;br /&gt;
=={{F9}} Protokoll==&lt;br /&gt;
Hier wird jede Änderung im Konfliktmanager Benutzerbezogen festgehalten&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:DefinierteAdressen_Log.png|700px]]&lt;br /&gt;
&lt;br /&gt;
=={{F10}} Weitere Funktionen==&lt;br /&gt;
Unter {{F10}} finden sie Weitere Funktionen&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:DefinierteAdressen_Liste_F10.png]]&lt;br /&gt;
&lt;br /&gt;
===A Adressdatei Importieren===&lt;br /&gt;
Die zu Importierenden TXT Dateien müssen folgendes Format besitzen:&lt;br /&gt;
*Als Feldtrenner muss Chr(9) &#039;&#039;&#039;Tab&#039;&#039;&#039; verwendet werden&lt;br /&gt;
*Als Zeilentrenner muss Chr(13) Chr(10) &#039;&#039;&#039;Zeilenumbruch&#039;&#039;&#039; werden&lt;br /&gt;
*CharSet ist Unicode&lt;br /&gt;
*Die Datei muss im Verzeichnis ..\OBS\DATA\DataInOut abgelegt sein.&lt;br /&gt;
Felder (Ort  Ortsteil.  PLZ  Straße  Haus  Nr.  Haus-Nr.  Zus)&lt;br /&gt;
Es werden 1000 Adressen pro Sekunde importiert&lt;br /&gt;
&lt;br /&gt;
===B Adressliste zum Shop hochladen===&lt;br /&gt;
Besitzen sie einen Shop der Adressen verwaltet und eine Schnittstelle zu OBS  besitzt, können sie diese Adressen zum Shop hochladen.&lt;br /&gt;
===C OBS Adressen auf Normalisierung Prüfen===&lt;br /&gt;
&lt;br /&gt;
Eine Normalisiert Adresse muss folgenden Aufbau besitzen:&lt;br /&gt;
&lt;br /&gt;
*Muss eine PLZ besitzen&lt;br /&gt;
*Muss einen Ort besitzen&lt;br /&gt;
*Kann einen Ortsteil besitzen&lt;br /&gt;
*Muss eine Hausnummer besitzen&lt;br /&gt;
*Kann einen Zusatz besitzen&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiele:&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|21684 Musterhausen Musterstr. 1 ||(Minimum)&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|21684 Musterhausen (Muster) Musterstr. 1 ||Ortsteil&amp;lt;br/&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|21684 Musterhausen (Ortsteil1/Ortsteil2) Musterstr. 1A || Ortsteil + Zusatz&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Regeln:&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
*Ortsteile müssen immer in Klammern stehen ()&lt;br /&gt;
*Die Hausnummer muss mit einem Leerzeichen von der Straße getrennt sein&lt;br /&gt;
*Der Zusatz muss direkt nach der Hausnummer folgen&lt;br /&gt;
*Eine Hausnummer darf nur aus Zahlen bestehen&lt;br /&gt;
*Klammern dürfen nicht im Zusatz und in der Straße benutzt werden&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis finden Sie unter {{F9}} im Protokoll&lt;br /&gt;
&lt;br /&gt;
===D  OBS Adressen Normalisieren===&lt;br /&gt;
&lt;br /&gt;
Nach dem oberen Regelwerk werden vorhandene Adressen automatisch Formatiert&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=={{Return}} Ändern==&lt;br /&gt;
Einfügen / Ändern von Definierten Adressen&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:DefinierteAdressen_Maske.png]]&lt;br /&gt;
(1) Manuelle Veränderung  (Der Datensatz wurde abgeändert oder neu angelegt)&amp;lt;br/&amp;gt;&lt;br /&gt;
(2) Letzte Übertragung des Datensatzes zum Shop, wenn vorhanden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jede Änderung wird protokolliert und kann unter F9 eingesehen werden&lt;br /&gt;
&lt;br /&gt;
=Adressen Konfliktmanager=&lt;br /&gt;
{{Hinweis|Vorraussetzunge: Konflikt-Personen müssen eine passende Eigenschaft besitzen!}}&lt;br /&gt;
&lt;br /&gt;
Legen sie eine Personenauswertung:&amp;lt;br/&amp;gt;&lt;br /&gt;
Mit gewünschtem Ort oder PLZ&amp;lt;br/&amp;gt;&lt;br /&gt;
Geben sie allen Personen die Eigenschaft &#039;&#039;&#039;9106 Konfliktadresse&#039;&#039;&#039;.&amp;lt;br/&amp;gt;&lt;br /&gt;
Dieses können sie mehrmals &#039;&#039;&#039;wiederholen&#039;&#039;&#039; bis sie alle gewünschten Adressen mit der Eigenschaft ausgestattet haben. [[OBS/AUSWERTUNG/Auswertung#F8_Gef.|Auswertung → F8 Gef.]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit {{F7}} können sie den Konfliktmanager aufrufen&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:DefinierteAdressen_Konfliktmanager.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
Positionieren sie beide Listen entsprechen und speichern sie „Größe und Position“ der Fenster&lt;br /&gt;
Achten sie beim Arbeiten mit dem Konfliktmanager das keine Auswahl in den Auswahlboxen (2) ausgewählt worden sind. Stellen sie unter F4 ihre gewünschte Sortierung ein. Wenn gewünscht können die unter (1 PLZ) mit einem Postleitzahlenbereich ihre Adressen reduzieren.&lt;br /&gt;
Schalten sie die Live Suche in den Listen als Priorität ein. Sollten Daten Exportiert werden, schalten sie den XLSX Export  für Listen (CTRL-F5) bei ihren Benutzern frei.&lt;br /&gt;
Wenn sie Adressen manuell hinzufügt haben, können sie den Adressherausgeber mit der XLSX Datei auf den neusten Stand bringen (Manuelle Adressen werden in der Liste Fett angezeigt)&lt;br /&gt;
&lt;br /&gt;
Benutzen Sie den Live Filter (4) und (3) um Einschränkungen in den Listen zu Erzeugen.&lt;br /&gt;
&lt;br /&gt;
In (5) finden Sie Angaben zur Person&lt;br /&gt;
Über die Schnellstart Icons gelangen sie direkt zu der Personenliste der angezeigten Person&lt;br /&gt;
(Schnellstart Icons müssen beim Benutzer aktiviert sein!)&lt;br /&gt;
==Mögliche Einstellungen Auswahlboxen (1)==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Auswahlbox !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|Konflikte mit Definierten Adressen || In der Liste werden nur Adressen mit Konflikten angezeigt&lt;br /&gt;
|-&lt;br /&gt;
|Übereinstimmungen || In der Liste werden nur korrekte Adressen angezeigt&lt;br /&gt;
|-&lt;br /&gt;
|Mögliche Werte || In der Liste Definierte Adressen Konflikte werden links mögliche Adressen angezeigt&lt;br /&gt;
|-&lt;br /&gt;
|Mit Adressen Synchronisieren || Die Obere Liste wird mit der Adresse Synchronisiert&lt;br /&gt;
|-&lt;br /&gt;
|Mit Eigenschaft Konfliktadresse || Es werden nur Adressen mit der Eigenschaft Konfliktadresse angezeigt&lt;br /&gt;
|-&lt;br /&gt;
|Mit HausNr. || Die Hausnummer wird in der Überprüfung mit einbezogen. (Viele Konflikte)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Synchronisation {{F7}} oder mit der rechten Maustaste==&lt;br /&gt;
Rechte Maustaste in Spalte PLZ&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:DefinierteAdressen_RClick_PLZ.png]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Menüpunkt !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|PLZ Übernehmen || Die PLZ aus Definierte Adressen wird in den Personenstamm übernommen&lt;br /&gt;
|-&lt;br /&gt;
|Live Filter löschen || Der Live Filter in der Liste Definierte Adressen wird gelöscht&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Rechte Maustaste in Spalte Ort&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:DefinierteAdressen_RClick_ORT.png]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Menüpunkt !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|Ort/Ortsteil Übernehmen || Der Ort + Ortsteil aus Definierte Adressen wird in den Personenstamm übernommen&lt;br /&gt;
|-&lt;br /&gt;
|Live Filter löschen || Der Live Filter in der Liste Definierte Adressen wird gelöscht&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Rechte Maustaste in Spalte Straße&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:DefinierteAdressen_RClick_STRASSE.png]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Menüpunkt !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|Nur Straße Übernehmen || Nur die Strasse aus Definierte Adressen wird in den Personenstamm übernommen. Die Hausnummer bleibt in der Straße erhalten&lt;br /&gt;
|-&lt;br /&gt;
|Straße,HausNr,Zusatz Übernehmen || Straße,Hausnummer und Zusatz aus Definierte Adressen wird in den Personenstamm übernommen.&lt;br /&gt;
|-&lt;br /&gt;
|Live Filter übernehmen || Die Straße ohne Hausnummer wird in den Live Filter Definierte Adressen übernommen&lt;br /&gt;
|-&lt;br /&gt;
|Live Filter löschen || Der Live Filter in der Liste Definierte Adressen wird gelöscht&lt;br /&gt;
|-&lt;br /&gt;
|Adresse in Definierte Liste übernehmen || Die komplette Adresse wir in die Liste Definierte Adressen Übernehmen übernommen. Und als manuelle Eingabe gekennzeichnet. Durch die Auswahlbox „Nur Manuelle Adressen anzeigen“ könne in diese in der Liste Definierte Adressen angezeigt werden.&lt;br /&gt;
|-&lt;br /&gt;
|Eigenschaft keine Definierte Adresse setzen || In der Person wird die Eigenschaft „Keine  definierte Adresse“ gesetzt. Diese Adressen werden nicht mehr im Konfliktmanager überprüft/angezeigt.&lt;br /&gt;
|-&lt;br /&gt;
|Eigenschaft Konfliktadresse löschen || In der Person wird die Eigenschaft „Konfliktadresse“ gelöscht. Diese Adressen werden nicht mehr im Konfliktmanager überprüft/angezeigt.&lt;br /&gt;
|}&lt;br /&gt;
Rechte Maustaste in Spalte Haus-Nr.&amp;lt;br/&amp;gt;&lt;br /&gt;
[[IMAGE:DefinierteAdressen_RClick_STRASSE2.png]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Menüpunkt !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|Zusatz Übernehmen || Der Zusatz aus Definierte Adressen wird in den Personenstamm übernommen (Straße)&lt;br /&gt;
|-&lt;br /&gt;
|Live Filter löschen || Der Live Filter in der Liste Definierte Adressen wird gelöscht&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Systemgastronomie-Kasse&amp;diff=58364</id>
		<title>Systemgastronomie-Kasse</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Systemgastronomie-Kasse&amp;diff=58364"/>
		<updated>2020-10-01T12:05:24Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* Änderungen durch die TSE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Kostenpflichtige Module}}&amp;lt;font size=&amp;quot;3&amp;quot; color=&amp;quot;#000000&amp;quot; face=&amp;quot;Arial&amp;quot;&amp;gt;&lt;br /&gt;
=Systemgastronomie-Kasse=&lt;br /&gt;
Für Systemgastronomiebetrieben bietet OBS die Systemgastronomie-Kasse an. Diese wurde den Systemgastronomiebetrieben angepasst und kann bei Anfrage einfach zugebucht werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie-Kasse.png|500px|Oberfläche der Belegerfassung]]&lt;br /&gt;
[[Image:Fahrererfassung.png|500px|Oberflächer der Fahrererfassung]]&lt;br /&gt;
[[Image:Systemgastronomie-Zeiterfassung.png|500px|Oberfläche der Zeiterfassung]]&lt;br /&gt;
&lt;br /&gt;
==Handbuch==&lt;br /&gt;
Eine Übersichtliche Erklärung der Systemgastronomiekasse erhalten sie auch im [http://wiki.bergau.de/images/7/76/OBS-Handbuch-Systemgastronomie-Kasse.pdf Handbuch].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Datei:OBS-Handbuch-Systemgastronomie-Kasse.png|300px|thumb&lt;br /&gt;
default [http://wiki.bergau.de/images/7/76/OBS-Handbuch-Systemgastronomie-Kasse.pdf]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Änderungen durch die TSE==&lt;br /&gt;
Durch die Einführung der TSE ergeben sich einige Änderungen bei der Bedienung:&lt;br /&gt;
* Wenn der Kunde eingegeben wurde und in die Artikelerfassung gelangt, wird der Bon gestartet. Wird der Vorgang danach abgebrochen, wird ein leerer Bon gespeichert und ein Abbruch an die TSE gemeldet.&lt;br /&gt;
* Wird telefonisch eine Abholbestllung aufgegeben, so darf im ersten Schritt kein Beleg gedruckt werden. Es erscheint eine Abfrage ob, der &amp;quot;Bon direkt abgeschlossen werden soll&amp;quot;. Dies muss am Anfang mit nein beantwortet werden, dadruch wird eine Bestellung gedruckt. Diese enthält alle Positionen, die bestellt wurden, aber es sind keine Endbeträge enthalten. Holt der Kunde die Ware ab und bezahlt, wird der echte Beleg gedruckt. In der Übersicht der Offenen Bestellungen [Unter F10 -&amp;gt; 8 &amp;quot;Offene Bestellungen&amp;quot;] findet sich unter F10 -&amp;gt; V die Liste der Vorbestellungen. Diese können mit ENTER wieder in die Erfassung übernommen werden und bei der Abfrage vor dem Drucken mit &amp;quot;Ja&amp;quot; beantwortet werden.&lt;br /&gt;
* Wieder in die Erfassung übernommene Vorbestellungen dürfen nicht mehr verändert werden, nur erweitert. Wenn der Kunde eine Position nicht mehr möchte, muss diese mit einer gleichen Minus Position storniert werden. Eine entsprechende Meldung erscheint bei dem Versuch.&lt;br /&gt;
* Die übernommenen Vorbestellungen können über ESC abgebrochen werden und es wird auch hier ein leerer Bon gespeichert.&lt;br /&gt;
* Lieferbestellungen werden als &amp;quot;Forderungen&amp;quot; an die TSE übergeben, da es in dem Moment keinen Geldfluss gibt. Wird der Mitarbeiter abgemeldet, werden für alle seine Touren entsprechende Geldzu- und Abgänge gebucht. Diese stehen dann auch mit auf dem Tagesabschlussbericht. &lt;br /&gt;
* Es gibt nun einen Trainingsmodus, der über einen neuen Standardkunden läuft (die 600). Dort können Positionen erfasst werden, ohne das ein Bon erstellt werden kann. Dies dient z.B. zur Preisauskunft&lt;br /&gt;
* Wenn Artikel mit Pfand verkauft werden, wird jetzt ein zusätzlicher Pfandartikel pro Position in die Erfassung übernommen. Diese müssen bei Neuanlage auf der zweiten Seite in der Artikelmaske als &amp;quot;Folgeartikel&amp;quot; hinterlegt werden.&lt;br /&gt;
[[Image:Folgeartikel-TSE.png|500px|Folgeartikel]]&lt;br /&gt;
&lt;br /&gt;
==Schnelleinstieg==&lt;br /&gt;
Hier ein grober Überblick über den Ablauf und Funktionsweise der Systemgastronomiekasse. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Anmelden===&lt;br /&gt;
Ein Mitarbeiter muss sich in der Zeiterfassung anmelden, damit, zum Beispiel die Arbeitszeit, Pausen und die gefahrenen Kilometer erfasst werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Dies wird durch das einscannen der Mitarbeiterkarte gemacht. War die Anmeldung erfolgreich, wird der Mitarbeiter in der Liste &amp;quot;Angemeldete Mitarbeiter&amp;quot; aufgelistet.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wird der Mitarbeiter nicht aufgelistet, wurde bei der Anmeldung ein Fehler gemacht. Hier muss sich der Mitarbeiter einfach nochmal anmelden&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellungen entgegen nehmen===&lt;br /&gt;
Um eine Bestellung entgegen zu nehmen, müssen zuerst die Kundendaten erfasst werden. Durch die Eingabe der Kundennummer, werden automatisch die restlichen Felder ausgefüllt. &amp;lt;br/&amp;gt;&lt;br /&gt;
Ein neuer Kunde muss registriert werden. Im Kassenmenü unter der Funktion &amp;quot;Neuer Kunde&amp;quot; kann der Kunde registriert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Nach erfassen der Kundendaten wird mit {{Key|F2 Bon}} die Bestellung aufgenommen werden, dies geschieht durch die Eingabe der Nummer der Positionen und wird mit Enter bestätigt. Danach gibt man die Menge der Positionen ein.&lt;br /&gt;
Im Kassenmenü kann die Bestellung angepasst werden, um z.B. eine Bestellung als Abhol-Bestellung zu markieren. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F3 Drucken}} wird die Bestellung fertiggestellt und ausgedruckt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellung ausliefern===&lt;br /&gt;
Um eine Bestellung auszuliefern, muss sich ein Mitarbeiter für eine oder mehrere Bestellungen in der Fahrererfassung eintragen. &amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bestellungen werden dann vom System als erledigt gesehen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellung abschließen===&lt;br /&gt;
Eine Bestellung kann durch einscannen der Mitarbeiter und einscannen der Rechnung abgeschlossen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Das System sieht diese Bestellung dann als erledigt und listet diese nicht mehr auf. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Abmelden===&lt;br /&gt;
Ist ein Mitarbeiter fertig mit seiner Schicht, kann er sich im Kassenmenü abmelden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Wenn der Mitarbeiter ein Privatfahrzeug mit angemeldet hatte, fragt das System nach den Kilometerstand um die Fahrtkosten zu erstatten. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Menü-Erläuterung==&lt;br /&gt;
Hier wird ihnen das Kassenmenü gezeigt und erklärt &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie-Kassenmenü.png|325px|Das Kassenmenü]]&lt;br /&gt;
&lt;br /&gt;
===Telefon ändern===&lt;br /&gt;
Ein neuer Kunde kann ins System eingetragen und mit {{Key|F2}} gespeichert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Straße ändern===&lt;br /&gt;
Hier kann die Adresse des ausgewählten Kunden gepflegt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bemerkung Kunde eingeben===&lt;br /&gt;
Wenn der Kunde bestimmte Wünsche hat oder wichtige Information gibt, kann diese in die Bemerkung vermerkt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellliste anzeigen===&lt;br /&gt;
Hier werden alle verbuchten Bestellungen aufgelistet. Eine Bestellung kann nach Wunsch mit {{Key|F3 Druck}} nachgedruckt oder eingesehen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Namen ändern===&lt;br /&gt;
Der Name des ausgewählten Kunden kann gepflegt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Gutschrift eingeben===&lt;br /&gt;
Hier kann eine Gutschrift eingegeben werden. Dies geht aber nur, wenn {{Key|F2 Bon}} schon gedrückt wurde. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Offene Bestellungen===&lt;br /&gt;
Hier werden alle Bestellungen aufgelistet die noch nicht verbucht worden sind. Wenn sich etwas an der Bestellung ändert, kann man diese unter {{Key|F10}} „Weitere Funktionen“ nachträglich bearbeiten. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mindestbestellwert===&lt;br /&gt;
Der Mindestbestellwert kann verändert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Auswertung===&lt;br /&gt;
Hat noch keine Funktion &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Geld-Abgang===&lt;br /&gt;
Wenn Geld aus der Kasse entnommen wurde, muss dies hier angegeben werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Geld-Zugang===&lt;br /&gt;
Wenn Geld in die Kasse hinzugefügt wurde, muss dies hier angeben werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stammdaten===&lt;br /&gt;
In den Stammdaten können verschiedene Daten bearbeitet werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie Untermenü-Stammdaten.png|325px|Das Untermenü von Stammdaten]]&lt;br /&gt;
&lt;br /&gt;
====Buchungstexte Abgang/Zugang bearbeiten====&lt;br /&gt;
Hier können die Geldzugänge / Geldausgänge die Buchungstexte gepflegt werden. Es können hier auch mit einfg neue Verwendungszwecke hinzugefügt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F3}} kann ein Kassenbuchtext ausgedruckt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Liste Geld – Abgang/Zugang====&lt;br /&gt;
Hier werden die Geldzugänge und -abgänge aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter bearbeiten====&lt;br /&gt;
Hier werden die Daten der Mitarbeiter gepflegt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Fahrzeuge bearbeiten====&lt;br /&gt;
Hier werden die Daten der Fahrzeuge gepflegt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====PLZ-Ort Straße bearbeiten====&lt;br /&gt;
Hier werden die Daten von Orten gepflegt. Hier kann man auch den Mindestbestellwert für einen Ort eingeben. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Bestell Historie====&lt;br /&gt;
Hier werden alle Bestellungen aufgelistet. Eine Bestellung kann mit {{Key|F3}} nachgedruckt oder eingesehen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter KM/Lohn Historie====&lt;br /&gt;
Hier werden die Daten wie Lohn pro Stunde, Lohn, gefahrene Kilometer, Kilometer Geld und etc. aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Hauptkasse definieren====&lt;br /&gt;
Zeigt die genutzte Kasse mit Kassenbeständen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Config====&lt;br /&gt;
Hier kann die Kasse konfiguriert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Abholbestellung===&lt;br /&gt;
Möchte der Kunde seine Bestellung selber abholen, kann diese damit markiert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit Termin kann auch der Abholtermin eingegeben werden (Siehe Termin). &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EC Zahlung===&lt;br /&gt;
Hier wird vermerkt, ob die Bestellung mit der EC-Karte bezahlt wurde. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Im Haus===&lt;br /&gt;
Möchte der Kunde seine Bestellung gleich in der Filiale essen, kann diese mit „Im Haus“ gekennzeichnet werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Online Payment===&lt;br /&gt;
Hier wird vermerkt, ob die Bestellung aus dem Internet kommt. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mitarbeiter abmelden===&lt;br /&gt;
Ist ein Mitarbeiter fertig, so kann er sich hier abmelden. Es wird dann automatisch ein Dokument erstellt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stundenerfassung===&lt;br /&gt;
Her werden alle Mitarbeiter aufgelistet, um auf ihre Datensätze zuzugreifen. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F6}} wird eine Liste ausgegeben die auflistet was ein Mitarbeiter für Aufgaben tätigte.&amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F10}} wird ein Optionsfenster geöffnet, darin sind folgende Optionen:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter inaktiv setzen====&lt;br /&gt;
Setzt ausgewählten Mitarbeiter inaktiv. So wird dieser vom System nicht mehr beachtet und wird von vielen Listen ausgeblendet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter reaktivieren====&lt;br /&gt;
Reaktiviert einen ausgewählten Mitarbeiter. Dieser wird dann wieder vom System berücksichtigt und wird wieder auf Listen aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====QR-Code anzeigen====&lt;br /&gt;
Zeigt den QR-Code des ausgewählten Mitarbeiters an. Dieser kann mit {{Key|F2}} kopiert oder mit {{Key|F3}} ausgedruckt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====QR-Zeiten Excel Monatsauswertung aller Mitarbeiter====&lt;br /&gt;
Es wird eine Excel-Datei ausgegeben die die Monatsauswertung aller Mitarbeiter beinhaltet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Termin===&lt;br /&gt;
Hier kann man auf der Bestellung ein Abholtermin vermerken. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion und leer lassen des Textfeldes. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Umsatzbericht===&lt;br /&gt;
Listet bei „Ja“ den Tagesumsatz auf und bei „Nein“ den Monatsumsatz. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Vorbestellung===&lt;br /&gt;
Hier wird eine Bestellung als Vorbestellung markiert. Vorbestellungen können nicht im aktuellem Datum gemacht werden, sondern müssen in der Zukunft liegen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tagesumsatz verbuchen===&lt;br /&gt;
Dient nur zum manuellen Nachbuchen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tagesabschlussbericht drucken===&lt;br /&gt;
Am Ende eines Tages müssen die Kassen überprüft werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Neuer Benutzer===&lt;br /&gt;
Hier kann man einen Benutzer ummelden. &amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Systemgastronomie-Kasse&amp;diff=58363</id>
		<title>Systemgastronomie-Kasse</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Systemgastronomie-Kasse&amp;diff=58363"/>
		<updated>2020-10-01T12:05:14Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* Änderungen durch die TSE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Kostenpflichtige Module}}&amp;lt;font size=&amp;quot;3&amp;quot; color=&amp;quot;#000000&amp;quot; face=&amp;quot;Arial&amp;quot;&amp;gt;&lt;br /&gt;
=Systemgastronomie-Kasse=&lt;br /&gt;
Für Systemgastronomiebetrieben bietet OBS die Systemgastronomie-Kasse an. Diese wurde den Systemgastronomiebetrieben angepasst und kann bei Anfrage einfach zugebucht werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie-Kasse.png|500px|Oberfläche der Belegerfassung]]&lt;br /&gt;
[[Image:Fahrererfassung.png|500px|Oberflächer der Fahrererfassung]]&lt;br /&gt;
[[Image:Systemgastronomie-Zeiterfassung.png|500px|Oberfläche der Zeiterfassung]]&lt;br /&gt;
&lt;br /&gt;
==Handbuch==&lt;br /&gt;
Eine Übersichtliche Erklärung der Systemgastronomiekasse erhalten sie auch im [http://wiki.bergau.de/images/7/76/OBS-Handbuch-Systemgastronomie-Kasse.pdf Handbuch].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Datei:OBS-Handbuch-Systemgastronomie-Kasse.png|300px|thumb&lt;br /&gt;
default [http://wiki.bergau.de/images/7/76/OBS-Handbuch-Systemgastronomie-Kasse.pdf]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Änderungen durch die TSE==&lt;br /&gt;
Durch die Einführung der TSE ergeben sich einige Änderungen bei der Bedienung:&lt;br /&gt;
* Wenn der Kunde eingegeben wurde und in die Artikelerfassung gelangt, wird der Bon gestartet. Wird der Vorgang danach abgebrochen, wird ein leerer Bon gespeichert und ein Abbruch an die TSE gemeldet.&lt;br /&gt;
* Wird telefonisch eine Abholbestllung aufgegeben, so darf im ersten Schritt kein Beleg gedruckt werden. Es erscheint eine Abfrage ob, der &amp;quot;Bon direkt abgeschlossen werden soll&amp;quot;. Dies muss am Anfang mit nein beantwortet werden, dadruch wird eine Bestellung gedruckt. Diese enthält alle Positionen, die bestellt wurden, aber es sind keine Endbeträge enthalten. Holt der Kunde die Ware ab und bezahlt, wird der echte Beleg gedruckt. In der Übersicht der Offenen Bestellungen [Unter F10 -&amp;gt; 8 &amp;quot;Offene Bestellungen&amp;quot;] findet sich unter F10 -&amp;gt; V die Liste der Vorbestellungen. Diese können mit ENTER wieder in die Erfassung übernommen werden und bei der Abfrage vor dem Drucken mit &amp;quot;Ja&amp;quot; beantwortet werden.&lt;br /&gt;
* Wieder in die Erfassung übernommene Vorbestellungen dürfen nicht mehr verändert werden, nur erweitert. Wenn der Kunde eine Position nicht mehr möchte, muss diese mit einer gleichen Minus Position storniert werden. Eine entsprechende Meldung erscheint bei dem Versuch.&lt;br /&gt;
* Die übernommenen Vorbestellungen können über ESC abgebrochen werden und es wird auch hier ein leerer Bon gespeichert.&lt;br /&gt;
* Lieferbestellungen werden als &amp;quot;Forderungen&amp;quot; an die TSE übergeben, da es in dem Moment keinen Geldfluss gibt. Wird der Mitarbeiter abgemeldet, werden für alle seine Touren entsprechende Geldzu- und Abgänge gebucht. Diese stehen dann auch mit auf dem Tagesabschlussbericht. &lt;br /&gt;
* Es gibt nun einen Trainingsmodus, der über einen neuen Standardkunden läuft (die 600). Dort können Positionen erfasst werden, ohne das ein Bon erstellt werden kann. Dies dient z.B. zur Preisauskunft&lt;br /&gt;
* Wenn Artikel mit Pfand verkauft werden, wird jetzt ein zusätzlicher Pfandartikel pro Position in die Erfassung übernommen. Diese müssen bei Neuanlage auf der zweiten Seite in der Artikelmaske als &amp;quot;Folgeartikel&amp;quot; hinterlegt werden.&lt;br /&gt;
[[Image:Folgeartikel-TSE.png|325px|Folgeartikel]]&lt;br /&gt;
&lt;br /&gt;
==Schnelleinstieg==&lt;br /&gt;
Hier ein grober Überblick über den Ablauf und Funktionsweise der Systemgastronomiekasse. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Anmelden===&lt;br /&gt;
Ein Mitarbeiter muss sich in der Zeiterfassung anmelden, damit, zum Beispiel die Arbeitszeit, Pausen und die gefahrenen Kilometer erfasst werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Dies wird durch das einscannen der Mitarbeiterkarte gemacht. War die Anmeldung erfolgreich, wird der Mitarbeiter in der Liste &amp;quot;Angemeldete Mitarbeiter&amp;quot; aufgelistet.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wird der Mitarbeiter nicht aufgelistet, wurde bei der Anmeldung ein Fehler gemacht. Hier muss sich der Mitarbeiter einfach nochmal anmelden&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellungen entgegen nehmen===&lt;br /&gt;
Um eine Bestellung entgegen zu nehmen, müssen zuerst die Kundendaten erfasst werden. Durch die Eingabe der Kundennummer, werden automatisch die restlichen Felder ausgefüllt. &amp;lt;br/&amp;gt;&lt;br /&gt;
Ein neuer Kunde muss registriert werden. Im Kassenmenü unter der Funktion &amp;quot;Neuer Kunde&amp;quot; kann der Kunde registriert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Nach erfassen der Kundendaten wird mit {{Key|F2 Bon}} die Bestellung aufgenommen werden, dies geschieht durch die Eingabe der Nummer der Positionen und wird mit Enter bestätigt. Danach gibt man die Menge der Positionen ein.&lt;br /&gt;
Im Kassenmenü kann die Bestellung angepasst werden, um z.B. eine Bestellung als Abhol-Bestellung zu markieren. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F3 Drucken}} wird die Bestellung fertiggestellt und ausgedruckt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellung ausliefern===&lt;br /&gt;
Um eine Bestellung auszuliefern, muss sich ein Mitarbeiter für eine oder mehrere Bestellungen in der Fahrererfassung eintragen. &amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bestellungen werden dann vom System als erledigt gesehen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellung abschließen===&lt;br /&gt;
Eine Bestellung kann durch einscannen der Mitarbeiter und einscannen der Rechnung abgeschlossen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Das System sieht diese Bestellung dann als erledigt und listet diese nicht mehr auf. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Abmelden===&lt;br /&gt;
Ist ein Mitarbeiter fertig mit seiner Schicht, kann er sich im Kassenmenü abmelden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Wenn der Mitarbeiter ein Privatfahrzeug mit angemeldet hatte, fragt das System nach den Kilometerstand um die Fahrtkosten zu erstatten. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Menü-Erläuterung==&lt;br /&gt;
Hier wird ihnen das Kassenmenü gezeigt und erklärt &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie-Kassenmenü.png|325px|Das Kassenmenü]]&lt;br /&gt;
&lt;br /&gt;
===Telefon ändern===&lt;br /&gt;
Ein neuer Kunde kann ins System eingetragen und mit {{Key|F2}} gespeichert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Straße ändern===&lt;br /&gt;
Hier kann die Adresse des ausgewählten Kunden gepflegt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bemerkung Kunde eingeben===&lt;br /&gt;
Wenn der Kunde bestimmte Wünsche hat oder wichtige Information gibt, kann diese in die Bemerkung vermerkt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellliste anzeigen===&lt;br /&gt;
Hier werden alle verbuchten Bestellungen aufgelistet. Eine Bestellung kann nach Wunsch mit {{Key|F3 Druck}} nachgedruckt oder eingesehen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Namen ändern===&lt;br /&gt;
Der Name des ausgewählten Kunden kann gepflegt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Gutschrift eingeben===&lt;br /&gt;
Hier kann eine Gutschrift eingegeben werden. Dies geht aber nur, wenn {{Key|F2 Bon}} schon gedrückt wurde. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Offene Bestellungen===&lt;br /&gt;
Hier werden alle Bestellungen aufgelistet die noch nicht verbucht worden sind. Wenn sich etwas an der Bestellung ändert, kann man diese unter {{Key|F10}} „Weitere Funktionen“ nachträglich bearbeiten. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mindestbestellwert===&lt;br /&gt;
Der Mindestbestellwert kann verändert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Auswertung===&lt;br /&gt;
Hat noch keine Funktion &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Geld-Abgang===&lt;br /&gt;
Wenn Geld aus der Kasse entnommen wurde, muss dies hier angegeben werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Geld-Zugang===&lt;br /&gt;
Wenn Geld in die Kasse hinzugefügt wurde, muss dies hier angeben werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stammdaten===&lt;br /&gt;
In den Stammdaten können verschiedene Daten bearbeitet werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie Untermenü-Stammdaten.png|325px|Das Untermenü von Stammdaten]]&lt;br /&gt;
&lt;br /&gt;
====Buchungstexte Abgang/Zugang bearbeiten====&lt;br /&gt;
Hier können die Geldzugänge / Geldausgänge die Buchungstexte gepflegt werden. Es können hier auch mit einfg neue Verwendungszwecke hinzugefügt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F3}} kann ein Kassenbuchtext ausgedruckt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Liste Geld – Abgang/Zugang====&lt;br /&gt;
Hier werden die Geldzugänge und -abgänge aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter bearbeiten====&lt;br /&gt;
Hier werden die Daten der Mitarbeiter gepflegt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Fahrzeuge bearbeiten====&lt;br /&gt;
Hier werden die Daten der Fahrzeuge gepflegt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====PLZ-Ort Straße bearbeiten====&lt;br /&gt;
Hier werden die Daten von Orten gepflegt. Hier kann man auch den Mindestbestellwert für einen Ort eingeben. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Bestell Historie====&lt;br /&gt;
Hier werden alle Bestellungen aufgelistet. Eine Bestellung kann mit {{Key|F3}} nachgedruckt oder eingesehen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter KM/Lohn Historie====&lt;br /&gt;
Hier werden die Daten wie Lohn pro Stunde, Lohn, gefahrene Kilometer, Kilometer Geld und etc. aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Hauptkasse definieren====&lt;br /&gt;
Zeigt die genutzte Kasse mit Kassenbeständen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Config====&lt;br /&gt;
Hier kann die Kasse konfiguriert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Abholbestellung===&lt;br /&gt;
Möchte der Kunde seine Bestellung selber abholen, kann diese damit markiert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit Termin kann auch der Abholtermin eingegeben werden (Siehe Termin). &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EC Zahlung===&lt;br /&gt;
Hier wird vermerkt, ob die Bestellung mit der EC-Karte bezahlt wurde. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Im Haus===&lt;br /&gt;
Möchte der Kunde seine Bestellung gleich in der Filiale essen, kann diese mit „Im Haus“ gekennzeichnet werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Online Payment===&lt;br /&gt;
Hier wird vermerkt, ob die Bestellung aus dem Internet kommt. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mitarbeiter abmelden===&lt;br /&gt;
Ist ein Mitarbeiter fertig, so kann er sich hier abmelden. Es wird dann automatisch ein Dokument erstellt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stundenerfassung===&lt;br /&gt;
Her werden alle Mitarbeiter aufgelistet, um auf ihre Datensätze zuzugreifen. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F6}} wird eine Liste ausgegeben die auflistet was ein Mitarbeiter für Aufgaben tätigte.&amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F10}} wird ein Optionsfenster geöffnet, darin sind folgende Optionen:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter inaktiv setzen====&lt;br /&gt;
Setzt ausgewählten Mitarbeiter inaktiv. So wird dieser vom System nicht mehr beachtet und wird von vielen Listen ausgeblendet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter reaktivieren====&lt;br /&gt;
Reaktiviert einen ausgewählten Mitarbeiter. Dieser wird dann wieder vom System berücksichtigt und wird wieder auf Listen aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====QR-Code anzeigen====&lt;br /&gt;
Zeigt den QR-Code des ausgewählten Mitarbeiters an. Dieser kann mit {{Key|F2}} kopiert oder mit {{Key|F3}} ausgedruckt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====QR-Zeiten Excel Monatsauswertung aller Mitarbeiter====&lt;br /&gt;
Es wird eine Excel-Datei ausgegeben die die Monatsauswertung aller Mitarbeiter beinhaltet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Termin===&lt;br /&gt;
Hier kann man auf der Bestellung ein Abholtermin vermerken. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion und leer lassen des Textfeldes. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Umsatzbericht===&lt;br /&gt;
Listet bei „Ja“ den Tagesumsatz auf und bei „Nein“ den Monatsumsatz. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Vorbestellung===&lt;br /&gt;
Hier wird eine Bestellung als Vorbestellung markiert. Vorbestellungen können nicht im aktuellem Datum gemacht werden, sondern müssen in der Zukunft liegen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tagesumsatz verbuchen===&lt;br /&gt;
Dient nur zum manuellen Nachbuchen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tagesabschlussbericht drucken===&lt;br /&gt;
Am Ende eines Tages müssen die Kassen überprüft werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Neuer Benutzer===&lt;br /&gt;
Hier kann man einen Benutzer ummelden. &amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Datei:Folgeartikel-TSE.png&amp;diff=58362</id>
		<title>Datei:Folgeartikel-TSE.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Datei:Folgeartikel-TSE.png&amp;diff=58362"/>
		<updated>2020-10-01T12:04:37Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Systemgastronomie-Kasse&amp;diff=58361</id>
		<title>Systemgastronomie-Kasse</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Systemgastronomie-Kasse&amp;diff=58361"/>
		<updated>2020-10-01T11:57:54Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* Änderungen durch die TSE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Kostenpflichtige Module}}&amp;lt;font size=&amp;quot;3&amp;quot; color=&amp;quot;#000000&amp;quot; face=&amp;quot;Arial&amp;quot;&amp;gt;&lt;br /&gt;
=Systemgastronomie-Kasse=&lt;br /&gt;
Für Systemgastronomiebetrieben bietet OBS die Systemgastronomie-Kasse an. Diese wurde den Systemgastronomiebetrieben angepasst und kann bei Anfrage einfach zugebucht werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie-Kasse.png|500px|Oberfläche der Belegerfassung]]&lt;br /&gt;
[[Image:Fahrererfassung.png|500px|Oberflächer der Fahrererfassung]]&lt;br /&gt;
[[Image:Systemgastronomie-Zeiterfassung.png|500px|Oberfläche der Zeiterfassung]]&lt;br /&gt;
&lt;br /&gt;
==Handbuch==&lt;br /&gt;
Eine Übersichtliche Erklärung der Systemgastronomiekasse erhalten sie auch im [http://wiki.bergau.de/images/7/76/OBS-Handbuch-Systemgastronomie-Kasse.pdf Handbuch].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Datei:OBS-Handbuch-Systemgastronomie-Kasse.png|300px|thumb&lt;br /&gt;
default [http://wiki.bergau.de/images/7/76/OBS-Handbuch-Systemgastronomie-Kasse.pdf]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Änderungen durch die TSE==&lt;br /&gt;
Durch die Einführung der TSE ergeben sich einige Änderungen bei der Bedienung:&lt;br /&gt;
* Wenn der Kunde eingegeben wurde und in die Artikelerfassung gelangt, wird der Bon gestartet. Wird der Vorgang danach abgebrochen, wird ein leerer Bon gespeichert und ein Abbruch an die TSE gemeldet.&lt;br /&gt;
* Wird telefonisch eine Abholbestllung aufgegeben, so darf im ersten Schritt kein Beleg gedruckt werden. Es erscheint eine Abfrage ob, der &amp;quot;Bon direkt abgeschlossen werden soll&amp;quot;. Dies muss am Anfang mit nein beantwortet werden, dadruch wird eine Bestellung gedruckt. Diese enthält alle Positionen, die bestellt wurden, aber es sind keine Endbeträge enthalten. Holt der Kunde die Ware ab und bezahlt, wird der echte Beleg gedruckt. In der Übersicht der Offenen Bestellungen [Unter F10 -&amp;gt; 8 &amp;quot;Offene Bestellungen&amp;quot;] findet sich unter F10 -&amp;gt; V die Liste der Vorbestellungen. Diese können mit ENTER wieder in die Erfassung übernommen werden und bei der Abfrage vor dem Drucken mit &amp;quot;Ja&amp;quot; beantwortet werden.&lt;br /&gt;
* Wieder in die Erfassung übernommene Vorbestellungen dürfen nicht mehr verändert werden, nur erweitert. Wenn der Kunde eine Position nicht mehr möchte, muss diese mit einer gleichen Minus Position storniert werden. Eine entsprechende Meldung erscheint bei dem Versuch.&lt;br /&gt;
* Die übernommenen Vorbestellungen können über ESC abgebrochen werden und es wird auch hier ein leerer Bon gespeichert.&lt;br /&gt;
* Lieferbestellungen werden als &amp;quot;Forderungen&amp;quot; an die TSE übergeben, da es in dem Moment keinen Geldfluss gibt. Wird der Mitarbeiter abgemeldet, werden für alle seine Touren entsprechende Geldzu- und Abgänge gebucht. Diese stehen dann auch mit auf dem Tagesabschlussbericht. &lt;br /&gt;
* Es gibt nun einen Trainingsmodus, der über einen neuen Standardkunden läuft (die 600). Dort können Positionen erfasst werden, ohne das ein Bon erstellt werden kann. Dies dient z.B. zur Preisauskunft&lt;br /&gt;
* Wenn Artikel mit Pfand verkauft werden, wird jetzt ein zusätzlicher Pfandartikel pro Position in die Erfassung übernommen. Diese müssen bei Neuanlage auf der zweiten Seite in der Artikelmaske als &amp;quot;Folgeartikel&amp;quot; hinterlegt werden.&lt;br /&gt;
&lt;br /&gt;
==Schnelleinstieg==&lt;br /&gt;
Hier ein grober Überblick über den Ablauf und Funktionsweise der Systemgastronomiekasse. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Anmelden===&lt;br /&gt;
Ein Mitarbeiter muss sich in der Zeiterfassung anmelden, damit, zum Beispiel die Arbeitszeit, Pausen und die gefahrenen Kilometer erfasst werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Dies wird durch das einscannen der Mitarbeiterkarte gemacht. War die Anmeldung erfolgreich, wird der Mitarbeiter in der Liste &amp;quot;Angemeldete Mitarbeiter&amp;quot; aufgelistet.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wird der Mitarbeiter nicht aufgelistet, wurde bei der Anmeldung ein Fehler gemacht. Hier muss sich der Mitarbeiter einfach nochmal anmelden&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellungen entgegen nehmen===&lt;br /&gt;
Um eine Bestellung entgegen zu nehmen, müssen zuerst die Kundendaten erfasst werden. Durch die Eingabe der Kundennummer, werden automatisch die restlichen Felder ausgefüllt. &amp;lt;br/&amp;gt;&lt;br /&gt;
Ein neuer Kunde muss registriert werden. Im Kassenmenü unter der Funktion &amp;quot;Neuer Kunde&amp;quot; kann der Kunde registriert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Nach erfassen der Kundendaten wird mit {{Key|F2 Bon}} die Bestellung aufgenommen werden, dies geschieht durch die Eingabe der Nummer der Positionen und wird mit Enter bestätigt. Danach gibt man die Menge der Positionen ein.&lt;br /&gt;
Im Kassenmenü kann die Bestellung angepasst werden, um z.B. eine Bestellung als Abhol-Bestellung zu markieren. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F3 Drucken}} wird die Bestellung fertiggestellt und ausgedruckt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellung ausliefern===&lt;br /&gt;
Um eine Bestellung auszuliefern, muss sich ein Mitarbeiter für eine oder mehrere Bestellungen in der Fahrererfassung eintragen. &amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bestellungen werden dann vom System als erledigt gesehen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellung abschließen===&lt;br /&gt;
Eine Bestellung kann durch einscannen der Mitarbeiter und einscannen der Rechnung abgeschlossen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Das System sieht diese Bestellung dann als erledigt und listet diese nicht mehr auf. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Abmelden===&lt;br /&gt;
Ist ein Mitarbeiter fertig mit seiner Schicht, kann er sich im Kassenmenü abmelden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Wenn der Mitarbeiter ein Privatfahrzeug mit angemeldet hatte, fragt das System nach den Kilometerstand um die Fahrtkosten zu erstatten. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Menü-Erläuterung==&lt;br /&gt;
Hier wird ihnen das Kassenmenü gezeigt und erklärt &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie-Kassenmenü.png|325px|Das Kassenmenü]]&lt;br /&gt;
&lt;br /&gt;
===Telefon ändern===&lt;br /&gt;
Ein neuer Kunde kann ins System eingetragen und mit {{Key|F2}} gespeichert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Straße ändern===&lt;br /&gt;
Hier kann die Adresse des ausgewählten Kunden gepflegt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bemerkung Kunde eingeben===&lt;br /&gt;
Wenn der Kunde bestimmte Wünsche hat oder wichtige Information gibt, kann diese in die Bemerkung vermerkt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellliste anzeigen===&lt;br /&gt;
Hier werden alle verbuchten Bestellungen aufgelistet. Eine Bestellung kann nach Wunsch mit {{Key|F3 Druck}} nachgedruckt oder eingesehen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Namen ändern===&lt;br /&gt;
Der Name des ausgewählten Kunden kann gepflegt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Gutschrift eingeben===&lt;br /&gt;
Hier kann eine Gutschrift eingegeben werden. Dies geht aber nur, wenn {{Key|F2 Bon}} schon gedrückt wurde. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Offene Bestellungen===&lt;br /&gt;
Hier werden alle Bestellungen aufgelistet die noch nicht verbucht worden sind. Wenn sich etwas an der Bestellung ändert, kann man diese unter {{Key|F10}} „Weitere Funktionen“ nachträglich bearbeiten. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mindestbestellwert===&lt;br /&gt;
Der Mindestbestellwert kann verändert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Auswertung===&lt;br /&gt;
Hat noch keine Funktion &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Geld-Abgang===&lt;br /&gt;
Wenn Geld aus der Kasse entnommen wurde, muss dies hier angegeben werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Geld-Zugang===&lt;br /&gt;
Wenn Geld in die Kasse hinzugefügt wurde, muss dies hier angeben werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stammdaten===&lt;br /&gt;
In den Stammdaten können verschiedene Daten bearbeitet werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie Untermenü-Stammdaten.png|325px|Das Untermenü von Stammdaten]]&lt;br /&gt;
&lt;br /&gt;
====Buchungstexte Abgang/Zugang bearbeiten====&lt;br /&gt;
Hier können die Geldzugänge / Geldausgänge die Buchungstexte gepflegt werden. Es können hier auch mit einfg neue Verwendungszwecke hinzugefügt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F3}} kann ein Kassenbuchtext ausgedruckt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Liste Geld – Abgang/Zugang====&lt;br /&gt;
Hier werden die Geldzugänge und -abgänge aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter bearbeiten====&lt;br /&gt;
Hier werden die Daten der Mitarbeiter gepflegt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Fahrzeuge bearbeiten====&lt;br /&gt;
Hier werden die Daten der Fahrzeuge gepflegt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====PLZ-Ort Straße bearbeiten====&lt;br /&gt;
Hier werden die Daten von Orten gepflegt. Hier kann man auch den Mindestbestellwert für einen Ort eingeben. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Bestell Historie====&lt;br /&gt;
Hier werden alle Bestellungen aufgelistet. Eine Bestellung kann mit {{Key|F3}} nachgedruckt oder eingesehen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter KM/Lohn Historie====&lt;br /&gt;
Hier werden die Daten wie Lohn pro Stunde, Lohn, gefahrene Kilometer, Kilometer Geld und etc. aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Hauptkasse definieren====&lt;br /&gt;
Zeigt die genutzte Kasse mit Kassenbeständen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Config====&lt;br /&gt;
Hier kann die Kasse konfiguriert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Abholbestellung===&lt;br /&gt;
Möchte der Kunde seine Bestellung selber abholen, kann diese damit markiert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit Termin kann auch der Abholtermin eingegeben werden (Siehe Termin). &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EC Zahlung===&lt;br /&gt;
Hier wird vermerkt, ob die Bestellung mit der EC-Karte bezahlt wurde. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Im Haus===&lt;br /&gt;
Möchte der Kunde seine Bestellung gleich in der Filiale essen, kann diese mit „Im Haus“ gekennzeichnet werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Online Payment===&lt;br /&gt;
Hier wird vermerkt, ob die Bestellung aus dem Internet kommt. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mitarbeiter abmelden===&lt;br /&gt;
Ist ein Mitarbeiter fertig, so kann er sich hier abmelden. Es wird dann automatisch ein Dokument erstellt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stundenerfassung===&lt;br /&gt;
Her werden alle Mitarbeiter aufgelistet, um auf ihre Datensätze zuzugreifen. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F6}} wird eine Liste ausgegeben die auflistet was ein Mitarbeiter für Aufgaben tätigte.&amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F10}} wird ein Optionsfenster geöffnet, darin sind folgende Optionen:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter inaktiv setzen====&lt;br /&gt;
Setzt ausgewählten Mitarbeiter inaktiv. So wird dieser vom System nicht mehr beachtet und wird von vielen Listen ausgeblendet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter reaktivieren====&lt;br /&gt;
Reaktiviert einen ausgewählten Mitarbeiter. Dieser wird dann wieder vom System berücksichtigt und wird wieder auf Listen aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====QR-Code anzeigen====&lt;br /&gt;
Zeigt den QR-Code des ausgewählten Mitarbeiters an. Dieser kann mit {{Key|F2}} kopiert oder mit {{Key|F3}} ausgedruckt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====QR-Zeiten Excel Monatsauswertung aller Mitarbeiter====&lt;br /&gt;
Es wird eine Excel-Datei ausgegeben die die Monatsauswertung aller Mitarbeiter beinhaltet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Termin===&lt;br /&gt;
Hier kann man auf der Bestellung ein Abholtermin vermerken. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion und leer lassen des Textfeldes. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Umsatzbericht===&lt;br /&gt;
Listet bei „Ja“ den Tagesumsatz auf und bei „Nein“ den Monatsumsatz. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Vorbestellung===&lt;br /&gt;
Hier wird eine Bestellung als Vorbestellung markiert. Vorbestellungen können nicht im aktuellem Datum gemacht werden, sondern müssen in der Zukunft liegen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tagesumsatz verbuchen===&lt;br /&gt;
Dient nur zum manuellen Nachbuchen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tagesabschlussbericht drucken===&lt;br /&gt;
Am Ende eines Tages müssen die Kassen überprüft werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Neuer Benutzer===&lt;br /&gt;
Hier kann man einen Benutzer ummelden. &amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Systemgastronomie-Kasse&amp;diff=58360</id>
		<title>Systemgastronomie-Kasse</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Systemgastronomie-Kasse&amp;diff=58360"/>
		<updated>2020-10-01T11:56:21Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* Änderungen durch die TSE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Kostenpflichtige Module}}&amp;lt;font size=&amp;quot;3&amp;quot; color=&amp;quot;#000000&amp;quot; face=&amp;quot;Arial&amp;quot;&amp;gt;&lt;br /&gt;
=Systemgastronomie-Kasse=&lt;br /&gt;
Für Systemgastronomiebetrieben bietet OBS die Systemgastronomie-Kasse an. Diese wurde den Systemgastronomiebetrieben angepasst und kann bei Anfrage einfach zugebucht werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie-Kasse.png|500px|Oberfläche der Belegerfassung]]&lt;br /&gt;
[[Image:Fahrererfassung.png|500px|Oberflächer der Fahrererfassung]]&lt;br /&gt;
[[Image:Systemgastronomie-Zeiterfassung.png|500px|Oberfläche der Zeiterfassung]]&lt;br /&gt;
&lt;br /&gt;
==Handbuch==&lt;br /&gt;
Eine Übersichtliche Erklärung der Systemgastronomiekasse erhalten sie auch im [http://wiki.bergau.de/images/7/76/OBS-Handbuch-Systemgastronomie-Kasse.pdf Handbuch].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Datei:OBS-Handbuch-Systemgastronomie-Kasse.png|300px|thumb&lt;br /&gt;
default [http://wiki.bergau.de/images/7/76/OBS-Handbuch-Systemgastronomie-Kasse.pdf]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Änderungen durch die TSE==&lt;br /&gt;
Durch die Einführung der TSE ergeben sich einige Änderungen bei der Bedienung:&lt;br /&gt;
* Wenn der Kunde eingegeben wurde und in die Artikelerfassung gelangt, wird der Bon gestartet. Wird der Vorgang danach abgebrochen, wird ein leerer Bon gespeichert und ein Abbruch an die TSE gemeldet.&lt;br /&gt;
* Wird telefonisch eine Abholbestllung aufgegeben, so darf im ersten Schritt kein Beleg gedruckt werden. Es erscheint eine Abfrage ob, der &amp;quot;Bon direkt abgeschlossen werden soll&amp;quot;. Dies muss am Anfang mit nein beantwortet werden, dadruch wird eine Bestellung gedruckt. Diese enthält alle Positionen, die bestellt wurden, aber es sind keine Endbeträge enthalten. Holt der Kunde die Ware ab und bezahlt, wird der echte Beleg gedruckt. In der Übersicht der Offenen Bestellungen [Unter F10 -&amp;gt; 8 &amp;quot;Offene Bestellungen&amp;quot;] findet sich unter F10 -&amp;gt; V die Liste der Vorbestellungen. Diese können mit ENTER wieder in die Erfassung übernommen werden und bei der Abfrage vor dem Drucken mit &amp;quot;Ja&amp;quot; beantwortet werden.&lt;br /&gt;
* Wieder in die Erfassung übernommene Vorbestellungen dürfen nicht mehr verändert werden, nur erweitert. Wenn der Kunde eine Position nicht mehr möchte, muss diese mit einer gleichen Minus Position storniert werden. Eine entsprechende Meldung erscheint bei dem Versuch.&lt;br /&gt;
* Die übernommenen Vorbestellungen können über ESC abgebrochen werden und es wird auch hier ein leerer Bon gespeichert.&lt;br /&gt;
* Lieferbestellungen werden als &amp;quot;Forderungen&amp;quot; an die TSE übergeben, da es in dem Moment keinen Geldfluss gibt. Wird der Mitarbeiter abgemeldet, werden für alle seine Touren entsprechende Geldzu- und Abgänge gebucht. Diese stehen dann auch mit auf dem Tagesabschlussbericht. &lt;br /&gt;
* Es gibt nun einen Trainingsmodus, der über einen neuen Standardkunden läuft (die 600). Dort können Positionen erfasst werden, ohne das ein Bon erstellt werden kann. Dies dient z.B. zur Preisauskunft&lt;br /&gt;
&lt;br /&gt;
==Schnelleinstieg==&lt;br /&gt;
Hier ein grober Überblick über den Ablauf und Funktionsweise der Systemgastronomiekasse. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Anmelden===&lt;br /&gt;
Ein Mitarbeiter muss sich in der Zeiterfassung anmelden, damit, zum Beispiel die Arbeitszeit, Pausen und die gefahrenen Kilometer erfasst werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Dies wird durch das einscannen der Mitarbeiterkarte gemacht. War die Anmeldung erfolgreich, wird der Mitarbeiter in der Liste &amp;quot;Angemeldete Mitarbeiter&amp;quot; aufgelistet.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wird der Mitarbeiter nicht aufgelistet, wurde bei der Anmeldung ein Fehler gemacht. Hier muss sich der Mitarbeiter einfach nochmal anmelden&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellungen entgegen nehmen===&lt;br /&gt;
Um eine Bestellung entgegen zu nehmen, müssen zuerst die Kundendaten erfasst werden. Durch die Eingabe der Kundennummer, werden automatisch die restlichen Felder ausgefüllt. &amp;lt;br/&amp;gt;&lt;br /&gt;
Ein neuer Kunde muss registriert werden. Im Kassenmenü unter der Funktion &amp;quot;Neuer Kunde&amp;quot; kann der Kunde registriert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Nach erfassen der Kundendaten wird mit {{Key|F2 Bon}} die Bestellung aufgenommen werden, dies geschieht durch die Eingabe der Nummer der Positionen und wird mit Enter bestätigt. Danach gibt man die Menge der Positionen ein.&lt;br /&gt;
Im Kassenmenü kann die Bestellung angepasst werden, um z.B. eine Bestellung als Abhol-Bestellung zu markieren. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F3 Drucken}} wird die Bestellung fertiggestellt und ausgedruckt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellung ausliefern===&lt;br /&gt;
Um eine Bestellung auszuliefern, muss sich ein Mitarbeiter für eine oder mehrere Bestellungen in der Fahrererfassung eintragen. &amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bestellungen werden dann vom System als erledigt gesehen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellung abschließen===&lt;br /&gt;
Eine Bestellung kann durch einscannen der Mitarbeiter und einscannen der Rechnung abgeschlossen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Das System sieht diese Bestellung dann als erledigt und listet diese nicht mehr auf. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Abmelden===&lt;br /&gt;
Ist ein Mitarbeiter fertig mit seiner Schicht, kann er sich im Kassenmenü abmelden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Wenn der Mitarbeiter ein Privatfahrzeug mit angemeldet hatte, fragt das System nach den Kilometerstand um die Fahrtkosten zu erstatten. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Menü-Erläuterung==&lt;br /&gt;
Hier wird ihnen das Kassenmenü gezeigt und erklärt &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie-Kassenmenü.png|325px|Das Kassenmenü]]&lt;br /&gt;
&lt;br /&gt;
===Telefon ändern===&lt;br /&gt;
Ein neuer Kunde kann ins System eingetragen und mit {{Key|F2}} gespeichert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Straße ändern===&lt;br /&gt;
Hier kann die Adresse des ausgewählten Kunden gepflegt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bemerkung Kunde eingeben===&lt;br /&gt;
Wenn der Kunde bestimmte Wünsche hat oder wichtige Information gibt, kann diese in die Bemerkung vermerkt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellliste anzeigen===&lt;br /&gt;
Hier werden alle verbuchten Bestellungen aufgelistet. Eine Bestellung kann nach Wunsch mit {{Key|F3 Druck}} nachgedruckt oder eingesehen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Namen ändern===&lt;br /&gt;
Der Name des ausgewählten Kunden kann gepflegt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Gutschrift eingeben===&lt;br /&gt;
Hier kann eine Gutschrift eingegeben werden. Dies geht aber nur, wenn {{Key|F2 Bon}} schon gedrückt wurde. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Offene Bestellungen===&lt;br /&gt;
Hier werden alle Bestellungen aufgelistet die noch nicht verbucht worden sind. Wenn sich etwas an der Bestellung ändert, kann man diese unter {{Key|F10}} „Weitere Funktionen“ nachträglich bearbeiten. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mindestbestellwert===&lt;br /&gt;
Der Mindestbestellwert kann verändert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Auswertung===&lt;br /&gt;
Hat noch keine Funktion &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Geld-Abgang===&lt;br /&gt;
Wenn Geld aus der Kasse entnommen wurde, muss dies hier angegeben werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Geld-Zugang===&lt;br /&gt;
Wenn Geld in die Kasse hinzugefügt wurde, muss dies hier angeben werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stammdaten===&lt;br /&gt;
In den Stammdaten können verschiedene Daten bearbeitet werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie Untermenü-Stammdaten.png|325px|Das Untermenü von Stammdaten]]&lt;br /&gt;
&lt;br /&gt;
====Buchungstexte Abgang/Zugang bearbeiten====&lt;br /&gt;
Hier können die Geldzugänge / Geldausgänge die Buchungstexte gepflegt werden. Es können hier auch mit einfg neue Verwendungszwecke hinzugefügt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F3}} kann ein Kassenbuchtext ausgedruckt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Liste Geld – Abgang/Zugang====&lt;br /&gt;
Hier werden die Geldzugänge und -abgänge aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter bearbeiten====&lt;br /&gt;
Hier werden die Daten der Mitarbeiter gepflegt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Fahrzeuge bearbeiten====&lt;br /&gt;
Hier werden die Daten der Fahrzeuge gepflegt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====PLZ-Ort Straße bearbeiten====&lt;br /&gt;
Hier werden die Daten von Orten gepflegt. Hier kann man auch den Mindestbestellwert für einen Ort eingeben. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Bestell Historie====&lt;br /&gt;
Hier werden alle Bestellungen aufgelistet. Eine Bestellung kann mit {{Key|F3}} nachgedruckt oder eingesehen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter KM/Lohn Historie====&lt;br /&gt;
Hier werden die Daten wie Lohn pro Stunde, Lohn, gefahrene Kilometer, Kilometer Geld und etc. aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Hauptkasse definieren====&lt;br /&gt;
Zeigt die genutzte Kasse mit Kassenbeständen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Config====&lt;br /&gt;
Hier kann die Kasse konfiguriert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Abholbestellung===&lt;br /&gt;
Möchte der Kunde seine Bestellung selber abholen, kann diese damit markiert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit Termin kann auch der Abholtermin eingegeben werden (Siehe Termin). &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EC Zahlung===&lt;br /&gt;
Hier wird vermerkt, ob die Bestellung mit der EC-Karte bezahlt wurde. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Im Haus===&lt;br /&gt;
Möchte der Kunde seine Bestellung gleich in der Filiale essen, kann diese mit „Im Haus“ gekennzeichnet werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Online Payment===&lt;br /&gt;
Hier wird vermerkt, ob die Bestellung aus dem Internet kommt. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mitarbeiter abmelden===&lt;br /&gt;
Ist ein Mitarbeiter fertig, so kann er sich hier abmelden. Es wird dann automatisch ein Dokument erstellt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stundenerfassung===&lt;br /&gt;
Her werden alle Mitarbeiter aufgelistet, um auf ihre Datensätze zuzugreifen. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F6}} wird eine Liste ausgegeben die auflistet was ein Mitarbeiter für Aufgaben tätigte.&amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F10}} wird ein Optionsfenster geöffnet, darin sind folgende Optionen:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter inaktiv setzen====&lt;br /&gt;
Setzt ausgewählten Mitarbeiter inaktiv. So wird dieser vom System nicht mehr beachtet und wird von vielen Listen ausgeblendet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter reaktivieren====&lt;br /&gt;
Reaktiviert einen ausgewählten Mitarbeiter. Dieser wird dann wieder vom System berücksichtigt und wird wieder auf Listen aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====QR-Code anzeigen====&lt;br /&gt;
Zeigt den QR-Code des ausgewählten Mitarbeiters an. Dieser kann mit {{Key|F2}} kopiert oder mit {{Key|F3}} ausgedruckt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====QR-Zeiten Excel Monatsauswertung aller Mitarbeiter====&lt;br /&gt;
Es wird eine Excel-Datei ausgegeben die die Monatsauswertung aller Mitarbeiter beinhaltet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Termin===&lt;br /&gt;
Hier kann man auf der Bestellung ein Abholtermin vermerken. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion und leer lassen des Textfeldes. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Umsatzbericht===&lt;br /&gt;
Listet bei „Ja“ den Tagesumsatz auf und bei „Nein“ den Monatsumsatz. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Vorbestellung===&lt;br /&gt;
Hier wird eine Bestellung als Vorbestellung markiert. Vorbestellungen können nicht im aktuellem Datum gemacht werden, sondern müssen in der Zukunft liegen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tagesumsatz verbuchen===&lt;br /&gt;
Dient nur zum manuellen Nachbuchen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tagesabschlussbericht drucken===&lt;br /&gt;
Am Ende eines Tages müssen die Kassen überprüft werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Neuer Benutzer===&lt;br /&gt;
Hier kann man einen Benutzer ummelden. &amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Systemgastronomie-Kasse&amp;diff=58359</id>
		<title>Systemgastronomie-Kasse</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Systemgastronomie-Kasse&amp;diff=58359"/>
		<updated>2020-10-01T11:52:56Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* Änderungen durch die TSE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Kostenpflichtige Module}}&amp;lt;font size=&amp;quot;3&amp;quot; color=&amp;quot;#000000&amp;quot; face=&amp;quot;Arial&amp;quot;&amp;gt;&lt;br /&gt;
=Systemgastronomie-Kasse=&lt;br /&gt;
Für Systemgastronomiebetrieben bietet OBS die Systemgastronomie-Kasse an. Diese wurde den Systemgastronomiebetrieben angepasst und kann bei Anfrage einfach zugebucht werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie-Kasse.png|500px|Oberfläche der Belegerfassung]]&lt;br /&gt;
[[Image:Fahrererfassung.png|500px|Oberflächer der Fahrererfassung]]&lt;br /&gt;
[[Image:Systemgastronomie-Zeiterfassung.png|500px|Oberfläche der Zeiterfassung]]&lt;br /&gt;
&lt;br /&gt;
==Handbuch==&lt;br /&gt;
Eine Übersichtliche Erklärung der Systemgastronomiekasse erhalten sie auch im [http://wiki.bergau.de/images/7/76/OBS-Handbuch-Systemgastronomie-Kasse.pdf Handbuch].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Datei:OBS-Handbuch-Systemgastronomie-Kasse.png|300px|thumb&lt;br /&gt;
default [http://wiki.bergau.de/images/7/76/OBS-Handbuch-Systemgastronomie-Kasse.pdf]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Änderungen durch die TSE==&lt;br /&gt;
Durch die Einführung der TSE ergeben sich einige Änderungen bei der Bedienung:&lt;br /&gt;
* Wenn der Kunde eingegeben wurde und in die Artikelerfassung gelangt, wird der Bon gestartet. Wird der Vorgang danach abgebrochen, wird ein Leerer Bon gespeichert und ein Abbruch an die TSE gemeldet.&lt;br /&gt;
* Wird telefonisch eine Abholbestllung aufgegeben, so darf im ersten Schritt kein Beleg gedruckt werden. Es erscheint eine Abfrage ob, der &amp;quot;Bon direkt abgeschlossen werden soll&amp;quot;. Dies muss am Anfang mit nein beantwortet werden, dadruch wird eine Bestellung gedruckt. Diese enthält alle Positionen, die bestellt wurden, aber es sind keine Endbeträge enthalten. Holt der Kunde die Ware ab und bezahlt, wird der echte Beleg gedruckt. In der Übersicht der Offenen Bestellungen [Unter F10 -&amp;gt; 8 &amp;quot;Offene Bestellungen&amp;quot;] findet sich unter F10 -&amp;gt; V die Liste der Vorbestellungen. Diese können mit ENTER wieder in die Erfassung übernommen werden und bei der Abfrage vor dem Drucken mit &amp;quot;Ja&amp;quot; beantwortet werden.&lt;br /&gt;
* Wieder in die Erfassung übernommene Vorbestellungen dürfen nicht mehr verändert werden, nur erweitert. Wenn der Kunde eine Position nicht mehr möchte, muss diese mit einer gleichen Minus Position storniert werden. Eine entsprechende Meldung erscheint bei dem Versuch.&lt;br /&gt;
* Lieferbestellungen werden als &amp;quot;Forderungen&amp;quot; an die TSE übergeben, da es in dem Moment keinen Geldfluss gibt. Wird der Mitarbeiter abgemeldet, werden für alle seine Touren entsprechende Geldzu- und Abgänge gebucht. Diese stehen dann auch mit auf dem Tagesabschlussbericht. &lt;br /&gt;
* Es gibt nun einen Trainingsmodus, der über einen neuen Standardkunden läuft (die 600). Dort können Positionen erfasst werden, ohne das ein Bon erstellt werden kann. Dies dient z.B. zur Preisauskunft&lt;br /&gt;
&lt;br /&gt;
==Schnelleinstieg==&lt;br /&gt;
Hier ein grober Überblick über den Ablauf und Funktionsweise der Systemgastronomiekasse. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Anmelden===&lt;br /&gt;
Ein Mitarbeiter muss sich in der Zeiterfassung anmelden, damit, zum Beispiel die Arbeitszeit, Pausen und die gefahrenen Kilometer erfasst werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Dies wird durch das einscannen der Mitarbeiterkarte gemacht. War die Anmeldung erfolgreich, wird der Mitarbeiter in der Liste &amp;quot;Angemeldete Mitarbeiter&amp;quot; aufgelistet.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wird der Mitarbeiter nicht aufgelistet, wurde bei der Anmeldung ein Fehler gemacht. Hier muss sich der Mitarbeiter einfach nochmal anmelden&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellungen entgegen nehmen===&lt;br /&gt;
Um eine Bestellung entgegen zu nehmen, müssen zuerst die Kundendaten erfasst werden. Durch die Eingabe der Kundennummer, werden automatisch die restlichen Felder ausgefüllt. &amp;lt;br/&amp;gt;&lt;br /&gt;
Ein neuer Kunde muss registriert werden. Im Kassenmenü unter der Funktion &amp;quot;Neuer Kunde&amp;quot; kann der Kunde registriert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Nach erfassen der Kundendaten wird mit {{Key|F2 Bon}} die Bestellung aufgenommen werden, dies geschieht durch die Eingabe der Nummer der Positionen und wird mit Enter bestätigt. Danach gibt man die Menge der Positionen ein.&lt;br /&gt;
Im Kassenmenü kann die Bestellung angepasst werden, um z.B. eine Bestellung als Abhol-Bestellung zu markieren. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F3 Drucken}} wird die Bestellung fertiggestellt und ausgedruckt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellung ausliefern===&lt;br /&gt;
Um eine Bestellung auszuliefern, muss sich ein Mitarbeiter für eine oder mehrere Bestellungen in der Fahrererfassung eintragen. &amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bestellungen werden dann vom System als erledigt gesehen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellung abschließen===&lt;br /&gt;
Eine Bestellung kann durch einscannen der Mitarbeiter und einscannen der Rechnung abgeschlossen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Das System sieht diese Bestellung dann als erledigt und listet diese nicht mehr auf. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Abmelden===&lt;br /&gt;
Ist ein Mitarbeiter fertig mit seiner Schicht, kann er sich im Kassenmenü abmelden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Wenn der Mitarbeiter ein Privatfahrzeug mit angemeldet hatte, fragt das System nach den Kilometerstand um die Fahrtkosten zu erstatten. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Menü-Erläuterung==&lt;br /&gt;
Hier wird ihnen das Kassenmenü gezeigt und erklärt &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie-Kassenmenü.png|325px|Das Kassenmenü]]&lt;br /&gt;
&lt;br /&gt;
===Telefon ändern===&lt;br /&gt;
Ein neuer Kunde kann ins System eingetragen und mit {{Key|F2}} gespeichert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Straße ändern===&lt;br /&gt;
Hier kann die Adresse des ausgewählten Kunden gepflegt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bemerkung Kunde eingeben===&lt;br /&gt;
Wenn der Kunde bestimmte Wünsche hat oder wichtige Information gibt, kann diese in die Bemerkung vermerkt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellliste anzeigen===&lt;br /&gt;
Hier werden alle verbuchten Bestellungen aufgelistet. Eine Bestellung kann nach Wunsch mit {{Key|F3 Druck}} nachgedruckt oder eingesehen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Namen ändern===&lt;br /&gt;
Der Name des ausgewählten Kunden kann gepflegt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Gutschrift eingeben===&lt;br /&gt;
Hier kann eine Gutschrift eingegeben werden. Dies geht aber nur, wenn {{Key|F2 Bon}} schon gedrückt wurde. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Offene Bestellungen===&lt;br /&gt;
Hier werden alle Bestellungen aufgelistet die noch nicht verbucht worden sind. Wenn sich etwas an der Bestellung ändert, kann man diese unter {{Key|F10}} „Weitere Funktionen“ nachträglich bearbeiten. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mindestbestellwert===&lt;br /&gt;
Der Mindestbestellwert kann verändert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Auswertung===&lt;br /&gt;
Hat noch keine Funktion &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Geld-Abgang===&lt;br /&gt;
Wenn Geld aus der Kasse entnommen wurde, muss dies hier angegeben werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Geld-Zugang===&lt;br /&gt;
Wenn Geld in die Kasse hinzugefügt wurde, muss dies hier angeben werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stammdaten===&lt;br /&gt;
In den Stammdaten können verschiedene Daten bearbeitet werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie Untermenü-Stammdaten.png|325px|Das Untermenü von Stammdaten]]&lt;br /&gt;
&lt;br /&gt;
====Buchungstexte Abgang/Zugang bearbeiten====&lt;br /&gt;
Hier können die Geldzugänge / Geldausgänge die Buchungstexte gepflegt werden. Es können hier auch mit einfg neue Verwendungszwecke hinzugefügt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F3}} kann ein Kassenbuchtext ausgedruckt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Liste Geld – Abgang/Zugang====&lt;br /&gt;
Hier werden die Geldzugänge und -abgänge aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter bearbeiten====&lt;br /&gt;
Hier werden die Daten der Mitarbeiter gepflegt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Fahrzeuge bearbeiten====&lt;br /&gt;
Hier werden die Daten der Fahrzeuge gepflegt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====PLZ-Ort Straße bearbeiten====&lt;br /&gt;
Hier werden die Daten von Orten gepflegt. Hier kann man auch den Mindestbestellwert für einen Ort eingeben. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Bestell Historie====&lt;br /&gt;
Hier werden alle Bestellungen aufgelistet. Eine Bestellung kann mit {{Key|F3}} nachgedruckt oder eingesehen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter KM/Lohn Historie====&lt;br /&gt;
Hier werden die Daten wie Lohn pro Stunde, Lohn, gefahrene Kilometer, Kilometer Geld und etc. aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Hauptkasse definieren====&lt;br /&gt;
Zeigt die genutzte Kasse mit Kassenbeständen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Config====&lt;br /&gt;
Hier kann die Kasse konfiguriert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Abholbestellung===&lt;br /&gt;
Möchte der Kunde seine Bestellung selber abholen, kann diese damit markiert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit Termin kann auch der Abholtermin eingegeben werden (Siehe Termin). &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EC Zahlung===&lt;br /&gt;
Hier wird vermerkt, ob die Bestellung mit der EC-Karte bezahlt wurde. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Im Haus===&lt;br /&gt;
Möchte der Kunde seine Bestellung gleich in der Filiale essen, kann diese mit „Im Haus“ gekennzeichnet werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Online Payment===&lt;br /&gt;
Hier wird vermerkt, ob die Bestellung aus dem Internet kommt. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mitarbeiter abmelden===&lt;br /&gt;
Ist ein Mitarbeiter fertig, so kann er sich hier abmelden. Es wird dann automatisch ein Dokument erstellt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stundenerfassung===&lt;br /&gt;
Her werden alle Mitarbeiter aufgelistet, um auf ihre Datensätze zuzugreifen. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F6}} wird eine Liste ausgegeben die auflistet was ein Mitarbeiter für Aufgaben tätigte.&amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F10}} wird ein Optionsfenster geöffnet, darin sind folgende Optionen:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter inaktiv setzen====&lt;br /&gt;
Setzt ausgewählten Mitarbeiter inaktiv. So wird dieser vom System nicht mehr beachtet und wird von vielen Listen ausgeblendet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter reaktivieren====&lt;br /&gt;
Reaktiviert einen ausgewählten Mitarbeiter. Dieser wird dann wieder vom System berücksichtigt und wird wieder auf Listen aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====QR-Code anzeigen====&lt;br /&gt;
Zeigt den QR-Code des ausgewählten Mitarbeiters an. Dieser kann mit {{Key|F2}} kopiert oder mit {{Key|F3}} ausgedruckt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====QR-Zeiten Excel Monatsauswertung aller Mitarbeiter====&lt;br /&gt;
Es wird eine Excel-Datei ausgegeben die die Monatsauswertung aller Mitarbeiter beinhaltet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Termin===&lt;br /&gt;
Hier kann man auf der Bestellung ein Abholtermin vermerken. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion und leer lassen des Textfeldes. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Umsatzbericht===&lt;br /&gt;
Listet bei „Ja“ den Tagesumsatz auf und bei „Nein“ den Monatsumsatz. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Vorbestellung===&lt;br /&gt;
Hier wird eine Bestellung als Vorbestellung markiert. Vorbestellungen können nicht im aktuellem Datum gemacht werden, sondern müssen in der Zukunft liegen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tagesumsatz verbuchen===&lt;br /&gt;
Dient nur zum manuellen Nachbuchen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tagesabschlussbericht drucken===&lt;br /&gt;
Am Ende eines Tages müssen die Kassen überprüft werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Neuer Benutzer===&lt;br /&gt;
Hier kann man einen Benutzer ummelden. &amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Systemgastronomie-Kasse&amp;diff=58358</id>
		<title>Systemgastronomie-Kasse</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Systemgastronomie-Kasse&amp;diff=58358"/>
		<updated>2020-10-01T11:52:41Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* Änderungen durch die TSE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Kostenpflichtige Module}}&amp;lt;font size=&amp;quot;3&amp;quot; color=&amp;quot;#000000&amp;quot; face=&amp;quot;Arial&amp;quot;&amp;gt;&lt;br /&gt;
=Systemgastronomie-Kasse=&lt;br /&gt;
Für Systemgastronomiebetrieben bietet OBS die Systemgastronomie-Kasse an. Diese wurde den Systemgastronomiebetrieben angepasst und kann bei Anfrage einfach zugebucht werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie-Kasse.png|500px|Oberfläche der Belegerfassung]]&lt;br /&gt;
[[Image:Fahrererfassung.png|500px|Oberflächer der Fahrererfassung]]&lt;br /&gt;
[[Image:Systemgastronomie-Zeiterfassung.png|500px|Oberfläche der Zeiterfassung]]&lt;br /&gt;
&lt;br /&gt;
==Handbuch==&lt;br /&gt;
Eine Übersichtliche Erklärung der Systemgastronomiekasse erhalten sie auch im [http://wiki.bergau.de/images/7/76/OBS-Handbuch-Systemgastronomie-Kasse.pdf Handbuch].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Datei:OBS-Handbuch-Systemgastronomie-Kasse.png|300px|thumb&lt;br /&gt;
default [http://wiki.bergau.de/images/7/76/OBS-Handbuch-Systemgastronomie-Kasse.pdf]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Änderungen durch die TSE==&lt;br /&gt;
Durch die Einführung der TSE ergeben sich einige Änderungen bei der Bedienung:&lt;br /&gt;
* Wenn der Kunde eingegeben wurde und in die Artikelerfassung gelangt, wird der Bon gestartet. Wird der Vorgang danach abgebrochen, wird ein Leerer Bon gespeichert und ein Abbruch an die TSE gemeldet.&lt;br /&gt;
* Wird telefonisch eine Abholbestllung aufgegeben, so darf im ersten Schritt kein Beleg gedruckt werden. Es erscheint eine Abfrage ob, der &amp;quot;Bon direkt abgeschlossen werden soll&amp;quot;. Dies muss am Anfang mit nein beantwortet werden, dadruch wird eine Bestellung gedruckt. Diese enthält alle Positionen, die bestellt wurden, aber es sind keine Endbeträge enthalten. Holt der Kunde die Ware ab und bezahlt, wird der echte Beleg gedruckt.&lt;br /&gt;
In der Übersicht der Offenen Bestellungen [Unter F10 -&amp;gt; 8 &amp;quot;Offene Bestellungen&amp;quot;] findet sich unter F10 -&amp;gt; V die Liste der Vorbestellungen. Diese können mit ENTER wieder in die Erfassung übernommen werden und bei der Abfrage vor dem Drucken mit &amp;quot;Ja&amp;quot; beantwortet werden.&lt;br /&gt;
* Wieder in die Erfassung übernommene Vorbestellungen dürfen nicht mehr verändert werden, nur erweitert. Wenn der Kunde eine Position nicht mehr möchte, muss diese mit einer gleichen Minus Position storniert werden. Eine entsprechende Meldung erscheint bei dem Versuch.&lt;br /&gt;
* Lieferbestellungen werden als &amp;quot;Forderungen&amp;quot; an die TSE übergeben, da es in dem Moment keinen Geldfluss gibt. Wird der Mitarbeiter abgemeldet, werden für alle seine Touren entsprechende Geldzu- und Abgänge gebucht. Diese stehen dann auch mit auf dem Tagesabschlussbericht. &lt;br /&gt;
* Es gibt nun einen Trainingsmodus, der über einen neuen Standardkunden läuft (die 600). Dort können Positionen erfasst werden, ohne das ein Bon erstellt werden kann. Dies dient z.B. zur Preisauskunft&lt;br /&gt;
&lt;br /&gt;
==Schnelleinstieg==&lt;br /&gt;
Hier ein grober Überblick über den Ablauf und Funktionsweise der Systemgastronomiekasse. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Anmelden===&lt;br /&gt;
Ein Mitarbeiter muss sich in der Zeiterfassung anmelden, damit, zum Beispiel die Arbeitszeit, Pausen und die gefahrenen Kilometer erfasst werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Dies wird durch das einscannen der Mitarbeiterkarte gemacht. War die Anmeldung erfolgreich, wird der Mitarbeiter in der Liste &amp;quot;Angemeldete Mitarbeiter&amp;quot; aufgelistet.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wird der Mitarbeiter nicht aufgelistet, wurde bei der Anmeldung ein Fehler gemacht. Hier muss sich der Mitarbeiter einfach nochmal anmelden&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellungen entgegen nehmen===&lt;br /&gt;
Um eine Bestellung entgegen zu nehmen, müssen zuerst die Kundendaten erfasst werden. Durch die Eingabe der Kundennummer, werden automatisch die restlichen Felder ausgefüllt. &amp;lt;br/&amp;gt;&lt;br /&gt;
Ein neuer Kunde muss registriert werden. Im Kassenmenü unter der Funktion &amp;quot;Neuer Kunde&amp;quot; kann der Kunde registriert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Nach erfassen der Kundendaten wird mit {{Key|F2 Bon}} die Bestellung aufgenommen werden, dies geschieht durch die Eingabe der Nummer der Positionen und wird mit Enter bestätigt. Danach gibt man die Menge der Positionen ein.&lt;br /&gt;
Im Kassenmenü kann die Bestellung angepasst werden, um z.B. eine Bestellung als Abhol-Bestellung zu markieren. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F3 Drucken}} wird die Bestellung fertiggestellt und ausgedruckt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellung ausliefern===&lt;br /&gt;
Um eine Bestellung auszuliefern, muss sich ein Mitarbeiter für eine oder mehrere Bestellungen in der Fahrererfassung eintragen. &amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bestellungen werden dann vom System als erledigt gesehen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellung abschließen===&lt;br /&gt;
Eine Bestellung kann durch einscannen der Mitarbeiter und einscannen der Rechnung abgeschlossen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Das System sieht diese Bestellung dann als erledigt und listet diese nicht mehr auf. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Abmelden===&lt;br /&gt;
Ist ein Mitarbeiter fertig mit seiner Schicht, kann er sich im Kassenmenü abmelden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Wenn der Mitarbeiter ein Privatfahrzeug mit angemeldet hatte, fragt das System nach den Kilometerstand um die Fahrtkosten zu erstatten. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Menü-Erläuterung==&lt;br /&gt;
Hier wird ihnen das Kassenmenü gezeigt und erklärt &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie-Kassenmenü.png|325px|Das Kassenmenü]]&lt;br /&gt;
&lt;br /&gt;
===Telefon ändern===&lt;br /&gt;
Ein neuer Kunde kann ins System eingetragen und mit {{Key|F2}} gespeichert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Straße ändern===&lt;br /&gt;
Hier kann die Adresse des ausgewählten Kunden gepflegt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bemerkung Kunde eingeben===&lt;br /&gt;
Wenn der Kunde bestimmte Wünsche hat oder wichtige Information gibt, kann diese in die Bemerkung vermerkt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellliste anzeigen===&lt;br /&gt;
Hier werden alle verbuchten Bestellungen aufgelistet. Eine Bestellung kann nach Wunsch mit {{Key|F3 Druck}} nachgedruckt oder eingesehen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Namen ändern===&lt;br /&gt;
Der Name des ausgewählten Kunden kann gepflegt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Gutschrift eingeben===&lt;br /&gt;
Hier kann eine Gutschrift eingegeben werden. Dies geht aber nur, wenn {{Key|F2 Bon}} schon gedrückt wurde. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Offene Bestellungen===&lt;br /&gt;
Hier werden alle Bestellungen aufgelistet die noch nicht verbucht worden sind. Wenn sich etwas an der Bestellung ändert, kann man diese unter {{Key|F10}} „Weitere Funktionen“ nachträglich bearbeiten. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mindestbestellwert===&lt;br /&gt;
Der Mindestbestellwert kann verändert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Auswertung===&lt;br /&gt;
Hat noch keine Funktion &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Geld-Abgang===&lt;br /&gt;
Wenn Geld aus der Kasse entnommen wurde, muss dies hier angegeben werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Geld-Zugang===&lt;br /&gt;
Wenn Geld in die Kasse hinzugefügt wurde, muss dies hier angeben werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stammdaten===&lt;br /&gt;
In den Stammdaten können verschiedene Daten bearbeitet werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie Untermenü-Stammdaten.png|325px|Das Untermenü von Stammdaten]]&lt;br /&gt;
&lt;br /&gt;
====Buchungstexte Abgang/Zugang bearbeiten====&lt;br /&gt;
Hier können die Geldzugänge / Geldausgänge die Buchungstexte gepflegt werden. Es können hier auch mit einfg neue Verwendungszwecke hinzugefügt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F3}} kann ein Kassenbuchtext ausgedruckt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Liste Geld – Abgang/Zugang====&lt;br /&gt;
Hier werden die Geldzugänge und -abgänge aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter bearbeiten====&lt;br /&gt;
Hier werden die Daten der Mitarbeiter gepflegt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Fahrzeuge bearbeiten====&lt;br /&gt;
Hier werden die Daten der Fahrzeuge gepflegt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====PLZ-Ort Straße bearbeiten====&lt;br /&gt;
Hier werden die Daten von Orten gepflegt. Hier kann man auch den Mindestbestellwert für einen Ort eingeben. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Bestell Historie====&lt;br /&gt;
Hier werden alle Bestellungen aufgelistet. Eine Bestellung kann mit {{Key|F3}} nachgedruckt oder eingesehen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter KM/Lohn Historie====&lt;br /&gt;
Hier werden die Daten wie Lohn pro Stunde, Lohn, gefahrene Kilometer, Kilometer Geld und etc. aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Hauptkasse definieren====&lt;br /&gt;
Zeigt die genutzte Kasse mit Kassenbeständen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Config====&lt;br /&gt;
Hier kann die Kasse konfiguriert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Abholbestellung===&lt;br /&gt;
Möchte der Kunde seine Bestellung selber abholen, kann diese damit markiert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit Termin kann auch der Abholtermin eingegeben werden (Siehe Termin). &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EC Zahlung===&lt;br /&gt;
Hier wird vermerkt, ob die Bestellung mit der EC-Karte bezahlt wurde. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Im Haus===&lt;br /&gt;
Möchte der Kunde seine Bestellung gleich in der Filiale essen, kann diese mit „Im Haus“ gekennzeichnet werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Online Payment===&lt;br /&gt;
Hier wird vermerkt, ob die Bestellung aus dem Internet kommt. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mitarbeiter abmelden===&lt;br /&gt;
Ist ein Mitarbeiter fertig, so kann er sich hier abmelden. Es wird dann automatisch ein Dokument erstellt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stundenerfassung===&lt;br /&gt;
Her werden alle Mitarbeiter aufgelistet, um auf ihre Datensätze zuzugreifen. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F6}} wird eine Liste ausgegeben die auflistet was ein Mitarbeiter für Aufgaben tätigte.&amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F10}} wird ein Optionsfenster geöffnet, darin sind folgende Optionen:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter inaktiv setzen====&lt;br /&gt;
Setzt ausgewählten Mitarbeiter inaktiv. So wird dieser vom System nicht mehr beachtet und wird von vielen Listen ausgeblendet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter reaktivieren====&lt;br /&gt;
Reaktiviert einen ausgewählten Mitarbeiter. Dieser wird dann wieder vom System berücksichtigt und wird wieder auf Listen aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====QR-Code anzeigen====&lt;br /&gt;
Zeigt den QR-Code des ausgewählten Mitarbeiters an. Dieser kann mit {{Key|F2}} kopiert oder mit {{Key|F3}} ausgedruckt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====QR-Zeiten Excel Monatsauswertung aller Mitarbeiter====&lt;br /&gt;
Es wird eine Excel-Datei ausgegeben die die Monatsauswertung aller Mitarbeiter beinhaltet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Termin===&lt;br /&gt;
Hier kann man auf der Bestellung ein Abholtermin vermerken. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion und leer lassen des Textfeldes. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Umsatzbericht===&lt;br /&gt;
Listet bei „Ja“ den Tagesumsatz auf und bei „Nein“ den Monatsumsatz. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Vorbestellung===&lt;br /&gt;
Hier wird eine Bestellung als Vorbestellung markiert. Vorbestellungen können nicht im aktuellem Datum gemacht werden, sondern müssen in der Zukunft liegen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tagesumsatz verbuchen===&lt;br /&gt;
Dient nur zum manuellen Nachbuchen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tagesabschlussbericht drucken===&lt;br /&gt;
Am Ende eines Tages müssen die Kassen überprüft werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Neuer Benutzer===&lt;br /&gt;
Hier kann man einen Benutzer ummelden. &amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Systemgastronomie-Kasse&amp;diff=58357</id>
		<title>Systemgastronomie-Kasse</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Systemgastronomie-Kasse&amp;diff=58357"/>
		<updated>2020-10-01T11:51:47Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* Änderungen durch die TSE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Kostenpflichtige Module}}&amp;lt;font size=&amp;quot;3&amp;quot; color=&amp;quot;#000000&amp;quot; face=&amp;quot;Arial&amp;quot;&amp;gt;&lt;br /&gt;
=Systemgastronomie-Kasse=&lt;br /&gt;
Für Systemgastronomiebetrieben bietet OBS die Systemgastronomie-Kasse an. Diese wurde den Systemgastronomiebetrieben angepasst und kann bei Anfrage einfach zugebucht werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie-Kasse.png|500px|Oberfläche der Belegerfassung]]&lt;br /&gt;
[[Image:Fahrererfassung.png|500px|Oberflächer der Fahrererfassung]]&lt;br /&gt;
[[Image:Systemgastronomie-Zeiterfassung.png|500px|Oberfläche der Zeiterfassung]]&lt;br /&gt;
&lt;br /&gt;
==Handbuch==&lt;br /&gt;
Eine Übersichtliche Erklärung der Systemgastronomiekasse erhalten sie auch im [http://wiki.bergau.de/images/7/76/OBS-Handbuch-Systemgastronomie-Kasse.pdf Handbuch].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Datei:OBS-Handbuch-Systemgastronomie-Kasse.png|300px|thumb&lt;br /&gt;
default [http://wiki.bergau.de/images/7/76/OBS-Handbuch-Systemgastronomie-Kasse.pdf]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Änderungen durch die TSE==&lt;br /&gt;
Durch die Einführung der TSE ergeben sich einige Änderungen bei der Bedienung:&lt;br /&gt;
- Wenn der Kunde eingegeben wurde und in die Artikelerfassung gelangt, wird der Bon gestartet. Wird der Vorgang danach abgebrochen, wird ein Leerer Bon gespeichert und ein Abbruch an die TSE gemeldet.&lt;br /&gt;
- Wird telefonisch eine Abholbestllung aufgegeben, so darf im ersten Schritt kein Beleg gedruckt werden. Es erscheint eine Abfrage ob, der &amp;quot;Bon direkt abgeschlossen werden soll&amp;quot;. Dies muss am Anfang mit nein beantwortet werden, dadruch wird eine Bestellung gedruckt. Diese enthält alle Positionen, die bestellt wurden, aber es sind keine Endbeträge enthalten. Holt der Kunde die Ware ab und bezahlt, wird der echte Beleg gedruckt.&lt;br /&gt;
In der Übersicht der Offenen Bestellungen [Unter F10 -&amp;gt; 8 &amp;quot;Offene Bestellungen&amp;quot;] findet sich unter F10 -&amp;gt; V die Liste der Vorbestellungen. Diese können mit ENTER wieder in die Erfassung übernommen werden und bei der Abfrage vor dem Drucken mit &amp;quot;Ja&amp;quot; beantwortet werden.&lt;br /&gt;
- Wieder in die Erfassung übernommene Vorbestellungen dürfen nicht mehr verändert werden, nur erweitert. Wenn der Kunde eine Position nicht mehr möchte, muss diese mit einer gleichen Minus Position storniert werden. Eine entsprechende Meldung erscheint bei dem Versuch.&lt;br /&gt;
- Lieferbestellungen werden als &amp;quot;Forderungen&amp;quot; an die TSE übergeben, da es in dem Moment keinen Geldfluss gibt. Wird der Mitarbeiter abgemeldet, werden für alle seine Touren entsprechende Geldzu- und Abgänge gebucht. Diese stehen dann auch mit auf dem Tagesabschlussbericht. &lt;br /&gt;
- Es gibt nun einen Trainingsmodus, der über einen neuen Standardkunden läuft (die 600). Dort können Positionen erfasst werden, ohne das ein Bon erstellt werden kann. Dies dient z.B. zur Preisauskunft&lt;br /&gt;
&lt;br /&gt;
==Schnelleinstieg==&lt;br /&gt;
Hier ein grober Überblick über den Ablauf und Funktionsweise der Systemgastronomiekasse. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Anmelden===&lt;br /&gt;
Ein Mitarbeiter muss sich in der Zeiterfassung anmelden, damit, zum Beispiel die Arbeitszeit, Pausen und die gefahrenen Kilometer erfasst werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Dies wird durch das einscannen der Mitarbeiterkarte gemacht. War die Anmeldung erfolgreich, wird der Mitarbeiter in der Liste &amp;quot;Angemeldete Mitarbeiter&amp;quot; aufgelistet.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wird der Mitarbeiter nicht aufgelistet, wurde bei der Anmeldung ein Fehler gemacht. Hier muss sich der Mitarbeiter einfach nochmal anmelden&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellungen entgegen nehmen===&lt;br /&gt;
Um eine Bestellung entgegen zu nehmen, müssen zuerst die Kundendaten erfasst werden. Durch die Eingabe der Kundennummer, werden automatisch die restlichen Felder ausgefüllt. &amp;lt;br/&amp;gt;&lt;br /&gt;
Ein neuer Kunde muss registriert werden. Im Kassenmenü unter der Funktion &amp;quot;Neuer Kunde&amp;quot; kann der Kunde registriert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Nach erfassen der Kundendaten wird mit {{Key|F2 Bon}} die Bestellung aufgenommen werden, dies geschieht durch die Eingabe der Nummer der Positionen und wird mit Enter bestätigt. Danach gibt man die Menge der Positionen ein.&lt;br /&gt;
Im Kassenmenü kann die Bestellung angepasst werden, um z.B. eine Bestellung als Abhol-Bestellung zu markieren. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F3 Drucken}} wird die Bestellung fertiggestellt und ausgedruckt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellung ausliefern===&lt;br /&gt;
Um eine Bestellung auszuliefern, muss sich ein Mitarbeiter für eine oder mehrere Bestellungen in der Fahrererfassung eintragen. &amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bestellungen werden dann vom System als erledigt gesehen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellung abschließen===&lt;br /&gt;
Eine Bestellung kann durch einscannen der Mitarbeiter und einscannen der Rechnung abgeschlossen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Das System sieht diese Bestellung dann als erledigt und listet diese nicht mehr auf. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Abmelden===&lt;br /&gt;
Ist ein Mitarbeiter fertig mit seiner Schicht, kann er sich im Kassenmenü abmelden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Wenn der Mitarbeiter ein Privatfahrzeug mit angemeldet hatte, fragt das System nach den Kilometerstand um die Fahrtkosten zu erstatten. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Menü-Erläuterung==&lt;br /&gt;
Hier wird ihnen das Kassenmenü gezeigt und erklärt &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie-Kassenmenü.png|325px|Das Kassenmenü]]&lt;br /&gt;
&lt;br /&gt;
===Telefon ändern===&lt;br /&gt;
Ein neuer Kunde kann ins System eingetragen und mit {{Key|F2}} gespeichert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Straße ändern===&lt;br /&gt;
Hier kann die Adresse des ausgewählten Kunden gepflegt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bemerkung Kunde eingeben===&lt;br /&gt;
Wenn der Kunde bestimmte Wünsche hat oder wichtige Information gibt, kann diese in die Bemerkung vermerkt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellliste anzeigen===&lt;br /&gt;
Hier werden alle verbuchten Bestellungen aufgelistet. Eine Bestellung kann nach Wunsch mit {{Key|F3 Druck}} nachgedruckt oder eingesehen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Namen ändern===&lt;br /&gt;
Der Name des ausgewählten Kunden kann gepflegt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Gutschrift eingeben===&lt;br /&gt;
Hier kann eine Gutschrift eingegeben werden. Dies geht aber nur, wenn {{Key|F2 Bon}} schon gedrückt wurde. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Offene Bestellungen===&lt;br /&gt;
Hier werden alle Bestellungen aufgelistet die noch nicht verbucht worden sind. Wenn sich etwas an der Bestellung ändert, kann man diese unter {{Key|F10}} „Weitere Funktionen“ nachträglich bearbeiten. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mindestbestellwert===&lt;br /&gt;
Der Mindestbestellwert kann verändert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Auswertung===&lt;br /&gt;
Hat noch keine Funktion &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Geld-Abgang===&lt;br /&gt;
Wenn Geld aus der Kasse entnommen wurde, muss dies hier angegeben werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Geld-Zugang===&lt;br /&gt;
Wenn Geld in die Kasse hinzugefügt wurde, muss dies hier angeben werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stammdaten===&lt;br /&gt;
In den Stammdaten können verschiedene Daten bearbeitet werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie Untermenü-Stammdaten.png|325px|Das Untermenü von Stammdaten]]&lt;br /&gt;
&lt;br /&gt;
====Buchungstexte Abgang/Zugang bearbeiten====&lt;br /&gt;
Hier können die Geldzugänge / Geldausgänge die Buchungstexte gepflegt werden. Es können hier auch mit einfg neue Verwendungszwecke hinzugefügt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F3}} kann ein Kassenbuchtext ausgedruckt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Liste Geld – Abgang/Zugang====&lt;br /&gt;
Hier werden die Geldzugänge und -abgänge aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter bearbeiten====&lt;br /&gt;
Hier werden die Daten der Mitarbeiter gepflegt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Fahrzeuge bearbeiten====&lt;br /&gt;
Hier werden die Daten der Fahrzeuge gepflegt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====PLZ-Ort Straße bearbeiten====&lt;br /&gt;
Hier werden die Daten von Orten gepflegt. Hier kann man auch den Mindestbestellwert für einen Ort eingeben. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Bestell Historie====&lt;br /&gt;
Hier werden alle Bestellungen aufgelistet. Eine Bestellung kann mit {{Key|F3}} nachgedruckt oder eingesehen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter KM/Lohn Historie====&lt;br /&gt;
Hier werden die Daten wie Lohn pro Stunde, Lohn, gefahrene Kilometer, Kilometer Geld und etc. aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Hauptkasse definieren====&lt;br /&gt;
Zeigt die genutzte Kasse mit Kassenbeständen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Config====&lt;br /&gt;
Hier kann die Kasse konfiguriert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Abholbestellung===&lt;br /&gt;
Möchte der Kunde seine Bestellung selber abholen, kann diese damit markiert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit Termin kann auch der Abholtermin eingegeben werden (Siehe Termin). &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EC Zahlung===&lt;br /&gt;
Hier wird vermerkt, ob die Bestellung mit der EC-Karte bezahlt wurde. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Im Haus===&lt;br /&gt;
Möchte der Kunde seine Bestellung gleich in der Filiale essen, kann diese mit „Im Haus“ gekennzeichnet werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Online Payment===&lt;br /&gt;
Hier wird vermerkt, ob die Bestellung aus dem Internet kommt. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mitarbeiter abmelden===&lt;br /&gt;
Ist ein Mitarbeiter fertig, so kann er sich hier abmelden. Es wird dann automatisch ein Dokument erstellt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stundenerfassung===&lt;br /&gt;
Her werden alle Mitarbeiter aufgelistet, um auf ihre Datensätze zuzugreifen. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F6}} wird eine Liste ausgegeben die auflistet was ein Mitarbeiter für Aufgaben tätigte.&amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F10}} wird ein Optionsfenster geöffnet, darin sind folgende Optionen:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter inaktiv setzen====&lt;br /&gt;
Setzt ausgewählten Mitarbeiter inaktiv. So wird dieser vom System nicht mehr beachtet und wird von vielen Listen ausgeblendet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter reaktivieren====&lt;br /&gt;
Reaktiviert einen ausgewählten Mitarbeiter. Dieser wird dann wieder vom System berücksichtigt und wird wieder auf Listen aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====QR-Code anzeigen====&lt;br /&gt;
Zeigt den QR-Code des ausgewählten Mitarbeiters an. Dieser kann mit {{Key|F2}} kopiert oder mit {{Key|F3}} ausgedruckt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====QR-Zeiten Excel Monatsauswertung aller Mitarbeiter====&lt;br /&gt;
Es wird eine Excel-Datei ausgegeben die die Monatsauswertung aller Mitarbeiter beinhaltet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Termin===&lt;br /&gt;
Hier kann man auf der Bestellung ein Abholtermin vermerken. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion und leer lassen des Textfeldes. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Umsatzbericht===&lt;br /&gt;
Listet bei „Ja“ den Tagesumsatz auf und bei „Nein“ den Monatsumsatz. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Vorbestellung===&lt;br /&gt;
Hier wird eine Bestellung als Vorbestellung markiert. Vorbestellungen können nicht im aktuellem Datum gemacht werden, sondern müssen in der Zukunft liegen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tagesumsatz verbuchen===&lt;br /&gt;
Dient nur zum manuellen Nachbuchen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tagesabschlussbericht drucken===&lt;br /&gt;
Am Ende eines Tages müssen die Kassen überprüft werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Neuer Benutzer===&lt;br /&gt;
Hier kann man einen Benutzer ummelden. &amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Systemgastronomie-Kasse&amp;diff=58356</id>
		<title>Systemgastronomie-Kasse</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Systemgastronomie-Kasse&amp;diff=58356"/>
		<updated>2020-10-01T11:35:18Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Vorlage:Kostenpflichtige Module}}&amp;lt;font size=&amp;quot;3&amp;quot; color=&amp;quot;#000000&amp;quot; face=&amp;quot;Arial&amp;quot;&amp;gt;&lt;br /&gt;
=Systemgastronomie-Kasse=&lt;br /&gt;
Für Systemgastronomiebetrieben bietet OBS die Systemgastronomie-Kasse an. Diese wurde den Systemgastronomiebetrieben angepasst und kann bei Anfrage einfach zugebucht werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie-Kasse.png|500px|Oberfläche der Belegerfassung]]&lt;br /&gt;
[[Image:Fahrererfassung.png|500px|Oberflächer der Fahrererfassung]]&lt;br /&gt;
[[Image:Systemgastronomie-Zeiterfassung.png|500px|Oberfläche der Zeiterfassung]]&lt;br /&gt;
&lt;br /&gt;
==Handbuch==&lt;br /&gt;
Eine Übersichtliche Erklärung der Systemgastronomiekasse erhalten sie auch im [http://wiki.bergau.de/images/7/76/OBS-Handbuch-Systemgastronomie-Kasse.pdf Handbuch].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;imagemap&amp;gt;&lt;br /&gt;
Datei:OBS-Handbuch-Systemgastronomie-Kasse.png|300px|thumb&lt;br /&gt;
default [http://wiki.bergau.de/images/7/76/OBS-Handbuch-Systemgastronomie-Kasse.pdf]&lt;br /&gt;
&amp;lt;/imagemap&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Änderungen durch die TSE==&lt;br /&gt;
&lt;br /&gt;
==Schnelleinstieg==&lt;br /&gt;
Hier ein grober Überblick über den Ablauf und Funktionsweise der Systemgastronomiekasse. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Anmelden===&lt;br /&gt;
Ein Mitarbeiter muss sich in der Zeiterfassung anmelden, damit, zum Beispiel die Arbeitszeit, Pausen und die gefahrenen Kilometer erfasst werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Dies wird durch das einscannen der Mitarbeiterkarte gemacht. War die Anmeldung erfolgreich, wird der Mitarbeiter in der Liste &amp;quot;Angemeldete Mitarbeiter&amp;quot; aufgelistet.&amp;lt;br/&amp;gt;&lt;br /&gt;
Wird der Mitarbeiter nicht aufgelistet, wurde bei der Anmeldung ein Fehler gemacht. Hier muss sich der Mitarbeiter einfach nochmal anmelden&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellungen entgegen nehmen===&lt;br /&gt;
Um eine Bestellung entgegen zu nehmen, müssen zuerst die Kundendaten erfasst werden. Durch die Eingabe der Kundennummer, werden automatisch die restlichen Felder ausgefüllt. &amp;lt;br/&amp;gt;&lt;br /&gt;
Ein neuer Kunde muss registriert werden. Im Kassenmenü unter der Funktion &amp;quot;Neuer Kunde&amp;quot; kann der Kunde registriert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Nach erfassen der Kundendaten wird mit {{Key|F2 Bon}} die Bestellung aufgenommen werden, dies geschieht durch die Eingabe der Nummer der Positionen und wird mit Enter bestätigt. Danach gibt man die Menge der Positionen ein.&lt;br /&gt;
Im Kassenmenü kann die Bestellung angepasst werden, um z.B. eine Bestellung als Abhol-Bestellung zu markieren. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F3 Drucken}} wird die Bestellung fertiggestellt und ausgedruckt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellung ausliefern===&lt;br /&gt;
Um eine Bestellung auszuliefern, muss sich ein Mitarbeiter für eine oder mehrere Bestellungen in der Fahrererfassung eintragen. &amp;lt;br/&amp;gt;&lt;br /&gt;
Die Bestellungen werden dann vom System als erledigt gesehen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellung abschließen===&lt;br /&gt;
Eine Bestellung kann durch einscannen der Mitarbeiter und einscannen der Rechnung abgeschlossen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Das System sieht diese Bestellung dann als erledigt und listet diese nicht mehr auf. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Abmelden===&lt;br /&gt;
Ist ein Mitarbeiter fertig mit seiner Schicht, kann er sich im Kassenmenü abmelden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Wenn der Mitarbeiter ein Privatfahrzeug mit angemeldet hatte, fragt das System nach den Kilometerstand um die Fahrtkosten zu erstatten. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Menü-Erläuterung==&lt;br /&gt;
Hier wird ihnen das Kassenmenü gezeigt und erklärt &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie-Kassenmenü.png|325px|Das Kassenmenü]]&lt;br /&gt;
&lt;br /&gt;
===Telefon ändern===&lt;br /&gt;
Ein neuer Kunde kann ins System eingetragen und mit {{Key|F2}} gespeichert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Straße ändern===&lt;br /&gt;
Hier kann die Adresse des ausgewählten Kunden gepflegt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bemerkung Kunde eingeben===&lt;br /&gt;
Wenn der Kunde bestimmte Wünsche hat oder wichtige Information gibt, kann diese in die Bemerkung vermerkt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bestellliste anzeigen===&lt;br /&gt;
Hier werden alle verbuchten Bestellungen aufgelistet. Eine Bestellung kann nach Wunsch mit {{Key|F3 Druck}} nachgedruckt oder eingesehen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Namen ändern===&lt;br /&gt;
Der Name des ausgewählten Kunden kann gepflegt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Gutschrift eingeben===&lt;br /&gt;
Hier kann eine Gutschrift eingegeben werden. Dies geht aber nur, wenn {{Key|F2 Bon}} schon gedrückt wurde. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Offene Bestellungen===&lt;br /&gt;
Hier werden alle Bestellungen aufgelistet die noch nicht verbucht worden sind. Wenn sich etwas an der Bestellung ändert, kann man diese unter {{Key|F10}} „Weitere Funktionen“ nachträglich bearbeiten. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mindestbestellwert===&lt;br /&gt;
Der Mindestbestellwert kann verändert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Auswertung===&lt;br /&gt;
Hat noch keine Funktion &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Geld-Abgang===&lt;br /&gt;
Wenn Geld aus der Kasse entnommen wurde, muss dies hier angegeben werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Geld-Zugang===&lt;br /&gt;
Wenn Geld in die Kasse hinzugefügt wurde, muss dies hier angeben werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stammdaten===&lt;br /&gt;
In den Stammdaten können verschiedene Daten bearbeitet werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:Systemgastronomie Untermenü-Stammdaten.png|325px|Das Untermenü von Stammdaten]]&lt;br /&gt;
&lt;br /&gt;
====Buchungstexte Abgang/Zugang bearbeiten====&lt;br /&gt;
Hier können die Geldzugänge / Geldausgänge die Buchungstexte gepflegt werden. Es können hier auch mit einfg neue Verwendungszwecke hinzugefügt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F3}} kann ein Kassenbuchtext ausgedruckt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Liste Geld – Abgang/Zugang====&lt;br /&gt;
Hier werden die Geldzugänge und -abgänge aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter bearbeiten====&lt;br /&gt;
Hier werden die Daten der Mitarbeiter gepflegt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Fahrzeuge bearbeiten====&lt;br /&gt;
Hier werden die Daten der Fahrzeuge gepflegt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====PLZ-Ort Straße bearbeiten====&lt;br /&gt;
Hier werden die Daten von Orten gepflegt. Hier kann man auch den Mindestbestellwert für einen Ort eingeben. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Bestell Historie====&lt;br /&gt;
Hier werden alle Bestellungen aufgelistet. Eine Bestellung kann mit {{Key|F3}} nachgedruckt oder eingesehen werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter KM/Lohn Historie====&lt;br /&gt;
Hier werden die Daten wie Lohn pro Stunde, Lohn, gefahrene Kilometer, Kilometer Geld und etc. aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Hauptkasse definieren====&lt;br /&gt;
Zeigt die genutzte Kasse mit Kassenbeständen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Config====&lt;br /&gt;
Hier kann die Kasse konfiguriert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Abholbestellung===&lt;br /&gt;
Möchte der Kunde seine Bestellung selber abholen, kann diese damit markiert werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit Termin kann auch der Abholtermin eingegeben werden (Siehe Termin). &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===EC Zahlung===&lt;br /&gt;
Hier wird vermerkt, ob die Bestellung mit der EC-Karte bezahlt wurde. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Im Haus===&lt;br /&gt;
Möchte der Kunde seine Bestellung gleich in der Filiale essen, kann diese mit „Im Haus“ gekennzeichnet werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Online Payment===&lt;br /&gt;
Hier wird vermerkt, ob die Bestellung aus dem Internet kommt. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mitarbeiter abmelden===&lt;br /&gt;
Ist ein Mitarbeiter fertig, so kann er sich hier abmelden. Es wird dann automatisch ein Dokument erstellt. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Stundenerfassung===&lt;br /&gt;
Her werden alle Mitarbeiter aufgelistet, um auf ihre Datensätze zuzugreifen. &amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F6}} wird eine Liste ausgegeben die auflistet was ein Mitarbeiter für Aufgaben tätigte.&amp;lt;br/&amp;gt;&lt;br /&gt;
Mit {{Key|F10}} wird ein Optionsfenster geöffnet, darin sind folgende Optionen:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter inaktiv setzen====&lt;br /&gt;
Setzt ausgewählten Mitarbeiter inaktiv. So wird dieser vom System nicht mehr beachtet und wird von vielen Listen ausgeblendet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mitarbeiter reaktivieren====&lt;br /&gt;
Reaktiviert einen ausgewählten Mitarbeiter. Dieser wird dann wieder vom System berücksichtigt und wird wieder auf Listen aufgelistet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====QR-Code anzeigen====&lt;br /&gt;
Zeigt den QR-Code des ausgewählten Mitarbeiters an. Dieser kann mit {{Key|F2}} kopiert oder mit {{Key|F3}} ausgedruckt werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====QR-Zeiten Excel Monatsauswertung aller Mitarbeiter====&lt;br /&gt;
Es wird eine Excel-Datei ausgegeben die die Monatsauswertung aller Mitarbeiter beinhaltet. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Termin===&lt;br /&gt;
Hier kann man auf der Bestellung ein Abholtermin vermerken. &amp;lt;br/&amp;gt;&lt;br /&gt;
Kann entfernt werden durch wiederholtes aufrufen der Funktion und leer lassen des Textfeldes. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Umsatzbericht===&lt;br /&gt;
Listet bei „Ja“ den Tagesumsatz auf und bei „Nein“ den Monatsumsatz. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Vorbestellung===&lt;br /&gt;
Hier wird eine Bestellung als Vorbestellung markiert. Vorbestellungen können nicht im aktuellem Datum gemacht werden, sondern müssen in der Zukunft liegen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tagesumsatz verbuchen===&lt;br /&gt;
Dient nur zum manuellen Nachbuchen. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tagesabschlussbericht drucken===&lt;br /&gt;
Am Ende eines Tages müssen die Kassen überprüft werden. &amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Neuer Benutzer===&lt;br /&gt;
Hier kann man einen Benutzer ummelden. &amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Hauptseite&amp;diff=58090</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Hauptseite&amp;diff=58090"/>
		<updated>2020-07-29T06:36:51Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;big&amp;gt;Willkommen im Wiki vom Online-Business-System.&amp;lt;/big&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
Hier finden Sie viele nützliche Tipps und Hilfestellungen rund um OBS.&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Die Hilfeseiten befinden sich in ständiger Aktualisierung. Sollten Sie Fragen, Wünsche oder Anregungen haben, teilen Sie uns diese gerne mithilfe unseres [[OBS/System/Ticket-System|Ticket-Systems]] mit.&amp;lt;br&amp;gt;&lt;br /&gt;
          &#039;&#039;&#039;Bitte beachten Sie unsere Hinweise zu Verbesserungsvorschlägen [[OBS/Häufig_gestellte_Fragen/Verbesserungswünsche|hier]]}} &lt;br /&gt;
{{Hinweis|Am &#039;&#039;&#039;25.05.2018&#039;&#039;&#039; trat die &#039;&#039;&#039;EU-Datenschutzgrundverordnung (DSGVO)&#039;&#039;&#039; in Kraft. Beachten Sie diesbezüglich die [[DSGVO|&amp;lt;u&amp;gt;Informationen&amp;lt;/u&amp;gt;]] zum Vorgehen in OBS.}}&lt;br /&gt;
{{Hinweis|Ab dem &#039;&#039;&#039;01.01.2020&#039;&#039;&#039; treten neue Gesetzesänderungen bezüglich des Kassenbetriebes (z.B. TSE) in Kraft. Beachten Sie diesbezüglich die [[TSE|&amp;lt;u&amp;gt;Informationen&amp;lt;/u&amp;gt;]] zum Vorgehen in OBS.}}&lt;br /&gt;
{{Hinweis|Eine Wikihilfe für die voraussichtliche Absenkung des Umsatzsteuersatzes vom &#039;&#039;&#039;1.7.2020&#039;&#039;&#039; bis &#039;&#039;&#039;31.12.2020&#039;&#039;&#039; von 19% auf 16% bzw. von 7% auf 5% steht Ihnen ab &#039;&#039;&#039;KW 25&#039;&#039;&#039; für OBS und OBS Kasse zu Verfügung. Die Seite der Wikihilfe finden Sie [[Absenkung des Umsatzsteuersatzes|&amp;lt;u&amp;gt;hier&amp;lt;/u&amp;gt;]].}}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- --&amp;gt;{{/Orientierung1|Tango-Help-browser.svg|Hilfe|&lt;br /&gt;
* [[Hilfe:Einleitung|Wiki-Hilfe]]&lt;br /&gt;
* [[Häufig gestellte Fragen|Häufig gestellte Fragen]]&lt;br /&gt;
* [[Anwendertreffen|Anwendertreffen]]&lt;br /&gt;
{{/Orientierung2|System-search.svg|Suche / Listen / Allgemeines|&lt;br /&gt;
* [[OBS/Listen/Listen in OBS|Listen in OBS]]&lt;br /&gt;
* [[OBS/Eingabemasken/Aufbau der Eingabemasken|Eingabemasken]]&lt;br /&gt;
* [[OBS/Drucke/Allgemeines zu Drucken|Drucke]]&lt;br /&gt;
* [[OBS/Listen/Tasten und Schaltflächen|Tasten und Schaltflächen]]&lt;br /&gt;
* [[OBS/Tastenkürzel|Tastenkürzel]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Wie funktionieren Platzhalter|Platzhalter]]&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Archivfunktion|Archivfunktion]]&lt;br /&gt;
* [[OBS/Eingabemasken/Positionen|Positionserfassung]]&lt;br /&gt;
* [[OBS/Systemadministration|Systemadministration]]&lt;br /&gt;
* [[OBS/Makros_und_Scripting|Makros und Scripting]]&lt;br /&gt;
* [[OBS/Eigenschaften|Eigenschaften]]&lt;br /&gt;
}}&lt;br /&gt;
{{/Orientierung2|Blockdevice.png|OBS-Module|&lt;br /&gt;
* [[Kostenfreie Module]]&lt;br /&gt;
* [[Kostenpflichtige Module]]&lt;br /&gt;
* [[OBS/Branchenspezifische Module|Branchenspezifische Module]]&lt;br /&gt;
* [[OBS/Widgets/Allgemein|Widgets]]&lt;br /&gt;
* [[OBS/Stammdaten/Schnittstellen/Internet-Shop|Shopschnittstellen]]&lt;br /&gt;
* [[OBS/App/Allgemein|OBS-App]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;br /&gt;
&amp;lt;!-- --&amp;gt;{{/Orientierung1|Edit-paste.svg|Auftragsbearbeitung|&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Angebot/Angebot|Angebot]]&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Anzahlung/Liste|Anzahlung]]&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Aufträge/Aufträge|Auftrag]]&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Rechnungen/Rechnungen|Rechnung]]&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Lieferscheine/Lieferscheine|Lieferschein]]&lt;br /&gt;
* [[OBS/Stammdaten/Weitere Stammdaten/Mitarbeiter|Stundenerfassung]]&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Material / Lieferanten|Material/Lieferanten]]&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Einkäufe/Einkäufe|Einkauf]]&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Einkaufslieferscheine/Einkaufslieferscheine|Einkaufslieferschein]]&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Bestellung/Bestellung|Bestellungen]]&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Reparatur-Aufträge/Reparatur-Aufträge|Reparaturaufträge]]&lt;br /&gt;
* [[FRMGERAET|Geräteverwaltung]]&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Rahmenverträge|Rahmenverträge]]&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Lagerumbuchung|Lagerumbuchung]]&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Lagerauftrag|Lagerauftrag]]&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Produktionsauftrag|Produktionsauftrag]]&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Retoure|Retoure]]&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Verbuchen|Verbuchen]]&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Buchungsprotokoll|Buchungsprotokoll]]&lt;br /&gt;
* [[OBS/Auftragsbearbeitung/Monatswechsel|Monatswechsel]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- --&amp;gt;{{/Orientierung1|Kcalc.png‎|FIBU|&lt;br /&gt;
* [[OBS/FIBU/Buchungserfassung|Buchungserfassung]]&lt;br /&gt;
* [[OBS/FIBU/Journal|Journal]]&lt;br /&gt;
* [[OBS/FIBU/Stapelerfassung|Stapelbearbeitung]]&lt;br /&gt;
* [[OBS/FIBU/Kontenverwaltung|Kontenverwaltung]]&lt;br /&gt;
* [[OBS/FIBU/Steuerkonten|Steuerkonten]]&lt;br /&gt;
* [[OBS/FIBU/Manuelles Bankclearing|Manuelles Bankclearing]]&lt;br /&gt;
* [[OBS/FIBU/Offene Posten|Offene Postenverwaltung]]&lt;br /&gt;
* [[OBS/FIBU/Mandant|Mandanten]]&lt;br /&gt;
* [[OBS/FIBU/Stammdaten|Stammdaten]]&lt;br /&gt;
* [[OBS/FIBU/Kostenstellen|Kostenstellenrechnung]]&lt;br /&gt;
* [[OBS/FIBU/Berichte / Listen|Auswertungen]]&lt;br /&gt;
* [[OBS/FIBU/Monatswechsel|Monatswechsel]]&lt;br /&gt;
* [[OBS/FIBU/Jahreswechsel|Jahreswechsel]]&lt;br /&gt;
* [[OBS/FIBU/Vorjahre|Vorjahre]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- --&amp;gt;{{/Orientierung1|Spreadsheet.png |Auswertung|&lt;br /&gt;
* [[OBS/AUSWERTUNG/Auswertung|Auswertung]]&lt;br /&gt;
* [[OBS/Statistiken/Berichte/Statistiken und Berichte|Statistik/Berichte]]&lt;br /&gt;
* [[OBS/Auswertung/Mitarbeiterstatistik|Mitarbeiterstatistik]]&lt;br /&gt;
* [[OBS/Auswertungen/Offene Posten Verwaltung|Offene Postenverwaltung]]&lt;br /&gt;
* [[OBS/Auswertungen/Datev-Schnittstelle|DATEV-Schnittstelle]]&lt;br /&gt;
* [[OBS/Auswertung/Hausbanken|Hausbanken]]&lt;br /&gt;
* [[OBS/Auswertung/Bank-Clearing Einstellung|Bank-Clearing Einstellung]]&lt;br /&gt;
* [[OBS/Auswertungen/Inventur Artikel|Inventur Artikel]]&lt;br /&gt;
* [[OBS/Auswertung/SQL Exporter Designer|Data In/Out]]&lt;br /&gt;
* [[OBS/Kasse/Auswertung|Kassenauswertung]]&lt;br /&gt;
----&lt;br /&gt;
*[[Auswertungstypen|Auswertungstypen]]&lt;br /&gt;
{{/Orientierung2|Cashregister.png|Kasse|&lt;br /&gt;
* [[OBS/OBS-Kasse|Allgemein]]&lt;br /&gt;
* [[OBS/OBS-Kasse/Schnelleinstieg|Schnelleinstieg]]&lt;br /&gt;
* [[OBS/Kasse/Erläuterung_Space_Menü#Das_.22Leertasten.22-Men.C3.BC|Leertasten-Menü]]&lt;br /&gt;
* [[OBS/Kasse/Erläuterung_Menüleiste|Menüleiste]]&lt;br /&gt;
* [[OBS/Kasse/Erläuterung_Magnetkey|Magnetschlüssel]]&lt;br /&gt;
* [[OBS/Kasse/Kassennachschau|Kassennachschau]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- --&amp;gt;{{/Orientierung1|Kpdf.png|Stammdaten|&lt;br /&gt;
* [[OBS/Stammdaten/Personen|Personen]]&lt;br /&gt;
* [[OBS/Stammdaten/Artikel|Artikel]]&lt;br /&gt;
* [[OBS/Stammdaten/Warengruppen|Warengruppen]]&lt;br /&gt;
* [[OBS/Weitere Stammdaten/Leistungen|Leistungen]]&lt;br /&gt;
* [[OBS/Weitere Stammdaten/Erlöskonten|Erlöskonten]]&lt;br /&gt;
* [[OBS/Weitere Stammdaten/Textbausteine|Textbausteine]]&lt;br /&gt;
* [[OBS/Weitere Stammdaten/Formulare|Formulare]]&lt;br /&gt;
* [[OBS/Stammdaten/Schnittstellen|Schnittstellen]]&lt;br /&gt;
* [[OBS/Weitere Stammdaten/Verträge|Verträge]]&lt;br /&gt;
* [[OBS/Stammdaten/PSV-Verwaltung|PSV-Verwaltung]]&lt;br /&gt;
* [[OBS/Stammdaten/E-Mail|E-Mail]]&lt;br /&gt;
* [[OBS/Stammdaten/Projektverwaltung|Projektverwaltung]]&lt;br /&gt;
* [[OBS/Stammdaten/Infoverwaltung|Infoverwaltung]]&lt;br /&gt;
* [[OBS/Stammdaten/Faxverwaltung|Faxverwaltung]]&lt;br /&gt;
* [[OBS/Stammdaten/Automatische Vorgänge|Automatische Vorgänge]]&lt;br /&gt;
* [[OBS/Stammdaten/SMS-Verwaltung|SMS-Verwaltung]]&lt;br /&gt;
* [[OBS/Stammdaten/Programmparameter|Programmparameter]]&lt;br /&gt;
----&lt;br /&gt;
* [[OBS/Stammdaten/Weitere Stammdaten|Weitere Stammdaten]]&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- --&amp;gt;{{/Orientierung1|Kcmsystem.png|System|&lt;br /&gt;
* [[OBS/System/Info|Info]]&lt;br /&gt;
* [[OBS/System/Neuer Benutzer|Neuer Benutzer]]&lt;br /&gt;
* [[OBS/System/Konstanten|Konstanten]]&lt;br /&gt;
* [[OBS/System/Sonderprogramme|Sonderprogramme]]&lt;br /&gt;
* [[OBS/System/Benutzer|Benutzerpflege]]&lt;br /&gt;
* [[OBS/System/Taschenrechner|Taschenrechner]]&lt;br /&gt;
* [[OBS/System/Menülevel ändern|Menülevel ändern]]&lt;br /&gt;
* [[OBS/System/Reportlevel ändern|Reportlevel ändern]]&lt;br /&gt;
* [[OBS/System/Stammdatenlevel ändern|Stammdatenlevel ändern]]&lt;br /&gt;
* [[OBS/System/Internet Update|Internet Update]]&lt;br /&gt;
* [[OBS/System/Ticket-System|Ticket-System]]&lt;br /&gt;
* [[OBS/System/Systemstörungen_von_Serversystemen|Systemstörungen von Serversystemen]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Portal]]&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/H%C3%A4ufig_gestellte_Fragen/Verbesserungsw%C3%BCnsche&amp;diff=58089</id>
		<title>OBS/Häufig gestellte Fragen/Verbesserungswünsche</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/H%C3%A4ufig_gestellte_Fragen/Verbesserungsw%C3%BCnsche&amp;diff=58089"/>
		<updated>2020-07-29T06:35:04Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Häufig gestellte Fragen}}&lt;br /&gt;
&lt;br /&gt;
==Aufnahme von Verbesserungsvorschlägen / Wünschen==&lt;br /&gt;
Da bei uns mehrere Hundert Verbesserungswünsche in einem Jahr eingehen, werden wir diese in unsere Supportverwaltung aufnehmen.&amp;lt;br&amp;gt;&lt;br /&gt;
Sie erhalten von uns nach der Anlage eine Referenznummer zu Ihrem Anliegen.&amp;lt;br&amp;gt;&lt;br /&gt;
Das Entsprechende Ticket oder die Mail werden danach von uns auf erledigt gesetzt.&lt;br /&gt;
Die Liste der Wünsche wird von uns periodisch (vierteljährlich/halbjährlich) durchgegangen und priorisiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Diese ausgeführten Änderungen sind kostenlos. Da wir nicht allen Wünschen sofort nachkommen können bitten wir sie um Ihr Verständnis.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn ihr Änderungswunsch für sie wichtig ist, können sie ein Angebot anfordern. Dieses wird dann priorisiert verarbeitet, ist aber kostenpflichtig.&lt;br /&gt;
&lt;br /&gt;
==Ausführung von Verbesserungsvorschlägen / Wünschen==&lt;br /&gt;
Wenn ein Anliegen abgearbeitet wurde, wird die Beschreibung samt der Referenznummer in der Update-Info veröffentlicht.&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/H%C3%A4ufig_gestellte_Fragen/Verbesserungsw%C3%BCnsche&amp;diff=58088</id>
		<title>OBS/Häufig gestellte Fragen/Verbesserungswünsche</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/H%C3%A4ufig_gestellte_Fragen/Verbesserungsw%C3%BCnsche&amp;diff=58088"/>
		<updated>2020-07-29T06:24:15Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: Die Seite wurde neu angelegt: „{{Häufig gestellte Fragen}}“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Häufig gestellte Fragen}}&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Vorlage:H%C3%A4ufig_gestellte_Fragen&amp;diff=58087</id>
		<title>Vorlage:Häufig gestellte Fragen</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Vorlage:H%C3%A4ufig_gestellte_Fragen&amp;diff=58087"/>
		<updated>2020-07-29T06:23:42Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right; clear:both; margin-left:2px; padding:0px; background:#FFFFFF; width:19em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:none;margin-top:0pt;padding:0pt;&amp;quot; id=&amp;quot;navigation&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative;top:-20pt;color:#000000;background:#ffffff; border: 3pt double #cfcfcf; padding: 5pt; margin: 0pt;margin-bottom:-20pt; z-index:1;border-top-right-radius:7pt;-moz-border-radius-topright:7pt;-webkit-border-top-right-radius:7pt;border-bottom-left-radius:7pt;-moz-border-radius-bottomleft:7pt;-webkit-border-bottom-left-radius:7pt;box-shadow: 3px 3px 4px #c0c0c0;-webkit-box-shadow: 3px 3px 4px #c0c0c0;-moz-box-shadow: 3px 3px 4px #c0c0c0;&amp;quot;&amp;gt;[[Hauptseite|Wiki]] » [[Häufig gestellte Fragen|FAQ]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Textbox-Blau|1=FAQ|2=&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
;&#039;&#039;&#039;Allgemeines&#039;&#039;&#039;&lt;br /&gt;
* [[OBS/Häufig_gestellte_Fragen/Hardwareanforderungen|Systemvoraussetzungen]]&lt;br /&gt;
* [[OBS/Häufig_gestellte_Fragen/Verbesserungswünsche|Verbesserungswünsche]]&lt;br /&gt;
* [[OBS/Häufig_gestellte_Fragen/OBS-Vertrag|OBS-Vertrags-Bedingungen]]&lt;br /&gt;
* [[OBS/Häufig_gestellte_Fragen/MySQL Datenbank|Welche Datenbank verwendet mein OBS?]]&lt;br /&gt;
* [[OBS/Häufig_gestellte_Fragen/Video Anleitungen|Video Anleitungen]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/GAEB 90|Import eines Leistungsverzeichnisses]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Exportieren von Bestellpositionen|Exportieren von Bestellpositionen]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Wie kann man aus OBS Serienbriefe erstellen?|Erstellen von Serienbriefen aus OBS]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Erstellen von Serien E-Mails mit OBS|Erstellen von Serien E-Mails mit OBS]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Rechnungen per Mail versenden|Rechnungen per Mail/Fax versenden]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Wie kann man in Word Dokument-Vorlagen erstellen, die mit den Daten aus OBS gefüllt werden?|Erstellen von Vorlagen in Word]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Erstellen von Abschlagsrechnungen und Schlussrechnungen|Erstellen von Abschlagsrechnungen]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Wie werden personenbezogene Artikelpreise verwaltet|Wie werden personenbezogene Artikelpreise verwaltet?]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Kopieren von personenbezogenen Artikelpreisen|Kopieren von personenbezogenen Artikelpreisen]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Wie kann man Scannerdaten einlesen und in die Inventur übernehmen?|Scannerdaten einlesen und in die Inventur übernehmen]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Versenden von Angeboten mit Outlook|Versenden von Angeboten mit Outlook]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Wann verändert sich der Artikelbestand|Wann verändert sich der Artikelbestand]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Datensicherung OBS|Datensicherung / Backup von OBS]]&lt;br /&gt;
* [[OBS/Internet-Shop/ShopV4/FAQs|Shop-Schnittstelle VShop 4.0]]&lt;br /&gt;
* [[OBS/Stammdaten/Schnittstellen/Internet-Shop-xtcModified/FAQs|Shop-Schnittstelle modified eComerce]]&lt;br /&gt;
* [[OBS/Preislisten/FAQ Preislisten|Preislisten]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Win10_Update_Verzoegern|Win10 Updates verzögern]]&lt;br /&gt;
* [[OBS/Häufig_gestellte_Fragen/Nummernkreis_erschöpft|Nummernkreis erschöpft]]&lt;br /&gt;
* [[OBS/Häufig_gestellte_Fragen/PDF/A|PDF/A]]&lt;br /&gt;
* [[OBS/Kasse/Kassennachschau|Kassennachschau]]&lt;br /&gt;
* [[OBS/Häufig_gestellte_Fragen/Fehler bei FTP-Verarbeitung|Fehler bei FTP-Verarbeitung]]&lt;br /&gt;
* [[OBS/Häufig_gestellte_Fragen/Unbekannte Tracking ID|Unbekannte Tracking ID]]&lt;br /&gt;
* [[OBS/Häufig_gestellte_Fragen/Windows-Anzeigenskalierung|Windows-Anzeigenskalierung]]&lt;br /&gt;
* [[OBS/Häufig_gestellte_Fragen/Lieferantenanbindungen|Welche Anbindungen an Lieferanten gibt es?]]&lt;br /&gt;
* [[OBS/Häufig_gestellte_Fragen/Wie können Seriennummern geändert werden?|Wie können Seriennummern geändert werden?]]&lt;br /&gt;
;&#039;&#039;&#039;Wie funktionierts?&#039;&#039;&#039;&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Anlage_eines_Benutzers|Anlage eines Benutzers]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Auswerten von Personen mit Hilfe von Eigenschaften|Personenauswertung mit Eigenschaften]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Wie funktionieren Personenbezogene Leistungen?|Personenbezogene Leistungen]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Wie verwalte ich Urlaub und Krankheitstage in OBS?|Wie verwalte ich Urlaub und Krankheitstage in OBS?]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Einlesen von Artikelpflegedateien|Die Artikelpflege]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Vorgehensweise bei der Inventur|Die Inventur]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Wie funktioniert die Zählerstandsabfrage?|Die Zählerstandsabfrage]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Wie gelangen die Rechnungen zum Steuerberater?|Wie gelangen die Rechnungen zum Steuerberater?]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Wie funktionieren Platzhalter|Wie funktionieren Platzhalter?]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Wie kann man Begriffe und E-Mailadressen manuell in den Spamfilter eintragen?|Begriffe und E-Mailadressen in den Spamfilter eintragen]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Wie kann man Eigenschaften bei Personen hinterlege?|Eigenschaften bei Personen hinterlegen]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Wie kann man Einmal-/Bonusartikel erstellen?|Einmal-/Bonusartikel erstellen]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Wie funktioniert der Amazonexport?|Wie funktioniert der Amazonexport?]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Marketing Aktionen mit OBS|Marketing Aktionen mit OBS]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Skonto und Rabatt bei mehreren Steuersätzen|Skonto und Rabatt bei mehreren Steuersätzen]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Personendokumente|Nutzung der Personendokumente-Funktion]]&lt;br /&gt;
* [[OBS/Häufig gestellte Fragen/Preislisten und Projektnummern|Preislisten und Projektnummern]]&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Folgender Code muss in die jeweils gewünschte Seite hinzugefügt werden:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{Vorlage:Häufig gestellte Fragen}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
[[Kategorie:Templates/Navigationen]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:OBS/Häufig gestellte Fragen]]&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Datei:Mobile_Office_Kompendium.pdf&amp;diff=57734</id>
		<title>Datei:Mobile Office Kompendium.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Datei:Mobile_Office_Kompendium.pdf&amp;diff=57734"/>
		<updated>2020-03-27T07:48:25Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Datei:Mobile_Office_Kompendium_Rev1.pdf&amp;diff=57650</id>
		<title>Datei:Mobile Office Kompendium Rev1.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Datei:Mobile_Office_Kompendium_Rev1.pdf&amp;diff=57650"/>
		<updated>2020-03-20T08:09:30Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Datei:Mobileoffice.png&amp;diff=57649</id>
		<title>Datei:Mobileoffice.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Datei:Mobileoffice.png&amp;diff=57649"/>
		<updated>2020-03-20T08:09:17Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Datei:Meeting_Kompendium.png&amp;diff=57645</id>
		<title>Datei:Meeting Kompendium.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Datei:Meeting_Kompendium.png&amp;diff=57645"/>
		<updated>2020-03-20T08:05:46Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Datei:Meeting_Kompendium.pdf&amp;diff=57640</id>
		<title>Datei:Meeting Kompendium.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Datei:Meeting_Kompendium.pdf&amp;diff=57640"/>
		<updated>2020-03-20T08:00:10Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Adminhilfe/Homeoffice&amp;diff=57639</id>
		<title>OBS/Adminhilfe/Homeoffice</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Adminhilfe/Homeoffice&amp;diff=57639"/>
		<updated>2020-03-20T07:59:34Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: Weiterleitung nach OBS/Adminhilfe/Mobileoffice erstellt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#WEITERLEITUNG [[OBS/Adminhilfe/Mobileoffice]]&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Adminhilfe/Homeoffice&amp;diff=57620</id>
		<title>OBS/Adminhilfe/Homeoffice</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Adminhilfe/Homeoffice&amp;diff=57620"/>
		<updated>2020-03-17T09:21:25Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: Wiki-Admin verschob die Seite OBS/Adminhilfe/Homeoffice nach OBS/Mobileoffice&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#WEITERLEITUNG [[OBS/Mobileoffice]]&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Datei:Y008P6NJCF_THIEL.PNG&amp;diff=57610</id>
		<title>Datei:Y008P6NJCF THIEL.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Datei:Y008P6NJCF_THIEL.PNG&amp;diff=57610"/>
		<updated>2020-03-16T12:14:58Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Datei:RDP_Monitor.png&amp;diff=57602</id>
		<title>Datei:RDP Monitor.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Datei:RDP_Monitor.png&amp;diff=57602"/>
		<updated>2020-03-16T09:39:34Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=Vorlage:ZugriffOBS&amp;diff=57600</id>
		<title>Vorlage:ZugriffOBS</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=Vorlage:ZugriffOBS&amp;diff=57600"/>
		<updated>2020-03-16T09:28:29Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;accesscontrol&amp;gt;Programmierer&amp;lt;/accesscontrol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;Navigation zwischen den Seiten des Namensraumes für OBS Programmierer (Adminhilfe).&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right; clear:both; margin-left:2px; padding:0px; background:#FFFFFF; width:19em&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border:none;margin-top:0pt;padding:0pt;&amp;quot; id=&amp;quot;navigation&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;position:relative;top:-20pt;color:#000000;background:#ffffff; border: 3pt double #cfcfcf; padding: 5pt; margin: 0pt;margin-bottom:-20pt; z-index:1;border-top-right-radius:7pt;-moz-border-radius-topright:7pt;-webkit-border-top-right-radius:7pt;border-bottom-left-radius:7pt;-moz-border-radius-bottomleft:7pt;-webkit-border-bottom-left-radius:7pt;box-shadow: 3px 3px 4px #c0c0c0;-webkit-box-shadow: 3px 3px 4px #c0c0c0;-moz-box-shadow: 3px 3px 4px #c0c0c0;&amp;quot;&amp;gt;[[Hauptseite|Wiki]] » [[Admin|Admin-Hilfe]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{Vorlage:Textbox-Rot|1=Admin-Hilfe |2=&lt;br /&gt;
&amp;lt;small&amp;gt;&lt;br /&gt;
{{Vorlage:Klapptext|kopf=FAQ|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Datenausführungsverhinderung ausschalten|DEP deaktivieren]]&lt;br /&gt;
* [[OBS/Adminhilfe/Bildschirmdarstellsung der Listen und Masken unter Windows Vista und Windows 7|Darstellung unter Windows 7]]&lt;br /&gt;
* [[OBS/Adminhilfe/Einwahl Windows 2000|Einwahl auf Windows 2000 Server]]&lt;br /&gt;
* [[OBS/Preislistenhilfe|Preislisten]]&lt;br /&gt;
** [[OBS/Häufig gestellte Fragen/Pflege von Preislisten / Preisgruppen|Preislistenpflege]]&lt;br /&gt;
* [[OBS/Adminhilfe/Periodisches Datenbank-Backup mit dem Scheduler|Datenbank Sicherung]]&lt;br /&gt;
* [[OBS/Adminhilfe/Anleitung Customize Edit|Customize]]&lt;br /&gt;
* [[OBS/Adminhilfe/Zentrallösung|Zentrale]]&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL Korrekturen|MySQL Korrekturen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Support Macro|Support Macro]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Debug|Service Debug]]&lt;br /&gt;
* [[OBS/Adminhilfe/Historienprotokoll|Historienprotokoll (Datenänderung OBS)]]&lt;br /&gt;
* [[OBS/Adminhilfe/Fernwartung|Fernwartungsprobleme]]&lt;br /&gt;
* [[OBS/Adminhilfe/Startparameter|Startparameter]]&lt;br /&gt;
* [[OBS/Adminhilfe/Kassenabschluss_korrigieren|Fehler beim Kassenabschluss]]&lt;br /&gt;
* [[OBS/Adminhilfe/Diverses|Diverse Informationen]]&lt;br /&gt;
{{vorlage:Klapptext|kopf=FIBU|inhalt=&lt;br /&gt;
&lt;br /&gt;
* [[OBS/Adminhilfe/E-BANKO Löschen|E-BANKO Löschen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Buchung offene Posten|Buchungsmöglichkeiten mit offenen Posten]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{vorlage:Klapptext|kopf=Häufige Fehler FAQs|inhalt=&lt;br /&gt;
&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige Shop-Fehler|Shop Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige OBS-MAIL Fehler|OBS-MAIL Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige OBS-FTP Fehler|OBS-FTP Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige Service Fehler|Service Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige Druck Fehler|Druck Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige FIBU Fehler|FIBU Fehler]]&lt;br /&gt;
* [[OBS/Adminhilfe/Häufige Preis-Fehler|Preis-Fehler]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Allgemeines|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Homeoffice|Home Office Kompendium]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Tools|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Tools|Auflistung verschiedener Tools]]&lt;br /&gt;
* [[OBS/Adminhilfe/Demo Builder|Videos mit Demo Builder]]&lt;br /&gt;
* [[OBS/Adminhilfe/Open Broadcaster Software|Videos mit Open Broadcaster Software]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS-Monitor|OBS-Monitor]]&lt;br /&gt;
}}&lt;br /&gt;
* [[OBS/Adminhilfe/Kassendruck für Terminalserverbetrieb einrichten|Kassendruck für Terminalserverbetrieb einrichten]]&lt;br /&gt;
* [[OBS/Adminhilfe/KundenSysInfo|KundenSysInfo]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Updates und deren Ablauf|OBS Update]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Update(alt)|OBS Update(alt)]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Versionshistorie|OBS Versionshistorie]]&lt;br /&gt;
* [[OBS/Adminhilfe/Flex Archiv Kontrolle|Flex Archiv Kontrolle]]&lt;br /&gt;
* [[OBS/Adminhilfe/RTF|RTF-Umstellung]]&lt;br /&gt;
* [[OBS/Adminhilfe/Druckumstellung| Druckumstellung]]&lt;br /&gt;
* [[OBS/Adminhilfe/PDF-Generierung| PDF-Generierung]]&lt;br /&gt;
* [[OBS/Adminhilfe/SupportBerrechnung|Support Berechnen]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS-Hilfetexte erstellen|OBS-Hilfetexte erstellen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Batch-Befehle|Nützliche Batch-Befehle (CMD)]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Widgets|inhalt=&lt;br /&gt;
*[[OBS/Adminhilfe/ OBS Logs/Protokolle| OBS Logs/Protokolle]]&lt;br /&gt;
*[[OBS/Adminhilfe/ MySQL Process Liste| MySQL Process Liste]]&lt;br /&gt;
*[[OBS/Adminhilfe/ Ticketsystem| Ticketsystem]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{vorlage:Klapptext|kopf=Wiki Hilfe|inhalt=&lt;br /&gt;
  {{vorlage:Klapptext|kopf=Syntax|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/SyntaxTabellen|Tabellen]]&lt;br /&gt;
* [[OBS/Adminhilfe/SyntaxBilder|Bilder]]&lt;br /&gt;
* [[OBS/Adminhilfe/Syntaxbefehle|Häufig Verwendet]]&lt;br /&gt;
* [[OBS/Adminhilfe/Artikel: HTML-Befehle für Textformatierung]]&lt;br /&gt;
* [[OBS/Adminhilfe/Textverknüpfungen|Textverknüpfungen]]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Extension:Cite/Cite.php/de Einzelnachweise]&lt;br /&gt;
  }}&lt;br /&gt;
* [[OBS/Adminhilfe/Wiki-Seiten erstellen|Wiki-Seiten erstellen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Wiki-Suche|Wiki Suche verwenden]]&lt;br /&gt;
* [[OBS/Adminhilfe/Wiki-Admin|Wiki-Admin]]&lt;br /&gt;
* [[OBS/Adminhilfe/Wiki Benutzer erstellen-bearbeiten|Wiki Benutzer erstellen-bearbeiten]]&lt;br /&gt;
  {{vorlage:Klapptext|kopf=Wiki-Gruppen Benutzerlisten|inhalt=&lt;br /&gt;
* [[Administrator|Administrator]]&lt;br /&gt;
* [[Programmierer|Programmierer]]&lt;br /&gt;
* [[Expert|Expert]]&lt;br /&gt;
* [[Bürokraten|Bürokraten]]&lt;br /&gt;
* [[IT-Techniker|IT-Techniker]]&lt;br /&gt;
* [[Officestar|Officestar]]&lt;br /&gt;
  }}&lt;br /&gt;
* [[OBS/Adminhilfe/veraltete Seiten|Veraltete Seiten]]&lt;br /&gt;
* [[OBS/Adminhilfe/Documentation Insight|Documentation Insight]]&lt;br /&gt;
* [[:Kategorie:Vorlage:Formatierungshilfe|Formatierungshilfe]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=MySQL|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL Tipps|MySQL Tipps]]&lt;br /&gt;
* [[OBS/Admihilfe/MySQL Aufgaben|MySQL Aufgaben]]&lt;br /&gt;
* [[OBS/Adminhilfe/Join Erläuterungen|MySQL Join Erläuterungen]]&lt;br /&gt;
* [[OBS/Admihilfe/Dump|Datenbankdump]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Programmierung und Mergen|inhalt=&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Delphi|inhalt=&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Einrichtung|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Anleitung zur Neuinstallatin von Borland Delphi 5|Delphiinstallation]]&lt;br /&gt;
* [[OBS/Adminhilfe/Delphi 5 Konfiguration|Delphi 5 Konfiguration]]&lt;br /&gt;
* [[OBS/Adminhilfe/Delphi 10 Konfiguration|Delphi 10 Konfiguration]]&lt;br /&gt;
* [[OBS/Adminhilfe/Vererbung Objectpascal|Vererbung Objectpascal]]&lt;br /&gt;
* [[OBS/Adminhilfe/Delphi IMP *.Pas-Dateien|Delphi IMP_*.PAS Dateien]]&lt;br /&gt;
* [[OBS/Adminhilfe/Delphi-Virus|Delphi-Virus (W32.Induc.A!dcu)]]&lt;br /&gt;
* [[OBS/Adminhilfe/ADOM Update|ADOM Update]]&lt;br /&gt;
* [[OBS/Adminhilfe/Allgemeine Fragen und Tipps zu Delphi|Allgemeine Fragen und Tipps zu Delphi]]&lt;br /&gt;
* [[OBS/Adminhilfe/Packages|Packages]]&lt;br /&gt;
* [[OBS/Adminhilfe/Generics|Generics in Delphi XE8]]&lt;br /&gt;
}}&lt;br /&gt;
* [[OBS/Adminhilfe/Code-Guideline|Guideline]]&lt;br /&gt;
* [[OBS/Adminhilfe/Syntax|Syntax-Regeln]]&lt;br /&gt;
* [[OBS/Adminhilfe/DebugTimer|DebugTimer]]&lt;br /&gt;
* [[OBS/Adminhilfe/SQLite|Arbeiten mit SQLite]]&lt;br /&gt;
* [[OBS/Adminhilfe/Schnittstelle testen|Schnittstelle testen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Semaphoren|Semaphoren]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Shop|inhalt=&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Git/SmartGit|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Git_Fork/Anleitung|Anleitung]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Programm Update|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update|Übersicht]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS_Programm_Update/Programm_Ini|Programm.ini]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Schaltflächen|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/Liste Weitere Funktionen/Source einspielen Main zu User|Source einspielen Main zu User]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/Liste Weitere Funktionen/Source einspielen User zu User|Source einspielen User zu User]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/Liste Weitere Funktionen/User Sourcen sichern|User Sourcen sichern]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/Liste Weitere Funktionen/Source Änderungen in den Versionen|Source Änderungen in den Versionen]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/F5 Projekte|F5 - Projekte]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/F6 Protokoll|F6 - Protokoll]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/F7 P-Lösch|F7 - Protokoll Löschen]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/F8 Update|F8 - Update]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Programm Update/F9 FTP|F9 - FTP]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=F10: Weitere Funktionen|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/OBS_Programm_Update/F10_Weitere_Funktionen|Übersicht]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=PAX|inhalt=&lt;br /&gt;
*[[OBS/Adminhilfe/Pax Konvertierung| Konvertierung]]&lt;br /&gt;
*[[OBS/Adminhilfe/Pax Ereignisbehandlung| Ereignisbehandlung]]&lt;br /&gt;
*[[OBS/Adminhilfe/Pax SQL-Export| SQL-Export]]&lt;br /&gt;
*[[OBS/Adminhilfe/Pax Customize| Customize-Scripte]]&lt;br /&gt;
*[[OBS/Adminhilfe/Pax Listenrework| Listenrework]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=OBS-Administration|inhalt=&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Einrichtung|inhalt=&lt;br /&gt;
{{Vorlage:Klapptext|kopf=MySQL|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL Installation|MySQL Installieren]]&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL Upgrade|MySQL Upgrade]]&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL Tipps|MySQL Tipps]]&lt;br /&gt;
* [[OBS/Adminhilfe/MySQL Datenbankeinstellungen|MySQL Tuning &amp;amp; Einstellungen]]&lt;br /&gt;
* [[OBS/Admihilfe/Dump|Datenbankdump]]&lt;br /&gt;
* [[Admin/SQL-Benutzer|Admin/SQL-Benutzer]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=OBS|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Artikelpflege Besonderheiten|Artikelpflege Besonderheiten]]&lt;br /&gt;
* [[OBS/Adminhilfe/Artikel Verfügbarkeit Einrichtung|Artikel Verfügbarkeit Einrichtung]]&lt;br /&gt;
* [[OBS/Adminhilfe/Kasseninstallation|Kasseninstallation]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS.ini|OBS.ini]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Extern|OBS-Extern]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS-Demo erzeugen|OBS Demo erzeugen]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Installation über Service|OBS-Installation]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS Installation über Service - Checkliste|OBS-Instalaltion Checkliste]]&lt;br /&gt;
* [[OBS/Adminhilfe/Serverumzug|Serverumzug]]&lt;br /&gt;
* [[OBS/Adminhilfe/Shortcuts|Shortcuts]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Dienste|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Dienste auf verschiedenen Servern|Dienste auf verschiedenen Servern]]&lt;br /&gt;
* [[OBS/Adminhilfe/Problembehandlung Dienste|Problembehandlung]]&lt;br /&gt;
* [[ADMINMAIL | Mail]]&lt;br /&gt;
** [[OBS/Adminhilfe/EMAILROU.ini|EMAILROU.ini]]&lt;br /&gt;
* [[ADMINFTP | FTP]]&lt;br /&gt;
** [[OBS/Adminhilfe/OBS FTP Sync|FTP Synchronisation]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS-FAX-MODUL|Fax]]&lt;br /&gt;
* [[OBS/Adminhilfe/OBS-Update|OBS Update]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Kasse/Notfallkasse|inhalt=&lt;br /&gt;
* [[Admin/Notfallkasse|Notfallkasse]]&lt;br /&gt;
* [[Admin/Notfallkassendrucksystem|Notfallkassendrucksystem]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Replikation|inhalt=&lt;br /&gt;
* [[Admin/Replikation/Allgemeine Informationen|Allgemeine Informationen]]&lt;br /&gt;
* [[Admin/Replikation/Segel Daten Replikation|Segel Daten Replikation]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Zentrale|inhalt=&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Fleet-Management einrichten|inhalt=&lt;br /&gt;
* [[Admin/Einrichtung/FleetManagement|Fleet-Management einrichten]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Admin Funktionen|inhalt=&lt;br /&gt;
{{vorlage:Klapptext|kopf=Service Firmen|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste|Service Firmen Liste]]&lt;br /&gt;
** [[OBS/Adminhilfe/Service Firmen/Liste/F6 Einwahl|F6 Einwahl]]&lt;br /&gt;
{{vorlage:Klapptext|kopf=F10|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/A ras.pbk|A ras.pbk]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/B Command Line Interpreter|B Command Line Interpreter]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/C File Zilla Benutzer XML erzeugen|C File Zilla Benutzer XML erzeugen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/D1 OBS_UPDATE.EXE zum OBS Update Server hochladen|D1 OBS_UPDATE.EXE zum OBS Update Server hochladen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/D2 SUPPORT_MACRO zum OBS Update Server hochladen|D2 SUPPORT_MACRO zum OBS Update Server hochladen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/H1 Remote Service Protokoll-Übersicht (Alles)|H1 Remote Service Protokoll-Übersicht (Alles)]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/H Remote Service Protokoll-Übersicht|H Remote ServiceProtokoll-Übersicht]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/I Remote Service Commands|I Remote Service Commands]]&lt;br /&gt;
** [[OBS/Adminhilfe/Service Firmen/Liste/F10/I Remote Service Commands/Eingabemaske|Eingabemaske]]&lt;br /&gt;
** [[OBS/Adminhilfe/Service_Firmen/Weitere/Multi_Service_Kommando|Multi-Kommando]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/I1 (Admin) Globaler Hinweis für Updates|I1 (Admin) Globaler Hinweis für Updates]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/J Liste der OBS Updates|J Liste der OBS Updates]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/K Angemeldete Service Firmen|K Angemeldete Service Firmen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/L Systeminformationen einlesen|L Systeminformationen einlesen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/M Kundendaten anzeigen|M Kundendaten anzeigen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/M1 Kundendatenbankinformationen anzeigen|M1 Kundendatenbankinformationen anzeigen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/N Kundendaten einlesen|N Kundendaten einlesen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/O Kunden-Update Informationen anzeigen|O Kunden-Update Informationen anzeigen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/P Modul Registrierung OBS|P Modul Registrierung OBS]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/Q App Verwaltung|Q App Verwaltung]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/S1 Firmen Statistik Protokolle OBS|S1 Firmen Statistik Protokolle OBS]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Liste/F10/S2 Statistik Notfallkassen|S2 Statistik Notfallkassen]]&lt;br /&gt;
}}&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Eingabemaske|Service Firmen Eingabemaske]]&lt;br /&gt;
* [[OBS/Adminhilfe/Service Firmen/Remotecon|Remotecon]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{vorlage:Klapptext|kopf=O Support|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/A Update-Programme|A Update Programme]]&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/B Datenbankoperationen|B Datenbankoperationen]]&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/C Tools|C Tools]]&lt;br /&gt;
{{vorlage:Klapptext|kopf=D Programmierer-Tools|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/Programmierer_Tools/N_Datenbank_verfremden|Datenbank verfremden]]&lt;br /&gt;
}}&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/E Interne Sonderprogramme|E Interne Sonderprogramme]]&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/G Service Tools|G Service Tools]]&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/H Script-Tools|H Script-Tools]]&lt;br /&gt;
* [[OBS/Adminhilfe/Support/Interne Tools/I Flex Archive|I Flex Archive]]&lt;br /&gt;
{{vorlage:Klapptext|kopf=J Update Marko Lib/Pmode/Script Lib|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/MacroLibary|A Macro Library]]&lt;br /&gt;
* [[OBS/Adminhilfe/ScriptLibrary|C Script Library]]&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=kundenspezifische Anpassungen|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/OBSAdministration/kundenspez_Anpassungen/UserDB_sys|UserDB.sys]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=OBS Protokolle|inhalt=&lt;br /&gt;
* [[OBS/Adminhilfe/OBSAdministration/Protokolle/HistorieProto|HistorieProto]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Shop-Administration|inhalt=&lt;br /&gt;
* [[Admin/Shop|Shop Übersicht Voraussetzungen und Einrichtung]]&lt;br /&gt;
{{Vorlage:Klapptext|kopf=modified eCommerce 2.x|inhalt=&lt;br /&gt;
* [[Admin/ModifiedECommerce2/FAQ|FAQ]]&lt;br /&gt;
* [[Admin/ModifiedECommerce2/Installation|Installation]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=modified eCommerce 1.06|inhalt=&lt;br /&gt;
* [[Admin/ModifiedECommerce|Shop modified eCommerce]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Amazon|inhalt=&lt;br /&gt;
* [[Admin/Amazon|Schnittstelle Amazon]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=VShop 4.0|inhalt=&lt;br /&gt;
* [[Admin/VShop|Shop VShop]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:Klapptext|kopf=Kundeninformationen|inhalt=&lt;br /&gt;
{{Vorlage:Klapptext|kopf=OfficeStar|inhalt=&lt;br /&gt;
* [[Admin/OfficeStar/Allgemeine Informationen|Allgemeine Informationen]]&lt;br /&gt;
* [[Admin/OfficeStar/Hinweiszeiten|Hinweiszeiten]]&lt;br /&gt;
}}&lt;br /&gt;
{{Vorlage:Klapptext|kopf=MDS|inhalt=&lt;br /&gt;
* [[Admin/MDS/Skrip-Automatische Ablage von Dokumenten|Skrip-Automatische Ablage von Dokumenten]]&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/small&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt; &lt;br /&gt;
----&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Vorlage fügt die Zugriffsberechtigung für Techniker zu.&lt;br /&gt;
Gäste bzw. nicht angemeldete Benutzer dürfen diese Seite dann nicht mehr sehen!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folgender Code muss in die jeweils gewünschte Seite hinzugefügt werden:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ZugriffOBS}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
[[Kategorie:Templates]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
[[Kategorie:OBS]]&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57080</id>
		<title>OBS/Makros und Scripting/Allgemeines/Übersicht Funktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57080"/>
		<updated>2020-01-10T09:43:57Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* TqSQL.A2D */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Hier finden Sie nützliche [https://de.wikipedia.org/wiki/Funktion_(Programmierung) Funktionen], die Sie in den Makros verwenden können, um das gewünschte Ergebnis zu erzielen.&lt;br /&gt;
=Liste Funktionssammlungen=&lt;br /&gt;
==TMyDir==&lt;br /&gt;
===TMyDir.CreateDirectory===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CreateDirectory(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Erstellt ein neues Verzeichnis mit dem angegebenen Pfad, wenn es noch nicht existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;;&lt;br /&gt;
lAngelegt := TMyDir.CreateDirectory(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Exists(const Path: string; const CreateIfNotExists: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob das Verzeichnis existiert. Wird der optionale Parameter &#039;&#039;CreateIfNotExists&#039;&#039; mit dem boolschen Wert &#039;&#039;True&#039;&#039; übergeben, wird versucht das Verzeichnis anzulegen, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
lExistiert := TMyDir.Exists(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRoot: string; aAdd: array of string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Dem Pfad &#039;&#039;cRoot&#039;&#039; werden die einzelnen Einträge aus dem [https://de.wikipedia.org/wiki/Feld_(Datentyp) Array] &#039;&#039;aAdd&#039;&#039; als Verzeichnisse angefügt und so ein neuer Pfad erstellt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\Import\2019&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.BuildPath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function BuildPath(const cRoot: string; aAdd: array of string; out cPath: string; lCreate: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Diese Funktion ist ein Mix aus [[#TMyDir.CombinePath|TMyDir.CombinePath]] und [[TMyDir.Exists|TMyDir.Exists]]. Es wird ein Pfad aus den Angaben &#039;&#039;cRoot&#039;&#039; und &#039;&#039;aAdd&#039;&#039; erstellt und geprüft, ob der Pfad existiert (Funktionsergebnis). Die Rückgabe des Pfades erfolgt mit &#039;&#039;cPath&#039;&#039;. Mit dem oprtionalen Parameter kann angegeben werden, ob das Verzeichnis erstellt werden soll, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
if (TMyDir.BuildPath(cRoot,[&#039;Import&#039;,&#039;2019&#039;],cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Verzeichnis &#039;+cPfad+&#039; existiert.&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.GetDirectoryName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDirectoryName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Pfad des Verzeichnisses zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
cPfad := TMyDir.GetDirectoryName(cDatei);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TMyFile==&lt;br /&gt;
===TMyFile.IsFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsFile(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsFile(cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Combine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Combine(const Path1: string; const Path2: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;);&lt;br /&gt;
//cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombine(const Path1: string; const Path2: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad und prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
    //cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRootDir: string; aAdd: array of string; const cFileName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Baut aus den Parametern einen Dateipfad zusammen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDateipfad := TMyFile.CombinePath(&#039;c:\Beispiel&#039;,[&#039;Verzeichnis&#039;,&#039;Pfad&#039;],&#039;MeineDatei.txt&#039;);&lt;br /&gt;
//cDateipfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Extrahiert aus &#039;&#039;FilePath&#039;&#039; den zu &#039;&#039;RelativeBasePath&#039;&#039; relativem Pfad und kombiniert dies mit &#039;&#039;CombineBasePath&#039;&#039; zu einem neuen Dateipfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.CombineRelativePath(&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;,&lt;br /&gt;
    &#039;\\mein-server\Netzwerk\OBS\data\Import&#039;&lt;br /&gt;
);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
TMyFile.IsCombineRelativePath verbindet die Funktionalität von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]] und [[#TMyFile.IsFile|TMyFile.IsFile]]. &#039;&#039;ReturnPath&#039;&#039; entspricht dem Ergebnis von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]]. Das Ergebnis der Funktion [[#TMyFile.IsFile|TMyFile.IsFile]] für den Pfad &#039;&#039;ReturnPath&#039;&#039; ist auch das Ergebnis für TMyFile.IsCombineRelativePath.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePathUNC(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad für die Datei zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Annahme: Das OBS-Installationsverzeichnis ist mit dem Laufwerksbuchstaben &#039;&#039;O&#039;&#039; als Netzlaufwerk am Arbeitsplatz eingerichtet.&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cUNC := TMyFile.GetFilePathUNC(cPfad);&lt;br /&gt;
//cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht &#039;&#039;Path&#039;&#039; zu einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad aufzulösen. Gibt &#039;&#039;Path&#039;&#039; zurück, wenn kein [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad verfügbar ist, aber &#039;&#039;Path&#039;&#039; existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cPfadNeu := TMyFile.GetFilePath(cPfad);&lt;br /&gt;
//cPfadNeu Werte:&lt;br /&gt;
//UNC vorhanden: &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert: &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Datei existiert nicht: &#039;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePathUNC(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei &#039;&#039;Path&#039;&#039; unter einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad zu finden ist. Dieser wird dann in &#039;&#039;ReturnPath&#039;&#039; enthalten.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.IsGetFilePathUNC(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cUNC)) then begin&lt;br /&gt;
    //cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cUNC+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePath(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Entspricht im verhalten [[#TMyFile.GetFilePath|TMyFile.GetFilePath]] mit einer zusätzlichen Prüfung, ob der Rückgabepfad &#039;&#039;ReturnPath&#039;&#039; leer ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsGetFilePath(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
//UNC vorhanden:&lt;br /&gt;
//    cPfad ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert:&lt;br /&gt;
//    cPfad ist &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Datei existiert nicht:&lt;br /&gt;
//    cPfad ist &#039;&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;false&#039;&#039;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Move===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Move(const SourceFileName: string; const DestFileName: string; const CreateDestDir: boolean=False; const Replace: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht die Datei &#039;&#039;SourceFileName&#039;&#039; nach &#039;&#039;DestFileName&#039;&#039; zu verschieben. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist. Die optionalen Parameter geben hier die Möglichkeit festzulegen, wie die Funktion bei Konflikten reagieren soll. &#039;&#039;CreateDestDir&#039;&#039; erlaubt die Anlage des Ziel-Verzeichnis, sollte es nicht existieren. &#039;&#039;Replace&#039;&#039; erlaubt es vorhandene Dateien zu überschreiben/ersetzen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Move(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde verschoben&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Delete===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Delete(const FilePath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Löscht die angegebene Datei &#039;&#039;FilePath&#039;&#039;. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Delete(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde gelöscht&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TObsPath==&lt;br /&gt;
===TObsPath.GetExePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExePath(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Installationsverzeichnis von OBS zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExePath();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;data&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetSysDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetSysDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;sys&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetSysDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetTempDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetTempDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;temp&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetTempDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetBildarchivDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetBildarchivDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;bildarchiv&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetBildarchivDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetExportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;export&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetImportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetImportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;import&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetImportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataInOutDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataInOutDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;datainout&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataInOutDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;lock&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Lock-Datei im Verzeichnis &#039;&#039;locks&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück. Die Dateiendung &#039;&#039;.lock&#039;&#039; wird automatisch ergäntzt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockFile(&#039;mein&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\locks\mein.lock&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Debug-Datei im Verzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugFile(&#039;debug.txt&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\debug\debug.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetShopDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetShopDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;shop&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetShopDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetRelativePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den relativen Pfad innerhalb der OBS-Verzeichnisstruktur zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;;&lt;br /&gt;
cDateiRelativ := TObsPath.GetRelativePath(cDatei);&lt;br /&gt;
//cDateiRelativ ist &#039;data\import\artikel.csv&#039;&lt;br /&gt;
&lt;br /&gt;
cVerzeichnis := &#039;\\mein-server\Netzwerk\OBS\data\import\&#039;;&lt;br /&gt;
cVerzeichnisRelativ := TObsPath.GetRelativePath(cVerzeichnis);&lt;br /&gt;
//cVerzeichnisRelativ ist &#039;data\import\&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFileName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad. Wenn möglich wird der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;data\import\artikel.csv&#039;;&lt;br /&gt;
cDatei := TObsPath.GetFileName(cDatei);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.IsGetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFileName(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad und prüft dessen Existens. Wenn möglich wird in &#039;&#039;ReturnPath&#039;&#039; der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TObsPath.IsGetFileName(&#039;data\import\artikel.csv&#039;,cDatei)) then begin&lt;br /&gt;
    //cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
	Meldung(&#039;Datei &#039;+cDatei+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TISO==&lt;br /&gt;
{{Hinweis|Für die Verwendung dieser Funktionen siehe auch [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Aufzählungstypen#TISOCountryCodes|TISOCountryCodes]].}}&lt;br /&gt;
===TISO.CountrySwap===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountrySwap(const cCode: string; const eFrom: TISOCountryCodes; const eTo: TISOCountryCodes): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht den ISO-3166-Code &#039;&#039;cCode&#039;&#039; von &#039;&#039;eFrom&#039;&#039; nach &#039;&#039;eTo&#039;&#039; zu wechseln.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Ermittelt die nummerische Kodierung zum Alpha-2-Code &amp;quot;de&amp;quot; (Deutschalnd) und zeigt diesen als Meldung an. Der nummerische Wert für de ist 276.&lt;br /&gt;
Meldung(TISO.CountrySwap(&#039;de&#039;,iso3166_Alpha2,iso3166_Numeric));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetRefNo===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetRefNo(oMyDB: TxDB; const eCode: TISOCountryCodes; const cCode: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt die OBS-Referenz aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] für den Code &#039;&#039;cCode&#039;&#039;. Gibt &#039;&#039;cDefault&#039;&#039; zurück, wenn keine OBS-Referenz ermittelt werden konnte.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, findet diese Funktion die entsprechende Referenz für Deutschland (OBS-Default ist &amp;quot;D-&amp;quot;) und zeigt diese als Meldung.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,&#039;de&#039;,iso3166_Alpha2));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetCode===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetCode(oMyDB: TxDB; const eCode: TISOCountryCodes; const cRef: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] den ISO-3166-Code für die OBS-Referenz &#039;&#039;cRef&#039;&#039; aus und gibt den Code für den Typen &#039;&#039;eCode&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, liest diese Funktion den Wert für die entsprechende Referenz den OBS-Default &amp;quot;D-&amp;quot; für Deutschland und zeigt den Code als Meldung an.&lt;br /&gt;
//Da im OBS nur der Alpha2 gepflegt werden kann, wird der Code bei Angabe von z. B. &#039;&#039;iso3166_Alpha3&#039;&#039; in &#039;&#039;eCode&#039;&#039; intern umgewandelt.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,iso3166_Alpha3,&#039;D-&#039;));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TqSQL==&lt;br /&gt;
{{Hinweis|Dies ist nur ein Auszug der Funktionalität}}&lt;br /&gt;
===TqSQL.A2I===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2I(const cFeld:String):integer;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Integer umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2C===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2C(const cFeld:String):String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen String umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2F===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2F(const cFeld:String):Double;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Floatwert umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2D===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2D(const cFeld:String):TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Datumswert umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
var dDate : TDateTime;&lt;br /&gt;
&lt;br /&gt;
dDate := xData.A2D(&#039;sys_date&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2UID===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2UID():String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Es wird direkt die sys_uid des Eintrags zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cUID := xData.A2UID();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.qSet===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 function    qSet(const cxField : String; xDaten : Variant):Boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Das Datenbankfeld &#039;&#039;&#039;cxField&#039;&#039;&#039; wird mit den Daten aus &#039;&#039;&#039;xDaten&#039;&#039;&#039; gefüllt. Die Umwandlung von Variant nach Datenbankfeld erfolgt automatisch.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//String&lt;br /&gt;
xData.qSet(&#039;mbp_ksperre&#039;, &#039;0&#039;);&lt;br /&gt;
&lt;br /&gt;
//Float&lt;br /&gt;
var nEKPreis : Double;&lt;br /&gt;
&lt;br /&gt;
xData.qSet(&#039;mbp_ekpreis&#039;,nEKPreis);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Liste Funktionen=&lt;br /&gt;
==Empty==&lt;br /&gt;
Verwendung: Prüft, ob der Wert des Parameters leer bzw. 0 ist. Dies Funktioniert mit Zeichenketten (&#039;&#039;string&#039;&#039;) und Zahlen (&#039;&#039;integer&#039;&#039; und &#039;&#039;double&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string/integer/double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: boolean&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
    cText := &#039;Beispiel&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird ein leerer Text zugewiesen. Mit &#039;&#039;Empty&#039;&#039; wird der Wert nun geprüft. Die boolsche Variable &#039;&#039;IstLeer&#039;&#039; ist dann true (wahr). Als nächstes wird &#039;&#039;cText&#039;&#039; der Wert &amp;quot;Beispiel&amp;quot; zugewiesen und eine erneute Prüfung mit &#039;&#039;Empty&#039;&#039; durchgeführt. Da &#039;&#039;cText&#039;&#039; jetzt einen Text enthält, ist der Wert der Variablen &#039;&#039;IstLeer&#039;&#039; nun false (falsch).&lt;br /&gt;
&lt;br /&gt;
==Length==&lt;br /&gt;
Verwendung: Ermittelt die Länge einer Zeichenkette (string).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText   := &#039;Dies ist ein Beispiel.&#039;;&lt;br /&gt;
    nLaenge := Length(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel.&#039;&#039; zugewiesen. Mit &#039;&#039;Length&#039;&#039; wird die Länge ermittelt. Der Satz &amp;quot;Dies ist ein Beispiel.&amp;quot; hat 22 Zeichen. &#039;&#039;nLaenge&#039;&#039; hat also den Wert &#039;&#039;22&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==AllTrim==&lt;br /&gt;
Verwendung: Entfernt Umbrüche und Leerzeichen am Anfang und Ende einer Zeichenkette.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;  Dies ist ein Beispiel.       &#039;;&lt;br /&gt;
    cText := AllTrim(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &amp;quot;&#039;&#039;  Dies ist ein Beispiel.       &#039;&#039;&amp;quot; zugewiesen. Mit &#039;&#039;AllTrim&#039;&#039; werden die unnötigen Leerzeichen am Anfang und Ende der Zeichenkette entfernt. Die Variable &#039;&#039;cText&#039;&#039; entspricht also dem Wert &amp;quot;&#039;&#039;Dies ist ein Beispiel.&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==UpperCase/LowerCase==&lt;br /&gt;
Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Beispiel&#039;;&lt;br /&gt;
    cUpper := UpperCase(cText);&lt;br /&gt;
    cLower := LowerCase(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;UpperCase&#039;&#039; und &#039;&#039;LowerCase&#039;&#039; wird die Zeichenkette umgewandelt. &#039;&#039;cUpper&#039;&#039; enthält danach den Wert &#039;&#039;BEISPIEL&#039;&#039; und &#039;&#039;cLower&#039;&#039; den Wert &#039;&#039;beispiel&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==ExtractFileName==&lt;br /&gt;
Verwendung: Dateinamen aus Dateipfad auslesen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;c:\\Ordner\Datei.txt&#039;;&lt;br /&gt;
    cDatei := ExtractFileName(cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;c:\\Ordner\Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;ExtractFileName&#039;&#039; wird der Dateiname herausgesucht und zurückgegeben. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei.txt&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==StrTran==&lt;br /&gt;
Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei.txt&#039;;&lt;br /&gt;
    cName  := StrTran(cDatei ,&#039;.txt&#039;,&#039;&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;StrTran&#039;&#039; wird im Text der Variable &#039;&#039;cDatei&#039;&#039; nach &#039;&#039;.txt&#039;&#039; gesucht. Der gefundene Teil wird mit einer leeren Zeichenkette ersetzt. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==LeftStr/RightStr==&lt;br /&gt;
Verwendung: Gibt den linken/rechten Teil einer Zeichenketten zurück. Es werden dabei maximal soviele Zeichen zurückgegeben, wie im zweiten Parameter angegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Dies ist ein Beispiel&#039;;&lt;br /&gt;
    cLeft  := LeftStr(cText,2);&lt;br /&gt;
    cRight := RightStr(cText,5);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;LeftStr&#039;&#039; und &#039;&#039;RightStr&#039;&#039; werden jeweils die ersten zwei Zeichen von Links und Rechts zurückgegeben. &#039;&#039;cLeft&#039;&#039; enthält danach den Wert &#039;&#039;Di&#039;&#039; und &#039;&#039;cRight&#039;&#039; den Wert &#039;&#039;spiel&#039;&#039;.&lt;br /&gt;
{{Hinweis|Sollten mehr Zeichen ermittelt werden, als der ursprüngliche Wert Zeichen hat, so ist das Ergbenis gleich dem Ursprung. LeftStr(cDatei,50) hätte z. B. dazu geführt, dass cLeft ebenfalls &#039;&#039;Dies ist ein Beispiel&#039;&#039; enthält.}}&lt;br /&gt;
&lt;br /&gt;
==Token==&lt;br /&gt;
Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    cTeil  := Token(cDatei,&#039;_&#039;,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;Token&#039;&#039; wird die Zeichenkette aufgeteilt. Als Teiler ist ein Unterstrich angeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Es wird der zweite Teil gefordert. Die Variable &#039;&#039;cTeil&#039;&#039; enthält demnach den Wert &#039;&#039;Name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==NumToken==&lt;br /&gt;
Verwendung: Ermittelt die Anzahl der Teile einer Zeichenketten, wenn diese an den Stelle mit dem Zeichen, das als Parameter übergeben wird, geteilt wird.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    nTeile := NumToken(&#039;_&#039;,cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;NumToken&#039;&#039; wird die Anzahl der Teil-Zeichenketten der Zeichenkette cDatei ermittelt. Als Trennzeichen wurde ein Unterstrich angegeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Die Variable &#039;&#039;nTeile&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==iVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in einen Ganzzahlwert um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;4&#039;;&lt;br /&gt;
    nZahl := iVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;4&#039;&#039; zugewiesen. Mit &#039;&#039;iVal&#039;&#039; wird die Zeichenkette in die entsprechende Ganzzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==fVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in eine Dezimalzahl um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;1234,56&#039;;&lt;br /&gt;
    nZahl := fVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;1234,56&#039;&#039; zugewiesen. Mit &#039;&#039;fVal&#039;&#039; wird die Zeichenkette in die entsprechende Dezimalzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 1234,56.&lt;br /&gt;
&lt;br /&gt;
==Roundy==&lt;br /&gt;
Verwendung: Runden eines Dezimalwerts (Typ: Double)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nGerundeterWert := Roundy(nDezimalwert,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der zu rundende Wert wird mit Parameter 1 übergeben. Die gewünschte Anzahl an Nachkommastellen wird in Parameter 2 angegeben. Die Funktion rundet dann den Wert auf die angegebene Anzahl an Dezimalstellen und gibt das Ergebnis wieder zurück. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nGerundeterWert&#039;&#039; entspricht also 1234,57.&lt;br /&gt;
&lt;br /&gt;
==Trunc==&lt;br /&gt;
Verwendung: Abschneiden der Nachkommastellen eines Dezimalwerts&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nWert := Trunc(nDezimalwert);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der Dezimalwert ist als Parameter zu übergeben. Als Ergbnis werden die Vorkommastellen zurückgegeben. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nWert&#039;&#039; entspricht also 1234.&lt;br /&gt;
==PadL==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadL(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur linken Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;    Müller&#039;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;XXXXMüller&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==PadR==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadR(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur rechten Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;Müller    &#039;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;MüllerXXXX&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CToD==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CToD(const sDate: string): TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Konvertiert die Zeichenkette &#039;&#039;sDate&#039;&#039; in einen Datumswert des Typs [http://docwiki.embarcadero.com/Libraries/Rio/en/System.TDateTime &#039;&#039;TDateTime&#039;&#039;].&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18&#039;);&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18 17:52:35&#039;);&lt;br /&gt;
//In beiden Fällen entspricht der Wert in dDatum dem 18.11.2016, da CToD nur das Datum übernimmt. Die Uhrzeit wird verworfen.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Artikelstamm==&lt;br /&gt;
===AR_Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function AR_Exists(oMyDB: TxDB; const cArtNr: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Sucht im Artikelstamm nach der in &#039;&#039;cArtNr&#039;&#039; angegebenen Artikelnummer und liefert als Ergebnis &#039;&#039;True&#039;&#039; wenn der Artikel gefunden wurde.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (AR_Exists(oDB,&#039;ABC123&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Artikel existiert im Artikelstamm&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Umsatz- und Vorsteuer==&lt;br /&gt;
===FindUstFromSatz===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function FindUstFromSatz(oMyDB: TxDB; nSatz: double): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt den OBS-Umsatzsteuerschlüssel für den Steuersatz &#039;&#039;nSatz&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Gibt den zweistelligen Schlüssel (z. B. 01) für die Umsatzsteuer mit dem Satz 19 % aus&lt;br /&gt;
Meldung(FindUstFromSatz(oDB,19));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UST_VK_Netto2Brutto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(nNetto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===UST_VK_Brutto2Netto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Variante 1&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 2&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 3&lt;br /&gt;
function  UST_VK_Brutto2Netto(nBrutto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Wandelt einen Preis von Brutto nach Netto. Die Funktion gibt es in drei Ausführungen.&lt;br /&gt;
#Umwandlung über Artikelnummer&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto um. Der Steuersatz wird dabei über den Steuerschlüssel aus dem Artikelstamm gezogen. Falls kein Artikel mit der Nummer &#039;&#039;cArtNr&#039;&#039; im Artikelstamm gefunden werden kann, wird für die Umrechnung der Satz &#039;&#039;nDefaultSatz&#039;&#039; verwendet. Existiert der Artikel im Artikelstamm wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis verwendet, falls kein Steuerschlüssel im Artikel gepflegt ist. {{Hinweis|Wenn die Artikelnummer vorhanden ist, wird diese Variante der Umrechnung empfohlen, da hier auch Artikel mit mehreren Steuersätzen richtig umgewandelt werden.}}&lt;br /&gt;
#Umwandlung mit Steuerschlüssel&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto anhand des übergebenen Steuerschlüssels &#039;&#039;cSchl&#039;&#039; um. Ist der Steuerschlüssel leer, wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis zurückgegeben. Der Steuersatz &#039;&#039;nDefaultSatz&#039;&#039; wird verwendet, wenn kein passender Eintrag zum Steuerschlüssel im OBS gefunden werden konnte.&lt;br /&gt;
#Umwandlung mit Steuersatz&lt;br /&gt;
#:Der Wert &#039;&#039;nBrutto&#039;&#039; wird mit dem Steuersatz &#039;&#039;nMwstSatz&#039;&#039; umgerechnet. Die Rückgabe wird auf &#039;&#039;nNK&#039;&#039; Nachkommastellen gerundet.{{Achtung|Der Steuersatz 19 % wird in &#039;&#039;nMwstSatz&#039;&#039; als 19.00 (Punkt als Dezimaltrennzeichen) erwartet!}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57079</id>
		<title>OBS/Makros und Scripting/Allgemeines/Übersicht Funktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57079"/>
		<updated>2020-01-10T08:51:47Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* TqSQL.A2UID */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Hier finden Sie nützliche [https://de.wikipedia.org/wiki/Funktion_(Programmierung) Funktionen], die Sie in den Makros verwenden können, um das gewünschte Ergebnis zu erzielen.&lt;br /&gt;
=Liste Funktionssammlungen=&lt;br /&gt;
==TMyDir==&lt;br /&gt;
===TMyDir.CreateDirectory===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CreateDirectory(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Erstellt ein neues Verzeichnis mit dem angegebenen Pfad, wenn es noch nicht existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;;&lt;br /&gt;
lAngelegt := TMyDir.CreateDirectory(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Exists(const Path: string; const CreateIfNotExists: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob das Verzeichnis existiert. Wird der optionale Parameter &#039;&#039;CreateIfNotExists&#039;&#039; mit dem boolschen Wert &#039;&#039;True&#039;&#039; übergeben, wird versucht das Verzeichnis anzulegen, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
lExistiert := TMyDir.Exists(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRoot: string; aAdd: array of string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Dem Pfad &#039;&#039;cRoot&#039;&#039; werden die einzelnen Einträge aus dem [https://de.wikipedia.org/wiki/Feld_(Datentyp) Array] &#039;&#039;aAdd&#039;&#039; als Verzeichnisse angefügt und so ein neuer Pfad erstellt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\Import\2019&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.BuildPath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function BuildPath(const cRoot: string; aAdd: array of string; out cPath: string; lCreate: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Diese Funktion ist ein Mix aus [[#TMyDir.CombinePath|TMyDir.CombinePath]] und [[TMyDir.Exists|TMyDir.Exists]]. Es wird ein Pfad aus den Angaben &#039;&#039;cRoot&#039;&#039; und &#039;&#039;aAdd&#039;&#039; erstellt und geprüft, ob der Pfad existiert (Funktionsergebnis). Die Rückgabe des Pfades erfolgt mit &#039;&#039;cPath&#039;&#039;. Mit dem oprtionalen Parameter kann angegeben werden, ob das Verzeichnis erstellt werden soll, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
if (TMyDir.BuildPath(cRoot,[&#039;Import&#039;,&#039;2019&#039;],cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Verzeichnis &#039;+cPfad+&#039; existiert.&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.GetDirectoryName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDirectoryName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Pfad des Verzeichnisses zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
cPfad := TMyDir.GetDirectoryName(cDatei);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TMyFile==&lt;br /&gt;
===TMyFile.IsFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsFile(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsFile(cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Combine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Combine(const Path1: string; const Path2: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;);&lt;br /&gt;
//cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombine(const Path1: string; const Path2: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad und prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
    //cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRootDir: string; aAdd: array of string; const cFileName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Baut aus den Parametern einen Dateipfad zusammen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDateipfad := TMyFile.CombinePath(&#039;c:\Beispiel&#039;,[&#039;Verzeichnis&#039;,&#039;Pfad&#039;],&#039;MeineDatei.txt&#039;);&lt;br /&gt;
//cDateipfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Extrahiert aus &#039;&#039;FilePath&#039;&#039; den zu &#039;&#039;RelativeBasePath&#039;&#039; relativem Pfad und kombiniert dies mit &#039;&#039;CombineBasePath&#039;&#039; zu einem neuen Dateipfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.CombineRelativePath(&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;,&lt;br /&gt;
    &#039;\\mein-server\Netzwerk\OBS\data\Import&#039;&lt;br /&gt;
);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
TMyFile.IsCombineRelativePath verbindet die Funktionalität von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]] und [[#TMyFile.IsFile|TMyFile.IsFile]]. &#039;&#039;ReturnPath&#039;&#039; entspricht dem Ergebnis von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]]. Das Ergebnis der Funktion [[#TMyFile.IsFile|TMyFile.IsFile]] für den Pfad &#039;&#039;ReturnPath&#039;&#039; ist auch das Ergebnis für TMyFile.IsCombineRelativePath.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePathUNC(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad für die Datei zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Annahme: Das OBS-Installationsverzeichnis ist mit dem Laufwerksbuchstaben &#039;&#039;O&#039;&#039; als Netzlaufwerk am Arbeitsplatz eingerichtet.&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cUNC := TMyFile.GetFilePathUNC(cPfad);&lt;br /&gt;
//cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht &#039;&#039;Path&#039;&#039; zu einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad aufzulösen. Gibt &#039;&#039;Path&#039;&#039; zurück, wenn kein [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad verfügbar ist, aber &#039;&#039;Path&#039;&#039; existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cPfadNeu := TMyFile.GetFilePath(cPfad);&lt;br /&gt;
//cPfadNeu Werte:&lt;br /&gt;
//UNC vorhanden: &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert: &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Datei existiert nicht: &#039;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePathUNC(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei &#039;&#039;Path&#039;&#039; unter einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad zu finden ist. Dieser wird dann in &#039;&#039;ReturnPath&#039;&#039; enthalten.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.IsGetFilePathUNC(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cUNC)) then begin&lt;br /&gt;
    //cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cUNC+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePath(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Entspricht im verhalten [[#TMyFile.GetFilePath|TMyFile.GetFilePath]] mit einer zusätzlichen Prüfung, ob der Rückgabepfad &#039;&#039;ReturnPath&#039;&#039; leer ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsGetFilePath(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
//UNC vorhanden:&lt;br /&gt;
//    cPfad ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert:&lt;br /&gt;
//    cPfad ist &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Datei existiert nicht:&lt;br /&gt;
//    cPfad ist &#039;&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;false&#039;&#039;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Move===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Move(const SourceFileName: string; const DestFileName: string; const CreateDestDir: boolean=False; const Replace: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht die Datei &#039;&#039;SourceFileName&#039;&#039; nach &#039;&#039;DestFileName&#039;&#039; zu verschieben. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist. Die optionalen Parameter geben hier die Möglichkeit festzulegen, wie die Funktion bei Konflikten reagieren soll. &#039;&#039;CreateDestDir&#039;&#039; erlaubt die Anlage des Ziel-Verzeichnis, sollte es nicht existieren. &#039;&#039;Replace&#039;&#039; erlaubt es vorhandene Dateien zu überschreiben/ersetzen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Move(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde verschoben&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Delete===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Delete(const FilePath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Löscht die angegebene Datei &#039;&#039;FilePath&#039;&#039;. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Delete(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde gelöscht&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TObsPath==&lt;br /&gt;
===TObsPath.GetExePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExePath(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Installationsverzeichnis von OBS zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExePath();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;data&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetSysDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetSysDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;sys&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetSysDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetTempDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetTempDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;temp&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetTempDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetBildarchivDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetBildarchivDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;bildarchiv&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetBildarchivDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetExportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;export&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetImportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetImportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;import&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetImportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataInOutDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataInOutDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;datainout&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataInOutDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;lock&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Lock-Datei im Verzeichnis &#039;&#039;locks&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück. Die Dateiendung &#039;&#039;.lock&#039;&#039; wird automatisch ergäntzt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockFile(&#039;mein&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\locks\mein.lock&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Debug-Datei im Verzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugFile(&#039;debug.txt&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\debug\debug.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetShopDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetShopDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;shop&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetShopDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetRelativePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den relativen Pfad innerhalb der OBS-Verzeichnisstruktur zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;;&lt;br /&gt;
cDateiRelativ := TObsPath.GetRelativePath(cDatei);&lt;br /&gt;
//cDateiRelativ ist &#039;data\import\artikel.csv&#039;&lt;br /&gt;
&lt;br /&gt;
cVerzeichnis := &#039;\\mein-server\Netzwerk\OBS\data\import\&#039;;&lt;br /&gt;
cVerzeichnisRelativ := TObsPath.GetRelativePath(cVerzeichnis);&lt;br /&gt;
//cVerzeichnisRelativ ist &#039;data\import\&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFileName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad. Wenn möglich wird der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;data\import\artikel.csv&#039;;&lt;br /&gt;
cDatei := TObsPath.GetFileName(cDatei);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.IsGetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFileName(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad und prüft dessen Existens. Wenn möglich wird in &#039;&#039;ReturnPath&#039;&#039; der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TObsPath.IsGetFileName(&#039;data\import\artikel.csv&#039;,cDatei)) then begin&lt;br /&gt;
    //cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
	Meldung(&#039;Datei &#039;+cDatei+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TISO==&lt;br /&gt;
{{Hinweis|Für die Verwendung dieser Funktionen siehe auch [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Aufzählungstypen#TISOCountryCodes|TISOCountryCodes]].}}&lt;br /&gt;
===TISO.CountrySwap===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountrySwap(const cCode: string; const eFrom: TISOCountryCodes; const eTo: TISOCountryCodes): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht den ISO-3166-Code &#039;&#039;cCode&#039;&#039; von &#039;&#039;eFrom&#039;&#039; nach &#039;&#039;eTo&#039;&#039; zu wechseln.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Ermittelt die nummerische Kodierung zum Alpha-2-Code &amp;quot;de&amp;quot; (Deutschalnd) und zeigt diesen als Meldung an. Der nummerische Wert für de ist 276.&lt;br /&gt;
Meldung(TISO.CountrySwap(&#039;de&#039;,iso3166_Alpha2,iso3166_Numeric));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetRefNo===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetRefNo(oMyDB: TxDB; const eCode: TISOCountryCodes; const cCode: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt die OBS-Referenz aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] für den Code &#039;&#039;cCode&#039;&#039;. Gibt &#039;&#039;cDefault&#039;&#039; zurück, wenn keine OBS-Referenz ermittelt werden konnte.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, findet diese Funktion die entsprechende Referenz für Deutschland (OBS-Default ist &amp;quot;D-&amp;quot;) und zeigt diese als Meldung.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,&#039;de&#039;,iso3166_Alpha2));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetCode===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetCode(oMyDB: TxDB; const eCode: TISOCountryCodes; const cRef: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] den ISO-3166-Code für die OBS-Referenz &#039;&#039;cRef&#039;&#039; aus und gibt den Code für den Typen &#039;&#039;eCode&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, liest diese Funktion den Wert für die entsprechende Referenz den OBS-Default &amp;quot;D-&amp;quot; für Deutschland und zeigt den Code als Meldung an.&lt;br /&gt;
//Da im OBS nur der Alpha2 gepflegt werden kann, wird der Code bei Angabe von z. B. &#039;&#039;iso3166_Alpha3&#039;&#039; in &#039;&#039;eCode&#039;&#039; intern umgewandelt.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,iso3166_Alpha3,&#039;D-&#039;));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TqSQL==&lt;br /&gt;
{{Hinweis|Dies ist nur ein Auszug der Funktionalität}}&lt;br /&gt;
===TqSQL.A2I===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2I(const cFeld:String):integer;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Integer umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2C===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2C(const cFeld:String):String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen String umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2F===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2F(const cFeld:String):Double;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Floatwert umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2D===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2D(const cFeld:String):TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Datumswert umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2UID===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2UID():String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Es wird direkt die sys_uid des Eintrags zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cUID := xData.A2UID();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.qSet===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 function    qSet(const cxField : String; xDaten : Variant):Boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Das Datenbankfeld &#039;&#039;&#039;cxField&#039;&#039;&#039; wird mit den Daten aus &#039;&#039;&#039;xDaten&#039;&#039;&#039; gefüllt. Die Umwandlung von Variant nach Datenbankfeld erfolgt automatisch.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//String&lt;br /&gt;
xData.qSet(&#039;mbp_ksperre&#039;, &#039;0&#039;);&lt;br /&gt;
&lt;br /&gt;
//Float&lt;br /&gt;
var nEKPreis : Double;&lt;br /&gt;
&lt;br /&gt;
xData.qSet(&#039;mbp_ekpreis&#039;,nEKPreis);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Liste Funktionen=&lt;br /&gt;
==Empty==&lt;br /&gt;
Verwendung: Prüft, ob der Wert des Parameters leer bzw. 0 ist. Dies Funktioniert mit Zeichenketten (&#039;&#039;string&#039;&#039;) und Zahlen (&#039;&#039;integer&#039;&#039; und &#039;&#039;double&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string/integer/double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: boolean&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
    cText := &#039;Beispiel&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird ein leerer Text zugewiesen. Mit &#039;&#039;Empty&#039;&#039; wird der Wert nun geprüft. Die boolsche Variable &#039;&#039;IstLeer&#039;&#039; ist dann true (wahr). Als nächstes wird &#039;&#039;cText&#039;&#039; der Wert &amp;quot;Beispiel&amp;quot; zugewiesen und eine erneute Prüfung mit &#039;&#039;Empty&#039;&#039; durchgeführt. Da &#039;&#039;cText&#039;&#039; jetzt einen Text enthält, ist der Wert der Variablen &#039;&#039;IstLeer&#039;&#039; nun false (falsch).&lt;br /&gt;
&lt;br /&gt;
==Length==&lt;br /&gt;
Verwendung: Ermittelt die Länge einer Zeichenkette (string).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText   := &#039;Dies ist ein Beispiel.&#039;;&lt;br /&gt;
    nLaenge := Length(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel.&#039;&#039; zugewiesen. Mit &#039;&#039;Length&#039;&#039; wird die Länge ermittelt. Der Satz &amp;quot;Dies ist ein Beispiel.&amp;quot; hat 22 Zeichen. &#039;&#039;nLaenge&#039;&#039; hat also den Wert &#039;&#039;22&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==AllTrim==&lt;br /&gt;
Verwendung: Entfernt Umbrüche und Leerzeichen am Anfang und Ende einer Zeichenkette.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;  Dies ist ein Beispiel.       &#039;;&lt;br /&gt;
    cText := AllTrim(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &amp;quot;&#039;&#039;  Dies ist ein Beispiel.       &#039;&#039;&amp;quot; zugewiesen. Mit &#039;&#039;AllTrim&#039;&#039; werden die unnötigen Leerzeichen am Anfang und Ende der Zeichenkette entfernt. Die Variable &#039;&#039;cText&#039;&#039; entspricht also dem Wert &amp;quot;&#039;&#039;Dies ist ein Beispiel.&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==UpperCase/LowerCase==&lt;br /&gt;
Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Beispiel&#039;;&lt;br /&gt;
    cUpper := UpperCase(cText);&lt;br /&gt;
    cLower := LowerCase(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;UpperCase&#039;&#039; und &#039;&#039;LowerCase&#039;&#039; wird die Zeichenkette umgewandelt. &#039;&#039;cUpper&#039;&#039; enthält danach den Wert &#039;&#039;BEISPIEL&#039;&#039; und &#039;&#039;cLower&#039;&#039; den Wert &#039;&#039;beispiel&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==ExtractFileName==&lt;br /&gt;
Verwendung: Dateinamen aus Dateipfad auslesen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;c:\\Ordner\Datei.txt&#039;;&lt;br /&gt;
    cDatei := ExtractFileName(cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;c:\\Ordner\Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;ExtractFileName&#039;&#039; wird der Dateiname herausgesucht und zurückgegeben. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei.txt&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==StrTran==&lt;br /&gt;
Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei.txt&#039;;&lt;br /&gt;
    cName  := StrTran(cDatei ,&#039;.txt&#039;,&#039;&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;StrTran&#039;&#039; wird im Text der Variable &#039;&#039;cDatei&#039;&#039; nach &#039;&#039;.txt&#039;&#039; gesucht. Der gefundene Teil wird mit einer leeren Zeichenkette ersetzt. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==LeftStr/RightStr==&lt;br /&gt;
Verwendung: Gibt den linken/rechten Teil einer Zeichenketten zurück. Es werden dabei maximal soviele Zeichen zurückgegeben, wie im zweiten Parameter angegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Dies ist ein Beispiel&#039;;&lt;br /&gt;
    cLeft  := LeftStr(cText,2);&lt;br /&gt;
    cRight := RightStr(cText,5);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;LeftStr&#039;&#039; und &#039;&#039;RightStr&#039;&#039; werden jeweils die ersten zwei Zeichen von Links und Rechts zurückgegeben. &#039;&#039;cLeft&#039;&#039; enthält danach den Wert &#039;&#039;Di&#039;&#039; und &#039;&#039;cRight&#039;&#039; den Wert &#039;&#039;spiel&#039;&#039;.&lt;br /&gt;
{{Hinweis|Sollten mehr Zeichen ermittelt werden, als der ursprüngliche Wert Zeichen hat, so ist das Ergbenis gleich dem Ursprung. LeftStr(cDatei,50) hätte z. B. dazu geführt, dass cLeft ebenfalls &#039;&#039;Dies ist ein Beispiel&#039;&#039; enthält.}}&lt;br /&gt;
&lt;br /&gt;
==Token==&lt;br /&gt;
Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    cTeil  := Token(cDatei,&#039;_&#039;,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;Token&#039;&#039; wird die Zeichenkette aufgeteilt. Als Teiler ist ein Unterstrich angeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Es wird der zweite Teil gefordert. Die Variable &#039;&#039;cTeil&#039;&#039; enthält demnach den Wert &#039;&#039;Name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==NumToken==&lt;br /&gt;
Verwendung: Ermittelt die Anzahl der Teile einer Zeichenketten, wenn diese an den Stelle mit dem Zeichen, das als Parameter übergeben wird, geteilt wird.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    nTeile := NumToken(&#039;_&#039;,cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;NumToken&#039;&#039; wird die Anzahl der Teil-Zeichenketten der Zeichenkette cDatei ermittelt. Als Trennzeichen wurde ein Unterstrich angegeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Die Variable &#039;&#039;nTeile&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==iVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in einen Ganzzahlwert um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;4&#039;;&lt;br /&gt;
    nZahl := iVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;4&#039;&#039; zugewiesen. Mit &#039;&#039;iVal&#039;&#039; wird die Zeichenkette in die entsprechende Ganzzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==fVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in eine Dezimalzahl um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;1234,56&#039;;&lt;br /&gt;
    nZahl := fVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;1234,56&#039;&#039; zugewiesen. Mit &#039;&#039;fVal&#039;&#039; wird die Zeichenkette in die entsprechende Dezimalzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 1234,56.&lt;br /&gt;
&lt;br /&gt;
==Roundy==&lt;br /&gt;
Verwendung: Runden eines Dezimalwerts (Typ: Double)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nGerundeterWert := Roundy(nDezimalwert,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der zu rundende Wert wird mit Parameter 1 übergeben. Die gewünschte Anzahl an Nachkommastellen wird in Parameter 2 angegeben. Die Funktion rundet dann den Wert auf die angegebene Anzahl an Dezimalstellen und gibt das Ergebnis wieder zurück. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nGerundeterWert&#039;&#039; entspricht also 1234,57.&lt;br /&gt;
&lt;br /&gt;
==Trunc==&lt;br /&gt;
Verwendung: Abschneiden der Nachkommastellen eines Dezimalwerts&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nWert := Trunc(nDezimalwert);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der Dezimalwert ist als Parameter zu übergeben. Als Ergbnis werden die Vorkommastellen zurückgegeben. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nWert&#039;&#039; entspricht also 1234.&lt;br /&gt;
==PadL==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadL(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur linken Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;    Müller&#039;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;XXXXMüller&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==PadR==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadR(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur rechten Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;Müller    &#039;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;MüllerXXXX&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CToD==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CToD(const sDate: string): TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Konvertiert die Zeichenkette &#039;&#039;sDate&#039;&#039; in einen Datumswert des Typs [http://docwiki.embarcadero.com/Libraries/Rio/en/System.TDateTime &#039;&#039;TDateTime&#039;&#039;].&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18&#039;);&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18 17:52:35&#039;);&lt;br /&gt;
//In beiden Fällen entspricht der Wert in dDatum dem 18.11.2016, da CToD nur das Datum übernimmt. Die Uhrzeit wird verworfen.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Artikelstamm==&lt;br /&gt;
===AR_Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function AR_Exists(oMyDB: TxDB; const cArtNr: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Sucht im Artikelstamm nach der in &#039;&#039;cArtNr&#039;&#039; angegebenen Artikelnummer und liefert als Ergebnis &#039;&#039;True&#039;&#039; wenn der Artikel gefunden wurde.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (AR_Exists(oDB,&#039;ABC123&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Artikel existiert im Artikelstamm&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Umsatz- und Vorsteuer==&lt;br /&gt;
===FindUstFromSatz===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function FindUstFromSatz(oMyDB: TxDB; nSatz: double): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt den OBS-Umsatzsteuerschlüssel für den Steuersatz &#039;&#039;nSatz&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Gibt den zweistelligen Schlüssel (z. B. 01) für die Umsatzsteuer mit dem Satz 19 % aus&lt;br /&gt;
Meldung(FindUstFromSatz(oDB,19));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UST_VK_Netto2Brutto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(nNetto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===UST_VK_Brutto2Netto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Variante 1&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 2&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 3&lt;br /&gt;
function  UST_VK_Brutto2Netto(nBrutto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Wandelt einen Preis von Brutto nach Netto. Die Funktion gibt es in drei Ausführungen.&lt;br /&gt;
#Umwandlung über Artikelnummer&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto um. Der Steuersatz wird dabei über den Steuerschlüssel aus dem Artikelstamm gezogen. Falls kein Artikel mit der Nummer &#039;&#039;cArtNr&#039;&#039; im Artikelstamm gefunden werden kann, wird für die Umrechnung der Satz &#039;&#039;nDefaultSatz&#039;&#039; verwendet. Existiert der Artikel im Artikelstamm wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis verwendet, falls kein Steuerschlüssel im Artikel gepflegt ist. {{Hinweis|Wenn die Artikelnummer vorhanden ist, wird diese Variante der Umrechnung empfohlen, da hier auch Artikel mit mehreren Steuersätzen richtig umgewandelt werden.}}&lt;br /&gt;
#Umwandlung mit Steuerschlüssel&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto anhand des übergebenen Steuerschlüssels &#039;&#039;cSchl&#039;&#039; um. Ist der Steuerschlüssel leer, wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis zurückgegeben. Der Steuersatz &#039;&#039;nDefaultSatz&#039;&#039; wird verwendet, wenn kein passender Eintrag zum Steuerschlüssel im OBS gefunden werden konnte.&lt;br /&gt;
#Umwandlung mit Steuersatz&lt;br /&gt;
#:Der Wert &#039;&#039;nBrutto&#039;&#039; wird mit dem Steuersatz &#039;&#039;nMwstSatz&#039;&#039; umgerechnet. Die Rückgabe wird auf &#039;&#039;nNK&#039;&#039; Nachkommastellen gerundet.{{Achtung|Der Steuersatz 19 % wird in &#039;&#039;nMwstSatz&#039;&#039; als 19.00 (Punkt als Dezimaltrennzeichen) erwartet!}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57078</id>
		<title>OBS/Makros und Scripting/Allgemeines/Übersicht Funktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57078"/>
		<updated>2020-01-10T08:51:35Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* TqSQL.A2UID */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Hier finden Sie nützliche [https://de.wikipedia.org/wiki/Funktion_(Programmierung) Funktionen], die Sie in den Makros verwenden können, um das gewünschte Ergebnis zu erzielen.&lt;br /&gt;
=Liste Funktionssammlungen=&lt;br /&gt;
==TMyDir==&lt;br /&gt;
===TMyDir.CreateDirectory===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CreateDirectory(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Erstellt ein neues Verzeichnis mit dem angegebenen Pfad, wenn es noch nicht existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;;&lt;br /&gt;
lAngelegt := TMyDir.CreateDirectory(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Exists(const Path: string; const CreateIfNotExists: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob das Verzeichnis existiert. Wird der optionale Parameter &#039;&#039;CreateIfNotExists&#039;&#039; mit dem boolschen Wert &#039;&#039;True&#039;&#039; übergeben, wird versucht das Verzeichnis anzulegen, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
lExistiert := TMyDir.Exists(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRoot: string; aAdd: array of string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Dem Pfad &#039;&#039;cRoot&#039;&#039; werden die einzelnen Einträge aus dem [https://de.wikipedia.org/wiki/Feld_(Datentyp) Array] &#039;&#039;aAdd&#039;&#039; als Verzeichnisse angefügt und so ein neuer Pfad erstellt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\Import\2019&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.BuildPath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function BuildPath(const cRoot: string; aAdd: array of string; out cPath: string; lCreate: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Diese Funktion ist ein Mix aus [[#TMyDir.CombinePath|TMyDir.CombinePath]] und [[TMyDir.Exists|TMyDir.Exists]]. Es wird ein Pfad aus den Angaben &#039;&#039;cRoot&#039;&#039; und &#039;&#039;aAdd&#039;&#039; erstellt und geprüft, ob der Pfad existiert (Funktionsergebnis). Die Rückgabe des Pfades erfolgt mit &#039;&#039;cPath&#039;&#039;. Mit dem oprtionalen Parameter kann angegeben werden, ob das Verzeichnis erstellt werden soll, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
if (TMyDir.BuildPath(cRoot,[&#039;Import&#039;,&#039;2019&#039;],cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Verzeichnis &#039;+cPfad+&#039; existiert.&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.GetDirectoryName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDirectoryName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Pfad des Verzeichnisses zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
cPfad := TMyDir.GetDirectoryName(cDatei);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TMyFile==&lt;br /&gt;
===TMyFile.IsFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsFile(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsFile(cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Combine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Combine(const Path1: string; const Path2: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;);&lt;br /&gt;
//cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombine(const Path1: string; const Path2: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad und prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
    //cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRootDir: string; aAdd: array of string; const cFileName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Baut aus den Parametern einen Dateipfad zusammen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDateipfad := TMyFile.CombinePath(&#039;c:\Beispiel&#039;,[&#039;Verzeichnis&#039;,&#039;Pfad&#039;],&#039;MeineDatei.txt&#039;);&lt;br /&gt;
//cDateipfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Extrahiert aus &#039;&#039;FilePath&#039;&#039; den zu &#039;&#039;RelativeBasePath&#039;&#039; relativem Pfad und kombiniert dies mit &#039;&#039;CombineBasePath&#039;&#039; zu einem neuen Dateipfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.CombineRelativePath(&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;,&lt;br /&gt;
    &#039;\\mein-server\Netzwerk\OBS\data\Import&#039;&lt;br /&gt;
);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
TMyFile.IsCombineRelativePath verbindet die Funktionalität von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]] und [[#TMyFile.IsFile|TMyFile.IsFile]]. &#039;&#039;ReturnPath&#039;&#039; entspricht dem Ergebnis von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]]. Das Ergebnis der Funktion [[#TMyFile.IsFile|TMyFile.IsFile]] für den Pfad &#039;&#039;ReturnPath&#039;&#039; ist auch das Ergebnis für TMyFile.IsCombineRelativePath.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePathUNC(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad für die Datei zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Annahme: Das OBS-Installationsverzeichnis ist mit dem Laufwerksbuchstaben &#039;&#039;O&#039;&#039; als Netzlaufwerk am Arbeitsplatz eingerichtet.&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cUNC := TMyFile.GetFilePathUNC(cPfad);&lt;br /&gt;
//cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht &#039;&#039;Path&#039;&#039; zu einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad aufzulösen. Gibt &#039;&#039;Path&#039;&#039; zurück, wenn kein [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad verfügbar ist, aber &#039;&#039;Path&#039;&#039; existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cPfadNeu := TMyFile.GetFilePath(cPfad);&lt;br /&gt;
//cPfadNeu Werte:&lt;br /&gt;
//UNC vorhanden: &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert: &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Datei existiert nicht: &#039;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePathUNC(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei &#039;&#039;Path&#039;&#039; unter einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad zu finden ist. Dieser wird dann in &#039;&#039;ReturnPath&#039;&#039; enthalten.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.IsGetFilePathUNC(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cUNC)) then begin&lt;br /&gt;
    //cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cUNC+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePath(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Entspricht im verhalten [[#TMyFile.GetFilePath|TMyFile.GetFilePath]] mit einer zusätzlichen Prüfung, ob der Rückgabepfad &#039;&#039;ReturnPath&#039;&#039; leer ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsGetFilePath(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
//UNC vorhanden:&lt;br /&gt;
//    cPfad ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert:&lt;br /&gt;
//    cPfad ist &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Datei existiert nicht:&lt;br /&gt;
//    cPfad ist &#039;&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;false&#039;&#039;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Move===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Move(const SourceFileName: string; const DestFileName: string; const CreateDestDir: boolean=False; const Replace: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht die Datei &#039;&#039;SourceFileName&#039;&#039; nach &#039;&#039;DestFileName&#039;&#039; zu verschieben. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist. Die optionalen Parameter geben hier die Möglichkeit festzulegen, wie die Funktion bei Konflikten reagieren soll. &#039;&#039;CreateDestDir&#039;&#039; erlaubt die Anlage des Ziel-Verzeichnis, sollte es nicht existieren. &#039;&#039;Replace&#039;&#039; erlaubt es vorhandene Dateien zu überschreiben/ersetzen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Move(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde verschoben&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Delete===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Delete(const FilePath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Löscht die angegebene Datei &#039;&#039;FilePath&#039;&#039;. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Delete(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde gelöscht&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TObsPath==&lt;br /&gt;
===TObsPath.GetExePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExePath(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Installationsverzeichnis von OBS zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExePath();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;data&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetSysDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetSysDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;sys&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetSysDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetTempDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetTempDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;temp&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetTempDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetBildarchivDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetBildarchivDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;bildarchiv&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetBildarchivDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetExportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;export&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetImportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetImportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;import&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetImportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataInOutDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataInOutDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;datainout&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataInOutDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;lock&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Lock-Datei im Verzeichnis &#039;&#039;locks&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück. Die Dateiendung &#039;&#039;.lock&#039;&#039; wird automatisch ergäntzt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockFile(&#039;mein&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\locks\mein.lock&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Debug-Datei im Verzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugFile(&#039;debug.txt&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\debug\debug.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetShopDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetShopDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;shop&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetShopDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetRelativePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den relativen Pfad innerhalb der OBS-Verzeichnisstruktur zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;;&lt;br /&gt;
cDateiRelativ := TObsPath.GetRelativePath(cDatei);&lt;br /&gt;
//cDateiRelativ ist &#039;data\import\artikel.csv&#039;&lt;br /&gt;
&lt;br /&gt;
cVerzeichnis := &#039;\\mein-server\Netzwerk\OBS\data\import\&#039;;&lt;br /&gt;
cVerzeichnisRelativ := TObsPath.GetRelativePath(cVerzeichnis);&lt;br /&gt;
//cVerzeichnisRelativ ist &#039;data\import\&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFileName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad. Wenn möglich wird der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;data\import\artikel.csv&#039;;&lt;br /&gt;
cDatei := TObsPath.GetFileName(cDatei);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.IsGetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFileName(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad und prüft dessen Existens. Wenn möglich wird in &#039;&#039;ReturnPath&#039;&#039; der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TObsPath.IsGetFileName(&#039;data\import\artikel.csv&#039;,cDatei)) then begin&lt;br /&gt;
    //cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
	Meldung(&#039;Datei &#039;+cDatei+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TISO==&lt;br /&gt;
{{Hinweis|Für die Verwendung dieser Funktionen siehe auch [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Aufzählungstypen#TISOCountryCodes|TISOCountryCodes]].}}&lt;br /&gt;
===TISO.CountrySwap===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountrySwap(const cCode: string; const eFrom: TISOCountryCodes; const eTo: TISOCountryCodes): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht den ISO-3166-Code &#039;&#039;cCode&#039;&#039; von &#039;&#039;eFrom&#039;&#039; nach &#039;&#039;eTo&#039;&#039; zu wechseln.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Ermittelt die nummerische Kodierung zum Alpha-2-Code &amp;quot;de&amp;quot; (Deutschalnd) und zeigt diesen als Meldung an. Der nummerische Wert für de ist 276.&lt;br /&gt;
Meldung(TISO.CountrySwap(&#039;de&#039;,iso3166_Alpha2,iso3166_Numeric));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetRefNo===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetRefNo(oMyDB: TxDB; const eCode: TISOCountryCodes; const cCode: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt die OBS-Referenz aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] für den Code &#039;&#039;cCode&#039;&#039;. Gibt &#039;&#039;cDefault&#039;&#039; zurück, wenn keine OBS-Referenz ermittelt werden konnte.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, findet diese Funktion die entsprechende Referenz für Deutschland (OBS-Default ist &amp;quot;D-&amp;quot;) und zeigt diese als Meldung.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,&#039;de&#039;,iso3166_Alpha2));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetCode===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetCode(oMyDB: TxDB; const eCode: TISOCountryCodes; const cRef: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] den ISO-3166-Code für die OBS-Referenz &#039;&#039;cRef&#039;&#039; aus und gibt den Code für den Typen &#039;&#039;eCode&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, liest diese Funktion den Wert für die entsprechende Referenz den OBS-Default &amp;quot;D-&amp;quot; für Deutschland und zeigt den Code als Meldung an.&lt;br /&gt;
//Da im OBS nur der Alpha2 gepflegt werden kann, wird der Code bei Angabe von z. B. &#039;&#039;iso3166_Alpha3&#039;&#039; in &#039;&#039;eCode&#039;&#039; intern umgewandelt.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,iso3166_Alpha3,&#039;D-&#039;));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TqSQL==&lt;br /&gt;
{{Hinweis|Dies ist nur ein Auszug der Funktionalität}}&lt;br /&gt;
===TqSQL.A2I===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2I(const cFeld:String):integer;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Integer umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2C===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2C(const cFeld:String):String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen String umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2F===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2F(const cFeld:String):Double;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Floatwert umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2D===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2D(const cFeld:String):TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Datumswert umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2UID===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2UID():String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Es wird direkt die sys_uid des Eintrags zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cUID := xData..A2UID();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.qSet===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 function    qSet(const cxField : String; xDaten : Variant):Boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Das Datenbankfeld &#039;&#039;&#039;cxField&#039;&#039;&#039; wird mit den Daten aus &#039;&#039;&#039;xDaten&#039;&#039;&#039; gefüllt. Die Umwandlung von Variant nach Datenbankfeld erfolgt automatisch.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//String&lt;br /&gt;
xData.qSet(&#039;mbp_ksperre&#039;, &#039;0&#039;);&lt;br /&gt;
&lt;br /&gt;
//Float&lt;br /&gt;
var nEKPreis : Double;&lt;br /&gt;
&lt;br /&gt;
xData.qSet(&#039;mbp_ekpreis&#039;,nEKPreis);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Liste Funktionen=&lt;br /&gt;
==Empty==&lt;br /&gt;
Verwendung: Prüft, ob der Wert des Parameters leer bzw. 0 ist. Dies Funktioniert mit Zeichenketten (&#039;&#039;string&#039;&#039;) und Zahlen (&#039;&#039;integer&#039;&#039; und &#039;&#039;double&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string/integer/double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: boolean&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
    cText := &#039;Beispiel&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird ein leerer Text zugewiesen. Mit &#039;&#039;Empty&#039;&#039; wird der Wert nun geprüft. Die boolsche Variable &#039;&#039;IstLeer&#039;&#039; ist dann true (wahr). Als nächstes wird &#039;&#039;cText&#039;&#039; der Wert &amp;quot;Beispiel&amp;quot; zugewiesen und eine erneute Prüfung mit &#039;&#039;Empty&#039;&#039; durchgeführt. Da &#039;&#039;cText&#039;&#039; jetzt einen Text enthält, ist der Wert der Variablen &#039;&#039;IstLeer&#039;&#039; nun false (falsch).&lt;br /&gt;
&lt;br /&gt;
==Length==&lt;br /&gt;
Verwendung: Ermittelt die Länge einer Zeichenkette (string).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText   := &#039;Dies ist ein Beispiel.&#039;;&lt;br /&gt;
    nLaenge := Length(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel.&#039;&#039; zugewiesen. Mit &#039;&#039;Length&#039;&#039; wird die Länge ermittelt. Der Satz &amp;quot;Dies ist ein Beispiel.&amp;quot; hat 22 Zeichen. &#039;&#039;nLaenge&#039;&#039; hat also den Wert &#039;&#039;22&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==AllTrim==&lt;br /&gt;
Verwendung: Entfernt Umbrüche und Leerzeichen am Anfang und Ende einer Zeichenkette.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;  Dies ist ein Beispiel.       &#039;;&lt;br /&gt;
    cText := AllTrim(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &amp;quot;&#039;&#039;  Dies ist ein Beispiel.       &#039;&#039;&amp;quot; zugewiesen. Mit &#039;&#039;AllTrim&#039;&#039; werden die unnötigen Leerzeichen am Anfang und Ende der Zeichenkette entfernt. Die Variable &#039;&#039;cText&#039;&#039; entspricht also dem Wert &amp;quot;&#039;&#039;Dies ist ein Beispiel.&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==UpperCase/LowerCase==&lt;br /&gt;
Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Beispiel&#039;;&lt;br /&gt;
    cUpper := UpperCase(cText);&lt;br /&gt;
    cLower := LowerCase(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;UpperCase&#039;&#039; und &#039;&#039;LowerCase&#039;&#039; wird die Zeichenkette umgewandelt. &#039;&#039;cUpper&#039;&#039; enthält danach den Wert &#039;&#039;BEISPIEL&#039;&#039; und &#039;&#039;cLower&#039;&#039; den Wert &#039;&#039;beispiel&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==ExtractFileName==&lt;br /&gt;
Verwendung: Dateinamen aus Dateipfad auslesen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;c:\\Ordner\Datei.txt&#039;;&lt;br /&gt;
    cDatei := ExtractFileName(cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;c:\\Ordner\Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;ExtractFileName&#039;&#039; wird der Dateiname herausgesucht und zurückgegeben. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei.txt&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==StrTran==&lt;br /&gt;
Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei.txt&#039;;&lt;br /&gt;
    cName  := StrTran(cDatei ,&#039;.txt&#039;,&#039;&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;StrTran&#039;&#039; wird im Text der Variable &#039;&#039;cDatei&#039;&#039; nach &#039;&#039;.txt&#039;&#039; gesucht. Der gefundene Teil wird mit einer leeren Zeichenkette ersetzt. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==LeftStr/RightStr==&lt;br /&gt;
Verwendung: Gibt den linken/rechten Teil einer Zeichenketten zurück. Es werden dabei maximal soviele Zeichen zurückgegeben, wie im zweiten Parameter angegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Dies ist ein Beispiel&#039;;&lt;br /&gt;
    cLeft  := LeftStr(cText,2);&lt;br /&gt;
    cRight := RightStr(cText,5);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;LeftStr&#039;&#039; und &#039;&#039;RightStr&#039;&#039; werden jeweils die ersten zwei Zeichen von Links und Rechts zurückgegeben. &#039;&#039;cLeft&#039;&#039; enthält danach den Wert &#039;&#039;Di&#039;&#039; und &#039;&#039;cRight&#039;&#039; den Wert &#039;&#039;spiel&#039;&#039;.&lt;br /&gt;
{{Hinweis|Sollten mehr Zeichen ermittelt werden, als der ursprüngliche Wert Zeichen hat, so ist das Ergbenis gleich dem Ursprung. LeftStr(cDatei,50) hätte z. B. dazu geführt, dass cLeft ebenfalls &#039;&#039;Dies ist ein Beispiel&#039;&#039; enthält.}}&lt;br /&gt;
&lt;br /&gt;
==Token==&lt;br /&gt;
Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    cTeil  := Token(cDatei,&#039;_&#039;,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;Token&#039;&#039; wird die Zeichenkette aufgeteilt. Als Teiler ist ein Unterstrich angeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Es wird der zweite Teil gefordert. Die Variable &#039;&#039;cTeil&#039;&#039; enthält demnach den Wert &#039;&#039;Name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==NumToken==&lt;br /&gt;
Verwendung: Ermittelt die Anzahl der Teile einer Zeichenketten, wenn diese an den Stelle mit dem Zeichen, das als Parameter übergeben wird, geteilt wird.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    nTeile := NumToken(&#039;_&#039;,cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;NumToken&#039;&#039; wird die Anzahl der Teil-Zeichenketten der Zeichenkette cDatei ermittelt. Als Trennzeichen wurde ein Unterstrich angegeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Die Variable &#039;&#039;nTeile&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==iVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in einen Ganzzahlwert um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;4&#039;;&lt;br /&gt;
    nZahl := iVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;4&#039;&#039; zugewiesen. Mit &#039;&#039;iVal&#039;&#039; wird die Zeichenkette in die entsprechende Ganzzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==fVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in eine Dezimalzahl um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;1234,56&#039;;&lt;br /&gt;
    nZahl := fVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;1234,56&#039;&#039; zugewiesen. Mit &#039;&#039;fVal&#039;&#039; wird die Zeichenkette in die entsprechende Dezimalzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 1234,56.&lt;br /&gt;
&lt;br /&gt;
==Roundy==&lt;br /&gt;
Verwendung: Runden eines Dezimalwerts (Typ: Double)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nGerundeterWert := Roundy(nDezimalwert,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der zu rundende Wert wird mit Parameter 1 übergeben. Die gewünschte Anzahl an Nachkommastellen wird in Parameter 2 angegeben. Die Funktion rundet dann den Wert auf die angegebene Anzahl an Dezimalstellen und gibt das Ergebnis wieder zurück. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nGerundeterWert&#039;&#039; entspricht also 1234,57.&lt;br /&gt;
&lt;br /&gt;
==Trunc==&lt;br /&gt;
Verwendung: Abschneiden der Nachkommastellen eines Dezimalwerts&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nWert := Trunc(nDezimalwert);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der Dezimalwert ist als Parameter zu übergeben. Als Ergbnis werden die Vorkommastellen zurückgegeben. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nWert&#039;&#039; entspricht also 1234.&lt;br /&gt;
==PadL==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadL(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur linken Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;    Müller&#039;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;XXXXMüller&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==PadR==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadR(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur rechten Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;Müller    &#039;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;MüllerXXXX&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CToD==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CToD(const sDate: string): TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Konvertiert die Zeichenkette &#039;&#039;sDate&#039;&#039; in einen Datumswert des Typs [http://docwiki.embarcadero.com/Libraries/Rio/en/System.TDateTime &#039;&#039;TDateTime&#039;&#039;].&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18&#039;);&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18 17:52:35&#039;);&lt;br /&gt;
//In beiden Fällen entspricht der Wert in dDatum dem 18.11.2016, da CToD nur das Datum übernimmt. Die Uhrzeit wird verworfen.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Artikelstamm==&lt;br /&gt;
===AR_Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function AR_Exists(oMyDB: TxDB; const cArtNr: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Sucht im Artikelstamm nach der in &#039;&#039;cArtNr&#039;&#039; angegebenen Artikelnummer und liefert als Ergebnis &#039;&#039;True&#039;&#039; wenn der Artikel gefunden wurde.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (AR_Exists(oDB,&#039;ABC123&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Artikel existiert im Artikelstamm&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Umsatz- und Vorsteuer==&lt;br /&gt;
===FindUstFromSatz===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function FindUstFromSatz(oMyDB: TxDB; nSatz: double): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt den OBS-Umsatzsteuerschlüssel für den Steuersatz &#039;&#039;nSatz&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Gibt den zweistelligen Schlüssel (z. B. 01) für die Umsatzsteuer mit dem Satz 19 % aus&lt;br /&gt;
Meldung(FindUstFromSatz(oDB,19));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UST_VK_Netto2Brutto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(nNetto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===UST_VK_Brutto2Netto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Variante 1&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 2&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 3&lt;br /&gt;
function  UST_VK_Brutto2Netto(nBrutto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Wandelt einen Preis von Brutto nach Netto. Die Funktion gibt es in drei Ausführungen.&lt;br /&gt;
#Umwandlung über Artikelnummer&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto um. Der Steuersatz wird dabei über den Steuerschlüssel aus dem Artikelstamm gezogen. Falls kein Artikel mit der Nummer &#039;&#039;cArtNr&#039;&#039; im Artikelstamm gefunden werden kann, wird für die Umrechnung der Satz &#039;&#039;nDefaultSatz&#039;&#039; verwendet. Existiert der Artikel im Artikelstamm wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis verwendet, falls kein Steuerschlüssel im Artikel gepflegt ist. {{Hinweis|Wenn die Artikelnummer vorhanden ist, wird diese Variante der Umrechnung empfohlen, da hier auch Artikel mit mehreren Steuersätzen richtig umgewandelt werden.}}&lt;br /&gt;
#Umwandlung mit Steuerschlüssel&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto anhand des übergebenen Steuerschlüssels &#039;&#039;cSchl&#039;&#039; um. Ist der Steuerschlüssel leer, wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis zurückgegeben. Der Steuersatz &#039;&#039;nDefaultSatz&#039;&#039; wird verwendet, wenn kein passender Eintrag zum Steuerschlüssel im OBS gefunden werden konnte.&lt;br /&gt;
#Umwandlung mit Steuersatz&lt;br /&gt;
#:Der Wert &#039;&#039;nBrutto&#039;&#039; wird mit dem Steuersatz &#039;&#039;nMwstSatz&#039;&#039; umgerechnet. Die Rückgabe wird auf &#039;&#039;nNK&#039;&#039; Nachkommastellen gerundet.{{Achtung|Der Steuersatz 19 % wird in &#039;&#039;nMwstSatz&#039;&#039; als 19.00 (Punkt als Dezimaltrennzeichen) erwartet!}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57077</id>
		<title>OBS/Makros und Scripting/Allgemeines/Übersicht Funktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57077"/>
		<updated>2020-01-10T08:34:00Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* TqSQL.qSet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Hier finden Sie nützliche [https://de.wikipedia.org/wiki/Funktion_(Programmierung) Funktionen], die Sie in den Makros verwenden können, um das gewünschte Ergebnis zu erzielen.&lt;br /&gt;
=Liste Funktionssammlungen=&lt;br /&gt;
==TMyDir==&lt;br /&gt;
===TMyDir.CreateDirectory===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CreateDirectory(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Erstellt ein neues Verzeichnis mit dem angegebenen Pfad, wenn es noch nicht existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;;&lt;br /&gt;
lAngelegt := TMyDir.CreateDirectory(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Exists(const Path: string; const CreateIfNotExists: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob das Verzeichnis existiert. Wird der optionale Parameter &#039;&#039;CreateIfNotExists&#039;&#039; mit dem boolschen Wert &#039;&#039;True&#039;&#039; übergeben, wird versucht das Verzeichnis anzulegen, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
lExistiert := TMyDir.Exists(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRoot: string; aAdd: array of string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Dem Pfad &#039;&#039;cRoot&#039;&#039; werden die einzelnen Einträge aus dem [https://de.wikipedia.org/wiki/Feld_(Datentyp) Array] &#039;&#039;aAdd&#039;&#039; als Verzeichnisse angefügt und so ein neuer Pfad erstellt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\Import\2019&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.BuildPath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function BuildPath(const cRoot: string; aAdd: array of string; out cPath: string; lCreate: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Diese Funktion ist ein Mix aus [[#TMyDir.CombinePath|TMyDir.CombinePath]] und [[TMyDir.Exists|TMyDir.Exists]]. Es wird ein Pfad aus den Angaben &#039;&#039;cRoot&#039;&#039; und &#039;&#039;aAdd&#039;&#039; erstellt und geprüft, ob der Pfad existiert (Funktionsergebnis). Die Rückgabe des Pfades erfolgt mit &#039;&#039;cPath&#039;&#039;. Mit dem oprtionalen Parameter kann angegeben werden, ob das Verzeichnis erstellt werden soll, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
if (TMyDir.BuildPath(cRoot,[&#039;Import&#039;,&#039;2019&#039;],cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Verzeichnis &#039;+cPfad+&#039; existiert.&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.GetDirectoryName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDirectoryName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Pfad des Verzeichnisses zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
cPfad := TMyDir.GetDirectoryName(cDatei);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TMyFile==&lt;br /&gt;
===TMyFile.IsFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsFile(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsFile(cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Combine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Combine(const Path1: string; const Path2: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;);&lt;br /&gt;
//cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombine(const Path1: string; const Path2: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad und prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
    //cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRootDir: string; aAdd: array of string; const cFileName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Baut aus den Parametern einen Dateipfad zusammen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDateipfad := TMyFile.CombinePath(&#039;c:\Beispiel&#039;,[&#039;Verzeichnis&#039;,&#039;Pfad&#039;],&#039;MeineDatei.txt&#039;);&lt;br /&gt;
//cDateipfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Extrahiert aus &#039;&#039;FilePath&#039;&#039; den zu &#039;&#039;RelativeBasePath&#039;&#039; relativem Pfad und kombiniert dies mit &#039;&#039;CombineBasePath&#039;&#039; zu einem neuen Dateipfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.CombineRelativePath(&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;,&lt;br /&gt;
    &#039;\\mein-server\Netzwerk\OBS\data\Import&#039;&lt;br /&gt;
);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
TMyFile.IsCombineRelativePath verbindet die Funktionalität von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]] und [[#TMyFile.IsFile|TMyFile.IsFile]]. &#039;&#039;ReturnPath&#039;&#039; entspricht dem Ergebnis von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]]. Das Ergebnis der Funktion [[#TMyFile.IsFile|TMyFile.IsFile]] für den Pfad &#039;&#039;ReturnPath&#039;&#039; ist auch das Ergebnis für TMyFile.IsCombineRelativePath.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePathUNC(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad für die Datei zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Annahme: Das OBS-Installationsverzeichnis ist mit dem Laufwerksbuchstaben &#039;&#039;O&#039;&#039; als Netzlaufwerk am Arbeitsplatz eingerichtet.&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cUNC := TMyFile.GetFilePathUNC(cPfad);&lt;br /&gt;
//cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht &#039;&#039;Path&#039;&#039; zu einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad aufzulösen. Gibt &#039;&#039;Path&#039;&#039; zurück, wenn kein [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad verfügbar ist, aber &#039;&#039;Path&#039;&#039; existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cPfadNeu := TMyFile.GetFilePath(cPfad);&lt;br /&gt;
//cPfadNeu Werte:&lt;br /&gt;
//UNC vorhanden: &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert: &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Datei existiert nicht: &#039;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePathUNC(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei &#039;&#039;Path&#039;&#039; unter einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad zu finden ist. Dieser wird dann in &#039;&#039;ReturnPath&#039;&#039; enthalten.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.IsGetFilePathUNC(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cUNC)) then begin&lt;br /&gt;
    //cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cUNC+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePath(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Entspricht im verhalten [[#TMyFile.GetFilePath|TMyFile.GetFilePath]] mit einer zusätzlichen Prüfung, ob der Rückgabepfad &#039;&#039;ReturnPath&#039;&#039; leer ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsGetFilePath(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
//UNC vorhanden:&lt;br /&gt;
//    cPfad ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert:&lt;br /&gt;
//    cPfad ist &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Datei existiert nicht:&lt;br /&gt;
//    cPfad ist &#039;&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;false&#039;&#039;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Move===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Move(const SourceFileName: string; const DestFileName: string; const CreateDestDir: boolean=False; const Replace: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht die Datei &#039;&#039;SourceFileName&#039;&#039; nach &#039;&#039;DestFileName&#039;&#039; zu verschieben. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist. Die optionalen Parameter geben hier die Möglichkeit festzulegen, wie die Funktion bei Konflikten reagieren soll. &#039;&#039;CreateDestDir&#039;&#039; erlaubt die Anlage des Ziel-Verzeichnis, sollte es nicht existieren. &#039;&#039;Replace&#039;&#039; erlaubt es vorhandene Dateien zu überschreiben/ersetzen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Move(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde verschoben&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Delete===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Delete(const FilePath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Löscht die angegebene Datei &#039;&#039;FilePath&#039;&#039;. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Delete(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde gelöscht&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TObsPath==&lt;br /&gt;
===TObsPath.GetExePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExePath(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Installationsverzeichnis von OBS zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExePath();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;data&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetSysDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetSysDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;sys&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetSysDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetTempDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetTempDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;temp&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetTempDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetBildarchivDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetBildarchivDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;bildarchiv&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetBildarchivDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetExportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;export&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetImportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetImportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;import&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetImportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataInOutDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataInOutDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;datainout&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataInOutDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;lock&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Lock-Datei im Verzeichnis &#039;&#039;locks&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück. Die Dateiendung &#039;&#039;.lock&#039;&#039; wird automatisch ergäntzt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockFile(&#039;mein&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\locks\mein.lock&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Debug-Datei im Verzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugFile(&#039;debug.txt&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\debug\debug.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetShopDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetShopDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;shop&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetShopDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetRelativePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den relativen Pfad innerhalb der OBS-Verzeichnisstruktur zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;;&lt;br /&gt;
cDateiRelativ := TObsPath.GetRelativePath(cDatei);&lt;br /&gt;
//cDateiRelativ ist &#039;data\import\artikel.csv&#039;&lt;br /&gt;
&lt;br /&gt;
cVerzeichnis := &#039;\\mein-server\Netzwerk\OBS\data\import\&#039;;&lt;br /&gt;
cVerzeichnisRelativ := TObsPath.GetRelativePath(cVerzeichnis);&lt;br /&gt;
//cVerzeichnisRelativ ist &#039;data\import\&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFileName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad. Wenn möglich wird der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;data\import\artikel.csv&#039;;&lt;br /&gt;
cDatei := TObsPath.GetFileName(cDatei);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.IsGetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFileName(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad und prüft dessen Existens. Wenn möglich wird in &#039;&#039;ReturnPath&#039;&#039; der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TObsPath.IsGetFileName(&#039;data\import\artikel.csv&#039;,cDatei)) then begin&lt;br /&gt;
    //cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
	Meldung(&#039;Datei &#039;+cDatei+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TISO==&lt;br /&gt;
{{Hinweis|Für die Verwendung dieser Funktionen siehe auch [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Aufzählungstypen#TISOCountryCodes|TISOCountryCodes]].}}&lt;br /&gt;
===TISO.CountrySwap===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountrySwap(const cCode: string; const eFrom: TISOCountryCodes; const eTo: TISOCountryCodes): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht den ISO-3166-Code &#039;&#039;cCode&#039;&#039; von &#039;&#039;eFrom&#039;&#039; nach &#039;&#039;eTo&#039;&#039; zu wechseln.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Ermittelt die nummerische Kodierung zum Alpha-2-Code &amp;quot;de&amp;quot; (Deutschalnd) und zeigt diesen als Meldung an. Der nummerische Wert für de ist 276.&lt;br /&gt;
Meldung(TISO.CountrySwap(&#039;de&#039;,iso3166_Alpha2,iso3166_Numeric));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetRefNo===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetRefNo(oMyDB: TxDB; const eCode: TISOCountryCodes; const cCode: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt die OBS-Referenz aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] für den Code &#039;&#039;cCode&#039;&#039;. Gibt &#039;&#039;cDefault&#039;&#039; zurück, wenn keine OBS-Referenz ermittelt werden konnte.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, findet diese Funktion die entsprechende Referenz für Deutschland (OBS-Default ist &amp;quot;D-&amp;quot;) und zeigt diese als Meldung.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,&#039;de&#039;,iso3166_Alpha2));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetCode===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetCode(oMyDB: TxDB; const eCode: TISOCountryCodes; const cRef: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] den ISO-3166-Code für die OBS-Referenz &#039;&#039;cRef&#039;&#039; aus und gibt den Code für den Typen &#039;&#039;eCode&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, liest diese Funktion den Wert für die entsprechende Referenz den OBS-Default &amp;quot;D-&amp;quot; für Deutschland und zeigt den Code als Meldung an.&lt;br /&gt;
//Da im OBS nur der Alpha2 gepflegt werden kann, wird der Code bei Angabe von z. B. &#039;&#039;iso3166_Alpha3&#039;&#039; in &#039;&#039;eCode&#039;&#039; intern umgewandelt.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,iso3166_Alpha3,&#039;D-&#039;));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TqSQL==&lt;br /&gt;
{{Hinweis|Dies ist nur ein Auszug der Funktionalität}}&lt;br /&gt;
===TqSQL.A2I===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2I(const cFeld:String):integer;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Integer umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2C===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2C(const cFeld:String):String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen String umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2F===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2F(const cFeld:String):Double;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Floatwert umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2D===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2D(const cFeld:String):TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Datumswert umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2UID===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2UID():String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Es wird direkt die sys_uid des Eintrags zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.qSet===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 function    qSet(const cxField : String; xDaten : Variant):Boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Das Datenbankfeld &#039;&#039;&#039;cxField&#039;&#039;&#039; wird mit den Daten aus &#039;&#039;&#039;xDaten&#039;&#039;&#039; gefüllt. Die Umwandlung von Variant nach Datenbankfeld erfolgt automatisch.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//String&lt;br /&gt;
xData.qSet(&#039;mbp_ksperre&#039;, &#039;0&#039;);&lt;br /&gt;
&lt;br /&gt;
//Float&lt;br /&gt;
var nEKPreis : Double;&lt;br /&gt;
&lt;br /&gt;
xData.qSet(&#039;mbp_ekpreis&#039;,nEKPreis);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Liste Funktionen=&lt;br /&gt;
==Empty==&lt;br /&gt;
Verwendung: Prüft, ob der Wert des Parameters leer bzw. 0 ist. Dies Funktioniert mit Zeichenketten (&#039;&#039;string&#039;&#039;) und Zahlen (&#039;&#039;integer&#039;&#039; und &#039;&#039;double&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string/integer/double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: boolean&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
    cText := &#039;Beispiel&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird ein leerer Text zugewiesen. Mit &#039;&#039;Empty&#039;&#039; wird der Wert nun geprüft. Die boolsche Variable &#039;&#039;IstLeer&#039;&#039; ist dann true (wahr). Als nächstes wird &#039;&#039;cText&#039;&#039; der Wert &amp;quot;Beispiel&amp;quot; zugewiesen und eine erneute Prüfung mit &#039;&#039;Empty&#039;&#039; durchgeführt. Da &#039;&#039;cText&#039;&#039; jetzt einen Text enthält, ist der Wert der Variablen &#039;&#039;IstLeer&#039;&#039; nun false (falsch).&lt;br /&gt;
&lt;br /&gt;
==Length==&lt;br /&gt;
Verwendung: Ermittelt die Länge einer Zeichenkette (string).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText   := &#039;Dies ist ein Beispiel.&#039;;&lt;br /&gt;
    nLaenge := Length(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel.&#039;&#039; zugewiesen. Mit &#039;&#039;Length&#039;&#039; wird die Länge ermittelt. Der Satz &amp;quot;Dies ist ein Beispiel.&amp;quot; hat 22 Zeichen. &#039;&#039;nLaenge&#039;&#039; hat also den Wert &#039;&#039;22&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==AllTrim==&lt;br /&gt;
Verwendung: Entfernt Umbrüche und Leerzeichen am Anfang und Ende einer Zeichenkette.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;  Dies ist ein Beispiel.       &#039;;&lt;br /&gt;
    cText := AllTrim(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &amp;quot;&#039;&#039;  Dies ist ein Beispiel.       &#039;&#039;&amp;quot; zugewiesen. Mit &#039;&#039;AllTrim&#039;&#039; werden die unnötigen Leerzeichen am Anfang und Ende der Zeichenkette entfernt. Die Variable &#039;&#039;cText&#039;&#039; entspricht also dem Wert &amp;quot;&#039;&#039;Dies ist ein Beispiel.&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==UpperCase/LowerCase==&lt;br /&gt;
Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Beispiel&#039;;&lt;br /&gt;
    cUpper := UpperCase(cText);&lt;br /&gt;
    cLower := LowerCase(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;UpperCase&#039;&#039; und &#039;&#039;LowerCase&#039;&#039; wird die Zeichenkette umgewandelt. &#039;&#039;cUpper&#039;&#039; enthält danach den Wert &#039;&#039;BEISPIEL&#039;&#039; und &#039;&#039;cLower&#039;&#039; den Wert &#039;&#039;beispiel&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==ExtractFileName==&lt;br /&gt;
Verwendung: Dateinamen aus Dateipfad auslesen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;c:\\Ordner\Datei.txt&#039;;&lt;br /&gt;
    cDatei := ExtractFileName(cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;c:\\Ordner\Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;ExtractFileName&#039;&#039; wird der Dateiname herausgesucht und zurückgegeben. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei.txt&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==StrTran==&lt;br /&gt;
Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei.txt&#039;;&lt;br /&gt;
    cName  := StrTran(cDatei ,&#039;.txt&#039;,&#039;&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;StrTran&#039;&#039; wird im Text der Variable &#039;&#039;cDatei&#039;&#039; nach &#039;&#039;.txt&#039;&#039; gesucht. Der gefundene Teil wird mit einer leeren Zeichenkette ersetzt. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==LeftStr/RightStr==&lt;br /&gt;
Verwendung: Gibt den linken/rechten Teil einer Zeichenketten zurück. Es werden dabei maximal soviele Zeichen zurückgegeben, wie im zweiten Parameter angegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Dies ist ein Beispiel&#039;;&lt;br /&gt;
    cLeft  := LeftStr(cText,2);&lt;br /&gt;
    cRight := RightStr(cText,5);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;LeftStr&#039;&#039; und &#039;&#039;RightStr&#039;&#039; werden jeweils die ersten zwei Zeichen von Links und Rechts zurückgegeben. &#039;&#039;cLeft&#039;&#039; enthält danach den Wert &#039;&#039;Di&#039;&#039; und &#039;&#039;cRight&#039;&#039; den Wert &#039;&#039;spiel&#039;&#039;.&lt;br /&gt;
{{Hinweis|Sollten mehr Zeichen ermittelt werden, als der ursprüngliche Wert Zeichen hat, so ist das Ergbenis gleich dem Ursprung. LeftStr(cDatei,50) hätte z. B. dazu geführt, dass cLeft ebenfalls &#039;&#039;Dies ist ein Beispiel&#039;&#039; enthält.}}&lt;br /&gt;
&lt;br /&gt;
==Token==&lt;br /&gt;
Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    cTeil  := Token(cDatei,&#039;_&#039;,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;Token&#039;&#039; wird die Zeichenkette aufgeteilt. Als Teiler ist ein Unterstrich angeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Es wird der zweite Teil gefordert. Die Variable &#039;&#039;cTeil&#039;&#039; enthält demnach den Wert &#039;&#039;Name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==NumToken==&lt;br /&gt;
Verwendung: Ermittelt die Anzahl der Teile einer Zeichenketten, wenn diese an den Stelle mit dem Zeichen, das als Parameter übergeben wird, geteilt wird.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    nTeile := NumToken(&#039;_&#039;,cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;NumToken&#039;&#039; wird die Anzahl der Teil-Zeichenketten der Zeichenkette cDatei ermittelt. Als Trennzeichen wurde ein Unterstrich angegeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Die Variable &#039;&#039;nTeile&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==iVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in einen Ganzzahlwert um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;4&#039;;&lt;br /&gt;
    nZahl := iVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;4&#039;&#039; zugewiesen. Mit &#039;&#039;iVal&#039;&#039; wird die Zeichenkette in die entsprechende Ganzzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==fVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in eine Dezimalzahl um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;1234,56&#039;;&lt;br /&gt;
    nZahl := fVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;1234,56&#039;&#039; zugewiesen. Mit &#039;&#039;fVal&#039;&#039; wird die Zeichenkette in die entsprechende Dezimalzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 1234,56.&lt;br /&gt;
&lt;br /&gt;
==Roundy==&lt;br /&gt;
Verwendung: Runden eines Dezimalwerts (Typ: Double)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nGerundeterWert := Roundy(nDezimalwert,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der zu rundende Wert wird mit Parameter 1 übergeben. Die gewünschte Anzahl an Nachkommastellen wird in Parameter 2 angegeben. Die Funktion rundet dann den Wert auf die angegebene Anzahl an Dezimalstellen und gibt das Ergebnis wieder zurück. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nGerundeterWert&#039;&#039; entspricht also 1234,57.&lt;br /&gt;
&lt;br /&gt;
==Trunc==&lt;br /&gt;
Verwendung: Abschneiden der Nachkommastellen eines Dezimalwerts&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nWert := Trunc(nDezimalwert);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der Dezimalwert ist als Parameter zu übergeben. Als Ergbnis werden die Vorkommastellen zurückgegeben. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nWert&#039;&#039; entspricht also 1234.&lt;br /&gt;
==PadL==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadL(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur linken Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;    Müller&#039;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;XXXXMüller&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==PadR==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadR(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur rechten Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;Müller    &#039;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;MüllerXXXX&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CToD==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CToD(const sDate: string): TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Konvertiert die Zeichenkette &#039;&#039;sDate&#039;&#039; in einen Datumswert des Typs [http://docwiki.embarcadero.com/Libraries/Rio/en/System.TDateTime &#039;&#039;TDateTime&#039;&#039;].&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18&#039;);&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18 17:52:35&#039;);&lt;br /&gt;
//In beiden Fällen entspricht der Wert in dDatum dem 18.11.2016, da CToD nur das Datum übernimmt. Die Uhrzeit wird verworfen.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Artikelstamm==&lt;br /&gt;
===AR_Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function AR_Exists(oMyDB: TxDB; const cArtNr: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Sucht im Artikelstamm nach der in &#039;&#039;cArtNr&#039;&#039; angegebenen Artikelnummer und liefert als Ergebnis &#039;&#039;True&#039;&#039; wenn der Artikel gefunden wurde.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (AR_Exists(oDB,&#039;ABC123&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Artikel existiert im Artikelstamm&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Umsatz- und Vorsteuer==&lt;br /&gt;
===FindUstFromSatz===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function FindUstFromSatz(oMyDB: TxDB; nSatz: double): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt den OBS-Umsatzsteuerschlüssel für den Steuersatz &#039;&#039;nSatz&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Gibt den zweistelligen Schlüssel (z. B. 01) für die Umsatzsteuer mit dem Satz 19 % aus&lt;br /&gt;
Meldung(FindUstFromSatz(oDB,19));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UST_VK_Netto2Brutto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(nNetto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===UST_VK_Brutto2Netto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Variante 1&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 2&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 3&lt;br /&gt;
function  UST_VK_Brutto2Netto(nBrutto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Wandelt einen Preis von Brutto nach Netto. Die Funktion gibt es in drei Ausführungen.&lt;br /&gt;
#Umwandlung über Artikelnummer&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto um. Der Steuersatz wird dabei über den Steuerschlüssel aus dem Artikelstamm gezogen. Falls kein Artikel mit der Nummer &#039;&#039;cArtNr&#039;&#039; im Artikelstamm gefunden werden kann, wird für die Umrechnung der Satz &#039;&#039;nDefaultSatz&#039;&#039; verwendet. Existiert der Artikel im Artikelstamm wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis verwendet, falls kein Steuerschlüssel im Artikel gepflegt ist. {{Hinweis|Wenn die Artikelnummer vorhanden ist, wird diese Variante der Umrechnung empfohlen, da hier auch Artikel mit mehreren Steuersätzen richtig umgewandelt werden.}}&lt;br /&gt;
#Umwandlung mit Steuerschlüssel&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto anhand des übergebenen Steuerschlüssels &#039;&#039;cSchl&#039;&#039; um. Ist der Steuerschlüssel leer, wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis zurückgegeben. Der Steuersatz &#039;&#039;nDefaultSatz&#039;&#039; wird verwendet, wenn kein passender Eintrag zum Steuerschlüssel im OBS gefunden werden konnte.&lt;br /&gt;
#Umwandlung mit Steuersatz&lt;br /&gt;
#:Der Wert &#039;&#039;nBrutto&#039;&#039; wird mit dem Steuersatz &#039;&#039;nMwstSatz&#039;&#039; umgerechnet. Die Rückgabe wird auf &#039;&#039;nNK&#039;&#039; Nachkommastellen gerundet.{{Achtung|Der Steuersatz 19 % wird in &#039;&#039;nMwstSatz&#039;&#039; als 19.00 (Punkt als Dezimaltrennzeichen) erwartet!}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57076</id>
		<title>OBS/Makros und Scripting/Allgemeines/Übersicht Funktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57076"/>
		<updated>2020-01-10T08:29:43Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* TqSQL.qSet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Hier finden Sie nützliche [https://de.wikipedia.org/wiki/Funktion_(Programmierung) Funktionen], die Sie in den Makros verwenden können, um das gewünschte Ergebnis zu erzielen.&lt;br /&gt;
=Liste Funktionssammlungen=&lt;br /&gt;
==TMyDir==&lt;br /&gt;
===TMyDir.CreateDirectory===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CreateDirectory(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Erstellt ein neues Verzeichnis mit dem angegebenen Pfad, wenn es noch nicht existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;;&lt;br /&gt;
lAngelegt := TMyDir.CreateDirectory(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Exists(const Path: string; const CreateIfNotExists: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob das Verzeichnis existiert. Wird der optionale Parameter &#039;&#039;CreateIfNotExists&#039;&#039; mit dem boolschen Wert &#039;&#039;True&#039;&#039; übergeben, wird versucht das Verzeichnis anzulegen, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
lExistiert := TMyDir.Exists(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRoot: string; aAdd: array of string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Dem Pfad &#039;&#039;cRoot&#039;&#039; werden die einzelnen Einträge aus dem [https://de.wikipedia.org/wiki/Feld_(Datentyp) Array] &#039;&#039;aAdd&#039;&#039; als Verzeichnisse angefügt und so ein neuer Pfad erstellt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\Import\2019&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.BuildPath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function BuildPath(const cRoot: string; aAdd: array of string; out cPath: string; lCreate: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Diese Funktion ist ein Mix aus [[#TMyDir.CombinePath|TMyDir.CombinePath]] und [[TMyDir.Exists|TMyDir.Exists]]. Es wird ein Pfad aus den Angaben &#039;&#039;cRoot&#039;&#039; und &#039;&#039;aAdd&#039;&#039; erstellt und geprüft, ob der Pfad existiert (Funktionsergebnis). Die Rückgabe des Pfades erfolgt mit &#039;&#039;cPath&#039;&#039;. Mit dem oprtionalen Parameter kann angegeben werden, ob das Verzeichnis erstellt werden soll, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
if (TMyDir.BuildPath(cRoot,[&#039;Import&#039;,&#039;2019&#039;],cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Verzeichnis &#039;+cPfad+&#039; existiert.&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.GetDirectoryName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDirectoryName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Pfad des Verzeichnisses zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
cPfad := TMyDir.GetDirectoryName(cDatei);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TMyFile==&lt;br /&gt;
===TMyFile.IsFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsFile(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsFile(cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Combine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Combine(const Path1: string; const Path2: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;);&lt;br /&gt;
//cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombine(const Path1: string; const Path2: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad und prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
    //cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRootDir: string; aAdd: array of string; const cFileName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Baut aus den Parametern einen Dateipfad zusammen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDateipfad := TMyFile.CombinePath(&#039;c:\Beispiel&#039;,[&#039;Verzeichnis&#039;,&#039;Pfad&#039;],&#039;MeineDatei.txt&#039;);&lt;br /&gt;
//cDateipfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Extrahiert aus &#039;&#039;FilePath&#039;&#039; den zu &#039;&#039;RelativeBasePath&#039;&#039; relativem Pfad und kombiniert dies mit &#039;&#039;CombineBasePath&#039;&#039; zu einem neuen Dateipfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.CombineRelativePath(&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;,&lt;br /&gt;
    &#039;\\mein-server\Netzwerk\OBS\data\Import&#039;&lt;br /&gt;
);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
TMyFile.IsCombineRelativePath verbindet die Funktionalität von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]] und [[#TMyFile.IsFile|TMyFile.IsFile]]. &#039;&#039;ReturnPath&#039;&#039; entspricht dem Ergebnis von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]]. Das Ergebnis der Funktion [[#TMyFile.IsFile|TMyFile.IsFile]] für den Pfad &#039;&#039;ReturnPath&#039;&#039; ist auch das Ergebnis für TMyFile.IsCombineRelativePath.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePathUNC(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad für die Datei zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Annahme: Das OBS-Installationsverzeichnis ist mit dem Laufwerksbuchstaben &#039;&#039;O&#039;&#039; als Netzlaufwerk am Arbeitsplatz eingerichtet.&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cUNC := TMyFile.GetFilePathUNC(cPfad);&lt;br /&gt;
//cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht &#039;&#039;Path&#039;&#039; zu einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad aufzulösen. Gibt &#039;&#039;Path&#039;&#039; zurück, wenn kein [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad verfügbar ist, aber &#039;&#039;Path&#039;&#039; existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cPfadNeu := TMyFile.GetFilePath(cPfad);&lt;br /&gt;
//cPfadNeu Werte:&lt;br /&gt;
//UNC vorhanden: &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert: &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Datei existiert nicht: &#039;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePathUNC(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei &#039;&#039;Path&#039;&#039; unter einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad zu finden ist. Dieser wird dann in &#039;&#039;ReturnPath&#039;&#039; enthalten.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.IsGetFilePathUNC(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cUNC)) then begin&lt;br /&gt;
    //cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cUNC+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePath(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Entspricht im verhalten [[#TMyFile.GetFilePath|TMyFile.GetFilePath]] mit einer zusätzlichen Prüfung, ob der Rückgabepfad &#039;&#039;ReturnPath&#039;&#039; leer ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsGetFilePath(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
//UNC vorhanden:&lt;br /&gt;
//    cPfad ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert:&lt;br /&gt;
//    cPfad ist &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Datei existiert nicht:&lt;br /&gt;
//    cPfad ist &#039;&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;false&#039;&#039;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Move===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Move(const SourceFileName: string; const DestFileName: string; const CreateDestDir: boolean=False; const Replace: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht die Datei &#039;&#039;SourceFileName&#039;&#039; nach &#039;&#039;DestFileName&#039;&#039; zu verschieben. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist. Die optionalen Parameter geben hier die Möglichkeit festzulegen, wie die Funktion bei Konflikten reagieren soll. &#039;&#039;CreateDestDir&#039;&#039; erlaubt die Anlage des Ziel-Verzeichnis, sollte es nicht existieren. &#039;&#039;Replace&#039;&#039; erlaubt es vorhandene Dateien zu überschreiben/ersetzen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Move(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde verschoben&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Delete===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Delete(const FilePath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Löscht die angegebene Datei &#039;&#039;FilePath&#039;&#039;. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Delete(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde gelöscht&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TObsPath==&lt;br /&gt;
===TObsPath.GetExePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExePath(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Installationsverzeichnis von OBS zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExePath();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;data&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetSysDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetSysDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;sys&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetSysDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetTempDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetTempDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;temp&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetTempDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetBildarchivDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetBildarchivDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;bildarchiv&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetBildarchivDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetExportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;export&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetImportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetImportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;import&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetImportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataInOutDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataInOutDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;datainout&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataInOutDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;lock&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Lock-Datei im Verzeichnis &#039;&#039;locks&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück. Die Dateiendung &#039;&#039;.lock&#039;&#039; wird automatisch ergäntzt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockFile(&#039;mein&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\locks\mein.lock&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Debug-Datei im Verzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugFile(&#039;debug.txt&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\debug\debug.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetShopDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetShopDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;shop&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetShopDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetRelativePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den relativen Pfad innerhalb der OBS-Verzeichnisstruktur zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;;&lt;br /&gt;
cDateiRelativ := TObsPath.GetRelativePath(cDatei);&lt;br /&gt;
//cDateiRelativ ist &#039;data\import\artikel.csv&#039;&lt;br /&gt;
&lt;br /&gt;
cVerzeichnis := &#039;\\mein-server\Netzwerk\OBS\data\import\&#039;;&lt;br /&gt;
cVerzeichnisRelativ := TObsPath.GetRelativePath(cVerzeichnis);&lt;br /&gt;
//cVerzeichnisRelativ ist &#039;data\import\&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFileName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad. Wenn möglich wird der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;data\import\artikel.csv&#039;;&lt;br /&gt;
cDatei := TObsPath.GetFileName(cDatei);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.IsGetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFileName(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad und prüft dessen Existens. Wenn möglich wird in &#039;&#039;ReturnPath&#039;&#039; der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TObsPath.IsGetFileName(&#039;data\import\artikel.csv&#039;,cDatei)) then begin&lt;br /&gt;
    //cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
	Meldung(&#039;Datei &#039;+cDatei+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TISO==&lt;br /&gt;
{{Hinweis|Für die Verwendung dieser Funktionen siehe auch [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Aufzählungstypen#TISOCountryCodes|TISOCountryCodes]].}}&lt;br /&gt;
===TISO.CountrySwap===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountrySwap(const cCode: string; const eFrom: TISOCountryCodes; const eTo: TISOCountryCodes): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht den ISO-3166-Code &#039;&#039;cCode&#039;&#039; von &#039;&#039;eFrom&#039;&#039; nach &#039;&#039;eTo&#039;&#039; zu wechseln.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Ermittelt die nummerische Kodierung zum Alpha-2-Code &amp;quot;de&amp;quot; (Deutschalnd) und zeigt diesen als Meldung an. Der nummerische Wert für de ist 276.&lt;br /&gt;
Meldung(TISO.CountrySwap(&#039;de&#039;,iso3166_Alpha2,iso3166_Numeric));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetRefNo===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetRefNo(oMyDB: TxDB; const eCode: TISOCountryCodes; const cCode: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt die OBS-Referenz aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] für den Code &#039;&#039;cCode&#039;&#039;. Gibt &#039;&#039;cDefault&#039;&#039; zurück, wenn keine OBS-Referenz ermittelt werden konnte.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, findet diese Funktion die entsprechende Referenz für Deutschland (OBS-Default ist &amp;quot;D-&amp;quot;) und zeigt diese als Meldung.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,&#039;de&#039;,iso3166_Alpha2));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetCode===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetCode(oMyDB: TxDB; const eCode: TISOCountryCodes; const cRef: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] den ISO-3166-Code für die OBS-Referenz &#039;&#039;cRef&#039;&#039; aus und gibt den Code für den Typen &#039;&#039;eCode&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, liest diese Funktion den Wert für die entsprechende Referenz den OBS-Default &amp;quot;D-&amp;quot; für Deutschland und zeigt den Code als Meldung an.&lt;br /&gt;
//Da im OBS nur der Alpha2 gepflegt werden kann, wird der Code bei Angabe von z. B. &#039;&#039;iso3166_Alpha3&#039;&#039; in &#039;&#039;eCode&#039;&#039; intern umgewandelt.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,iso3166_Alpha3,&#039;D-&#039;));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TqSQL==&lt;br /&gt;
{{Hinweis|Dies ist nur ein Auszug der Funktionalität}}&lt;br /&gt;
===TqSQL.A2I===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2I(const cFeld:String):integer;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Integer umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2C===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2C(const cFeld:String):String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen String umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2F===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2F(const cFeld:String):Double;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Floatwert umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2D===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2D(const cFeld:String):TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Datumswert umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2UID===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2UID():String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Es wird direkt die sys_uid des Eintrags zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.qSet===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 function    qSet(const cxField : String; xDaten : Variant):Boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Das Datenbankfeld &#039;&#039;&#039;cxField&#039;&#039;&#039; wird mit den Daten aus &#039;&#039;&#039;xDaten&#039;&#039;&#039; gefüllt. Die Umwandlung von Variant nach Datenbankfeld erfolgt automatisch.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Liste Funktionen=&lt;br /&gt;
==Empty==&lt;br /&gt;
Verwendung: Prüft, ob der Wert des Parameters leer bzw. 0 ist. Dies Funktioniert mit Zeichenketten (&#039;&#039;string&#039;&#039;) und Zahlen (&#039;&#039;integer&#039;&#039; und &#039;&#039;double&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string/integer/double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: boolean&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
    cText := &#039;Beispiel&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird ein leerer Text zugewiesen. Mit &#039;&#039;Empty&#039;&#039; wird der Wert nun geprüft. Die boolsche Variable &#039;&#039;IstLeer&#039;&#039; ist dann true (wahr). Als nächstes wird &#039;&#039;cText&#039;&#039; der Wert &amp;quot;Beispiel&amp;quot; zugewiesen und eine erneute Prüfung mit &#039;&#039;Empty&#039;&#039; durchgeführt. Da &#039;&#039;cText&#039;&#039; jetzt einen Text enthält, ist der Wert der Variablen &#039;&#039;IstLeer&#039;&#039; nun false (falsch).&lt;br /&gt;
&lt;br /&gt;
==Length==&lt;br /&gt;
Verwendung: Ermittelt die Länge einer Zeichenkette (string).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText   := &#039;Dies ist ein Beispiel.&#039;;&lt;br /&gt;
    nLaenge := Length(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel.&#039;&#039; zugewiesen. Mit &#039;&#039;Length&#039;&#039; wird die Länge ermittelt. Der Satz &amp;quot;Dies ist ein Beispiel.&amp;quot; hat 22 Zeichen. &#039;&#039;nLaenge&#039;&#039; hat also den Wert &#039;&#039;22&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==AllTrim==&lt;br /&gt;
Verwendung: Entfernt Umbrüche und Leerzeichen am Anfang und Ende einer Zeichenkette.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;  Dies ist ein Beispiel.       &#039;;&lt;br /&gt;
    cText := AllTrim(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &amp;quot;&#039;&#039;  Dies ist ein Beispiel.       &#039;&#039;&amp;quot; zugewiesen. Mit &#039;&#039;AllTrim&#039;&#039; werden die unnötigen Leerzeichen am Anfang und Ende der Zeichenkette entfernt. Die Variable &#039;&#039;cText&#039;&#039; entspricht also dem Wert &amp;quot;&#039;&#039;Dies ist ein Beispiel.&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==UpperCase/LowerCase==&lt;br /&gt;
Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Beispiel&#039;;&lt;br /&gt;
    cUpper := UpperCase(cText);&lt;br /&gt;
    cLower := LowerCase(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;UpperCase&#039;&#039; und &#039;&#039;LowerCase&#039;&#039; wird die Zeichenkette umgewandelt. &#039;&#039;cUpper&#039;&#039; enthält danach den Wert &#039;&#039;BEISPIEL&#039;&#039; und &#039;&#039;cLower&#039;&#039; den Wert &#039;&#039;beispiel&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==ExtractFileName==&lt;br /&gt;
Verwendung: Dateinamen aus Dateipfad auslesen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;c:\\Ordner\Datei.txt&#039;;&lt;br /&gt;
    cDatei := ExtractFileName(cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;c:\\Ordner\Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;ExtractFileName&#039;&#039; wird der Dateiname herausgesucht und zurückgegeben. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei.txt&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==StrTran==&lt;br /&gt;
Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei.txt&#039;;&lt;br /&gt;
    cName  := StrTran(cDatei ,&#039;.txt&#039;,&#039;&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;StrTran&#039;&#039; wird im Text der Variable &#039;&#039;cDatei&#039;&#039; nach &#039;&#039;.txt&#039;&#039; gesucht. Der gefundene Teil wird mit einer leeren Zeichenkette ersetzt. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==LeftStr/RightStr==&lt;br /&gt;
Verwendung: Gibt den linken/rechten Teil einer Zeichenketten zurück. Es werden dabei maximal soviele Zeichen zurückgegeben, wie im zweiten Parameter angegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Dies ist ein Beispiel&#039;;&lt;br /&gt;
    cLeft  := LeftStr(cText,2);&lt;br /&gt;
    cRight := RightStr(cText,5);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;LeftStr&#039;&#039; und &#039;&#039;RightStr&#039;&#039; werden jeweils die ersten zwei Zeichen von Links und Rechts zurückgegeben. &#039;&#039;cLeft&#039;&#039; enthält danach den Wert &#039;&#039;Di&#039;&#039; und &#039;&#039;cRight&#039;&#039; den Wert &#039;&#039;spiel&#039;&#039;.&lt;br /&gt;
{{Hinweis|Sollten mehr Zeichen ermittelt werden, als der ursprüngliche Wert Zeichen hat, so ist das Ergbenis gleich dem Ursprung. LeftStr(cDatei,50) hätte z. B. dazu geführt, dass cLeft ebenfalls &#039;&#039;Dies ist ein Beispiel&#039;&#039; enthält.}}&lt;br /&gt;
&lt;br /&gt;
==Token==&lt;br /&gt;
Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    cTeil  := Token(cDatei,&#039;_&#039;,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;Token&#039;&#039; wird die Zeichenkette aufgeteilt. Als Teiler ist ein Unterstrich angeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Es wird der zweite Teil gefordert. Die Variable &#039;&#039;cTeil&#039;&#039; enthält demnach den Wert &#039;&#039;Name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==NumToken==&lt;br /&gt;
Verwendung: Ermittelt die Anzahl der Teile einer Zeichenketten, wenn diese an den Stelle mit dem Zeichen, das als Parameter übergeben wird, geteilt wird.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    nTeile := NumToken(&#039;_&#039;,cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;NumToken&#039;&#039; wird die Anzahl der Teil-Zeichenketten der Zeichenkette cDatei ermittelt. Als Trennzeichen wurde ein Unterstrich angegeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Die Variable &#039;&#039;nTeile&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==iVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in einen Ganzzahlwert um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;4&#039;;&lt;br /&gt;
    nZahl := iVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;4&#039;&#039; zugewiesen. Mit &#039;&#039;iVal&#039;&#039; wird die Zeichenkette in die entsprechende Ganzzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==fVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in eine Dezimalzahl um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;1234,56&#039;;&lt;br /&gt;
    nZahl := fVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;1234,56&#039;&#039; zugewiesen. Mit &#039;&#039;fVal&#039;&#039; wird die Zeichenkette in die entsprechende Dezimalzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 1234,56.&lt;br /&gt;
&lt;br /&gt;
==Roundy==&lt;br /&gt;
Verwendung: Runden eines Dezimalwerts (Typ: Double)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nGerundeterWert := Roundy(nDezimalwert,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der zu rundende Wert wird mit Parameter 1 übergeben. Die gewünschte Anzahl an Nachkommastellen wird in Parameter 2 angegeben. Die Funktion rundet dann den Wert auf die angegebene Anzahl an Dezimalstellen und gibt das Ergebnis wieder zurück. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nGerundeterWert&#039;&#039; entspricht also 1234,57.&lt;br /&gt;
&lt;br /&gt;
==Trunc==&lt;br /&gt;
Verwendung: Abschneiden der Nachkommastellen eines Dezimalwerts&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nWert := Trunc(nDezimalwert);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der Dezimalwert ist als Parameter zu übergeben. Als Ergbnis werden die Vorkommastellen zurückgegeben. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nWert&#039;&#039; entspricht also 1234.&lt;br /&gt;
==PadL==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadL(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur linken Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;    Müller&#039;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;XXXXMüller&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==PadR==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadR(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur rechten Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;Müller    &#039;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;MüllerXXXX&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CToD==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CToD(const sDate: string): TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Konvertiert die Zeichenkette &#039;&#039;sDate&#039;&#039; in einen Datumswert des Typs [http://docwiki.embarcadero.com/Libraries/Rio/en/System.TDateTime &#039;&#039;TDateTime&#039;&#039;].&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18&#039;);&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18 17:52:35&#039;);&lt;br /&gt;
//In beiden Fällen entspricht der Wert in dDatum dem 18.11.2016, da CToD nur das Datum übernimmt. Die Uhrzeit wird verworfen.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Artikelstamm==&lt;br /&gt;
===AR_Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function AR_Exists(oMyDB: TxDB; const cArtNr: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Sucht im Artikelstamm nach der in &#039;&#039;cArtNr&#039;&#039; angegebenen Artikelnummer und liefert als Ergebnis &#039;&#039;True&#039;&#039; wenn der Artikel gefunden wurde.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (AR_Exists(oDB,&#039;ABC123&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Artikel existiert im Artikelstamm&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Umsatz- und Vorsteuer==&lt;br /&gt;
===FindUstFromSatz===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function FindUstFromSatz(oMyDB: TxDB; nSatz: double): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt den OBS-Umsatzsteuerschlüssel für den Steuersatz &#039;&#039;nSatz&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Gibt den zweistelligen Schlüssel (z. B. 01) für die Umsatzsteuer mit dem Satz 19 % aus&lt;br /&gt;
Meldung(FindUstFromSatz(oDB,19));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UST_VK_Netto2Brutto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(nNetto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===UST_VK_Brutto2Netto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Variante 1&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 2&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 3&lt;br /&gt;
function  UST_VK_Brutto2Netto(nBrutto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Wandelt einen Preis von Brutto nach Netto. Die Funktion gibt es in drei Ausführungen.&lt;br /&gt;
#Umwandlung über Artikelnummer&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto um. Der Steuersatz wird dabei über den Steuerschlüssel aus dem Artikelstamm gezogen. Falls kein Artikel mit der Nummer &#039;&#039;cArtNr&#039;&#039; im Artikelstamm gefunden werden kann, wird für die Umrechnung der Satz &#039;&#039;nDefaultSatz&#039;&#039; verwendet. Existiert der Artikel im Artikelstamm wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis verwendet, falls kein Steuerschlüssel im Artikel gepflegt ist. {{Hinweis|Wenn die Artikelnummer vorhanden ist, wird diese Variante der Umrechnung empfohlen, da hier auch Artikel mit mehreren Steuersätzen richtig umgewandelt werden.}}&lt;br /&gt;
#Umwandlung mit Steuerschlüssel&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto anhand des übergebenen Steuerschlüssels &#039;&#039;cSchl&#039;&#039; um. Ist der Steuerschlüssel leer, wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis zurückgegeben. Der Steuersatz &#039;&#039;nDefaultSatz&#039;&#039; wird verwendet, wenn kein passender Eintrag zum Steuerschlüssel im OBS gefunden werden konnte.&lt;br /&gt;
#Umwandlung mit Steuersatz&lt;br /&gt;
#:Der Wert &#039;&#039;nBrutto&#039;&#039; wird mit dem Steuersatz &#039;&#039;nMwstSatz&#039;&#039; umgerechnet. Die Rückgabe wird auf &#039;&#039;nNK&#039;&#039; Nachkommastellen gerundet.{{Achtung|Der Steuersatz 19 % wird in &#039;&#039;nMwstSatz&#039;&#039; als 19.00 (Punkt als Dezimaltrennzeichen) erwartet!}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57075</id>
		<title>OBS/Makros und Scripting/Allgemeines/Übersicht Funktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57075"/>
		<updated>2020-01-10T08:28:36Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* TqSQL.A2UID */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Hier finden Sie nützliche [https://de.wikipedia.org/wiki/Funktion_(Programmierung) Funktionen], die Sie in den Makros verwenden können, um das gewünschte Ergebnis zu erzielen.&lt;br /&gt;
=Liste Funktionssammlungen=&lt;br /&gt;
==TMyDir==&lt;br /&gt;
===TMyDir.CreateDirectory===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CreateDirectory(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Erstellt ein neues Verzeichnis mit dem angegebenen Pfad, wenn es noch nicht existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;;&lt;br /&gt;
lAngelegt := TMyDir.CreateDirectory(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Exists(const Path: string; const CreateIfNotExists: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob das Verzeichnis existiert. Wird der optionale Parameter &#039;&#039;CreateIfNotExists&#039;&#039; mit dem boolschen Wert &#039;&#039;True&#039;&#039; übergeben, wird versucht das Verzeichnis anzulegen, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
lExistiert := TMyDir.Exists(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRoot: string; aAdd: array of string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Dem Pfad &#039;&#039;cRoot&#039;&#039; werden die einzelnen Einträge aus dem [https://de.wikipedia.org/wiki/Feld_(Datentyp) Array] &#039;&#039;aAdd&#039;&#039; als Verzeichnisse angefügt und so ein neuer Pfad erstellt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\Import\2019&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.BuildPath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function BuildPath(const cRoot: string; aAdd: array of string; out cPath: string; lCreate: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Diese Funktion ist ein Mix aus [[#TMyDir.CombinePath|TMyDir.CombinePath]] und [[TMyDir.Exists|TMyDir.Exists]]. Es wird ein Pfad aus den Angaben &#039;&#039;cRoot&#039;&#039; und &#039;&#039;aAdd&#039;&#039; erstellt und geprüft, ob der Pfad existiert (Funktionsergebnis). Die Rückgabe des Pfades erfolgt mit &#039;&#039;cPath&#039;&#039;. Mit dem oprtionalen Parameter kann angegeben werden, ob das Verzeichnis erstellt werden soll, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
if (TMyDir.BuildPath(cRoot,[&#039;Import&#039;,&#039;2019&#039;],cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Verzeichnis &#039;+cPfad+&#039; existiert.&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.GetDirectoryName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDirectoryName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Pfad des Verzeichnisses zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
cPfad := TMyDir.GetDirectoryName(cDatei);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TMyFile==&lt;br /&gt;
===TMyFile.IsFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsFile(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsFile(cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Combine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Combine(const Path1: string; const Path2: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;);&lt;br /&gt;
//cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombine(const Path1: string; const Path2: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad und prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
    //cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRootDir: string; aAdd: array of string; const cFileName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Baut aus den Parametern einen Dateipfad zusammen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDateipfad := TMyFile.CombinePath(&#039;c:\Beispiel&#039;,[&#039;Verzeichnis&#039;,&#039;Pfad&#039;],&#039;MeineDatei.txt&#039;);&lt;br /&gt;
//cDateipfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Extrahiert aus &#039;&#039;FilePath&#039;&#039; den zu &#039;&#039;RelativeBasePath&#039;&#039; relativem Pfad und kombiniert dies mit &#039;&#039;CombineBasePath&#039;&#039; zu einem neuen Dateipfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.CombineRelativePath(&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;,&lt;br /&gt;
    &#039;\\mein-server\Netzwerk\OBS\data\Import&#039;&lt;br /&gt;
);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
TMyFile.IsCombineRelativePath verbindet die Funktionalität von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]] und [[#TMyFile.IsFile|TMyFile.IsFile]]. &#039;&#039;ReturnPath&#039;&#039; entspricht dem Ergebnis von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]]. Das Ergebnis der Funktion [[#TMyFile.IsFile|TMyFile.IsFile]] für den Pfad &#039;&#039;ReturnPath&#039;&#039; ist auch das Ergebnis für TMyFile.IsCombineRelativePath.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePathUNC(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad für die Datei zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Annahme: Das OBS-Installationsverzeichnis ist mit dem Laufwerksbuchstaben &#039;&#039;O&#039;&#039; als Netzlaufwerk am Arbeitsplatz eingerichtet.&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cUNC := TMyFile.GetFilePathUNC(cPfad);&lt;br /&gt;
//cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht &#039;&#039;Path&#039;&#039; zu einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad aufzulösen. Gibt &#039;&#039;Path&#039;&#039; zurück, wenn kein [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad verfügbar ist, aber &#039;&#039;Path&#039;&#039; existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cPfadNeu := TMyFile.GetFilePath(cPfad);&lt;br /&gt;
//cPfadNeu Werte:&lt;br /&gt;
//UNC vorhanden: &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert: &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Datei existiert nicht: &#039;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePathUNC(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei &#039;&#039;Path&#039;&#039; unter einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad zu finden ist. Dieser wird dann in &#039;&#039;ReturnPath&#039;&#039; enthalten.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.IsGetFilePathUNC(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cUNC)) then begin&lt;br /&gt;
    //cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cUNC+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePath(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Entspricht im verhalten [[#TMyFile.GetFilePath|TMyFile.GetFilePath]] mit einer zusätzlichen Prüfung, ob der Rückgabepfad &#039;&#039;ReturnPath&#039;&#039; leer ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsGetFilePath(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
//UNC vorhanden:&lt;br /&gt;
//    cPfad ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert:&lt;br /&gt;
//    cPfad ist &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Datei existiert nicht:&lt;br /&gt;
//    cPfad ist &#039;&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;false&#039;&#039;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Move===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Move(const SourceFileName: string; const DestFileName: string; const CreateDestDir: boolean=False; const Replace: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht die Datei &#039;&#039;SourceFileName&#039;&#039; nach &#039;&#039;DestFileName&#039;&#039; zu verschieben. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist. Die optionalen Parameter geben hier die Möglichkeit festzulegen, wie die Funktion bei Konflikten reagieren soll. &#039;&#039;CreateDestDir&#039;&#039; erlaubt die Anlage des Ziel-Verzeichnis, sollte es nicht existieren. &#039;&#039;Replace&#039;&#039; erlaubt es vorhandene Dateien zu überschreiben/ersetzen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Move(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde verschoben&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Delete===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Delete(const FilePath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Löscht die angegebene Datei &#039;&#039;FilePath&#039;&#039;. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Delete(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde gelöscht&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TObsPath==&lt;br /&gt;
===TObsPath.GetExePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExePath(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Installationsverzeichnis von OBS zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExePath();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;data&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetSysDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetSysDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;sys&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetSysDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetTempDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetTempDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;temp&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetTempDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetBildarchivDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetBildarchivDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;bildarchiv&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetBildarchivDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetExportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;export&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetImportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetImportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;import&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetImportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataInOutDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataInOutDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;datainout&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataInOutDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;lock&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Lock-Datei im Verzeichnis &#039;&#039;locks&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück. Die Dateiendung &#039;&#039;.lock&#039;&#039; wird automatisch ergäntzt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockFile(&#039;mein&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\locks\mein.lock&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Debug-Datei im Verzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugFile(&#039;debug.txt&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\debug\debug.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetShopDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetShopDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;shop&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetShopDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetRelativePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den relativen Pfad innerhalb der OBS-Verzeichnisstruktur zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;;&lt;br /&gt;
cDateiRelativ := TObsPath.GetRelativePath(cDatei);&lt;br /&gt;
//cDateiRelativ ist &#039;data\import\artikel.csv&#039;&lt;br /&gt;
&lt;br /&gt;
cVerzeichnis := &#039;\\mein-server\Netzwerk\OBS\data\import\&#039;;&lt;br /&gt;
cVerzeichnisRelativ := TObsPath.GetRelativePath(cVerzeichnis);&lt;br /&gt;
//cVerzeichnisRelativ ist &#039;data\import\&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFileName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad. Wenn möglich wird der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;data\import\artikel.csv&#039;;&lt;br /&gt;
cDatei := TObsPath.GetFileName(cDatei);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.IsGetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFileName(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad und prüft dessen Existens. Wenn möglich wird in &#039;&#039;ReturnPath&#039;&#039; der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TObsPath.IsGetFileName(&#039;data\import\artikel.csv&#039;,cDatei)) then begin&lt;br /&gt;
    //cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
	Meldung(&#039;Datei &#039;+cDatei+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TISO==&lt;br /&gt;
{{Hinweis|Für die Verwendung dieser Funktionen siehe auch [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Aufzählungstypen#TISOCountryCodes|TISOCountryCodes]].}}&lt;br /&gt;
===TISO.CountrySwap===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountrySwap(const cCode: string; const eFrom: TISOCountryCodes; const eTo: TISOCountryCodes): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht den ISO-3166-Code &#039;&#039;cCode&#039;&#039; von &#039;&#039;eFrom&#039;&#039; nach &#039;&#039;eTo&#039;&#039; zu wechseln.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Ermittelt die nummerische Kodierung zum Alpha-2-Code &amp;quot;de&amp;quot; (Deutschalnd) und zeigt diesen als Meldung an. Der nummerische Wert für de ist 276.&lt;br /&gt;
Meldung(TISO.CountrySwap(&#039;de&#039;,iso3166_Alpha2,iso3166_Numeric));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetRefNo===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetRefNo(oMyDB: TxDB; const eCode: TISOCountryCodes; const cCode: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt die OBS-Referenz aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] für den Code &#039;&#039;cCode&#039;&#039;. Gibt &#039;&#039;cDefault&#039;&#039; zurück, wenn keine OBS-Referenz ermittelt werden konnte.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, findet diese Funktion die entsprechende Referenz für Deutschland (OBS-Default ist &amp;quot;D-&amp;quot;) und zeigt diese als Meldung.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,&#039;de&#039;,iso3166_Alpha2));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetCode===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetCode(oMyDB: TxDB; const eCode: TISOCountryCodes; const cRef: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] den ISO-3166-Code für die OBS-Referenz &#039;&#039;cRef&#039;&#039; aus und gibt den Code für den Typen &#039;&#039;eCode&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, liest diese Funktion den Wert für die entsprechende Referenz den OBS-Default &amp;quot;D-&amp;quot; für Deutschland und zeigt den Code als Meldung an.&lt;br /&gt;
//Da im OBS nur der Alpha2 gepflegt werden kann, wird der Code bei Angabe von z. B. &#039;&#039;iso3166_Alpha3&#039;&#039; in &#039;&#039;eCode&#039;&#039; intern umgewandelt.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,iso3166_Alpha3,&#039;D-&#039;));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TqSQL==&lt;br /&gt;
{{Hinweis|Dies ist nur ein Auszug der Funktionalität}}&lt;br /&gt;
===TqSQL.A2I===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2I(const cFeld:String):integer;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Integer umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2C===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2C(const cFeld:String):String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen String umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2F===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2F(const cFeld:String):Double;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Floatwert umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2D===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2D(const cFeld:String):TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Datumswert umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2UID===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2UID():String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Es wird direkt die sys_uid des Eintrags zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.qSet===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 function    qSet(const cxField : String; xDaten : Variant):Boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Liste Funktionen=&lt;br /&gt;
==Empty==&lt;br /&gt;
Verwendung: Prüft, ob der Wert des Parameters leer bzw. 0 ist. Dies Funktioniert mit Zeichenketten (&#039;&#039;string&#039;&#039;) und Zahlen (&#039;&#039;integer&#039;&#039; und &#039;&#039;double&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string/integer/double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: boolean&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
    cText := &#039;Beispiel&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird ein leerer Text zugewiesen. Mit &#039;&#039;Empty&#039;&#039; wird der Wert nun geprüft. Die boolsche Variable &#039;&#039;IstLeer&#039;&#039; ist dann true (wahr). Als nächstes wird &#039;&#039;cText&#039;&#039; der Wert &amp;quot;Beispiel&amp;quot; zugewiesen und eine erneute Prüfung mit &#039;&#039;Empty&#039;&#039; durchgeführt. Da &#039;&#039;cText&#039;&#039; jetzt einen Text enthält, ist der Wert der Variablen &#039;&#039;IstLeer&#039;&#039; nun false (falsch).&lt;br /&gt;
&lt;br /&gt;
==Length==&lt;br /&gt;
Verwendung: Ermittelt die Länge einer Zeichenkette (string).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText   := &#039;Dies ist ein Beispiel.&#039;;&lt;br /&gt;
    nLaenge := Length(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel.&#039;&#039; zugewiesen. Mit &#039;&#039;Length&#039;&#039; wird die Länge ermittelt. Der Satz &amp;quot;Dies ist ein Beispiel.&amp;quot; hat 22 Zeichen. &#039;&#039;nLaenge&#039;&#039; hat also den Wert &#039;&#039;22&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==AllTrim==&lt;br /&gt;
Verwendung: Entfernt Umbrüche und Leerzeichen am Anfang und Ende einer Zeichenkette.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;  Dies ist ein Beispiel.       &#039;;&lt;br /&gt;
    cText := AllTrim(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &amp;quot;&#039;&#039;  Dies ist ein Beispiel.       &#039;&#039;&amp;quot; zugewiesen. Mit &#039;&#039;AllTrim&#039;&#039; werden die unnötigen Leerzeichen am Anfang und Ende der Zeichenkette entfernt. Die Variable &#039;&#039;cText&#039;&#039; entspricht also dem Wert &amp;quot;&#039;&#039;Dies ist ein Beispiel.&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==UpperCase/LowerCase==&lt;br /&gt;
Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Beispiel&#039;;&lt;br /&gt;
    cUpper := UpperCase(cText);&lt;br /&gt;
    cLower := LowerCase(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;UpperCase&#039;&#039; und &#039;&#039;LowerCase&#039;&#039; wird die Zeichenkette umgewandelt. &#039;&#039;cUpper&#039;&#039; enthält danach den Wert &#039;&#039;BEISPIEL&#039;&#039; und &#039;&#039;cLower&#039;&#039; den Wert &#039;&#039;beispiel&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==ExtractFileName==&lt;br /&gt;
Verwendung: Dateinamen aus Dateipfad auslesen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;c:\\Ordner\Datei.txt&#039;;&lt;br /&gt;
    cDatei := ExtractFileName(cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;c:\\Ordner\Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;ExtractFileName&#039;&#039; wird der Dateiname herausgesucht und zurückgegeben. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei.txt&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==StrTran==&lt;br /&gt;
Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei.txt&#039;;&lt;br /&gt;
    cName  := StrTran(cDatei ,&#039;.txt&#039;,&#039;&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;StrTran&#039;&#039; wird im Text der Variable &#039;&#039;cDatei&#039;&#039; nach &#039;&#039;.txt&#039;&#039; gesucht. Der gefundene Teil wird mit einer leeren Zeichenkette ersetzt. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==LeftStr/RightStr==&lt;br /&gt;
Verwendung: Gibt den linken/rechten Teil einer Zeichenketten zurück. Es werden dabei maximal soviele Zeichen zurückgegeben, wie im zweiten Parameter angegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Dies ist ein Beispiel&#039;;&lt;br /&gt;
    cLeft  := LeftStr(cText,2);&lt;br /&gt;
    cRight := RightStr(cText,5);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;LeftStr&#039;&#039; und &#039;&#039;RightStr&#039;&#039; werden jeweils die ersten zwei Zeichen von Links und Rechts zurückgegeben. &#039;&#039;cLeft&#039;&#039; enthält danach den Wert &#039;&#039;Di&#039;&#039; und &#039;&#039;cRight&#039;&#039; den Wert &#039;&#039;spiel&#039;&#039;.&lt;br /&gt;
{{Hinweis|Sollten mehr Zeichen ermittelt werden, als der ursprüngliche Wert Zeichen hat, so ist das Ergbenis gleich dem Ursprung. LeftStr(cDatei,50) hätte z. B. dazu geführt, dass cLeft ebenfalls &#039;&#039;Dies ist ein Beispiel&#039;&#039; enthält.}}&lt;br /&gt;
&lt;br /&gt;
==Token==&lt;br /&gt;
Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    cTeil  := Token(cDatei,&#039;_&#039;,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;Token&#039;&#039; wird die Zeichenkette aufgeteilt. Als Teiler ist ein Unterstrich angeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Es wird der zweite Teil gefordert. Die Variable &#039;&#039;cTeil&#039;&#039; enthält demnach den Wert &#039;&#039;Name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==NumToken==&lt;br /&gt;
Verwendung: Ermittelt die Anzahl der Teile einer Zeichenketten, wenn diese an den Stelle mit dem Zeichen, das als Parameter übergeben wird, geteilt wird.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    nTeile := NumToken(&#039;_&#039;,cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;NumToken&#039;&#039; wird die Anzahl der Teil-Zeichenketten der Zeichenkette cDatei ermittelt. Als Trennzeichen wurde ein Unterstrich angegeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Die Variable &#039;&#039;nTeile&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==iVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in einen Ganzzahlwert um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;4&#039;;&lt;br /&gt;
    nZahl := iVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;4&#039;&#039; zugewiesen. Mit &#039;&#039;iVal&#039;&#039; wird die Zeichenkette in die entsprechende Ganzzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==fVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in eine Dezimalzahl um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;1234,56&#039;;&lt;br /&gt;
    nZahl := fVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;1234,56&#039;&#039; zugewiesen. Mit &#039;&#039;fVal&#039;&#039; wird die Zeichenkette in die entsprechende Dezimalzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 1234,56.&lt;br /&gt;
&lt;br /&gt;
==Roundy==&lt;br /&gt;
Verwendung: Runden eines Dezimalwerts (Typ: Double)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nGerundeterWert := Roundy(nDezimalwert,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der zu rundende Wert wird mit Parameter 1 übergeben. Die gewünschte Anzahl an Nachkommastellen wird in Parameter 2 angegeben. Die Funktion rundet dann den Wert auf die angegebene Anzahl an Dezimalstellen und gibt das Ergebnis wieder zurück. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nGerundeterWert&#039;&#039; entspricht also 1234,57.&lt;br /&gt;
&lt;br /&gt;
==Trunc==&lt;br /&gt;
Verwendung: Abschneiden der Nachkommastellen eines Dezimalwerts&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nWert := Trunc(nDezimalwert);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der Dezimalwert ist als Parameter zu übergeben. Als Ergbnis werden die Vorkommastellen zurückgegeben. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nWert&#039;&#039; entspricht also 1234.&lt;br /&gt;
==PadL==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadL(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur linken Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;    Müller&#039;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;XXXXMüller&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==PadR==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadR(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur rechten Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;Müller    &#039;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;MüllerXXXX&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CToD==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CToD(const sDate: string): TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Konvertiert die Zeichenkette &#039;&#039;sDate&#039;&#039; in einen Datumswert des Typs [http://docwiki.embarcadero.com/Libraries/Rio/en/System.TDateTime &#039;&#039;TDateTime&#039;&#039;].&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18&#039;);&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18 17:52:35&#039;);&lt;br /&gt;
//In beiden Fällen entspricht der Wert in dDatum dem 18.11.2016, da CToD nur das Datum übernimmt. Die Uhrzeit wird verworfen.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Artikelstamm==&lt;br /&gt;
===AR_Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function AR_Exists(oMyDB: TxDB; const cArtNr: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Sucht im Artikelstamm nach der in &#039;&#039;cArtNr&#039;&#039; angegebenen Artikelnummer und liefert als Ergebnis &#039;&#039;True&#039;&#039; wenn der Artikel gefunden wurde.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (AR_Exists(oDB,&#039;ABC123&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Artikel existiert im Artikelstamm&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Umsatz- und Vorsteuer==&lt;br /&gt;
===FindUstFromSatz===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function FindUstFromSatz(oMyDB: TxDB; nSatz: double): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt den OBS-Umsatzsteuerschlüssel für den Steuersatz &#039;&#039;nSatz&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Gibt den zweistelligen Schlüssel (z. B. 01) für die Umsatzsteuer mit dem Satz 19 % aus&lt;br /&gt;
Meldung(FindUstFromSatz(oDB,19));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UST_VK_Netto2Brutto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(nNetto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===UST_VK_Brutto2Netto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Variante 1&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 2&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 3&lt;br /&gt;
function  UST_VK_Brutto2Netto(nBrutto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Wandelt einen Preis von Brutto nach Netto. Die Funktion gibt es in drei Ausführungen.&lt;br /&gt;
#Umwandlung über Artikelnummer&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto um. Der Steuersatz wird dabei über den Steuerschlüssel aus dem Artikelstamm gezogen. Falls kein Artikel mit der Nummer &#039;&#039;cArtNr&#039;&#039; im Artikelstamm gefunden werden kann, wird für die Umrechnung der Satz &#039;&#039;nDefaultSatz&#039;&#039; verwendet. Existiert der Artikel im Artikelstamm wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis verwendet, falls kein Steuerschlüssel im Artikel gepflegt ist. {{Hinweis|Wenn die Artikelnummer vorhanden ist, wird diese Variante der Umrechnung empfohlen, da hier auch Artikel mit mehreren Steuersätzen richtig umgewandelt werden.}}&lt;br /&gt;
#Umwandlung mit Steuerschlüssel&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto anhand des übergebenen Steuerschlüssels &#039;&#039;cSchl&#039;&#039; um. Ist der Steuerschlüssel leer, wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis zurückgegeben. Der Steuersatz &#039;&#039;nDefaultSatz&#039;&#039; wird verwendet, wenn kein passender Eintrag zum Steuerschlüssel im OBS gefunden werden konnte.&lt;br /&gt;
#Umwandlung mit Steuersatz&lt;br /&gt;
#:Der Wert &#039;&#039;nBrutto&#039;&#039; wird mit dem Steuersatz &#039;&#039;nMwstSatz&#039;&#039; umgerechnet. Die Rückgabe wird auf &#039;&#039;nNK&#039;&#039; Nachkommastellen gerundet.{{Achtung|Der Steuersatz 19 % wird in &#039;&#039;nMwstSatz&#039;&#039; als 19.00 (Punkt als Dezimaltrennzeichen) erwartet!}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57074</id>
		<title>OBS/Makros und Scripting/Allgemeines/Übersicht Funktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57074"/>
		<updated>2020-01-10T08:28:00Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* TqSQL.A2F */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Hier finden Sie nützliche [https://de.wikipedia.org/wiki/Funktion_(Programmierung) Funktionen], die Sie in den Makros verwenden können, um das gewünschte Ergebnis zu erzielen.&lt;br /&gt;
=Liste Funktionssammlungen=&lt;br /&gt;
==TMyDir==&lt;br /&gt;
===TMyDir.CreateDirectory===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CreateDirectory(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Erstellt ein neues Verzeichnis mit dem angegebenen Pfad, wenn es noch nicht existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;;&lt;br /&gt;
lAngelegt := TMyDir.CreateDirectory(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Exists(const Path: string; const CreateIfNotExists: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob das Verzeichnis existiert. Wird der optionale Parameter &#039;&#039;CreateIfNotExists&#039;&#039; mit dem boolschen Wert &#039;&#039;True&#039;&#039; übergeben, wird versucht das Verzeichnis anzulegen, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
lExistiert := TMyDir.Exists(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRoot: string; aAdd: array of string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Dem Pfad &#039;&#039;cRoot&#039;&#039; werden die einzelnen Einträge aus dem [https://de.wikipedia.org/wiki/Feld_(Datentyp) Array] &#039;&#039;aAdd&#039;&#039; als Verzeichnisse angefügt und so ein neuer Pfad erstellt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\Import\2019&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.BuildPath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function BuildPath(const cRoot: string; aAdd: array of string; out cPath: string; lCreate: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Diese Funktion ist ein Mix aus [[#TMyDir.CombinePath|TMyDir.CombinePath]] und [[TMyDir.Exists|TMyDir.Exists]]. Es wird ein Pfad aus den Angaben &#039;&#039;cRoot&#039;&#039; und &#039;&#039;aAdd&#039;&#039; erstellt und geprüft, ob der Pfad existiert (Funktionsergebnis). Die Rückgabe des Pfades erfolgt mit &#039;&#039;cPath&#039;&#039;. Mit dem oprtionalen Parameter kann angegeben werden, ob das Verzeichnis erstellt werden soll, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
if (TMyDir.BuildPath(cRoot,[&#039;Import&#039;,&#039;2019&#039;],cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Verzeichnis &#039;+cPfad+&#039; existiert.&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.GetDirectoryName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDirectoryName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Pfad des Verzeichnisses zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
cPfad := TMyDir.GetDirectoryName(cDatei);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TMyFile==&lt;br /&gt;
===TMyFile.IsFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsFile(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsFile(cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Combine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Combine(const Path1: string; const Path2: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;);&lt;br /&gt;
//cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombine(const Path1: string; const Path2: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad und prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
    //cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRootDir: string; aAdd: array of string; const cFileName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Baut aus den Parametern einen Dateipfad zusammen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDateipfad := TMyFile.CombinePath(&#039;c:\Beispiel&#039;,[&#039;Verzeichnis&#039;,&#039;Pfad&#039;],&#039;MeineDatei.txt&#039;);&lt;br /&gt;
//cDateipfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Extrahiert aus &#039;&#039;FilePath&#039;&#039; den zu &#039;&#039;RelativeBasePath&#039;&#039; relativem Pfad und kombiniert dies mit &#039;&#039;CombineBasePath&#039;&#039; zu einem neuen Dateipfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.CombineRelativePath(&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;,&lt;br /&gt;
    &#039;\\mein-server\Netzwerk\OBS\data\Import&#039;&lt;br /&gt;
);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
TMyFile.IsCombineRelativePath verbindet die Funktionalität von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]] und [[#TMyFile.IsFile|TMyFile.IsFile]]. &#039;&#039;ReturnPath&#039;&#039; entspricht dem Ergebnis von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]]. Das Ergebnis der Funktion [[#TMyFile.IsFile|TMyFile.IsFile]] für den Pfad &#039;&#039;ReturnPath&#039;&#039; ist auch das Ergebnis für TMyFile.IsCombineRelativePath.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePathUNC(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad für die Datei zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Annahme: Das OBS-Installationsverzeichnis ist mit dem Laufwerksbuchstaben &#039;&#039;O&#039;&#039; als Netzlaufwerk am Arbeitsplatz eingerichtet.&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cUNC := TMyFile.GetFilePathUNC(cPfad);&lt;br /&gt;
//cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht &#039;&#039;Path&#039;&#039; zu einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad aufzulösen. Gibt &#039;&#039;Path&#039;&#039; zurück, wenn kein [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad verfügbar ist, aber &#039;&#039;Path&#039;&#039; existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cPfadNeu := TMyFile.GetFilePath(cPfad);&lt;br /&gt;
//cPfadNeu Werte:&lt;br /&gt;
//UNC vorhanden: &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert: &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Datei existiert nicht: &#039;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePathUNC(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei &#039;&#039;Path&#039;&#039; unter einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad zu finden ist. Dieser wird dann in &#039;&#039;ReturnPath&#039;&#039; enthalten.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.IsGetFilePathUNC(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cUNC)) then begin&lt;br /&gt;
    //cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cUNC+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePath(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Entspricht im verhalten [[#TMyFile.GetFilePath|TMyFile.GetFilePath]] mit einer zusätzlichen Prüfung, ob der Rückgabepfad &#039;&#039;ReturnPath&#039;&#039; leer ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsGetFilePath(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
//UNC vorhanden:&lt;br /&gt;
//    cPfad ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert:&lt;br /&gt;
//    cPfad ist &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Datei existiert nicht:&lt;br /&gt;
//    cPfad ist &#039;&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;false&#039;&#039;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Move===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Move(const SourceFileName: string; const DestFileName: string; const CreateDestDir: boolean=False; const Replace: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht die Datei &#039;&#039;SourceFileName&#039;&#039; nach &#039;&#039;DestFileName&#039;&#039; zu verschieben. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist. Die optionalen Parameter geben hier die Möglichkeit festzulegen, wie die Funktion bei Konflikten reagieren soll. &#039;&#039;CreateDestDir&#039;&#039; erlaubt die Anlage des Ziel-Verzeichnis, sollte es nicht existieren. &#039;&#039;Replace&#039;&#039; erlaubt es vorhandene Dateien zu überschreiben/ersetzen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Move(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde verschoben&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Delete===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Delete(const FilePath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Löscht die angegebene Datei &#039;&#039;FilePath&#039;&#039;. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Delete(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde gelöscht&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TObsPath==&lt;br /&gt;
===TObsPath.GetExePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExePath(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Installationsverzeichnis von OBS zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExePath();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;data&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetSysDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetSysDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;sys&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetSysDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetTempDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetTempDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;temp&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetTempDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetBildarchivDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetBildarchivDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;bildarchiv&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetBildarchivDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetExportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;export&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetImportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetImportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;import&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetImportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataInOutDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataInOutDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;datainout&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataInOutDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;lock&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Lock-Datei im Verzeichnis &#039;&#039;locks&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück. Die Dateiendung &#039;&#039;.lock&#039;&#039; wird automatisch ergäntzt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockFile(&#039;mein&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\locks\mein.lock&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Debug-Datei im Verzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugFile(&#039;debug.txt&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\debug\debug.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetShopDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetShopDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;shop&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetShopDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetRelativePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den relativen Pfad innerhalb der OBS-Verzeichnisstruktur zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;;&lt;br /&gt;
cDateiRelativ := TObsPath.GetRelativePath(cDatei);&lt;br /&gt;
//cDateiRelativ ist &#039;data\import\artikel.csv&#039;&lt;br /&gt;
&lt;br /&gt;
cVerzeichnis := &#039;\\mein-server\Netzwerk\OBS\data\import\&#039;;&lt;br /&gt;
cVerzeichnisRelativ := TObsPath.GetRelativePath(cVerzeichnis);&lt;br /&gt;
//cVerzeichnisRelativ ist &#039;data\import\&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFileName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad. Wenn möglich wird der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;data\import\artikel.csv&#039;;&lt;br /&gt;
cDatei := TObsPath.GetFileName(cDatei);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.IsGetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFileName(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad und prüft dessen Existens. Wenn möglich wird in &#039;&#039;ReturnPath&#039;&#039; der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TObsPath.IsGetFileName(&#039;data\import\artikel.csv&#039;,cDatei)) then begin&lt;br /&gt;
    //cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
	Meldung(&#039;Datei &#039;+cDatei+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TISO==&lt;br /&gt;
{{Hinweis|Für die Verwendung dieser Funktionen siehe auch [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Aufzählungstypen#TISOCountryCodes|TISOCountryCodes]].}}&lt;br /&gt;
===TISO.CountrySwap===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountrySwap(const cCode: string; const eFrom: TISOCountryCodes; const eTo: TISOCountryCodes): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht den ISO-3166-Code &#039;&#039;cCode&#039;&#039; von &#039;&#039;eFrom&#039;&#039; nach &#039;&#039;eTo&#039;&#039; zu wechseln.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Ermittelt die nummerische Kodierung zum Alpha-2-Code &amp;quot;de&amp;quot; (Deutschalnd) und zeigt diesen als Meldung an. Der nummerische Wert für de ist 276.&lt;br /&gt;
Meldung(TISO.CountrySwap(&#039;de&#039;,iso3166_Alpha2,iso3166_Numeric));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetRefNo===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetRefNo(oMyDB: TxDB; const eCode: TISOCountryCodes; const cCode: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt die OBS-Referenz aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] für den Code &#039;&#039;cCode&#039;&#039;. Gibt &#039;&#039;cDefault&#039;&#039; zurück, wenn keine OBS-Referenz ermittelt werden konnte.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, findet diese Funktion die entsprechende Referenz für Deutschland (OBS-Default ist &amp;quot;D-&amp;quot;) und zeigt diese als Meldung.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,&#039;de&#039;,iso3166_Alpha2));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetCode===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetCode(oMyDB: TxDB; const eCode: TISOCountryCodes; const cRef: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] den ISO-3166-Code für die OBS-Referenz &#039;&#039;cRef&#039;&#039; aus und gibt den Code für den Typen &#039;&#039;eCode&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, liest diese Funktion den Wert für die entsprechende Referenz den OBS-Default &amp;quot;D-&amp;quot; für Deutschland und zeigt den Code als Meldung an.&lt;br /&gt;
//Da im OBS nur der Alpha2 gepflegt werden kann, wird der Code bei Angabe von z. B. &#039;&#039;iso3166_Alpha3&#039;&#039; in &#039;&#039;eCode&#039;&#039; intern umgewandelt.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,iso3166_Alpha3,&#039;D-&#039;));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TqSQL==&lt;br /&gt;
{{Hinweis|Dies ist nur ein Auszug der Funktionalität}}&lt;br /&gt;
===TqSQL.A2I===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2I(const cFeld:String):integer;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Integer umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2C===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2C(const cFeld:String):String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen String umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2F===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2F(const cFeld:String):Double;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Floatwert umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2D===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2D(const cFeld:String):TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Datumswert umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2UID===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2UID():String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.qSet===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 function    qSet(const cxField : String; xDaten : Variant):Boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Liste Funktionen=&lt;br /&gt;
==Empty==&lt;br /&gt;
Verwendung: Prüft, ob der Wert des Parameters leer bzw. 0 ist. Dies Funktioniert mit Zeichenketten (&#039;&#039;string&#039;&#039;) und Zahlen (&#039;&#039;integer&#039;&#039; und &#039;&#039;double&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string/integer/double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: boolean&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
    cText := &#039;Beispiel&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird ein leerer Text zugewiesen. Mit &#039;&#039;Empty&#039;&#039; wird der Wert nun geprüft. Die boolsche Variable &#039;&#039;IstLeer&#039;&#039; ist dann true (wahr). Als nächstes wird &#039;&#039;cText&#039;&#039; der Wert &amp;quot;Beispiel&amp;quot; zugewiesen und eine erneute Prüfung mit &#039;&#039;Empty&#039;&#039; durchgeführt. Da &#039;&#039;cText&#039;&#039; jetzt einen Text enthält, ist der Wert der Variablen &#039;&#039;IstLeer&#039;&#039; nun false (falsch).&lt;br /&gt;
&lt;br /&gt;
==Length==&lt;br /&gt;
Verwendung: Ermittelt die Länge einer Zeichenkette (string).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText   := &#039;Dies ist ein Beispiel.&#039;;&lt;br /&gt;
    nLaenge := Length(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel.&#039;&#039; zugewiesen. Mit &#039;&#039;Length&#039;&#039; wird die Länge ermittelt. Der Satz &amp;quot;Dies ist ein Beispiel.&amp;quot; hat 22 Zeichen. &#039;&#039;nLaenge&#039;&#039; hat also den Wert &#039;&#039;22&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==AllTrim==&lt;br /&gt;
Verwendung: Entfernt Umbrüche und Leerzeichen am Anfang und Ende einer Zeichenkette.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;  Dies ist ein Beispiel.       &#039;;&lt;br /&gt;
    cText := AllTrim(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &amp;quot;&#039;&#039;  Dies ist ein Beispiel.       &#039;&#039;&amp;quot; zugewiesen. Mit &#039;&#039;AllTrim&#039;&#039; werden die unnötigen Leerzeichen am Anfang und Ende der Zeichenkette entfernt. Die Variable &#039;&#039;cText&#039;&#039; entspricht also dem Wert &amp;quot;&#039;&#039;Dies ist ein Beispiel.&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==UpperCase/LowerCase==&lt;br /&gt;
Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Beispiel&#039;;&lt;br /&gt;
    cUpper := UpperCase(cText);&lt;br /&gt;
    cLower := LowerCase(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;UpperCase&#039;&#039; und &#039;&#039;LowerCase&#039;&#039; wird die Zeichenkette umgewandelt. &#039;&#039;cUpper&#039;&#039; enthält danach den Wert &#039;&#039;BEISPIEL&#039;&#039; und &#039;&#039;cLower&#039;&#039; den Wert &#039;&#039;beispiel&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==ExtractFileName==&lt;br /&gt;
Verwendung: Dateinamen aus Dateipfad auslesen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;c:\\Ordner\Datei.txt&#039;;&lt;br /&gt;
    cDatei := ExtractFileName(cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;c:\\Ordner\Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;ExtractFileName&#039;&#039; wird der Dateiname herausgesucht und zurückgegeben. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei.txt&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==StrTran==&lt;br /&gt;
Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei.txt&#039;;&lt;br /&gt;
    cName  := StrTran(cDatei ,&#039;.txt&#039;,&#039;&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;StrTran&#039;&#039; wird im Text der Variable &#039;&#039;cDatei&#039;&#039; nach &#039;&#039;.txt&#039;&#039; gesucht. Der gefundene Teil wird mit einer leeren Zeichenkette ersetzt. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==LeftStr/RightStr==&lt;br /&gt;
Verwendung: Gibt den linken/rechten Teil einer Zeichenketten zurück. Es werden dabei maximal soviele Zeichen zurückgegeben, wie im zweiten Parameter angegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Dies ist ein Beispiel&#039;;&lt;br /&gt;
    cLeft  := LeftStr(cText,2);&lt;br /&gt;
    cRight := RightStr(cText,5);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;LeftStr&#039;&#039; und &#039;&#039;RightStr&#039;&#039; werden jeweils die ersten zwei Zeichen von Links und Rechts zurückgegeben. &#039;&#039;cLeft&#039;&#039; enthält danach den Wert &#039;&#039;Di&#039;&#039; und &#039;&#039;cRight&#039;&#039; den Wert &#039;&#039;spiel&#039;&#039;.&lt;br /&gt;
{{Hinweis|Sollten mehr Zeichen ermittelt werden, als der ursprüngliche Wert Zeichen hat, so ist das Ergbenis gleich dem Ursprung. LeftStr(cDatei,50) hätte z. B. dazu geführt, dass cLeft ebenfalls &#039;&#039;Dies ist ein Beispiel&#039;&#039; enthält.}}&lt;br /&gt;
&lt;br /&gt;
==Token==&lt;br /&gt;
Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    cTeil  := Token(cDatei,&#039;_&#039;,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;Token&#039;&#039; wird die Zeichenkette aufgeteilt. Als Teiler ist ein Unterstrich angeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Es wird der zweite Teil gefordert. Die Variable &#039;&#039;cTeil&#039;&#039; enthält demnach den Wert &#039;&#039;Name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==NumToken==&lt;br /&gt;
Verwendung: Ermittelt die Anzahl der Teile einer Zeichenketten, wenn diese an den Stelle mit dem Zeichen, das als Parameter übergeben wird, geteilt wird.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    nTeile := NumToken(&#039;_&#039;,cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;NumToken&#039;&#039; wird die Anzahl der Teil-Zeichenketten der Zeichenkette cDatei ermittelt. Als Trennzeichen wurde ein Unterstrich angegeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Die Variable &#039;&#039;nTeile&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==iVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in einen Ganzzahlwert um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;4&#039;;&lt;br /&gt;
    nZahl := iVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;4&#039;&#039; zugewiesen. Mit &#039;&#039;iVal&#039;&#039; wird die Zeichenkette in die entsprechende Ganzzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==fVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in eine Dezimalzahl um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;1234,56&#039;;&lt;br /&gt;
    nZahl := fVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;1234,56&#039;&#039; zugewiesen. Mit &#039;&#039;fVal&#039;&#039; wird die Zeichenkette in die entsprechende Dezimalzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 1234,56.&lt;br /&gt;
&lt;br /&gt;
==Roundy==&lt;br /&gt;
Verwendung: Runden eines Dezimalwerts (Typ: Double)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nGerundeterWert := Roundy(nDezimalwert,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der zu rundende Wert wird mit Parameter 1 übergeben. Die gewünschte Anzahl an Nachkommastellen wird in Parameter 2 angegeben. Die Funktion rundet dann den Wert auf die angegebene Anzahl an Dezimalstellen und gibt das Ergebnis wieder zurück. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nGerundeterWert&#039;&#039; entspricht also 1234,57.&lt;br /&gt;
&lt;br /&gt;
==Trunc==&lt;br /&gt;
Verwendung: Abschneiden der Nachkommastellen eines Dezimalwerts&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nWert := Trunc(nDezimalwert);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der Dezimalwert ist als Parameter zu übergeben. Als Ergbnis werden die Vorkommastellen zurückgegeben. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nWert&#039;&#039; entspricht also 1234.&lt;br /&gt;
==PadL==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadL(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur linken Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;    Müller&#039;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;XXXXMüller&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==PadR==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadR(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur rechten Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;Müller    &#039;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;MüllerXXXX&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CToD==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CToD(const sDate: string): TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Konvertiert die Zeichenkette &#039;&#039;sDate&#039;&#039; in einen Datumswert des Typs [http://docwiki.embarcadero.com/Libraries/Rio/en/System.TDateTime &#039;&#039;TDateTime&#039;&#039;].&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18&#039;);&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18 17:52:35&#039;);&lt;br /&gt;
//In beiden Fällen entspricht der Wert in dDatum dem 18.11.2016, da CToD nur das Datum übernimmt. Die Uhrzeit wird verworfen.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Artikelstamm==&lt;br /&gt;
===AR_Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function AR_Exists(oMyDB: TxDB; const cArtNr: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Sucht im Artikelstamm nach der in &#039;&#039;cArtNr&#039;&#039; angegebenen Artikelnummer und liefert als Ergebnis &#039;&#039;True&#039;&#039; wenn der Artikel gefunden wurde.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (AR_Exists(oDB,&#039;ABC123&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Artikel existiert im Artikelstamm&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Umsatz- und Vorsteuer==&lt;br /&gt;
===FindUstFromSatz===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function FindUstFromSatz(oMyDB: TxDB; nSatz: double): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt den OBS-Umsatzsteuerschlüssel für den Steuersatz &#039;&#039;nSatz&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Gibt den zweistelligen Schlüssel (z. B. 01) für die Umsatzsteuer mit dem Satz 19 % aus&lt;br /&gt;
Meldung(FindUstFromSatz(oDB,19));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UST_VK_Netto2Brutto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(nNetto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===UST_VK_Brutto2Netto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Variante 1&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 2&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 3&lt;br /&gt;
function  UST_VK_Brutto2Netto(nBrutto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Wandelt einen Preis von Brutto nach Netto. Die Funktion gibt es in drei Ausführungen.&lt;br /&gt;
#Umwandlung über Artikelnummer&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto um. Der Steuersatz wird dabei über den Steuerschlüssel aus dem Artikelstamm gezogen. Falls kein Artikel mit der Nummer &#039;&#039;cArtNr&#039;&#039; im Artikelstamm gefunden werden kann, wird für die Umrechnung der Satz &#039;&#039;nDefaultSatz&#039;&#039; verwendet. Existiert der Artikel im Artikelstamm wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis verwendet, falls kein Steuerschlüssel im Artikel gepflegt ist. {{Hinweis|Wenn die Artikelnummer vorhanden ist, wird diese Variante der Umrechnung empfohlen, da hier auch Artikel mit mehreren Steuersätzen richtig umgewandelt werden.}}&lt;br /&gt;
#Umwandlung mit Steuerschlüssel&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto anhand des übergebenen Steuerschlüssels &#039;&#039;cSchl&#039;&#039; um. Ist der Steuerschlüssel leer, wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis zurückgegeben. Der Steuersatz &#039;&#039;nDefaultSatz&#039;&#039; wird verwendet, wenn kein passender Eintrag zum Steuerschlüssel im OBS gefunden werden konnte.&lt;br /&gt;
#Umwandlung mit Steuersatz&lt;br /&gt;
#:Der Wert &#039;&#039;nBrutto&#039;&#039; wird mit dem Steuersatz &#039;&#039;nMwstSatz&#039;&#039; umgerechnet. Die Rückgabe wird auf &#039;&#039;nNK&#039;&#039; Nachkommastellen gerundet.{{Achtung|Der Steuersatz 19 % wird in &#039;&#039;nMwstSatz&#039;&#039; als 19.00 (Punkt als Dezimaltrennzeichen) erwartet!}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57073</id>
		<title>OBS/Makros und Scripting/Allgemeines/Übersicht Funktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57073"/>
		<updated>2020-01-10T08:27:45Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* TqSQL.A2D */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Hier finden Sie nützliche [https://de.wikipedia.org/wiki/Funktion_(Programmierung) Funktionen], die Sie in den Makros verwenden können, um das gewünschte Ergebnis zu erzielen.&lt;br /&gt;
=Liste Funktionssammlungen=&lt;br /&gt;
==TMyDir==&lt;br /&gt;
===TMyDir.CreateDirectory===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CreateDirectory(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Erstellt ein neues Verzeichnis mit dem angegebenen Pfad, wenn es noch nicht existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;;&lt;br /&gt;
lAngelegt := TMyDir.CreateDirectory(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Exists(const Path: string; const CreateIfNotExists: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob das Verzeichnis existiert. Wird der optionale Parameter &#039;&#039;CreateIfNotExists&#039;&#039; mit dem boolschen Wert &#039;&#039;True&#039;&#039; übergeben, wird versucht das Verzeichnis anzulegen, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
lExistiert := TMyDir.Exists(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRoot: string; aAdd: array of string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Dem Pfad &#039;&#039;cRoot&#039;&#039; werden die einzelnen Einträge aus dem [https://de.wikipedia.org/wiki/Feld_(Datentyp) Array] &#039;&#039;aAdd&#039;&#039; als Verzeichnisse angefügt und so ein neuer Pfad erstellt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\Import\2019&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.BuildPath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function BuildPath(const cRoot: string; aAdd: array of string; out cPath: string; lCreate: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Diese Funktion ist ein Mix aus [[#TMyDir.CombinePath|TMyDir.CombinePath]] und [[TMyDir.Exists|TMyDir.Exists]]. Es wird ein Pfad aus den Angaben &#039;&#039;cRoot&#039;&#039; und &#039;&#039;aAdd&#039;&#039; erstellt und geprüft, ob der Pfad existiert (Funktionsergebnis). Die Rückgabe des Pfades erfolgt mit &#039;&#039;cPath&#039;&#039;. Mit dem oprtionalen Parameter kann angegeben werden, ob das Verzeichnis erstellt werden soll, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
if (TMyDir.BuildPath(cRoot,[&#039;Import&#039;,&#039;2019&#039;],cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Verzeichnis &#039;+cPfad+&#039; existiert.&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.GetDirectoryName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDirectoryName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Pfad des Verzeichnisses zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
cPfad := TMyDir.GetDirectoryName(cDatei);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TMyFile==&lt;br /&gt;
===TMyFile.IsFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsFile(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsFile(cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Combine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Combine(const Path1: string; const Path2: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;);&lt;br /&gt;
//cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombine(const Path1: string; const Path2: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad und prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
    //cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRootDir: string; aAdd: array of string; const cFileName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Baut aus den Parametern einen Dateipfad zusammen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDateipfad := TMyFile.CombinePath(&#039;c:\Beispiel&#039;,[&#039;Verzeichnis&#039;,&#039;Pfad&#039;],&#039;MeineDatei.txt&#039;);&lt;br /&gt;
//cDateipfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Extrahiert aus &#039;&#039;FilePath&#039;&#039; den zu &#039;&#039;RelativeBasePath&#039;&#039; relativem Pfad und kombiniert dies mit &#039;&#039;CombineBasePath&#039;&#039; zu einem neuen Dateipfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.CombineRelativePath(&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;,&lt;br /&gt;
    &#039;\\mein-server\Netzwerk\OBS\data\Import&#039;&lt;br /&gt;
);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
TMyFile.IsCombineRelativePath verbindet die Funktionalität von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]] und [[#TMyFile.IsFile|TMyFile.IsFile]]. &#039;&#039;ReturnPath&#039;&#039; entspricht dem Ergebnis von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]]. Das Ergebnis der Funktion [[#TMyFile.IsFile|TMyFile.IsFile]] für den Pfad &#039;&#039;ReturnPath&#039;&#039; ist auch das Ergebnis für TMyFile.IsCombineRelativePath.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePathUNC(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad für die Datei zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Annahme: Das OBS-Installationsverzeichnis ist mit dem Laufwerksbuchstaben &#039;&#039;O&#039;&#039; als Netzlaufwerk am Arbeitsplatz eingerichtet.&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cUNC := TMyFile.GetFilePathUNC(cPfad);&lt;br /&gt;
//cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht &#039;&#039;Path&#039;&#039; zu einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad aufzulösen. Gibt &#039;&#039;Path&#039;&#039; zurück, wenn kein [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad verfügbar ist, aber &#039;&#039;Path&#039;&#039; existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cPfadNeu := TMyFile.GetFilePath(cPfad);&lt;br /&gt;
//cPfadNeu Werte:&lt;br /&gt;
//UNC vorhanden: &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert: &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Datei existiert nicht: &#039;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePathUNC(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei &#039;&#039;Path&#039;&#039; unter einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad zu finden ist. Dieser wird dann in &#039;&#039;ReturnPath&#039;&#039; enthalten.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.IsGetFilePathUNC(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cUNC)) then begin&lt;br /&gt;
    //cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cUNC+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePath(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Entspricht im verhalten [[#TMyFile.GetFilePath|TMyFile.GetFilePath]] mit einer zusätzlichen Prüfung, ob der Rückgabepfad &#039;&#039;ReturnPath&#039;&#039; leer ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsGetFilePath(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
//UNC vorhanden:&lt;br /&gt;
//    cPfad ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert:&lt;br /&gt;
//    cPfad ist &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Datei existiert nicht:&lt;br /&gt;
//    cPfad ist &#039;&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;false&#039;&#039;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Move===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Move(const SourceFileName: string; const DestFileName: string; const CreateDestDir: boolean=False; const Replace: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht die Datei &#039;&#039;SourceFileName&#039;&#039; nach &#039;&#039;DestFileName&#039;&#039; zu verschieben. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist. Die optionalen Parameter geben hier die Möglichkeit festzulegen, wie die Funktion bei Konflikten reagieren soll. &#039;&#039;CreateDestDir&#039;&#039; erlaubt die Anlage des Ziel-Verzeichnis, sollte es nicht existieren. &#039;&#039;Replace&#039;&#039; erlaubt es vorhandene Dateien zu überschreiben/ersetzen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Move(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde verschoben&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Delete===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Delete(const FilePath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Löscht die angegebene Datei &#039;&#039;FilePath&#039;&#039;. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Delete(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde gelöscht&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TObsPath==&lt;br /&gt;
===TObsPath.GetExePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExePath(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Installationsverzeichnis von OBS zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExePath();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;data&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetSysDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetSysDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;sys&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetSysDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetTempDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetTempDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;temp&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetTempDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetBildarchivDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetBildarchivDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;bildarchiv&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetBildarchivDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetExportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;export&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetImportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetImportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;import&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetImportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataInOutDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataInOutDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;datainout&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataInOutDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;lock&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Lock-Datei im Verzeichnis &#039;&#039;locks&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück. Die Dateiendung &#039;&#039;.lock&#039;&#039; wird automatisch ergäntzt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockFile(&#039;mein&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\locks\mein.lock&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Debug-Datei im Verzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugFile(&#039;debug.txt&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\debug\debug.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetShopDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetShopDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;shop&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetShopDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetRelativePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den relativen Pfad innerhalb der OBS-Verzeichnisstruktur zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;;&lt;br /&gt;
cDateiRelativ := TObsPath.GetRelativePath(cDatei);&lt;br /&gt;
//cDateiRelativ ist &#039;data\import\artikel.csv&#039;&lt;br /&gt;
&lt;br /&gt;
cVerzeichnis := &#039;\\mein-server\Netzwerk\OBS\data\import\&#039;;&lt;br /&gt;
cVerzeichnisRelativ := TObsPath.GetRelativePath(cVerzeichnis);&lt;br /&gt;
//cVerzeichnisRelativ ist &#039;data\import\&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFileName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad. Wenn möglich wird der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;data\import\artikel.csv&#039;;&lt;br /&gt;
cDatei := TObsPath.GetFileName(cDatei);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.IsGetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFileName(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad und prüft dessen Existens. Wenn möglich wird in &#039;&#039;ReturnPath&#039;&#039; der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TObsPath.IsGetFileName(&#039;data\import\artikel.csv&#039;,cDatei)) then begin&lt;br /&gt;
    //cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
	Meldung(&#039;Datei &#039;+cDatei+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TISO==&lt;br /&gt;
{{Hinweis|Für die Verwendung dieser Funktionen siehe auch [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Aufzählungstypen#TISOCountryCodes|TISOCountryCodes]].}}&lt;br /&gt;
===TISO.CountrySwap===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountrySwap(const cCode: string; const eFrom: TISOCountryCodes; const eTo: TISOCountryCodes): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht den ISO-3166-Code &#039;&#039;cCode&#039;&#039; von &#039;&#039;eFrom&#039;&#039; nach &#039;&#039;eTo&#039;&#039; zu wechseln.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Ermittelt die nummerische Kodierung zum Alpha-2-Code &amp;quot;de&amp;quot; (Deutschalnd) und zeigt diesen als Meldung an. Der nummerische Wert für de ist 276.&lt;br /&gt;
Meldung(TISO.CountrySwap(&#039;de&#039;,iso3166_Alpha2,iso3166_Numeric));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetRefNo===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetRefNo(oMyDB: TxDB; const eCode: TISOCountryCodes; const cCode: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt die OBS-Referenz aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] für den Code &#039;&#039;cCode&#039;&#039;. Gibt &#039;&#039;cDefault&#039;&#039; zurück, wenn keine OBS-Referenz ermittelt werden konnte.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, findet diese Funktion die entsprechende Referenz für Deutschland (OBS-Default ist &amp;quot;D-&amp;quot;) und zeigt diese als Meldung.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,&#039;de&#039;,iso3166_Alpha2));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetCode===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetCode(oMyDB: TxDB; const eCode: TISOCountryCodes; const cRef: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] den ISO-3166-Code für die OBS-Referenz &#039;&#039;cRef&#039;&#039; aus und gibt den Code für den Typen &#039;&#039;eCode&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, liest diese Funktion den Wert für die entsprechende Referenz den OBS-Default &amp;quot;D-&amp;quot; für Deutschland und zeigt den Code als Meldung an.&lt;br /&gt;
//Da im OBS nur der Alpha2 gepflegt werden kann, wird der Code bei Angabe von z. B. &#039;&#039;iso3166_Alpha3&#039;&#039; in &#039;&#039;eCode&#039;&#039; intern umgewandelt.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,iso3166_Alpha3,&#039;D-&#039;));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TqSQL==&lt;br /&gt;
{{Hinweis|Dies ist nur ein Auszug der Funktionalität}}&lt;br /&gt;
===TqSQL.A2I===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2I(const cFeld:String):integer;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Integer umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2C===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2C(const cFeld:String):String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen String umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2F===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2F(const cFeld:String):Double;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2D===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2D(const cFeld:String):TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Datumswert umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2UID===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2UID():String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.qSet===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 function    qSet(const cxField : String; xDaten : Variant):Boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Liste Funktionen=&lt;br /&gt;
==Empty==&lt;br /&gt;
Verwendung: Prüft, ob der Wert des Parameters leer bzw. 0 ist. Dies Funktioniert mit Zeichenketten (&#039;&#039;string&#039;&#039;) und Zahlen (&#039;&#039;integer&#039;&#039; und &#039;&#039;double&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string/integer/double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: boolean&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
    cText := &#039;Beispiel&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird ein leerer Text zugewiesen. Mit &#039;&#039;Empty&#039;&#039; wird der Wert nun geprüft. Die boolsche Variable &#039;&#039;IstLeer&#039;&#039; ist dann true (wahr). Als nächstes wird &#039;&#039;cText&#039;&#039; der Wert &amp;quot;Beispiel&amp;quot; zugewiesen und eine erneute Prüfung mit &#039;&#039;Empty&#039;&#039; durchgeführt. Da &#039;&#039;cText&#039;&#039; jetzt einen Text enthält, ist der Wert der Variablen &#039;&#039;IstLeer&#039;&#039; nun false (falsch).&lt;br /&gt;
&lt;br /&gt;
==Length==&lt;br /&gt;
Verwendung: Ermittelt die Länge einer Zeichenkette (string).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText   := &#039;Dies ist ein Beispiel.&#039;;&lt;br /&gt;
    nLaenge := Length(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel.&#039;&#039; zugewiesen. Mit &#039;&#039;Length&#039;&#039; wird die Länge ermittelt. Der Satz &amp;quot;Dies ist ein Beispiel.&amp;quot; hat 22 Zeichen. &#039;&#039;nLaenge&#039;&#039; hat also den Wert &#039;&#039;22&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==AllTrim==&lt;br /&gt;
Verwendung: Entfernt Umbrüche und Leerzeichen am Anfang und Ende einer Zeichenkette.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;  Dies ist ein Beispiel.       &#039;;&lt;br /&gt;
    cText := AllTrim(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &amp;quot;&#039;&#039;  Dies ist ein Beispiel.       &#039;&#039;&amp;quot; zugewiesen. Mit &#039;&#039;AllTrim&#039;&#039; werden die unnötigen Leerzeichen am Anfang und Ende der Zeichenkette entfernt. Die Variable &#039;&#039;cText&#039;&#039; entspricht also dem Wert &amp;quot;&#039;&#039;Dies ist ein Beispiel.&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==UpperCase/LowerCase==&lt;br /&gt;
Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Beispiel&#039;;&lt;br /&gt;
    cUpper := UpperCase(cText);&lt;br /&gt;
    cLower := LowerCase(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;UpperCase&#039;&#039; und &#039;&#039;LowerCase&#039;&#039; wird die Zeichenkette umgewandelt. &#039;&#039;cUpper&#039;&#039; enthält danach den Wert &#039;&#039;BEISPIEL&#039;&#039; und &#039;&#039;cLower&#039;&#039; den Wert &#039;&#039;beispiel&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==ExtractFileName==&lt;br /&gt;
Verwendung: Dateinamen aus Dateipfad auslesen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;c:\\Ordner\Datei.txt&#039;;&lt;br /&gt;
    cDatei := ExtractFileName(cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;c:\\Ordner\Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;ExtractFileName&#039;&#039; wird der Dateiname herausgesucht und zurückgegeben. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei.txt&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==StrTran==&lt;br /&gt;
Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei.txt&#039;;&lt;br /&gt;
    cName  := StrTran(cDatei ,&#039;.txt&#039;,&#039;&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;StrTran&#039;&#039; wird im Text der Variable &#039;&#039;cDatei&#039;&#039; nach &#039;&#039;.txt&#039;&#039; gesucht. Der gefundene Teil wird mit einer leeren Zeichenkette ersetzt. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==LeftStr/RightStr==&lt;br /&gt;
Verwendung: Gibt den linken/rechten Teil einer Zeichenketten zurück. Es werden dabei maximal soviele Zeichen zurückgegeben, wie im zweiten Parameter angegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Dies ist ein Beispiel&#039;;&lt;br /&gt;
    cLeft  := LeftStr(cText,2);&lt;br /&gt;
    cRight := RightStr(cText,5);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;LeftStr&#039;&#039; und &#039;&#039;RightStr&#039;&#039; werden jeweils die ersten zwei Zeichen von Links und Rechts zurückgegeben. &#039;&#039;cLeft&#039;&#039; enthält danach den Wert &#039;&#039;Di&#039;&#039; und &#039;&#039;cRight&#039;&#039; den Wert &#039;&#039;spiel&#039;&#039;.&lt;br /&gt;
{{Hinweis|Sollten mehr Zeichen ermittelt werden, als der ursprüngliche Wert Zeichen hat, so ist das Ergbenis gleich dem Ursprung. LeftStr(cDatei,50) hätte z. B. dazu geführt, dass cLeft ebenfalls &#039;&#039;Dies ist ein Beispiel&#039;&#039; enthält.}}&lt;br /&gt;
&lt;br /&gt;
==Token==&lt;br /&gt;
Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    cTeil  := Token(cDatei,&#039;_&#039;,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;Token&#039;&#039; wird die Zeichenkette aufgeteilt. Als Teiler ist ein Unterstrich angeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Es wird der zweite Teil gefordert. Die Variable &#039;&#039;cTeil&#039;&#039; enthält demnach den Wert &#039;&#039;Name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==NumToken==&lt;br /&gt;
Verwendung: Ermittelt die Anzahl der Teile einer Zeichenketten, wenn diese an den Stelle mit dem Zeichen, das als Parameter übergeben wird, geteilt wird.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    nTeile := NumToken(&#039;_&#039;,cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;NumToken&#039;&#039; wird die Anzahl der Teil-Zeichenketten der Zeichenkette cDatei ermittelt. Als Trennzeichen wurde ein Unterstrich angegeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Die Variable &#039;&#039;nTeile&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==iVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in einen Ganzzahlwert um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;4&#039;;&lt;br /&gt;
    nZahl := iVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;4&#039;&#039; zugewiesen. Mit &#039;&#039;iVal&#039;&#039; wird die Zeichenkette in die entsprechende Ganzzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==fVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in eine Dezimalzahl um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;1234,56&#039;;&lt;br /&gt;
    nZahl := fVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;1234,56&#039;&#039; zugewiesen. Mit &#039;&#039;fVal&#039;&#039; wird die Zeichenkette in die entsprechende Dezimalzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 1234,56.&lt;br /&gt;
&lt;br /&gt;
==Roundy==&lt;br /&gt;
Verwendung: Runden eines Dezimalwerts (Typ: Double)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nGerundeterWert := Roundy(nDezimalwert,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der zu rundende Wert wird mit Parameter 1 übergeben. Die gewünschte Anzahl an Nachkommastellen wird in Parameter 2 angegeben. Die Funktion rundet dann den Wert auf die angegebene Anzahl an Dezimalstellen und gibt das Ergebnis wieder zurück. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nGerundeterWert&#039;&#039; entspricht also 1234,57.&lt;br /&gt;
&lt;br /&gt;
==Trunc==&lt;br /&gt;
Verwendung: Abschneiden der Nachkommastellen eines Dezimalwerts&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nWert := Trunc(nDezimalwert);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der Dezimalwert ist als Parameter zu übergeben. Als Ergbnis werden die Vorkommastellen zurückgegeben. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nWert&#039;&#039; entspricht also 1234.&lt;br /&gt;
==PadL==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadL(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur linken Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;    Müller&#039;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;XXXXMüller&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==PadR==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadR(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur rechten Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;Müller    &#039;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;MüllerXXXX&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CToD==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CToD(const sDate: string): TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Konvertiert die Zeichenkette &#039;&#039;sDate&#039;&#039; in einen Datumswert des Typs [http://docwiki.embarcadero.com/Libraries/Rio/en/System.TDateTime &#039;&#039;TDateTime&#039;&#039;].&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18&#039;);&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18 17:52:35&#039;);&lt;br /&gt;
//In beiden Fällen entspricht der Wert in dDatum dem 18.11.2016, da CToD nur das Datum übernimmt. Die Uhrzeit wird verworfen.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Artikelstamm==&lt;br /&gt;
===AR_Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function AR_Exists(oMyDB: TxDB; const cArtNr: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Sucht im Artikelstamm nach der in &#039;&#039;cArtNr&#039;&#039; angegebenen Artikelnummer und liefert als Ergebnis &#039;&#039;True&#039;&#039; wenn der Artikel gefunden wurde.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (AR_Exists(oDB,&#039;ABC123&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Artikel existiert im Artikelstamm&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Umsatz- und Vorsteuer==&lt;br /&gt;
===FindUstFromSatz===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function FindUstFromSatz(oMyDB: TxDB; nSatz: double): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt den OBS-Umsatzsteuerschlüssel für den Steuersatz &#039;&#039;nSatz&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Gibt den zweistelligen Schlüssel (z. B. 01) für die Umsatzsteuer mit dem Satz 19 % aus&lt;br /&gt;
Meldung(FindUstFromSatz(oDB,19));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UST_VK_Netto2Brutto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(nNetto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===UST_VK_Brutto2Netto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Variante 1&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 2&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 3&lt;br /&gt;
function  UST_VK_Brutto2Netto(nBrutto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Wandelt einen Preis von Brutto nach Netto. Die Funktion gibt es in drei Ausführungen.&lt;br /&gt;
#Umwandlung über Artikelnummer&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto um. Der Steuersatz wird dabei über den Steuerschlüssel aus dem Artikelstamm gezogen. Falls kein Artikel mit der Nummer &#039;&#039;cArtNr&#039;&#039; im Artikelstamm gefunden werden kann, wird für die Umrechnung der Satz &#039;&#039;nDefaultSatz&#039;&#039; verwendet. Existiert der Artikel im Artikelstamm wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis verwendet, falls kein Steuerschlüssel im Artikel gepflegt ist. {{Hinweis|Wenn die Artikelnummer vorhanden ist, wird diese Variante der Umrechnung empfohlen, da hier auch Artikel mit mehreren Steuersätzen richtig umgewandelt werden.}}&lt;br /&gt;
#Umwandlung mit Steuerschlüssel&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto anhand des übergebenen Steuerschlüssels &#039;&#039;cSchl&#039;&#039; um. Ist der Steuerschlüssel leer, wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis zurückgegeben. Der Steuersatz &#039;&#039;nDefaultSatz&#039;&#039; wird verwendet, wenn kein passender Eintrag zum Steuerschlüssel im OBS gefunden werden konnte.&lt;br /&gt;
#Umwandlung mit Steuersatz&lt;br /&gt;
#:Der Wert &#039;&#039;nBrutto&#039;&#039; wird mit dem Steuersatz &#039;&#039;nMwstSatz&#039;&#039; umgerechnet. Die Rückgabe wird auf &#039;&#039;nNK&#039;&#039; Nachkommastellen gerundet.{{Achtung|Der Steuersatz 19 % wird in &#039;&#039;nMwstSatz&#039;&#039; als 19.00 (Punkt als Dezimaltrennzeichen) erwartet!}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57072</id>
		<title>OBS/Makros und Scripting/Allgemeines/Übersicht Funktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57072"/>
		<updated>2020-01-10T08:27:33Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* TqSQL.A2C */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Hier finden Sie nützliche [https://de.wikipedia.org/wiki/Funktion_(Programmierung) Funktionen], die Sie in den Makros verwenden können, um das gewünschte Ergebnis zu erzielen.&lt;br /&gt;
=Liste Funktionssammlungen=&lt;br /&gt;
==TMyDir==&lt;br /&gt;
===TMyDir.CreateDirectory===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CreateDirectory(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Erstellt ein neues Verzeichnis mit dem angegebenen Pfad, wenn es noch nicht existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;;&lt;br /&gt;
lAngelegt := TMyDir.CreateDirectory(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Exists(const Path: string; const CreateIfNotExists: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob das Verzeichnis existiert. Wird der optionale Parameter &#039;&#039;CreateIfNotExists&#039;&#039; mit dem boolschen Wert &#039;&#039;True&#039;&#039; übergeben, wird versucht das Verzeichnis anzulegen, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
lExistiert := TMyDir.Exists(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRoot: string; aAdd: array of string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Dem Pfad &#039;&#039;cRoot&#039;&#039; werden die einzelnen Einträge aus dem [https://de.wikipedia.org/wiki/Feld_(Datentyp) Array] &#039;&#039;aAdd&#039;&#039; als Verzeichnisse angefügt und so ein neuer Pfad erstellt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\Import\2019&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.BuildPath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function BuildPath(const cRoot: string; aAdd: array of string; out cPath: string; lCreate: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Diese Funktion ist ein Mix aus [[#TMyDir.CombinePath|TMyDir.CombinePath]] und [[TMyDir.Exists|TMyDir.Exists]]. Es wird ein Pfad aus den Angaben &#039;&#039;cRoot&#039;&#039; und &#039;&#039;aAdd&#039;&#039; erstellt und geprüft, ob der Pfad existiert (Funktionsergebnis). Die Rückgabe des Pfades erfolgt mit &#039;&#039;cPath&#039;&#039;. Mit dem oprtionalen Parameter kann angegeben werden, ob das Verzeichnis erstellt werden soll, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
if (TMyDir.BuildPath(cRoot,[&#039;Import&#039;,&#039;2019&#039;],cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Verzeichnis &#039;+cPfad+&#039; existiert.&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.GetDirectoryName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDirectoryName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Pfad des Verzeichnisses zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
cPfad := TMyDir.GetDirectoryName(cDatei);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TMyFile==&lt;br /&gt;
===TMyFile.IsFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsFile(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsFile(cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Combine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Combine(const Path1: string; const Path2: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;);&lt;br /&gt;
//cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombine(const Path1: string; const Path2: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad und prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
    //cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRootDir: string; aAdd: array of string; const cFileName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Baut aus den Parametern einen Dateipfad zusammen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDateipfad := TMyFile.CombinePath(&#039;c:\Beispiel&#039;,[&#039;Verzeichnis&#039;,&#039;Pfad&#039;],&#039;MeineDatei.txt&#039;);&lt;br /&gt;
//cDateipfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Extrahiert aus &#039;&#039;FilePath&#039;&#039; den zu &#039;&#039;RelativeBasePath&#039;&#039; relativem Pfad und kombiniert dies mit &#039;&#039;CombineBasePath&#039;&#039; zu einem neuen Dateipfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.CombineRelativePath(&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;,&lt;br /&gt;
    &#039;\\mein-server\Netzwerk\OBS\data\Import&#039;&lt;br /&gt;
);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
TMyFile.IsCombineRelativePath verbindet die Funktionalität von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]] und [[#TMyFile.IsFile|TMyFile.IsFile]]. &#039;&#039;ReturnPath&#039;&#039; entspricht dem Ergebnis von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]]. Das Ergebnis der Funktion [[#TMyFile.IsFile|TMyFile.IsFile]] für den Pfad &#039;&#039;ReturnPath&#039;&#039; ist auch das Ergebnis für TMyFile.IsCombineRelativePath.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePathUNC(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad für die Datei zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Annahme: Das OBS-Installationsverzeichnis ist mit dem Laufwerksbuchstaben &#039;&#039;O&#039;&#039; als Netzlaufwerk am Arbeitsplatz eingerichtet.&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cUNC := TMyFile.GetFilePathUNC(cPfad);&lt;br /&gt;
//cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht &#039;&#039;Path&#039;&#039; zu einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad aufzulösen. Gibt &#039;&#039;Path&#039;&#039; zurück, wenn kein [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad verfügbar ist, aber &#039;&#039;Path&#039;&#039; existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cPfadNeu := TMyFile.GetFilePath(cPfad);&lt;br /&gt;
//cPfadNeu Werte:&lt;br /&gt;
//UNC vorhanden: &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert: &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Datei existiert nicht: &#039;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePathUNC(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei &#039;&#039;Path&#039;&#039; unter einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad zu finden ist. Dieser wird dann in &#039;&#039;ReturnPath&#039;&#039; enthalten.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.IsGetFilePathUNC(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cUNC)) then begin&lt;br /&gt;
    //cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cUNC+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePath(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Entspricht im verhalten [[#TMyFile.GetFilePath|TMyFile.GetFilePath]] mit einer zusätzlichen Prüfung, ob der Rückgabepfad &#039;&#039;ReturnPath&#039;&#039; leer ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsGetFilePath(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
//UNC vorhanden:&lt;br /&gt;
//    cPfad ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert:&lt;br /&gt;
//    cPfad ist &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Datei existiert nicht:&lt;br /&gt;
//    cPfad ist &#039;&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;false&#039;&#039;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Move===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Move(const SourceFileName: string; const DestFileName: string; const CreateDestDir: boolean=False; const Replace: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht die Datei &#039;&#039;SourceFileName&#039;&#039; nach &#039;&#039;DestFileName&#039;&#039; zu verschieben. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist. Die optionalen Parameter geben hier die Möglichkeit festzulegen, wie die Funktion bei Konflikten reagieren soll. &#039;&#039;CreateDestDir&#039;&#039; erlaubt die Anlage des Ziel-Verzeichnis, sollte es nicht existieren. &#039;&#039;Replace&#039;&#039; erlaubt es vorhandene Dateien zu überschreiben/ersetzen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Move(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde verschoben&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Delete===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Delete(const FilePath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Löscht die angegebene Datei &#039;&#039;FilePath&#039;&#039;. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Delete(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde gelöscht&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TObsPath==&lt;br /&gt;
===TObsPath.GetExePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExePath(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Installationsverzeichnis von OBS zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExePath();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;data&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetSysDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetSysDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;sys&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetSysDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetTempDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetTempDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;temp&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetTempDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetBildarchivDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetBildarchivDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;bildarchiv&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetBildarchivDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetExportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;export&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetImportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetImportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;import&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetImportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataInOutDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataInOutDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;datainout&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataInOutDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;lock&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Lock-Datei im Verzeichnis &#039;&#039;locks&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück. Die Dateiendung &#039;&#039;.lock&#039;&#039; wird automatisch ergäntzt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockFile(&#039;mein&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\locks\mein.lock&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Debug-Datei im Verzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugFile(&#039;debug.txt&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\debug\debug.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetShopDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetShopDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;shop&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetShopDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetRelativePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den relativen Pfad innerhalb der OBS-Verzeichnisstruktur zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;;&lt;br /&gt;
cDateiRelativ := TObsPath.GetRelativePath(cDatei);&lt;br /&gt;
//cDateiRelativ ist &#039;data\import\artikel.csv&#039;&lt;br /&gt;
&lt;br /&gt;
cVerzeichnis := &#039;\\mein-server\Netzwerk\OBS\data\import\&#039;;&lt;br /&gt;
cVerzeichnisRelativ := TObsPath.GetRelativePath(cVerzeichnis);&lt;br /&gt;
//cVerzeichnisRelativ ist &#039;data\import\&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFileName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad. Wenn möglich wird der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;data\import\artikel.csv&#039;;&lt;br /&gt;
cDatei := TObsPath.GetFileName(cDatei);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.IsGetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFileName(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad und prüft dessen Existens. Wenn möglich wird in &#039;&#039;ReturnPath&#039;&#039; der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TObsPath.IsGetFileName(&#039;data\import\artikel.csv&#039;,cDatei)) then begin&lt;br /&gt;
    //cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
	Meldung(&#039;Datei &#039;+cDatei+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TISO==&lt;br /&gt;
{{Hinweis|Für die Verwendung dieser Funktionen siehe auch [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Aufzählungstypen#TISOCountryCodes|TISOCountryCodes]].}}&lt;br /&gt;
===TISO.CountrySwap===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountrySwap(const cCode: string; const eFrom: TISOCountryCodes; const eTo: TISOCountryCodes): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht den ISO-3166-Code &#039;&#039;cCode&#039;&#039; von &#039;&#039;eFrom&#039;&#039; nach &#039;&#039;eTo&#039;&#039; zu wechseln.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Ermittelt die nummerische Kodierung zum Alpha-2-Code &amp;quot;de&amp;quot; (Deutschalnd) und zeigt diesen als Meldung an. Der nummerische Wert für de ist 276.&lt;br /&gt;
Meldung(TISO.CountrySwap(&#039;de&#039;,iso3166_Alpha2,iso3166_Numeric));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetRefNo===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetRefNo(oMyDB: TxDB; const eCode: TISOCountryCodes; const cCode: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt die OBS-Referenz aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] für den Code &#039;&#039;cCode&#039;&#039;. Gibt &#039;&#039;cDefault&#039;&#039; zurück, wenn keine OBS-Referenz ermittelt werden konnte.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, findet diese Funktion die entsprechende Referenz für Deutschland (OBS-Default ist &amp;quot;D-&amp;quot;) und zeigt diese als Meldung.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,&#039;de&#039;,iso3166_Alpha2));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetCode===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetCode(oMyDB: TxDB; const eCode: TISOCountryCodes; const cRef: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] den ISO-3166-Code für die OBS-Referenz &#039;&#039;cRef&#039;&#039; aus und gibt den Code für den Typen &#039;&#039;eCode&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, liest diese Funktion den Wert für die entsprechende Referenz den OBS-Default &amp;quot;D-&amp;quot; für Deutschland und zeigt den Code als Meldung an.&lt;br /&gt;
//Da im OBS nur der Alpha2 gepflegt werden kann, wird der Code bei Angabe von z. B. &#039;&#039;iso3166_Alpha3&#039;&#039; in &#039;&#039;eCode&#039;&#039; intern umgewandelt.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,iso3166_Alpha3,&#039;D-&#039;));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TqSQL==&lt;br /&gt;
{{Hinweis|Dies ist nur ein Auszug der Funktionalität}}&lt;br /&gt;
===TqSQL.A2I===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2I(const cFeld:String):integer;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Integer umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2C===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2C(const cFeld:String):String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen String umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2F===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2F(const cFeld:String):Double;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2D===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2D(const cFeld:String):TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2UID===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2UID():String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.qSet===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 function    qSet(const cxField : String; xDaten : Variant):Boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Liste Funktionen=&lt;br /&gt;
==Empty==&lt;br /&gt;
Verwendung: Prüft, ob der Wert des Parameters leer bzw. 0 ist. Dies Funktioniert mit Zeichenketten (&#039;&#039;string&#039;&#039;) und Zahlen (&#039;&#039;integer&#039;&#039; und &#039;&#039;double&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string/integer/double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: boolean&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
    cText := &#039;Beispiel&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird ein leerer Text zugewiesen. Mit &#039;&#039;Empty&#039;&#039; wird der Wert nun geprüft. Die boolsche Variable &#039;&#039;IstLeer&#039;&#039; ist dann true (wahr). Als nächstes wird &#039;&#039;cText&#039;&#039; der Wert &amp;quot;Beispiel&amp;quot; zugewiesen und eine erneute Prüfung mit &#039;&#039;Empty&#039;&#039; durchgeführt. Da &#039;&#039;cText&#039;&#039; jetzt einen Text enthält, ist der Wert der Variablen &#039;&#039;IstLeer&#039;&#039; nun false (falsch).&lt;br /&gt;
&lt;br /&gt;
==Length==&lt;br /&gt;
Verwendung: Ermittelt die Länge einer Zeichenkette (string).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText   := &#039;Dies ist ein Beispiel.&#039;;&lt;br /&gt;
    nLaenge := Length(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel.&#039;&#039; zugewiesen. Mit &#039;&#039;Length&#039;&#039; wird die Länge ermittelt. Der Satz &amp;quot;Dies ist ein Beispiel.&amp;quot; hat 22 Zeichen. &#039;&#039;nLaenge&#039;&#039; hat also den Wert &#039;&#039;22&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==AllTrim==&lt;br /&gt;
Verwendung: Entfernt Umbrüche und Leerzeichen am Anfang und Ende einer Zeichenkette.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;  Dies ist ein Beispiel.       &#039;;&lt;br /&gt;
    cText := AllTrim(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &amp;quot;&#039;&#039;  Dies ist ein Beispiel.       &#039;&#039;&amp;quot; zugewiesen. Mit &#039;&#039;AllTrim&#039;&#039; werden die unnötigen Leerzeichen am Anfang und Ende der Zeichenkette entfernt. Die Variable &#039;&#039;cText&#039;&#039; entspricht also dem Wert &amp;quot;&#039;&#039;Dies ist ein Beispiel.&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==UpperCase/LowerCase==&lt;br /&gt;
Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Beispiel&#039;;&lt;br /&gt;
    cUpper := UpperCase(cText);&lt;br /&gt;
    cLower := LowerCase(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;UpperCase&#039;&#039; und &#039;&#039;LowerCase&#039;&#039; wird die Zeichenkette umgewandelt. &#039;&#039;cUpper&#039;&#039; enthält danach den Wert &#039;&#039;BEISPIEL&#039;&#039; und &#039;&#039;cLower&#039;&#039; den Wert &#039;&#039;beispiel&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==ExtractFileName==&lt;br /&gt;
Verwendung: Dateinamen aus Dateipfad auslesen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;c:\\Ordner\Datei.txt&#039;;&lt;br /&gt;
    cDatei := ExtractFileName(cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;c:\\Ordner\Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;ExtractFileName&#039;&#039; wird der Dateiname herausgesucht und zurückgegeben. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei.txt&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==StrTran==&lt;br /&gt;
Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei.txt&#039;;&lt;br /&gt;
    cName  := StrTran(cDatei ,&#039;.txt&#039;,&#039;&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;StrTran&#039;&#039; wird im Text der Variable &#039;&#039;cDatei&#039;&#039; nach &#039;&#039;.txt&#039;&#039; gesucht. Der gefundene Teil wird mit einer leeren Zeichenkette ersetzt. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==LeftStr/RightStr==&lt;br /&gt;
Verwendung: Gibt den linken/rechten Teil einer Zeichenketten zurück. Es werden dabei maximal soviele Zeichen zurückgegeben, wie im zweiten Parameter angegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Dies ist ein Beispiel&#039;;&lt;br /&gt;
    cLeft  := LeftStr(cText,2);&lt;br /&gt;
    cRight := RightStr(cText,5);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;LeftStr&#039;&#039; und &#039;&#039;RightStr&#039;&#039; werden jeweils die ersten zwei Zeichen von Links und Rechts zurückgegeben. &#039;&#039;cLeft&#039;&#039; enthält danach den Wert &#039;&#039;Di&#039;&#039; und &#039;&#039;cRight&#039;&#039; den Wert &#039;&#039;spiel&#039;&#039;.&lt;br /&gt;
{{Hinweis|Sollten mehr Zeichen ermittelt werden, als der ursprüngliche Wert Zeichen hat, so ist das Ergbenis gleich dem Ursprung. LeftStr(cDatei,50) hätte z. B. dazu geführt, dass cLeft ebenfalls &#039;&#039;Dies ist ein Beispiel&#039;&#039; enthält.}}&lt;br /&gt;
&lt;br /&gt;
==Token==&lt;br /&gt;
Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    cTeil  := Token(cDatei,&#039;_&#039;,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;Token&#039;&#039; wird die Zeichenkette aufgeteilt. Als Teiler ist ein Unterstrich angeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Es wird der zweite Teil gefordert. Die Variable &#039;&#039;cTeil&#039;&#039; enthält demnach den Wert &#039;&#039;Name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==NumToken==&lt;br /&gt;
Verwendung: Ermittelt die Anzahl der Teile einer Zeichenketten, wenn diese an den Stelle mit dem Zeichen, das als Parameter übergeben wird, geteilt wird.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    nTeile := NumToken(&#039;_&#039;,cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;NumToken&#039;&#039; wird die Anzahl der Teil-Zeichenketten der Zeichenkette cDatei ermittelt. Als Trennzeichen wurde ein Unterstrich angegeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Die Variable &#039;&#039;nTeile&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==iVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in einen Ganzzahlwert um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;4&#039;;&lt;br /&gt;
    nZahl := iVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;4&#039;&#039; zugewiesen. Mit &#039;&#039;iVal&#039;&#039; wird die Zeichenkette in die entsprechende Ganzzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==fVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in eine Dezimalzahl um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;1234,56&#039;;&lt;br /&gt;
    nZahl := fVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;1234,56&#039;&#039; zugewiesen. Mit &#039;&#039;fVal&#039;&#039; wird die Zeichenkette in die entsprechende Dezimalzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 1234,56.&lt;br /&gt;
&lt;br /&gt;
==Roundy==&lt;br /&gt;
Verwendung: Runden eines Dezimalwerts (Typ: Double)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nGerundeterWert := Roundy(nDezimalwert,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der zu rundende Wert wird mit Parameter 1 übergeben. Die gewünschte Anzahl an Nachkommastellen wird in Parameter 2 angegeben. Die Funktion rundet dann den Wert auf die angegebene Anzahl an Dezimalstellen und gibt das Ergebnis wieder zurück. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nGerundeterWert&#039;&#039; entspricht also 1234,57.&lt;br /&gt;
&lt;br /&gt;
==Trunc==&lt;br /&gt;
Verwendung: Abschneiden der Nachkommastellen eines Dezimalwerts&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nWert := Trunc(nDezimalwert);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der Dezimalwert ist als Parameter zu übergeben. Als Ergbnis werden die Vorkommastellen zurückgegeben. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nWert&#039;&#039; entspricht also 1234.&lt;br /&gt;
==PadL==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadL(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur linken Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;    Müller&#039;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;XXXXMüller&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==PadR==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadR(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur rechten Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;Müller    &#039;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;MüllerXXXX&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CToD==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CToD(const sDate: string): TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Konvertiert die Zeichenkette &#039;&#039;sDate&#039;&#039; in einen Datumswert des Typs [http://docwiki.embarcadero.com/Libraries/Rio/en/System.TDateTime &#039;&#039;TDateTime&#039;&#039;].&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18&#039;);&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18 17:52:35&#039;);&lt;br /&gt;
//In beiden Fällen entspricht der Wert in dDatum dem 18.11.2016, da CToD nur das Datum übernimmt. Die Uhrzeit wird verworfen.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Artikelstamm==&lt;br /&gt;
===AR_Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function AR_Exists(oMyDB: TxDB; const cArtNr: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Sucht im Artikelstamm nach der in &#039;&#039;cArtNr&#039;&#039; angegebenen Artikelnummer und liefert als Ergebnis &#039;&#039;True&#039;&#039; wenn der Artikel gefunden wurde.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (AR_Exists(oDB,&#039;ABC123&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Artikel existiert im Artikelstamm&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Umsatz- und Vorsteuer==&lt;br /&gt;
===FindUstFromSatz===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function FindUstFromSatz(oMyDB: TxDB; nSatz: double): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt den OBS-Umsatzsteuerschlüssel für den Steuersatz &#039;&#039;nSatz&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Gibt den zweistelligen Schlüssel (z. B. 01) für die Umsatzsteuer mit dem Satz 19 % aus&lt;br /&gt;
Meldung(FindUstFromSatz(oDB,19));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UST_VK_Netto2Brutto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(nNetto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===UST_VK_Brutto2Netto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Variante 1&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 2&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 3&lt;br /&gt;
function  UST_VK_Brutto2Netto(nBrutto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Wandelt einen Preis von Brutto nach Netto. Die Funktion gibt es in drei Ausführungen.&lt;br /&gt;
#Umwandlung über Artikelnummer&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto um. Der Steuersatz wird dabei über den Steuerschlüssel aus dem Artikelstamm gezogen. Falls kein Artikel mit der Nummer &#039;&#039;cArtNr&#039;&#039; im Artikelstamm gefunden werden kann, wird für die Umrechnung der Satz &#039;&#039;nDefaultSatz&#039;&#039; verwendet. Existiert der Artikel im Artikelstamm wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis verwendet, falls kein Steuerschlüssel im Artikel gepflegt ist. {{Hinweis|Wenn die Artikelnummer vorhanden ist, wird diese Variante der Umrechnung empfohlen, da hier auch Artikel mit mehreren Steuersätzen richtig umgewandelt werden.}}&lt;br /&gt;
#Umwandlung mit Steuerschlüssel&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto anhand des übergebenen Steuerschlüssels &#039;&#039;cSchl&#039;&#039; um. Ist der Steuerschlüssel leer, wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis zurückgegeben. Der Steuersatz &#039;&#039;nDefaultSatz&#039;&#039; wird verwendet, wenn kein passender Eintrag zum Steuerschlüssel im OBS gefunden werden konnte.&lt;br /&gt;
#Umwandlung mit Steuersatz&lt;br /&gt;
#:Der Wert &#039;&#039;nBrutto&#039;&#039; wird mit dem Steuersatz &#039;&#039;nMwstSatz&#039;&#039; umgerechnet. Die Rückgabe wird auf &#039;&#039;nNK&#039;&#039; Nachkommastellen gerundet.{{Achtung|Der Steuersatz 19 % wird in &#039;&#039;nMwstSatz&#039;&#039; als 19.00 (Punkt als Dezimaltrennzeichen) erwartet!}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57071</id>
		<title>OBS/Makros und Scripting/Allgemeines/Übersicht Funktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57071"/>
		<updated>2020-01-10T08:27:18Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* TqSQL.A2I */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Hier finden Sie nützliche [https://de.wikipedia.org/wiki/Funktion_(Programmierung) Funktionen], die Sie in den Makros verwenden können, um das gewünschte Ergebnis zu erzielen.&lt;br /&gt;
=Liste Funktionssammlungen=&lt;br /&gt;
==TMyDir==&lt;br /&gt;
===TMyDir.CreateDirectory===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CreateDirectory(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Erstellt ein neues Verzeichnis mit dem angegebenen Pfad, wenn es noch nicht existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;;&lt;br /&gt;
lAngelegt := TMyDir.CreateDirectory(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Exists(const Path: string; const CreateIfNotExists: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob das Verzeichnis existiert. Wird der optionale Parameter &#039;&#039;CreateIfNotExists&#039;&#039; mit dem boolschen Wert &#039;&#039;True&#039;&#039; übergeben, wird versucht das Verzeichnis anzulegen, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
lExistiert := TMyDir.Exists(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRoot: string; aAdd: array of string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Dem Pfad &#039;&#039;cRoot&#039;&#039; werden die einzelnen Einträge aus dem [https://de.wikipedia.org/wiki/Feld_(Datentyp) Array] &#039;&#039;aAdd&#039;&#039; als Verzeichnisse angefügt und so ein neuer Pfad erstellt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\Import\2019&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.BuildPath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function BuildPath(const cRoot: string; aAdd: array of string; out cPath: string; lCreate: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Diese Funktion ist ein Mix aus [[#TMyDir.CombinePath|TMyDir.CombinePath]] und [[TMyDir.Exists|TMyDir.Exists]]. Es wird ein Pfad aus den Angaben &#039;&#039;cRoot&#039;&#039; und &#039;&#039;aAdd&#039;&#039; erstellt und geprüft, ob der Pfad existiert (Funktionsergebnis). Die Rückgabe des Pfades erfolgt mit &#039;&#039;cPath&#039;&#039;. Mit dem oprtionalen Parameter kann angegeben werden, ob das Verzeichnis erstellt werden soll, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
if (TMyDir.BuildPath(cRoot,[&#039;Import&#039;,&#039;2019&#039;],cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Verzeichnis &#039;+cPfad+&#039; existiert.&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.GetDirectoryName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDirectoryName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Pfad des Verzeichnisses zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
cPfad := TMyDir.GetDirectoryName(cDatei);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TMyFile==&lt;br /&gt;
===TMyFile.IsFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsFile(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsFile(cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Combine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Combine(const Path1: string; const Path2: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;);&lt;br /&gt;
//cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombine(const Path1: string; const Path2: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad und prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
    //cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRootDir: string; aAdd: array of string; const cFileName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Baut aus den Parametern einen Dateipfad zusammen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDateipfad := TMyFile.CombinePath(&#039;c:\Beispiel&#039;,[&#039;Verzeichnis&#039;,&#039;Pfad&#039;],&#039;MeineDatei.txt&#039;);&lt;br /&gt;
//cDateipfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Extrahiert aus &#039;&#039;FilePath&#039;&#039; den zu &#039;&#039;RelativeBasePath&#039;&#039; relativem Pfad und kombiniert dies mit &#039;&#039;CombineBasePath&#039;&#039; zu einem neuen Dateipfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.CombineRelativePath(&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;,&lt;br /&gt;
    &#039;\\mein-server\Netzwerk\OBS\data\Import&#039;&lt;br /&gt;
);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
TMyFile.IsCombineRelativePath verbindet die Funktionalität von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]] und [[#TMyFile.IsFile|TMyFile.IsFile]]. &#039;&#039;ReturnPath&#039;&#039; entspricht dem Ergebnis von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]]. Das Ergebnis der Funktion [[#TMyFile.IsFile|TMyFile.IsFile]] für den Pfad &#039;&#039;ReturnPath&#039;&#039; ist auch das Ergebnis für TMyFile.IsCombineRelativePath.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePathUNC(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad für die Datei zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Annahme: Das OBS-Installationsverzeichnis ist mit dem Laufwerksbuchstaben &#039;&#039;O&#039;&#039; als Netzlaufwerk am Arbeitsplatz eingerichtet.&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cUNC := TMyFile.GetFilePathUNC(cPfad);&lt;br /&gt;
//cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht &#039;&#039;Path&#039;&#039; zu einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad aufzulösen. Gibt &#039;&#039;Path&#039;&#039; zurück, wenn kein [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad verfügbar ist, aber &#039;&#039;Path&#039;&#039; existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cPfadNeu := TMyFile.GetFilePath(cPfad);&lt;br /&gt;
//cPfadNeu Werte:&lt;br /&gt;
//UNC vorhanden: &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert: &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Datei existiert nicht: &#039;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePathUNC(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei &#039;&#039;Path&#039;&#039; unter einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad zu finden ist. Dieser wird dann in &#039;&#039;ReturnPath&#039;&#039; enthalten.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.IsGetFilePathUNC(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cUNC)) then begin&lt;br /&gt;
    //cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cUNC+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePath(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Entspricht im verhalten [[#TMyFile.GetFilePath|TMyFile.GetFilePath]] mit einer zusätzlichen Prüfung, ob der Rückgabepfad &#039;&#039;ReturnPath&#039;&#039; leer ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsGetFilePath(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
//UNC vorhanden:&lt;br /&gt;
//    cPfad ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert:&lt;br /&gt;
//    cPfad ist &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Datei existiert nicht:&lt;br /&gt;
//    cPfad ist &#039;&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;false&#039;&#039;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Move===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Move(const SourceFileName: string; const DestFileName: string; const CreateDestDir: boolean=False; const Replace: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht die Datei &#039;&#039;SourceFileName&#039;&#039; nach &#039;&#039;DestFileName&#039;&#039; zu verschieben. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist. Die optionalen Parameter geben hier die Möglichkeit festzulegen, wie die Funktion bei Konflikten reagieren soll. &#039;&#039;CreateDestDir&#039;&#039; erlaubt die Anlage des Ziel-Verzeichnis, sollte es nicht existieren. &#039;&#039;Replace&#039;&#039; erlaubt es vorhandene Dateien zu überschreiben/ersetzen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Move(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde verschoben&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Delete===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Delete(const FilePath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Löscht die angegebene Datei &#039;&#039;FilePath&#039;&#039;. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Delete(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde gelöscht&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TObsPath==&lt;br /&gt;
===TObsPath.GetExePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExePath(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Installationsverzeichnis von OBS zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExePath();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;data&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetSysDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetSysDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;sys&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetSysDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetTempDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetTempDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;temp&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetTempDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetBildarchivDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetBildarchivDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;bildarchiv&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetBildarchivDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetExportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;export&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetImportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetImportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;import&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetImportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataInOutDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataInOutDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;datainout&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataInOutDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;lock&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Lock-Datei im Verzeichnis &#039;&#039;locks&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück. Die Dateiendung &#039;&#039;.lock&#039;&#039; wird automatisch ergäntzt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockFile(&#039;mein&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\locks\mein.lock&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Debug-Datei im Verzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugFile(&#039;debug.txt&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\debug\debug.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetShopDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetShopDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;shop&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetShopDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetRelativePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den relativen Pfad innerhalb der OBS-Verzeichnisstruktur zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;;&lt;br /&gt;
cDateiRelativ := TObsPath.GetRelativePath(cDatei);&lt;br /&gt;
//cDateiRelativ ist &#039;data\import\artikel.csv&#039;&lt;br /&gt;
&lt;br /&gt;
cVerzeichnis := &#039;\\mein-server\Netzwerk\OBS\data\import\&#039;;&lt;br /&gt;
cVerzeichnisRelativ := TObsPath.GetRelativePath(cVerzeichnis);&lt;br /&gt;
//cVerzeichnisRelativ ist &#039;data\import\&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFileName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad. Wenn möglich wird der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;data\import\artikel.csv&#039;;&lt;br /&gt;
cDatei := TObsPath.GetFileName(cDatei);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.IsGetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFileName(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad und prüft dessen Existens. Wenn möglich wird in &#039;&#039;ReturnPath&#039;&#039; der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TObsPath.IsGetFileName(&#039;data\import\artikel.csv&#039;,cDatei)) then begin&lt;br /&gt;
    //cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
	Meldung(&#039;Datei &#039;+cDatei+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TISO==&lt;br /&gt;
{{Hinweis|Für die Verwendung dieser Funktionen siehe auch [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Aufzählungstypen#TISOCountryCodes|TISOCountryCodes]].}}&lt;br /&gt;
===TISO.CountrySwap===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountrySwap(const cCode: string; const eFrom: TISOCountryCodes; const eTo: TISOCountryCodes): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht den ISO-3166-Code &#039;&#039;cCode&#039;&#039; von &#039;&#039;eFrom&#039;&#039; nach &#039;&#039;eTo&#039;&#039; zu wechseln.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Ermittelt die nummerische Kodierung zum Alpha-2-Code &amp;quot;de&amp;quot; (Deutschalnd) und zeigt diesen als Meldung an. Der nummerische Wert für de ist 276.&lt;br /&gt;
Meldung(TISO.CountrySwap(&#039;de&#039;,iso3166_Alpha2,iso3166_Numeric));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetRefNo===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetRefNo(oMyDB: TxDB; const eCode: TISOCountryCodes; const cCode: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt die OBS-Referenz aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] für den Code &#039;&#039;cCode&#039;&#039;. Gibt &#039;&#039;cDefault&#039;&#039; zurück, wenn keine OBS-Referenz ermittelt werden konnte.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, findet diese Funktion die entsprechende Referenz für Deutschland (OBS-Default ist &amp;quot;D-&amp;quot;) und zeigt diese als Meldung.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,&#039;de&#039;,iso3166_Alpha2));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetCode===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetCode(oMyDB: TxDB; const eCode: TISOCountryCodes; const cRef: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] den ISO-3166-Code für die OBS-Referenz &#039;&#039;cRef&#039;&#039; aus und gibt den Code für den Typen &#039;&#039;eCode&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, liest diese Funktion den Wert für die entsprechende Referenz den OBS-Default &amp;quot;D-&amp;quot; für Deutschland und zeigt den Code als Meldung an.&lt;br /&gt;
//Da im OBS nur der Alpha2 gepflegt werden kann, wird der Code bei Angabe von z. B. &#039;&#039;iso3166_Alpha3&#039;&#039; in &#039;&#039;eCode&#039;&#039; intern umgewandelt.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,iso3166_Alpha3,&#039;D-&#039;));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TqSQL==&lt;br /&gt;
{{Hinweis|Dies ist nur ein Auszug der Funktionalität}}&lt;br /&gt;
===TqSQL.A2I===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2I(const cFeld:String):integer;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Der Wert des Datenbankfeldes wird in einen Integer umgewandelt und zurückgegeben.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2C===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2C(const cFeld:String):String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2F===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2F(const cFeld:String):Double;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2D===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2D(const cFeld:String):TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2UID===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2UID():String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.qSet===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 function    qSet(const cxField : String; xDaten : Variant):Boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Liste Funktionen=&lt;br /&gt;
==Empty==&lt;br /&gt;
Verwendung: Prüft, ob der Wert des Parameters leer bzw. 0 ist. Dies Funktioniert mit Zeichenketten (&#039;&#039;string&#039;&#039;) und Zahlen (&#039;&#039;integer&#039;&#039; und &#039;&#039;double&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string/integer/double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: boolean&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
    cText := &#039;Beispiel&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird ein leerer Text zugewiesen. Mit &#039;&#039;Empty&#039;&#039; wird der Wert nun geprüft. Die boolsche Variable &#039;&#039;IstLeer&#039;&#039; ist dann true (wahr). Als nächstes wird &#039;&#039;cText&#039;&#039; der Wert &amp;quot;Beispiel&amp;quot; zugewiesen und eine erneute Prüfung mit &#039;&#039;Empty&#039;&#039; durchgeführt. Da &#039;&#039;cText&#039;&#039; jetzt einen Text enthält, ist der Wert der Variablen &#039;&#039;IstLeer&#039;&#039; nun false (falsch).&lt;br /&gt;
&lt;br /&gt;
==Length==&lt;br /&gt;
Verwendung: Ermittelt die Länge einer Zeichenkette (string).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText   := &#039;Dies ist ein Beispiel.&#039;;&lt;br /&gt;
    nLaenge := Length(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel.&#039;&#039; zugewiesen. Mit &#039;&#039;Length&#039;&#039; wird die Länge ermittelt. Der Satz &amp;quot;Dies ist ein Beispiel.&amp;quot; hat 22 Zeichen. &#039;&#039;nLaenge&#039;&#039; hat also den Wert &#039;&#039;22&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==AllTrim==&lt;br /&gt;
Verwendung: Entfernt Umbrüche und Leerzeichen am Anfang und Ende einer Zeichenkette.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;  Dies ist ein Beispiel.       &#039;;&lt;br /&gt;
    cText := AllTrim(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &amp;quot;&#039;&#039;  Dies ist ein Beispiel.       &#039;&#039;&amp;quot; zugewiesen. Mit &#039;&#039;AllTrim&#039;&#039; werden die unnötigen Leerzeichen am Anfang und Ende der Zeichenkette entfernt. Die Variable &#039;&#039;cText&#039;&#039; entspricht also dem Wert &amp;quot;&#039;&#039;Dies ist ein Beispiel.&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==UpperCase/LowerCase==&lt;br /&gt;
Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Beispiel&#039;;&lt;br /&gt;
    cUpper := UpperCase(cText);&lt;br /&gt;
    cLower := LowerCase(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;UpperCase&#039;&#039; und &#039;&#039;LowerCase&#039;&#039; wird die Zeichenkette umgewandelt. &#039;&#039;cUpper&#039;&#039; enthält danach den Wert &#039;&#039;BEISPIEL&#039;&#039; und &#039;&#039;cLower&#039;&#039; den Wert &#039;&#039;beispiel&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==ExtractFileName==&lt;br /&gt;
Verwendung: Dateinamen aus Dateipfad auslesen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;c:\\Ordner\Datei.txt&#039;;&lt;br /&gt;
    cDatei := ExtractFileName(cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;c:\\Ordner\Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;ExtractFileName&#039;&#039; wird der Dateiname herausgesucht und zurückgegeben. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei.txt&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==StrTran==&lt;br /&gt;
Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei.txt&#039;;&lt;br /&gt;
    cName  := StrTran(cDatei ,&#039;.txt&#039;,&#039;&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;StrTran&#039;&#039; wird im Text der Variable &#039;&#039;cDatei&#039;&#039; nach &#039;&#039;.txt&#039;&#039; gesucht. Der gefundene Teil wird mit einer leeren Zeichenkette ersetzt. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==LeftStr/RightStr==&lt;br /&gt;
Verwendung: Gibt den linken/rechten Teil einer Zeichenketten zurück. Es werden dabei maximal soviele Zeichen zurückgegeben, wie im zweiten Parameter angegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Dies ist ein Beispiel&#039;;&lt;br /&gt;
    cLeft  := LeftStr(cText,2);&lt;br /&gt;
    cRight := RightStr(cText,5);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;LeftStr&#039;&#039; und &#039;&#039;RightStr&#039;&#039; werden jeweils die ersten zwei Zeichen von Links und Rechts zurückgegeben. &#039;&#039;cLeft&#039;&#039; enthält danach den Wert &#039;&#039;Di&#039;&#039; und &#039;&#039;cRight&#039;&#039; den Wert &#039;&#039;spiel&#039;&#039;.&lt;br /&gt;
{{Hinweis|Sollten mehr Zeichen ermittelt werden, als der ursprüngliche Wert Zeichen hat, so ist das Ergbenis gleich dem Ursprung. LeftStr(cDatei,50) hätte z. B. dazu geführt, dass cLeft ebenfalls &#039;&#039;Dies ist ein Beispiel&#039;&#039; enthält.}}&lt;br /&gt;
&lt;br /&gt;
==Token==&lt;br /&gt;
Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    cTeil  := Token(cDatei,&#039;_&#039;,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;Token&#039;&#039; wird die Zeichenkette aufgeteilt. Als Teiler ist ein Unterstrich angeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Es wird der zweite Teil gefordert. Die Variable &#039;&#039;cTeil&#039;&#039; enthält demnach den Wert &#039;&#039;Name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==NumToken==&lt;br /&gt;
Verwendung: Ermittelt die Anzahl der Teile einer Zeichenketten, wenn diese an den Stelle mit dem Zeichen, das als Parameter übergeben wird, geteilt wird.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    nTeile := NumToken(&#039;_&#039;,cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;NumToken&#039;&#039; wird die Anzahl der Teil-Zeichenketten der Zeichenkette cDatei ermittelt. Als Trennzeichen wurde ein Unterstrich angegeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Die Variable &#039;&#039;nTeile&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==iVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in einen Ganzzahlwert um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;4&#039;;&lt;br /&gt;
    nZahl := iVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;4&#039;&#039; zugewiesen. Mit &#039;&#039;iVal&#039;&#039; wird die Zeichenkette in die entsprechende Ganzzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==fVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in eine Dezimalzahl um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;1234,56&#039;;&lt;br /&gt;
    nZahl := fVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;1234,56&#039;&#039; zugewiesen. Mit &#039;&#039;fVal&#039;&#039; wird die Zeichenkette in die entsprechende Dezimalzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 1234,56.&lt;br /&gt;
&lt;br /&gt;
==Roundy==&lt;br /&gt;
Verwendung: Runden eines Dezimalwerts (Typ: Double)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nGerundeterWert := Roundy(nDezimalwert,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der zu rundende Wert wird mit Parameter 1 übergeben. Die gewünschte Anzahl an Nachkommastellen wird in Parameter 2 angegeben. Die Funktion rundet dann den Wert auf die angegebene Anzahl an Dezimalstellen und gibt das Ergebnis wieder zurück. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nGerundeterWert&#039;&#039; entspricht also 1234,57.&lt;br /&gt;
&lt;br /&gt;
==Trunc==&lt;br /&gt;
Verwendung: Abschneiden der Nachkommastellen eines Dezimalwerts&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nWert := Trunc(nDezimalwert);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der Dezimalwert ist als Parameter zu übergeben. Als Ergbnis werden die Vorkommastellen zurückgegeben. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nWert&#039;&#039; entspricht also 1234.&lt;br /&gt;
==PadL==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadL(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur linken Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;    Müller&#039;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;XXXXMüller&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==PadR==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadR(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur rechten Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;Müller    &#039;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;MüllerXXXX&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CToD==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CToD(const sDate: string): TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Konvertiert die Zeichenkette &#039;&#039;sDate&#039;&#039; in einen Datumswert des Typs [http://docwiki.embarcadero.com/Libraries/Rio/en/System.TDateTime &#039;&#039;TDateTime&#039;&#039;].&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18&#039;);&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18 17:52:35&#039;);&lt;br /&gt;
//In beiden Fällen entspricht der Wert in dDatum dem 18.11.2016, da CToD nur das Datum übernimmt. Die Uhrzeit wird verworfen.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Artikelstamm==&lt;br /&gt;
===AR_Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function AR_Exists(oMyDB: TxDB; const cArtNr: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Sucht im Artikelstamm nach der in &#039;&#039;cArtNr&#039;&#039; angegebenen Artikelnummer und liefert als Ergebnis &#039;&#039;True&#039;&#039; wenn der Artikel gefunden wurde.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (AR_Exists(oDB,&#039;ABC123&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Artikel existiert im Artikelstamm&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Umsatz- und Vorsteuer==&lt;br /&gt;
===FindUstFromSatz===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function FindUstFromSatz(oMyDB: TxDB; nSatz: double): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt den OBS-Umsatzsteuerschlüssel für den Steuersatz &#039;&#039;nSatz&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Gibt den zweistelligen Schlüssel (z. B. 01) für die Umsatzsteuer mit dem Satz 19 % aus&lt;br /&gt;
Meldung(FindUstFromSatz(oDB,19));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UST_VK_Netto2Brutto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(nNetto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===UST_VK_Brutto2Netto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Variante 1&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 2&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 3&lt;br /&gt;
function  UST_VK_Brutto2Netto(nBrutto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Wandelt einen Preis von Brutto nach Netto. Die Funktion gibt es in drei Ausführungen.&lt;br /&gt;
#Umwandlung über Artikelnummer&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto um. Der Steuersatz wird dabei über den Steuerschlüssel aus dem Artikelstamm gezogen. Falls kein Artikel mit der Nummer &#039;&#039;cArtNr&#039;&#039; im Artikelstamm gefunden werden kann, wird für die Umrechnung der Satz &#039;&#039;nDefaultSatz&#039;&#039; verwendet. Existiert der Artikel im Artikelstamm wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis verwendet, falls kein Steuerschlüssel im Artikel gepflegt ist. {{Hinweis|Wenn die Artikelnummer vorhanden ist, wird diese Variante der Umrechnung empfohlen, da hier auch Artikel mit mehreren Steuersätzen richtig umgewandelt werden.}}&lt;br /&gt;
#Umwandlung mit Steuerschlüssel&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto anhand des übergebenen Steuerschlüssels &#039;&#039;cSchl&#039;&#039; um. Ist der Steuerschlüssel leer, wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis zurückgegeben. Der Steuersatz &#039;&#039;nDefaultSatz&#039;&#039; wird verwendet, wenn kein passender Eintrag zum Steuerschlüssel im OBS gefunden werden konnte.&lt;br /&gt;
#Umwandlung mit Steuersatz&lt;br /&gt;
#:Der Wert &#039;&#039;nBrutto&#039;&#039; wird mit dem Steuersatz &#039;&#039;nMwstSatz&#039;&#039; umgerechnet. Die Rückgabe wird auf &#039;&#039;nNK&#039;&#039; Nachkommastellen gerundet.{{Achtung|Der Steuersatz 19 % wird in &#039;&#039;nMwstSatz&#039;&#039; als 19.00 (Punkt als Dezimaltrennzeichen) erwartet!}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57070</id>
		<title>OBS/Makros und Scripting/Allgemeines/Übersicht Funktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57070"/>
		<updated>2020-01-10T08:23:26Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* TqSQL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Hier finden Sie nützliche [https://de.wikipedia.org/wiki/Funktion_(Programmierung) Funktionen], die Sie in den Makros verwenden können, um das gewünschte Ergebnis zu erzielen.&lt;br /&gt;
=Liste Funktionssammlungen=&lt;br /&gt;
==TMyDir==&lt;br /&gt;
===TMyDir.CreateDirectory===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CreateDirectory(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Erstellt ein neues Verzeichnis mit dem angegebenen Pfad, wenn es noch nicht existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;;&lt;br /&gt;
lAngelegt := TMyDir.CreateDirectory(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Exists(const Path: string; const CreateIfNotExists: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob das Verzeichnis existiert. Wird der optionale Parameter &#039;&#039;CreateIfNotExists&#039;&#039; mit dem boolschen Wert &#039;&#039;True&#039;&#039; übergeben, wird versucht das Verzeichnis anzulegen, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
lExistiert := TMyDir.Exists(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRoot: string; aAdd: array of string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Dem Pfad &#039;&#039;cRoot&#039;&#039; werden die einzelnen Einträge aus dem [https://de.wikipedia.org/wiki/Feld_(Datentyp) Array] &#039;&#039;aAdd&#039;&#039; als Verzeichnisse angefügt und so ein neuer Pfad erstellt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\Import\2019&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.BuildPath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function BuildPath(const cRoot: string; aAdd: array of string; out cPath: string; lCreate: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Diese Funktion ist ein Mix aus [[#TMyDir.CombinePath|TMyDir.CombinePath]] und [[TMyDir.Exists|TMyDir.Exists]]. Es wird ein Pfad aus den Angaben &#039;&#039;cRoot&#039;&#039; und &#039;&#039;aAdd&#039;&#039; erstellt und geprüft, ob der Pfad existiert (Funktionsergebnis). Die Rückgabe des Pfades erfolgt mit &#039;&#039;cPath&#039;&#039;. Mit dem oprtionalen Parameter kann angegeben werden, ob das Verzeichnis erstellt werden soll, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
if (TMyDir.BuildPath(cRoot,[&#039;Import&#039;,&#039;2019&#039;],cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Verzeichnis &#039;+cPfad+&#039; existiert.&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.GetDirectoryName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDirectoryName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Pfad des Verzeichnisses zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
cPfad := TMyDir.GetDirectoryName(cDatei);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TMyFile==&lt;br /&gt;
===TMyFile.IsFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsFile(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsFile(cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Combine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Combine(const Path1: string; const Path2: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;);&lt;br /&gt;
//cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombine(const Path1: string; const Path2: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad und prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
    //cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRootDir: string; aAdd: array of string; const cFileName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Baut aus den Parametern einen Dateipfad zusammen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDateipfad := TMyFile.CombinePath(&#039;c:\Beispiel&#039;,[&#039;Verzeichnis&#039;,&#039;Pfad&#039;],&#039;MeineDatei.txt&#039;);&lt;br /&gt;
//cDateipfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Extrahiert aus &#039;&#039;FilePath&#039;&#039; den zu &#039;&#039;RelativeBasePath&#039;&#039; relativem Pfad und kombiniert dies mit &#039;&#039;CombineBasePath&#039;&#039; zu einem neuen Dateipfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.CombineRelativePath(&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;,&lt;br /&gt;
    &#039;\\mein-server\Netzwerk\OBS\data\Import&#039;&lt;br /&gt;
);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
TMyFile.IsCombineRelativePath verbindet die Funktionalität von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]] und [[#TMyFile.IsFile|TMyFile.IsFile]]. &#039;&#039;ReturnPath&#039;&#039; entspricht dem Ergebnis von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]]. Das Ergebnis der Funktion [[#TMyFile.IsFile|TMyFile.IsFile]] für den Pfad &#039;&#039;ReturnPath&#039;&#039; ist auch das Ergebnis für TMyFile.IsCombineRelativePath.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePathUNC(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad für die Datei zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Annahme: Das OBS-Installationsverzeichnis ist mit dem Laufwerksbuchstaben &#039;&#039;O&#039;&#039; als Netzlaufwerk am Arbeitsplatz eingerichtet.&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cUNC := TMyFile.GetFilePathUNC(cPfad);&lt;br /&gt;
//cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht &#039;&#039;Path&#039;&#039; zu einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad aufzulösen. Gibt &#039;&#039;Path&#039;&#039; zurück, wenn kein [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad verfügbar ist, aber &#039;&#039;Path&#039;&#039; existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cPfadNeu := TMyFile.GetFilePath(cPfad);&lt;br /&gt;
//cPfadNeu Werte:&lt;br /&gt;
//UNC vorhanden: &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert: &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Datei existiert nicht: &#039;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePathUNC(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei &#039;&#039;Path&#039;&#039; unter einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad zu finden ist. Dieser wird dann in &#039;&#039;ReturnPath&#039;&#039; enthalten.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.IsGetFilePathUNC(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cUNC)) then begin&lt;br /&gt;
    //cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cUNC+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePath(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Entspricht im verhalten [[#TMyFile.GetFilePath|TMyFile.GetFilePath]] mit einer zusätzlichen Prüfung, ob der Rückgabepfad &#039;&#039;ReturnPath&#039;&#039; leer ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsGetFilePath(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
//UNC vorhanden:&lt;br /&gt;
//    cPfad ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert:&lt;br /&gt;
//    cPfad ist &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Datei existiert nicht:&lt;br /&gt;
//    cPfad ist &#039;&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;false&#039;&#039;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Move===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Move(const SourceFileName: string; const DestFileName: string; const CreateDestDir: boolean=False; const Replace: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht die Datei &#039;&#039;SourceFileName&#039;&#039; nach &#039;&#039;DestFileName&#039;&#039; zu verschieben. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist. Die optionalen Parameter geben hier die Möglichkeit festzulegen, wie die Funktion bei Konflikten reagieren soll. &#039;&#039;CreateDestDir&#039;&#039; erlaubt die Anlage des Ziel-Verzeichnis, sollte es nicht existieren. &#039;&#039;Replace&#039;&#039; erlaubt es vorhandene Dateien zu überschreiben/ersetzen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Move(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde verschoben&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Delete===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Delete(const FilePath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Löscht die angegebene Datei &#039;&#039;FilePath&#039;&#039;. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Delete(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde gelöscht&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TObsPath==&lt;br /&gt;
===TObsPath.GetExePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExePath(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Installationsverzeichnis von OBS zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExePath();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;data&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetSysDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetSysDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;sys&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetSysDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetTempDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetTempDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;temp&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetTempDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetBildarchivDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetBildarchivDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;bildarchiv&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetBildarchivDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetExportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;export&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetImportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetImportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;import&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetImportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataInOutDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataInOutDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;datainout&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataInOutDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;lock&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Lock-Datei im Verzeichnis &#039;&#039;locks&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück. Die Dateiendung &#039;&#039;.lock&#039;&#039; wird automatisch ergäntzt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockFile(&#039;mein&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\locks\mein.lock&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Debug-Datei im Verzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugFile(&#039;debug.txt&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\debug\debug.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetShopDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetShopDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;shop&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetShopDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetRelativePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den relativen Pfad innerhalb der OBS-Verzeichnisstruktur zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;;&lt;br /&gt;
cDateiRelativ := TObsPath.GetRelativePath(cDatei);&lt;br /&gt;
//cDateiRelativ ist &#039;data\import\artikel.csv&#039;&lt;br /&gt;
&lt;br /&gt;
cVerzeichnis := &#039;\\mein-server\Netzwerk\OBS\data\import\&#039;;&lt;br /&gt;
cVerzeichnisRelativ := TObsPath.GetRelativePath(cVerzeichnis);&lt;br /&gt;
//cVerzeichnisRelativ ist &#039;data\import\&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFileName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad. Wenn möglich wird der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;data\import\artikel.csv&#039;;&lt;br /&gt;
cDatei := TObsPath.GetFileName(cDatei);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.IsGetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFileName(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad und prüft dessen Existens. Wenn möglich wird in &#039;&#039;ReturnPath&#039;&#039; der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TObsPath.IsGetFileName(&#039;data\import\artikel.csv&#039;,cDatei)) then begin&lt;br /&gt;
    //cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
	Meldung(&#039;Datei &#039;+cDatei+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TISO==&lt;br /&gt;
{{Hinweis|Für die Verwendung dieser Funktionen siehe auch [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Aufzählungstypen#TISOCountryCodes|TISOCountryCodes]].}}&lt;br /&gt;
===TISO.CountrySwap===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountrySwap(const cCode: string; const eFrom: TISOCountryCodes; const eTo: TISOCountryCodes): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht den ISO-3166-Code &#039;&#039;cCode&#039;&#039; von &#039;&#039;eFrom&#039;&#039; nach &#039;&#039;eTo&#039;&#039; zu wechseln.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Ermittelt die nummerische Kodierung zum Alpha-2-Code &amp;quot;de&amp;quot; (Deutschalnd) und zeigt diesen als Meldung an. Der nummerische Wert für de ist 276.&lt;br /&gt;
Meldung(TISO.CountrySwap(&#039;de&#039;,iso3166_Alpha2,iso3166_Numeric));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetRefNo===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetRefNo(oMyDB: TxDB; const eCode: TISOCountryCodes; const cCode: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt die OBS-Referenz aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] für den Code &#039;&#039;cCode&#039;&#039;. Gibt &#039;&#039;cDefault&#039;&#039; zurück, wenn keine OBS-Referenz ermittelt werden konnte.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, findet diese Funktion die entsprechende Referenz für Deutschland (OBS-Default ist &amp;quot;D-&amp;quot;) und zeigt diese als Meldung.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,&#039;de&#039;,iso3166_Alpha2));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetCode===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetCode(oMyDB: TxDB; const eCode: TISOCountryCodes; const cRef: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] den ISO-3166-Code für die OBS-Referenz &#039;&#039;cRef&#039;&#039; aus und gibt den Code für den Typen &#039;&#039;eCode&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, liest diese Funktion den Wert für die entsprechende Referenz den OBS-Default &amp;quot;D-&amp;quot; für Deutschland und zeigt den Code als Meldung an.&lt;br /&gt;
//Da im OBS nur der Alpha2 gepflegt werden kann, wird der Code bei Angabe von z. B. &#039;&#039;iso3166_Alpha3&#039;&#039; in &#039;&#039;eCode&#039;&#039; intern umgewandelt.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,iso3166_Alpha3,&#039;D-&#039;));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TqSQL==&lt;br /&gt;
{{Hinweis|Dies ist nur ein Auszug der Funktionalität}}&lt;br /&gt;
===TqSQL.A2I===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2I(const cFeld:String):integer;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2C===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2C(const cFeld:String):String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2F===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2F(const cFeld:String):Double;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2D===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2D(const cFeld:String):TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2UID===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2UID():String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.qSet===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 function    qSet(const cxField : String; xDaten : Variant):Boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Liste Funktionen=&lt;br /&gt;
==Empty==&lt;br /&gt;
Verwendung: Prüft, ob der Wert des Parameters leer bzw. 0 ist. Dies Funktioniert mit Zeichenketten (&#039;&#039;string&#039;&#039;) und Zahlen (&#039;&#039;integer&#039;&#039; und &#039;&#039;double&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string/integer/double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: boolean&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
    cText := &#039;Beispiel&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird ein leerer Text zugewiesen. Mit &#039;&#039;Empty&#039;&#039; wird der Wert nun geprüft. Die boolsche Variable &#039;&#039;IstLeer&#039;&#039; ist dann true (wahr). Als nächstes wird &#039;&#039;cText&#039;&#039; der Wert &amp;quot;Beispiel&amp;quot; zugewiesen und eine erneute Prüfung mit &#039;&#039;Empty&#039;&#039; durchgeführt. Da &#039;&#039;cText&#039;&#039; jetzt einen Text enthält, ist der Wert der Variablen &#039;&#039;IstLeer&#039;&#039; nun false (falsch).&lt;br /&gt;
&lt;br /&gt;
==Length==&lt;br /&gt;
Verwendung: Ermittelt die Länge einer Zeichenkette (string).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText   := &#039;Dies ist ein Beispiel.&#039;;&lt;br /&gt;
    nLaenge := Length(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel.&#039;&#039; zugewiesen. Mit &#039;&#039;Length&#039;&#039; wird die Länge ermittelt. Der Satz &amp;quot;Dies ist ein Beispiel.&amp;quot; hat 22 Zeichen. &#039;&#039;nLaenge&#039;&#039; hat also den Wert &#039;&#039;22&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==AllTrim==&lt;br /&gt;
Verwendung: Entfernt Umbrüche und Leerzeichen am Anfang und Ende einer Zeichenkette.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;  Dies ist ein Beispiel.       &#039;;&lt;br /&gt;
    cText := AllTrim(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &amp;quot;&#039;&#039;  Dies ist ein Beispiel.       &#039;&#039;&amp;quot; zugewiesen. Mit &#039;&#039;AllTrim&#039;&#039; werden die unnötigen Leerzeichen am Anfang und Ende der Zeichenkette entfernt. Die Variable &#039;&#039;cText&#039;&#039; entspricht also dem Wert &amp;quot;&#039;&#039;Dies ist ein Beispiel.&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==UpperCase/LowerCase==&lt;br /&gt;
Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Beispiel&#039;;&lt;br /&gt;
    cUpper := UpperCase(cText);&lt;br /&gt;
    cLower := LowerCase(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;UpperCase&#039;&#039; und &#039;&#039;LowerCase&#039;&#039; wird die Zeichenkette umgewandelt. &#039;&#039;cUpper&#039;&#039; enthält danach den Wert &#039;&#039;BEISPIEL&#039;&#039; und &#039;&#039;cLower&#039;&#039; den Wert &#039;&#039;beispiel&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==ExtractFileName==&lt;br /&gt;
Verwendung: Dateinamen aus Dateipfad auslesen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;c:\\Ordner\Datei.txt&#039;;&lt;br /&gt;
    cDatei := ExtractFileName(cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;c:\\Ordner\Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;ExtractFileName&#039;&#039; wird der Dateiname herausgesucht und zurückgegeben. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei.txt&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==StrTran==&lt;br /&gt;
Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei.txt&#039;;&lt;br /&gt;
    cName  := StrTran(cDatei ,&#039;.txt&#039;,&#039;&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;StrTran&#039;&#039; wird im Text der Variable &#039;&#039;cDatei&#039;&#039; nach &#039;&#039;.txt&#039;&#039; gesucht. Der gefundene Teil wird mit einer leeren Zeichenkette ersetzt. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==LeftStr/RightStr==&lt;br /&gt;
Verwendung: Gibt den linken/rechten Teil einer Zeichenketten zurück. Es werden dabei maximal soviele Zeichen zurückgegeben, wie im zweiten Parameter angegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Dies ist ein Beispiel&#039;;&lt;br /&gt;
    cLeft  := LeftStr(cText,2);&lt;br /&gt;
    cRight := RightStr(cText,5);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;LeftStr&#039;&#039; und &#039;&#039;RightStr&#039;&#039; werden jeweils die ersten zwei Zeichen von Links und Rechts zurückgegeben. &#039;&#039;cLeft&#039;&#039; enthält danach den Wert &#039;&#039;Di&#039;&#039; und &#039;&#039;cRight&#039;&#039; den Wert &#039;&#039;spiel&#039;&#039;.&lt;br /&gt;
{{Hinweis|Sollten mehr Zeichen ermittelt werden, als der ursprüngliche Wert Zeichen hat, so ist das Ergbenis gleich dem Ursprung. LeftStr(cDatei,50) hätte z. B. dazu geführt, dass cLeft ebenfalls &#039;&#039;Dies ist ein Beispiel&#039;&#039; enthält.}}&lt;br /&gt;
&lt;br /&gt;
==Token==&lt;br /&gt;
Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    cTeil  := Token(cDatei,&#039;_&#039;,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;Token&#039;&#039; wird die Zeichenkette aufgeteilt. Als Teiler ist ein Unterstrich angeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Es wird der zweite Teil gefordert. Die Variable &#039;&#039;cTeil&#039;&#039; enthält demnach den Wert &#039;&#039;Name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==NumToken==&lt;br /&gt;
Verwendung: Ermittelt die Anzahl der Teile einer Zeichenketten, wenn diese an den Stelle mit dem Zeichen, das als Parameter übergeben wird, geteilt wird.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    nTeile := NumToken(&#039;_&#039;,cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;NumToken&#039;&#039; wird die Anzahl der Teil-Zeichenketten der Zeichenkette cDatei ermittelt. Als Trennzeichen wurde ein Unterstrich angegeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Die Variable &#039;&#039;nTeile&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==iVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in einen Ganzzahlwert um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;4&#039;;&lt;br /&gt;
    nZahl := iVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;4&#039;&#039; zugewiesen. Mit &#039;&#039;iVal&#039;&#039; wird die Zeichenkette in die entsprechende Ganzzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==fVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in eine Dezimalzahl um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;1234,56&#039;;&lt;br /&gt;
    nZahl := fVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;1234,56&#039;&#039; zugewiesen. Mit &#039;&#039;fVal&#039;&#039; wird die Zeichenkette in die entsprechende Dezimalzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 1234,56.&lt;br /&gt;
&lt;br /&gt;
==Roundy==&lt;br /&gt;
Verwendung: Runden eines Dezimalwerts (Typ: Double)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nGerundeterWert := Roundy(nDezimalwert,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der zu rundende Wert wird mit Parameter 1 übergeben. Die gewünschte Anzahl an Nachkommastellen wird in Parameter 2 angegeben. Die Funktion rundet dann den Wert auf die angegebene Anzahl an Dezimalstellen und gibt das Ergebnis wieder zurück. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nGerundeterWert&#039;&#039; entspricht also 1234,57.&lt;br /&gt;
&lt;br /&gt;
==Trunc==&lt;br /&gt;
Verwendung: Abschneiden der Nachkommastellen eines Dezimalwerts&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nWert := Trunc(nDezimalwert);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der Dezimalwert ist als Parameter zu übergeben. Als Ergbnis werden die Vorkommastellen zurückgegeben. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nWert&#039;&#039; entspricht also 1234.&lt;br /&gt;
==PadL==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadL(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur linken Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;    Müller&#039;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;XXXXMüller&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==PadR==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadR(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur rechten Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;Müller    &#039;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;MüllerXXXX&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CToD==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CToD(const sDate: string): TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Konvertiert die Zeichenkette &#039;&#039;sDate&#039;&#039; in einen Datumswert des Typs [http://docwiki.embarcadero.com/Libraries/Rio/en/System.TDateTime &#039;&#039;TDateTime&#039;&#039;].&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18&#039;);&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18 17:52:35&#039;);&lt;br /&gt;
//In beiden Fällen entspricht der Wert in dDatum dem 18.11.2016, da CToD nur das Datum übernimmt. Die Uhrzeit wird verworfen.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Artikelstamm==&lt;br /&gt;
===AR_Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function AR_Exists(oMyDB: TxDB; const cArtNr: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Sucht im Artikelstamm nach der in &#039;&#039;cArtNr&#039;&#039; angegebenen Artikelnummer und liefert als Ergebnis &#039;&#039;True&#039;&#039; wenn der Artikel gefunden wurde.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (AR_Exists(oDB,&#039;ABC123&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Artikel existiert im Artikelstamm&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Umsatz- und Vorsteuer==&lt;br /&gt;
===FindUstFromSatz===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function FindUstFromSatz(oMyDB: TxDB; nSatz: double): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt den OBS-Umsatzsteuerschlüssel für den Steuersatz &#039;&#039;nSatz&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Gibt den zweistelligen Schlüssel (z. B. 01) für die Umsatzsteuer mit dem Satz 19 % aus&lt;br /&gt;
Meldung(FindUstFromSatz(oDB,19));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UST_VK_Netto2Brutto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(nNetto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===UST_VK_Brutto2Netto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Variante 1&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 2&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 3&lt;br /&gt;
function  UST_VK_Brutto2Netto(nBrutto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Wandelt einen Preis von Brutto nach Netto. Die Funktion gibt es in drei Ausführungen.&lt;br /&gt;
#Umwandlung über Artikelnummer&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto um. Der Steuersatz wird dabei über den Steuerschlüssel aus dem Artikelstamm gezogen. Falls kein Artikel mit der Nummer &#039;&#039;cArtNr&#039;&#039; im Artikelstamm gefunden werden kann, wird für die Umrechnung der Satz &#039;&#039;nDefaultSatz&#039;&#039; verwendet. Existiert der Artikel im Artikelstamm wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis verwendet, falls kein Steuerschlüssel im Artikel gepflegt ist. {{Hinweis|Wenn die Artikelnummer vorhanden ist, wird diese Variante der Umrechnung empfohlen, da hier auch Artikel mit mehreren Steuersätzen richtig umgewandelt werden.}}&lt;br /&gt;
#Umwandlung mit Steuerschlüssel&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto anhand des übergebenen Steuerschlüssels &#039;&#039;cSchl&#039;&#039; um. Ist der Steuerschlüssel leer, wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis zurückgegeben. Der Steuersatz &#039;&#039;nDefaultSatz&#039;&#039; wird verwendet, wenn kein passender Eintrag zum Steuerschlüssel im OBS gefunden werden konnte.&lt;br /&gt;
#Umwandlung mit Steuersatz&lt;br /&gt;
#:Der Wert &#039;&#039;nBrutto&#039;&#039; wird mit dem Steuersatz &#039;&#039;nMwstSatz&#039;&#039; umgerechnet. Die Rückgabe wird auf &#039;&#039;nNK&#039;&#039; Nachkommastellen gerundet.{{Achtung|Der Steuersatz 19 % wird in &#039;&#039;nMwstSatz&#039;&#039; als 19.00 (Punkt als Dezimaltrennzeichen) erwartet!}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57069</id>
		<title>OBS/Makros und Scripting/Allgemeines/Übersicht Funktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57069"/>
		<updated>2020-01-10T08:22:41Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* TqSQL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Hier finden Sie nützliche [https://de.wikipedia.org/wiki/Funktion_(Programmierung) Funktionen], die Sie in den Makros verwenden können, um das gewünschte Ergebnis zu erzielen.&lt;br /&gt;
=Liste Funktionssammlungen=&lt;br /&gt;
==TMyDir==&lt;br /&gt;
===TMyDir.CreateDirectory===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CreateDirectory(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Erstellt ein neues Verzeichnis mit dem angegebenen Pfad, wenn es noch nicht existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;;&lt;br /&gt;
lAngelegt := TMyDir.CreateDirectory(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Exists(const Path: string; const CreateIfNotExists: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob das Verzeichnis existiert. Wird der optionale Parameter &#039;&#039;CreateIfNotExists&#039;&#039; mit dem boolschen Wert &#039;&#039;True&#039;&#039; übergeben, wird versucht das Verzeichnis anzulegen, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
lExistiert := TMyDir.Exists(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRoot: string; aAdd: array of string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Dem Pfad &#039;&#039;cRoot&#039;&#039; werden die einzelnen Einträge aus dem [https://de.wikipedia.org/wiki/Feld_(Datentyp) Array] &#039;&#039;aAdd&#039;&#039; als Verzeichnisse angefügt und so ein neuer Pfad erstellt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\Import\2019&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.BuildPath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function BuildPath(const cRoot: string; aAdd: array of string; out cPath: string; lCreate: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Diese Funktion ist ein Mix aus [[#TMyDir.CombinePath|TMyDir.CombinePath]] und [[TMyDir.Exists|TMyDir.Exists]]. Es wird ein Pfad aus den Angaben &#039;&#039;cRoot&#039;&#039; und &#039;&#039;aAdd&#039;&#039; erstellt und geprüft, ob der Pfad existiert (Funktionsergebnis). Die Rückgabe des Pfades erfolgt mit &#039;&#039;cPath&#039;&#039;. Mit dem oprtionalen Parameter kann angegeben werden, ob das Verzeichnis erstellt werden soll, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
if (TMyDir.BuildPath(cRoot,[&#039;Import&#039;,&#039;2019&#039;],cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Verzeichnis &#039;+cPfad+&#039; existiert.&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.GetDirectoryName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDirectoryName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Pfad des Verzeichnisses zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
cPfad := TMyDir.GetDirectoryName(cDatei);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TMyFile==&lt;br /&gt;
===TMyFile.IsFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsFile(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsFile(cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Combine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Combine(const Path1: string; const Path2: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;);&lt;br /&gt;
//cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombine(const Path1: string; const Path2: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad und prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
    //cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRootDir: string; aAdd: array of string; const cFileName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Baut aus den Parametern einen Dateipfad zusammen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDateipfad := TMyFile.CombinePath(&#039;c:\Beispiel&#039;,[&#039;Verzeichnis&#039;,&#039;Pfad&#039;],&#039;MeineDatei.txt&#039;);&lt;br /&gt;
//cDateipfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Extrahiert aus &#039;&#039;FilePath&#039;&#039; den zu &#039;&#039;RelativeBasePath&#039;&#039; relativem Pfad und kombiniert dies mit &#039;&#039;CombineBasePath&#039;&#039; zu einem neuen Dateipfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.CombineRelativePath(&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;,&lt;br /&gt;
    &#039;\\mein-server\Netzwerk\OBS\data\Import&#039;&lt;br /&gt;
);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
TMyFile.IsCombineRelativePath verbindet die Funktionalität von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]] und [[#TMyFile.IsFile|TMyFile.IsFile]]. &#039;&#039;ReturnPath&#039;&#039; entspricht dem Ergebnis von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]]. Das Ergebnis der Funktion [[#TMyFile.IsFile|TMyFile.IsFile]] für den Pfad &#039;&#039;ReturnPath&#039;&#039; ist auch das Ergebnis für TMyFile.IsCombineRelativePath.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePathUNC(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad für die Datei zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Annahme: Das OBS-Installationsverzeichnis ist mit dem Laufwerksbuchstaben &#039;&#039;O&#039;&#039; als Netzlaufwerk am Arbeitsplatz eingerichtet.&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cUNC := TMyFile.GetFilePathUNC(cPfad);&lt;br /&gt;
//cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht &#039;&#039;Path&#039;&#039; zu einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad aufzulösen. Gibt &#039;&#039;Path&#039;&#039; zurück, wenn kein [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad verfügbar ist, aber &#039;&#039;Path&#039;&#039; existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cPfadNeu := TMyFile.GetFilePath(cPfad);&lt;br /&gt;
//cPfadNeu Werte:&lt;br /&gt;
//UNC vorhanden: &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert: &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Datei existiert nicht: &#039;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePathUNC(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei &#039;&#039;Path&#039;&#039; unter einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad zu finden ist. Dieser wird dann in &#039;&#039;ReturnPath&#039;&#039; enthalten.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.IsGetFilePathUNC(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cUNC)) then begin&lt;br /&gt;
    //cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cUNC+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePath(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Entspricht im verhalten [[#TMyFile.GetFilePath|TMyFile.GetFilePath]] mit einer zusätzlichen Prüfung, ob der Rückgabepfad &#039;&#039;ReturnPath&#039;&#039; leer ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsGetFilePath(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
//UNC vorhanden:&lt;br /&gt;
//    cPfad ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert:&lt;br /&gt;
//    cPfad ist &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Datei existiert nicht:&lt;br /&gt;
//    cPfad ist &#039;&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;false&#039;&#039;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Move===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Move(const SourceFileName: string; const DestFileName: string; const CreateDestDir: boolean=False; const Replace: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht die Datei &#039;&#039;SourceFileName&#039;&#039; nach &#039;&#039;DestFileName&#039;&#039; zu verschieben. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist. Die optionalen Parameter geben hier die Möglichkeit festzulegen, wie die Funktion bei Konflikten reagieren soll. &#039;&#039;CreateDestDir&#039;&#039; erlaubt die Anlage des Ziel-Verzeichnis, sollte es nicht existieren. &#039;&#039;Replace&#039;&#039; erlaubt es vorhandene Dateien zu überschreiben/ersetzen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Move(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde verschoben&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Delete===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Delete(const FilePath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Löscht die angegebene Datei &#039;&#039;FilePath&#039;&#039;. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Delete(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde gelöscht&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TObsPath==&lt;br /&gt;
===TObsPath.GetExePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExePath(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Installationsverzeichnis von OBS zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExePath();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;data&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetSysDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetSysDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;sys&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetSysDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetTempDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetTempDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;temp&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetTempDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetBildarchivDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetBildarchivDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;bildarchiv&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetBildarchivDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetExportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;export&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetImportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetImportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;import&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetImportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataInOutDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataInOutDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;datainout&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataInOutDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;lock&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Lock-Datei im Verzeichnis &#039;&#039;locks&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück. Die Dateiendung &#039;&#039;.lock&#039;&#039; wird automatisch ergäntzt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockFile(&#039;mein&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\locks\mein.lock&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Debug-Datei im Verzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugFile(&#039;debug.txt&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\debug\debug.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetShopDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetShopDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;shop&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetShopDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetRelativePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den relativen Pfad innerhalb der OBS-Verzeichnisstruktur zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;;&lt;br /&gt;
cDateiRelativ := TObsPath.GetRelativePath(cDatei);&lt;br /&gt;
//cDateiRelativ ist &#039;data\import\artikel.csv&#039;&lt;br /&gt;
&lt;br /&gt;
cVerzeichnis := &#039;\\mein-server\Netzwerk\OBS\data\import\&#039;;&lt;br /&gt;
cVerzeichnisRelativ := TObsPath.GetRelativePath(cVerzeichnis);&lt;br /&gt;
//cVerzeichnisRelativ ist &#039;data\import\&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFileName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad. Wenn möglich wird der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;data\import\artikel.csv&#039;;&lt;br /&gt;
cDatei := TObsPath.GetFileName(cDatei);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.IsGetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFileName(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad und prüft dessen Existens. Wenn möglich wird in &#039;&#039;ReturnPath&#039;&#039; der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TObsPath.IsGetFileName(&#039;data\import\artikel.csv&#039;,cDatei)) then begin&lt;br /&gt;
    //cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
	Meldung(&#039;Datei &#039;+cDatei+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TISO==&lt;br /&gt;
{{Hinweis|Für die Verwendung dieser Funktionen siehe auch [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Aufzählungstypen#TISOCountryCodes|TISOCountryCodes]].}}&lt;br /&gt;
===TISO.CountrySwap===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountrySwap(const cCode: string; const eFrom: TISOCountryCodes; const eTo: TISOCountryCodes): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht den ISO-3166-Code &#039;&#039;cCode&#039;&#039; von &#039;&#039;eFrom&#039;&#039; nach &#039;&#039;eTo&#039;&#039; zu wechseln.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Ermittelt die nummerische Kodierung zum Alpha-2-Code &amp;quot;de&amp;quot; (Deutschalnd) und zeigt diesen als Meldung an. Der nummerische Wert für de ist 276.&lt;br /&gt;
Meldung(TISO.CountrySwap(&#039;de&#039;,iso3166_Alpha2,iso3166_Numeric));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetRefNo===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetRefNo(oMyDB: TxDB; const eCode: TISOCountryCodes; const cCode: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt die OBS-Referenz aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] für den Code &#039;&#039;cCode&#039;&#039;. Gibt &#039;&#039;cDefault&#039;&#039; zurück, wenn keine OBS-Referenz ermittelt werden konnte.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, findet diese Funktion die entsprechende Referenz für Deutschland (OBS-Default ist &amp;quot;D-&amp;quot;) und zeigt diese als Meldung.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,&#039;de&#039;,iso3166_Alpha2));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetCode===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetCode(oMyDB: TxDB; const eCode: TISOCountryCodes; const cRef: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] den ISO-3166-Code für die OBS-Referenz &#039;&#039;cRef&#039;&#039; aus und gibt den Code für den Typen &#039;&#039;eCode&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, liest diese Funktion den Wert für die entsprechende Referenz den OBS-Default &amp;quot;D-&amp;quot; für Deutschland und zeigt den Code als Meldung an.&lt;br /&gt;
//Da im OBS nur der Alpha2 gepflegt werden kann, wird der Code bei Angabe von z. B. &#039;&#039;iso3166_Alpha3&#039;&#039; in &#039;&#039;eCode&#039;&#039; intern umgewandelt.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,iso3166_Alpha3,&#039;D-&#039;));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TqSQL==&lt;br /&gt;
{{Hinweis|Dies ist nur ein Auszug der Funktionalität}}&lt;br /&gt;
===TqSQL.A2I===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2I(const cFeld:String):integer;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2C===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2C(const cFeld:String):String;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2F===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2F(const cFeld:String):Double;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.A2D===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function    A2D(const cFeld:String):TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TqSQL.qSet===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
 function    qSet(const cxField : String; xDaten : Variant):Boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Liste Funktionen=&lt;br /&gt;
==Empty==&lt;br /&gt;
Verwendung: Prüft, ob der Wert des Parameters leer bzw. 0 ist. Dies Funktioniert mit Zeichenketten (&#039;&#039;string&#039;&#039;) und Zahlen (&#039;&#039;integer&#039;&#039; und &#039;&#039;double&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string/integer/double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: boolean&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
    cText := &#039;Beispiel&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird ein leerer Text zugewiesen. Mit &#039;&#039;Empty&#039;&#039; wird der Wert nun geprüft. Die boolsche Variable &#039;&#039;IstLeer&#039;&#039; ist dann true (wahr). Als nächstes wird &#039;&#039;cText&#039;&#039; der Wert &amp;quot;Beispiel&amp;quot; zugewiesen und eine erneute Prüfung mit &#039;&#039;Empty&#039;&#039; durchgeführt. Da &#039;&#039;cText&#039;&#039; jetzt einen Text enthält, ist der Wert der Variablen &#039;&#039;IstLeer&#039;&#039; nun false (falsch).&lt;br /&gt;
&lt;br /&gt;
==Length==&lt;br /&gt;
Verwendung: Ermittelt die Länge einer Zeichenkette (string).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText   := &#039;Dies ist ein Beispiel.&#039;;&lt;br /&gt;
    nLaenge := Length(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel.&#039;&#039; zugewiesen. Mit &#039;&#039;Length&#039;&#039; wird die Länge ermittelt. Der Satz &amp;quot;Dies ist ein Beispiel.&amp;quot; hat 22 Zeichen. &#039;&#039;nLaenge&#039;&#039; hat also den Wert &#039;&#039;22&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==AllTrim==&lt;br /&gt;
Verwendung: Entfernt Umbrüche und Leerzeichen am Anfang und Ende einer Zeichenkette.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;  Dies ist ein Beispiel.       &#039;;&lt;br /&gt;
    cText := AllTrim(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &amp;quot;&#039;&#039;  Dies ist ein Beispiel.       &#039;&#039;&amp;quot; zugewiesen. Mit &#039;&#039;AllTrim&#039;&#039; werden die unnötigen Leerzeichen am Anfang und Ende der Zeichenkette entfernt. Die Variable &#039;&#039;cText&#039;&#039; entspricht also dem Wert &amp;quot;&#039;&#039;Dies ist ein Beispiel.&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==UpperCase/LowerCase==&lt;br /&gt;
Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Beispiel&#039;;&lt;br /&gt;
    cUpper := UpperCase(cText);&lt;br /&gt;
    cLower := LowerCase(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;UpperCase&#039;&#039; und &#039;&#039;LowerCase&#039;&#039; wird die Zeichenkette umgewandelt. &#039;&#039;cUpper&#039;&#039; enthält danach den Wert &#039;&#039;BEISPIEL&#039;&#039; und &#039;&#039;cLower&#039;&#039; den Wert &#039;&#039;beispiel&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==ExtractFileName==&lt;br /&gt;
Verwendung: Dateinamen aus Dateipfad auslesen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;c:\\Ordner\Datei.txt&#039;;&lt;br /&gt;
    cDatei := ExtractFileName(cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;c:\\Ordner\Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;ExtractFileName&#039;&#039; wird der Dateiname herausgesucht und zurückgegeben. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei.txt&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==StrTran==&lt;br /&gt;
Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei.txt&#039;;&lt;br /&gt;
    cName  := StrTran(cDatei ,&#039;.txt&#039;,&#039;&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;StrTran&#039;&#039; wird im Text der Variable &#039;&#039;cDatei&#039;&#039; nach &#039;&#039;.txt&#039;&#039; gesucht. Der gefundene Teil wird mit einer leeren Zeichenkette ersetzt. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==LeftStr/RightStr==&lt;br /&gt;
Verwendung: Gibt den linken/rechten Teil einer Zeichenketten zurück. Es werden dabei maximal soviele Zeichen zurückgegeben, wie im zweiten Parameter angegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Dies ist ein Beispiel&#039;;&lt;br /&gt;
    cLeft  := LeftStr(cText,2);&lt;br /&gt;
    cRight := RightStr(cText,5);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;LeftStr&#039;&#039; und &#039;&#039;RightStr&#039;&#039; werden jeweils die ersten zwei Zeichen von Links und Rechts zurückgegeben. &#039;&#039;cLeft&#039;&#039; enthält danach den Wert &#039;&#039;Di&#039;&#039; und &#039;&#039;cRight&#039;&#039; den Wert &#039;&#039;spiel&#039;&#039;.&lt;br /&gt;
{{Hinweis|Sollten mehr Zeichen ermittelt werden, als der ursprüngliche Wert Zeichen hat, so ist das Ergbenis gleich dem Ursprung. LeftStr(cDatei,50) hätte z. B. dazu geführt, dass cLeft ebenfalls &#039;&#039;Dies ist ein Beispiel&#039;&#039; enthält.}}&lt;br /&gt;
&lt;br /&gt;
==Token==&lt;br /&gt;
Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    cTeil  := Token(cDatei,&#039;_&#039;,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;Token&#039;&#039; wird die Zeichenkette aufgeteilt. Als Teiler ist ein Unterstrich angeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Es wird der zweite Teil gefordert. Die Variable &#039;&#039;cTeil&#039;&#039; enthält demnach den Wert &#039;&#039;Name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==NumToken==&lt;br /&gt;
Verwendung: Ermittelt die Anzahl der Teile einer Zeichenketten, wenn diese an den Stelle mit dem Zeichen, das als Parameter übergeben wird, geteilt wird.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    nTeile := NumToken(&#039;_&#039;,cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;NumToken&#039;&#039; wird die Anzahl der Teil-Zeichenketten der Zeichenkette cDatei ermittelt. Als Trennzeichen wurde ein Unterstrich angegeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Die Variable &#039;&#039;nTeile&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==iVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in einen Ganzzahlwert um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;4&#039;;&lt;br /&gt;
    nZahl := iVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;4&#039;&#039; zugewiesen. Mit &#039;&#039;iVal&#039;&#039; wird die Zeichenkette in die entsprechende Ganzzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==fVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in eine Dezimalzahl um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;1234,56&#039;;&lt;br /&gt;
    nZahl := fVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;1234,56&#039;&#039; zugewiesen. Mit &#039;&#039;fVal&#039;&#039; wird die Zeichenkette in die entsprechende Dezimalzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 1234,56.&lt;br /&gt;
&lt;br /&gt;
==Roundy==&lt;br /&gt;
Verwendung: Runden eines Dezimalwerts (Typ: Double)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nGerundeterWert := Roundy(nDezimalwert,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der zu rundende Wert wird mit Parameter 1 übergeben. Die gewünschte Anzahl an Nachkommastellen wird in Parameter 2 angegeben. Die Funktion rundet dann den Wert auf die angegebene Anzahl an Dezimalstellen und gibt das Ergebnis wieder zurück. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nGerundeterWert&#039;&#039; entspricht also 1234,57.&lt;br /&gt;
&lt;br /&gt;
==Trunc==&lt;br /&gt;
Verwendung: Abschneiden der Nachkommastellen eines Dezimalwerts&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nWert := Trunc(nDezimalwert);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der Dezimalwert ist als Parameter zu übergeben. Als Ergbnis werden die Vorkommastellen zurückgegeben. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nWert&#039;&#039; entspricht also 1234.&lt;br /&gt;
==PadL==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadL(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur linken Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;    Müller&#039;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;XXXXMüller&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==PadR==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadR(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur rechten Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;Müller    &#039;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;MüllerXXXX&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CToD==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CToD(const sDate: string): TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Konvertiert die Zeichenkette &#039;&#039;sDate&#039;&#039; in einen Datumswert des Typs [http://docwiki.embarcadero.com/Libraries/Rio/en/System.TDateTime &#039;&#039;TDateTime&#039;&#039;].&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18&#039;);&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18 17:52:35&#039;);&lt;br /&gt;
//In beiden Fällen entspricht der Wert in dDatum dem 18.11.2016, da CToD nur das Datum übernimmt. Die Uhrzeit wird verworfen.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Artikelstamm==&lt;br /&gt;
===AR_Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function AR_Exists(oMyDB: TxDB; const cArtNr: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Sucht im Artikelstamm nach der in &#039;&#039;cArtNr&#039;&#039; angegebenen Artikelnummer und liefert als Ergebnis &#039;&#039;True&#039;&#039; wenn der Artikel gefunden wurde.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (AR_Exists(oDB,&#039;ABC123&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Artikel existiert im Artikelstamm&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Umsatz- und Vorsteuer==&lt;br /&gt;
===FindUstFromSatz===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function FindUstFromSatz(oMyDB: TxDB; nSatz: double): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt den OBS-Umsatzsteuerschlüssel für den Steuersatz &#039;&#039;nSatz&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Gibt den zweistelligen Schlüssel (z. B. 01) für die Umsatzsteuer mit dem Satz 19 % aus&lt;br /&gt;
Meldung(FindUstFromSatz(oDB,19));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UST_VK_Netto2Brutto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(nNetto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===UST_VK_Brutto2Netto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Variante 1&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 2&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 3&lt;br /&gt;
function  UST_VK_Brutto2Netto(nBrutto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Wandelt einen Preis von Brutto nach Netto. Die Funktion gibt es in drei Ausführungen.&lt;br /&gt;
#Umwandlung über Artikelnummer&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto um. Der Steuersatz wird dabei über den Steuerschlüssel aus dem Artikelstamm gezogen. Falls kein Artikel mit der Nummer &#039;&#039;cArtNr&#039;&#039; im Artikelstamm gefunden werden kann, wird für die Umrechnung der Satz &#039;&#039;nDefaultSatz&#039;&#039; verwendet. Existiert der Artikel im Artikelstamm wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis verwendet, falls kein Steuerschlüssel im Artikel gepflegt ist. {{Hinweis|Wenn die Artikelnummer vorhanden ist, wird diese Variante der Umrechnung empfohlen, da hier auch Artikel mit mehreren Steuersätzen richtig umgewandelt werden.}}&lt;br /&gt;
#Umwandlung mit Steuerschlüssel&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto anhand des übergebenen Steuerschlüssels &#039;&#039;cSchl&#039;&#039; um. Ist der Steuerschlüssel leer, wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis zurückgegeben. Der Steuersatz &#039;&#039;nDefaultSatz&#039;&#039; wird verwendet, wenn kein passender Eintrag zum Steuerschlüssel im OBS gefunden werden konnte.&lt;br /&gt;
#Umwandlung mit Steuersatz&lt;br /&gt;
#:Der Wert &#039;&#039;nBrutto&#039;&#039; wird mit dem Steuersatz &#039;&#039;nMwstSatz&#039;&#039; umgerechnet. Die Rückgabe wird auf &#039;&#039;nNK&#039;&#039; Nachkommastellen gerundet.{{Achtung|Der Steuersatz 19 % wird in &#039;&#039;nMwstSatz&#039;&#039; als 19.00 (Punkt als Dezimaltrennzeichen) erwartet!}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57068</id>
		<title>OBS/Makros und Scripting/Allgemeines/Übersicht Funktionen</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Allgemeines/%C3%9Cbersicht_Funktionen&amp;diff=57068"/>
		<updated>2020-01-10T08:18:25Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* TqSQL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Hier finden Sie nützliche [https://de.wikipedia.org/wiki/Funktion_(Programmierung) Funktionen], die Sie in den Makros verwenden können, um das gewünschte Ergebnis zu erzielen.&lt;br /&gt;
=Liste Funktionssammlungen=&lt;br /&gt;
==TMyDir==&lt;br /&gt;
===TMyDir.CreateDirectory===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CreateDirectory(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Erstellt ein neues Verzeichnis mit dem angegebenen Pfad, wenn es noch nicht existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;;&lt;br /&gt;
lAngelegt := TMyDir.CreateDirectory(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Exists(const Path: string; const CreateIfNotExists: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob das Verzeichnis existiert. Wird der optionale Parameter &#039;&#039;CreateIfNotExists&#039;&#039; mit dem boolschen Wert &#039;&#039;True&#039;&#039; übergeben, wird versucht das Verzeichnis anzulegen, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
lExistiert := TMyDir.Exists(cPfad);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRoot: string; aAdd: array of string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Dem Pfad &#039;&#039;cRoot&#039;&#039; werden die einzelnen Einträge aus dem [https://de.wikipedia.org/wiki/Feld_(Datentyp) Array] &#039;&#039;aAdd&#039;&#039; als Verzeichnisse angefügt und so ein neuer Pfad erstellt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\Import\2019&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.BuildPath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function BuildPath(const cRoot: string; aAdd: array of string; out cPath: string; lCreate: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Diese Funktion ist ein Mix aus [[#TMyDir.CombinePath|TMyDir.CombinePath]] und [[TMyDir.Exists|TMyDir.Exists]]. Es wird ein Pfad aus den Angaben &#039;&#039;cRoot&#039;&#039; und &#039;&#039;aAdd&#039;&#039; erstellt und geprüft, ob der Pfad existiert (Funktionsergebnis). Die Rückgabe des Pfades erfolgt mit &#039;&#039;cPath&#039;&#039;. Mit dem oprtionalen Parameter kann angegeben werden, ob das Verzeichnis erstellt werden soll, sollte es nicht existieren.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cRoot := &#039;c:\Beispiel\Verzeichnis\Pfad&#039;;&lt;br /&gt;
cPfad := TMyDir.CombinePath(cRoot,[&#039;Import&#039;,&#039;2019&#039;]);&lt;br /&gt;
if (TMyDir.BuildPath(cRoot,[&#039;Import&#039;,&#039;2019&#039;],cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Verzeichnis &#039;+cPfad+&#039; existiert.&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyDir.GetDirectoryName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDirectoryName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Den Pfad des Verzeichnisses zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
cPfad := TMyDir.GetDirectoryName(cDatei);&lt;br /&gt;
//Ergebnis: cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TMyFile==&lt;br /&gt;
===TMyFile.IsFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsFile(const Path: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsFile(cPfad)) then begin&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Combine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Combine(const Path1: string; const Path2: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;);&lt;br /&gt;
//cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombine===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombine(const Path1: string; const Path2: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Kombiniert &#039;&#039;Path1&#039;&#039; und &#039;&#039;Path2&#039;&#039; zu einem Pfad und prüft, ob die Datei existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Combine(&#039;c:\Beispiel\Verzeichnis&#039;,&#039;Pfad\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
    //cPfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cPfad+&#039; vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombinePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombinePath(const cRootDir: string; aAdd: array of string; const cFileName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Baut aus den Parametern einen Dateipfad zusammen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDateipfad := TMyFile.CombinePath(&#039;c:\Beispiel&#039;,[&#039;Verzeichnis&#039;,&#039;Pfad&#039;],&#039;MeineDatei.txt&#039;);&lt;br /&gt;
//cDateipfad ist &#039;c:\Beispiel\Verzeichnis\Pfad\MeineDatei.txt&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.CombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Extrahiert aus &#039;&#039;FilePath&#039;&#039; den zu &#039;&#039;RelativeBasePath&#039;&#039; relativem Pfad und kombiniert dies mit &#039;&#039;CombineBasePath&#039;&#039; zu einem neuen Dateipfad.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TMyFile.CombineRelativePath(&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&lt;br /&gt;
    &#039;c:\Beispiel\Verzeichnis\Pfad\&#039;,&lt;br /&gt;
    &#039;\\mein-server\Netzwerk\OBS\data\Import&#039;&lt;br /&gt;
);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsCombineRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsCombineRelativePath(const FilePath: string; const RelativeBasePath: string; const CombineBasePath: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
TMyFile.IsCombineRelativePath verbindet die Funktionalität von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]] und [[#TMyFile.IsFile|TMyFile.IsFile]]. &#039;&#039;ReturnPath&#039;&#039; entspricht dem Ergebnis von [[#TMyFile.CombineRelativePath|TMyFile.CombineRelativePath]]. Das Ergebnis der Funktion [[#TMyFile.IsFile|TMyFile.IsFile]] für den Pfad &#039;&#039;ReturnPath&#039;&#039; ist auch das Ergebnis für TMyFile.IsCombineRelativePath.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePathUNC(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad für die Datei zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Annahme: Das OBS-Installationsverzeichnis ist mit dem Laufwerksbuchstaben &#039;&#039;O&#039;&#039; als Netzlaufwerk am Arbeitsplatz eingerichtet.&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cUNC := TMyFile.GetFilePathUNC(cPfad);&lt;br /&gt;
//cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.GetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFilePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht &#039;&#039;Path&#039;&#039; zu einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad aufzulösen. Gibt &#039;&#039;Path&#039;&#039; zurück, wenn kein [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad verfügbar ist, aber &#039;&#039;Path&#039;&#039; existiert.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
cPfadNeu := TMyFile.GetFilePath(cPfad);&lt;br /&gt;
//cPfadNeu Werte:&lt;br /&gt;
//UNC vorhanden: &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert: &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//Datei existiert nicht: &#039;&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePathUNC===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePathUNC(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Prüft, ob die Datei &#039;&#039;Path&#039;&#039; unter einem [https://de.wikipedia.org/wiki/Uniform_Naming_Convention UNC]-Pfad zu finden ist. Dieser wird dann in &#039;&#039;ReturnPath&#039;&#039; enthalten.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.IsGetFilePathUNC(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cUNC)) then begin&lt;br /&gt;
    //cUNC ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
    Meldung(&#039;Datei &#039;+cUNC+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.IsGetFilePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFilePath(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Entspricht im verhalten [[#TMyFile.GetFilePath|TMyFile.GetFilePath]] mit einer zusätzlichen Prüfung, ob der Rückgabepfad &#039;&#039;ReturnPath&#039;&#039; leer ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;;&lt;br /&gt;
if (TMyFile.IsGetFilePath(&#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;,cPfad)) then begin&lt;br /&gt;
//UNC vorhanden:&lt;br /&gt;
//    cPfad ist &#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Kein UNC, aber Datei existiert:&lt;br /&gt;
//    cPfad ist &#039;O:\OBS\data\Import\LieferantA\MeineDatei.txt&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;true&#039;&#039;&lt;br /&gt;
//Datei existiert nicht:&lt;br /&gt;
//    cPfad ist &#039;&#039;&lt;br /&gt;
//    TMyFile.IsGetFilePath Ergebnis ist &#039;&#039;false&#039;&#039;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Move===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Move(const SourceFileName: string; const DestFileName: string; const CreateDestDir: boolean=False; const Replace: boolean=False): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht die Datei &#039;&#039;SourceFileName&#039;&#039; nach &#039;&#039;DestFileName&#039;&#039; zu verschieben. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist. Die optionalen Parameter geben hier die Möglichkeit festzulegen, wie die Funktion bei Konflikten reagieren soll. &#039;&#039;CreateDestDir&#039;&#039; erlaubt die Anlage des Ziel-Verzeichnis, sollte es nicht existieren. &#039;&#039;Replace&#039;&#039; erlaubt es vorhandene Dateien zu überschreiben/ersetzen.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Move(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;,&#039;\\mein-server\Netzwerk\OBS\data\Import\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde verschoben&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TMyFile.Delete===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function Delete(const FilePath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Löscht die angegebene Datei &#039;&#039;FilePath&#039;&#039;. Das Ergebnis der Funktion teilt mit, ob dies erfolgreich (&#039;&#039;true&#039;&#039;) oder fehlgeschlagen (&#039;&#039;false&#039;&#039;) ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TMyFile.Delete(&#039;c:\Beispiel\Verzeichnis\Pfad\LieferantA\MeineDatei.txt&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Datei wurde gelöscht&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==TObsPath==&lt;br /&gt;
===TObsPath.GetExePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExePath(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Installationsverzeichnis von OBS zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExePath();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;data&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetSysDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetSysDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;sys&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetSysDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetTempDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetTempDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;temp&#039;&#039; im OBS-Installationsverzeichnis.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetTempDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetBildarchivDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetBildarchivDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;bildarchiv&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetBildarchivDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetExportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetExportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;export&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetExportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetImportDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetImportDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;import&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetImportDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDataInOutDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDataInOutDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;datainout&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDataInOutDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;lock&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetLockFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetLockFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Lock-Datei im Verzeichnis &#039;&#039;locks&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück. Die Dateiendung &#039;&#039;.lock&#039;&#039; wird automatisch ergäntzt.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetLockFile(&#039;mein&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\locks\mein.lock&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetDebugFile===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetDebugFile(cName: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Dateipfad zu einer Debug-Datei im Verzeichnis &#039;&#039;debug&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetDebugFile(&#039;debug.txt&#039;);&lt;br /&gt;
//cPfad ist dann in etwa &#039;\\mein-server\Netzwerk\OBS\data\debug\debug.txt&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetShopDir===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetShopDir(): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den Pfad zum Unterverzeichnis &#039;&#039;shop&#039;&#039; im OBS-Unterverzeichnis &#039;&#039;data&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cPfad := TObsPath.GetShopDir();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetRelativePath===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetRelativePath(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Gibt den relativen Pfad innerhalb der OBS-Verzeichnisstruktur zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;;&lt;br /&gt;
cDateiRelativ := TObsPath.GetRelativePath(cDatei);&lt;br /&gt;
//cDateiRelativ ist &#039;data\import\artikel.csv&#039;&lt;br /&gt;
&lt;br /&gt;
cVerzeichnis := &#039;\\mein-server\Netzwerk\OBS\data\import\&#039;;&lt;br /&gt;
cVerzeichnisRelativ := TObsPath.GetRelativePath(cVerzeichnis);&lt;br /&gt;
//cVerzeichnisRelativ ist &#039;data\import\&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.GetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function GetFileName(const Path: string): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad. Wenn möglich wird der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cDatei := &#039;data\import\artikel.csv&#039;;&lt;br /&gt;
cDatei := TObsPath.GetFileName(cDatei);&lt;br /&gt;
//cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TObsPath.IsGetFileName===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function IsGetFileName(const Path: string; out ReturnPath: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Macht aus einem relativem Pfad im OBS-Verzeichnis einen vollständigen Pfad und prüft dessen Existens. Wenn möglich wird in &#039;&#039;ReturnPath&#039;&#039; der UNC-Pfad zurückgegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (TObsPath.IsGetFileName(&#039;data\import\artikel.csv&#039;,cDatei)) then begin&lt;br /&gt;
    //cDatei ist &#039;\\mein-server\Netzwerk\OBS\data\import\artikel.csv&#039;&lt;br /&gt;
	Meldung(&#039;Datei &#039;+cDatei+&#039; ist vorhanden&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TISO==&lt;br /&gt;
{{Hinweis|Für die Verwendung dieser Funktionen siehe auch [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Aufzählungstypen#TISOCountryCodes|TISOCountryCodes]].}}&lt;br /&gt;
===TISO.CountrySwap===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountrySwap(const cCode: string; const eFrom: TISOCountryCodes; const eTo: TISOCountryCodes): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Versucht den ISO-3166-Code &#039;&#039;cCode&#039;&#039; von &#039;&#039;eFrom&#039;&#039; nach &#039;&#039;eTo&#039;&#039; zu wechseln.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Ermittelt die nummerische Kodierung zum Alpha-2-Code &amp;quot;de&amp;quot; (Deutschalnd) und zeigt diesen als Meldung an. Der nummerische Wert für de ist 276.&lt;br /&gt;
Meldung(TISO.CountrySwap(&#039;de&#039;,iso3166_Alpha2,iso3166_Numeric));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetRefNo===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetRefNo(oMyDB: TxDB; const eCode: TISOCountryCodes; const cCode: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt die OBS-Referenz aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] für den Code &#039;&#039;cCode&#039;&#039;. Gibt &#039;&#039;cDefault&#039;&#039; zurück, wenn keine OBS-Referenz ermittelt werden konnte.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, findet diese Funktion die entsprechende Referenz für Deutschland (OBS-Default ist &amp;quot;D-&amp;quot;) und zeigt diese als Meldung.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,&#039;de&#039;,iso3166_Alpha2));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===TISO.CountryGetCode===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CountryGetCode(oMyDB: TxDB; const eCode: TISOCountryCodes; const cRef: string; cDefault: string=&#039;&#039;): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Liste aus der [[OBS/Stammdaten/Weitere_Stammdaten/Ländererkennung|Liste &#039;&#039;Länderkennung&#039;&#039;]] den ISO-3166-Code für die OBS-Referenz &#039;&#039;cRef&#039;&#039; aus und gibt den Code für den Typen &#039;&#039;eCode&#039;&#039; zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Wenn im ISO-Feld gepflegt, liest diese Funktion den Wert für die entsprechende Referenz den OBS-Default &amp;quot;D-&amp;quot; für Deutschland und zeigt den Code als Meldung an.&lt;br /&gt;
//Da im OBS nur der Alpha2 gepflegt werden kann, wird der Code bei Angabe von z. B. &#039;&#039;iso3166_Alpha3&#039;&#039; in &#039;&#039;eCode&#039;&#039; intern umgewandelt.&lt;br /&gt;
Meldung(TISO.CountryGetRefNo(oDB,iso3166_Alpha3,&#039;D-&#039;));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==TqSQL==&lt;br /&gt;
{{Hinweis|Dies ist nur ein Auszug der Funktionalität}}&lt;br /&gt;
&lt;br /&gt;
=Liste Funktionen=&lt;br /&gt;
==Empty==&lt;br /&gt;
Verwendung: Prüft, ob der Wert des Parameters leer bzw. 0 ist. Dies Funktioniert mit Zeichenketten (&#039;&#039;string&#039;&#039;) und Zahlen (&#039;&#039;integer&#039;&#039; und &#039;&#039;double&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string/integer/double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: boolean&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
    cText := &#039;Beispiel&#039;;&lt;br /&gt;
    IstLeer := Empty(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird ein leerer Text zugewiesen. Mit &#039;&#039;Empty&#039;&#039; wird der Wert nun geprüft. Die boolsche Variable &#039;&#039;IstLeer&#039;&#039; ist dann true (wahr). Als nächstes wird &#039;&#039;cText&#039;&#039; der Wert &amp;quot;Beispiel&amp;quot; zugewiesen und eine erneute Prüfung mit &#039;&#039;Empty&#039;&#039; durchgeführt. Da &#039;&#039;cText&#039;&#039; jetzt einen Text enthält, ist der Wert der Variablen &#039;&#039;IstLeer&#039;&#039; nun false (falsch).&lt;br /&gt;
&lt;br /&gt;
==Length==&lt;br /&gt;
Verwendung: Ermittelt die Länge einer Zeichenkette (string).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText   := &#039;Dies ist ein Beispiel.&#039;;&lt;br /&gt;
    nLaenge := Length(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel.&#039;&#039; zugewiesen. Mit &#039;&#039;Length&#039;&#039; wird die Länge ermittelt. Der Satz &amp;quot;Dies ist ein Beispiel.&amp;quot; hat 22 Zeichen. &#039;&#039;nLaenge&#039;&#039; hat also den Wert &#039;&#039;22&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==AllTrim==&lt;br /&gt;
Verwendung: Entfernt Umbrüche und Leerzeichen am Anfang und Ende einer Zeichenkette.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText := &#039;  Dies ist ein Beispiel.       &#039;;&lt;br /&gt;
    cText := AllTrim(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &amp;quot;&#039;&#039;  Dies ist ein Beispiel.       &#039;&#039;&amp;quot; zugewiesen. Mit &#039;&#039;AllTrim&#039;&#039; werden die unnötigen Leerzeichen am Anfang und Ende der Zeichenkette entfernt. Die Variable &#039;&#039;cText&#039;&#039; entspricht also dem Wert &amp;quot;&#039;&#039;Dies ist ein Beispiel.&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==UpperCase/LowerCase==&lt;br /&gt;
Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Beispiel&#039;;&lt;br /&gt;
    cUpper := UpperCase(cText);&lt;br /&gt;
    cLower := LowerCase(cText);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;UpperCase&#039;&#039; und &#039;&#039;LowerCase&#039;&#039; wird die Zeichenkette umgewandelt. &#039;&#039;cUpper&#039;&#039; enthält danach den Wert &#039;&#039;BEISPIEL&#039;&#039; und &#039;&#039;cLower&#039;&#039; den Wert &#039;&#039;beispiel&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==ExtractFileName==&lt;br /&gt;
Verwendung: Dateinamen aus Dateipfad auslesen.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;c:\\Ordner\Datei.txt&#039;;&lt;br /&gt;
    cDatei := ExtractFileName(cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;c:\\Ordner\Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;ExtractFileName&#039;&#039; wird der Dateiname herausgesucht und zurückgegeben. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei.txt&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==StrTran==&lt;br /&gt;
Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen).&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei.txt&#039;;&lt;br /&gt;
    cName  := StrTran(cDatei ,&#039;.txt&#039;,&#039;&#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei.txt&#039;&#039; zugewiesen. Mit &#039;&#039;StrTran&#039;&#039; wird im Text der Variable &#039;&#039;cDatei&#039;&#039; nach &#039;&#039;.txt&#039;&#039; gesucht. Der gefundene Teil wird mit einer leeren Zeichenkette ersetzt. Danach enthält &#039;&#039;cDatei&#039;&#039; nur noch den Wert &#039;&#039;Datei&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==LeftStr/RightStr==&lt;br /&gt;
Verwendung: Gibt den linken/rechten Teil einer Zeichenketten zurück. Es werden dabei maximal soviele Zeichen zurückgegeben, wie im zweiten Parameter angegeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cText  := &#039;Dies ist ein Beispiel&#039;;&lt;br /&gt;
    cLeft  := LeftStr(cText,2);&lt;br /&gt;
    cRight := RightStr(cText,5);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cText&#039;&#039; wird der Wert &#039;&#039;Dies ist ein Beispiel&#039;&#039; zugewiesen. Mit &#039;&#039;LeftStr&#039;&#039; und &#039;&#039;RightStr&#039;&#039; werden jeweils die ersten zwei Zeichen von Links und Rechts zurückgegeben. &#039;&#039;cLeft&#039;&#039; enthält danach den Wert &#039;&#039;Di&#039;&#039; und &#039;&#039;cRight&#039;&#039; den Wert &#039;&#039;spiel&#039;&#039;.&lt;br /&gt;
{{Hinweis|Sollten mehr Zeichen ermittelt werden, als der ursprüngliche Wert Zeichen hat, so ist das Ergbenis gleich dem Ursprung. LeftStr(cDatei,50) hätte z. B. dazu geführt, dass cLeft ebenfalls &#039;&#039;Dies ist ein Beispiel&#039;&#039; enthält.}}&lt;br /&gt;
&lt;br /&gt;
==Token==&lt;br /&gt;
Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    cTeil  := Token(cDatei,&#039;_&#039;,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;Token&#039;&#039; wird die Zeichenkette aufgeteilt. Als Teiler ist ein Unterstrich angeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Es wird der zweite Teil gefordert. Die Variable &#039;&#039;cTeil&#039;&#039; enthält demnach den Wert &#039;&#039;Name&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==NumToken==&lt;br /&gt;
Verwendung: Ermittelt die Anzahl der Teile einer Zeichenketten, wenn diese an den Stelle mit dem Zeichen, das als Parameter übergeben wird, geteilt wird.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string, string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cDatei := &#039;Datei_Name_Mit_Unterstrichen.txt&#039;;&lt;br /&gt;
    nTeile := NumToken(&#039;_&#039;,cDatei);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cDatei&#039;&#039; wird der Wert &#039;&#039;Datei_Name_Mit_Unterstrichen.txt&#039;&#039; zugewiesen. Mit &#039;&#039;NumToken&#039;&#039; wird die Anzahl der Teil-Zeichenketten der Zeichenkette cDatei ermittelt. Als Trennzeichen wurde ein Unterstrich angegeben. Dies führt im angegebenen Beispiel zu vier Teilen: &#039;&#039;Datei&#039;&#039;, &#039;&#039;Name&#039;&#039;, &#039;&#039;Mit&#039;&#039; und &#039;&#039;Unterstrichen.txt&#039;&#039;. Die Variable &#039;&#039;nTeile&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==iVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in einen Ganzzahlwert um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;4&#039;;&lt;br /&gt;
    nZahl := iVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;4&#039;&#039; zugewiesen. Mit &#039;&#039;iVal&#039;&#039; wird die Zeichenkette in die entsprechende Ganzzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 4.&lt;br /&gt;
&lt;br /&gt;
==fVal==&lt;br /&gt;
Verwendung: Wandelt die angegebene Zeichenkette in eine Dezimalzahl um.&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: string&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    cZahl := &#039;1234,56&#039;;&lt;br /&gt;
    nZahl := fVal(cZahl);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der String-Variable &#039;&#039;cZahl&#039;&#039; wird der Wert &#039;&#039;1234,56&#039;&#039; zugewiesen. Mit &#039;&#039;fVal&#039;&#039; wird die Zeichenkette in die entsprechende Dezimalzahl umgewandelt. Die Variable &#039;&#039;nZahl&#039;&#039; entspricht also dem Wert 1234,56.&lt;br /&gt;
&lt;br /&gt;
==Roundy==&lt;br /&gt;
Verwendung: Runden eines Dezimalwerts (Typ: Double)&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double, integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nGerundeterWert := Roundy(nDezimalwert,2);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der zu rundende Wert wird mit Parameter 1 übergeben. Die gewünschte Anzahl an Nachkommastellen wird in Parameter 2 angegeben. Die Funktion rundet dann den Wert auf die angegebene Anzahl an Dezimalstellen und gibt das Ergebnis wieder zurück. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nGerundeterWert&#039;&#039; entspricht also 1234,57.&lt;br /&gt;
&lt;br /&gt;
==Trunc==&lt;br /&gt;
Verwendung: Abschneiden der Nachkommastellen eines Dezimalwerts&amp;lt;br /&amp;gt;&lt;br /&gt;
Parameter: double&amp;lt;br /&amp;gt;&lt;br /&gt;
Rückgabe: integer&amp;lt;br /&amp;gt;&lt;br /&gt;
Aufruf:&lt;br /&gt;
&amp;lt;syntaxhighlight lang==&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
    nDezimalwert := 1234.5678;&lt;br /&gt;
    nWert := Trunc(nDezimalwert);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung: Der Dezimalwert ist als Parameter zu übergeben. Als Ergbnis werden die Vorkommastellen zurückgegeben. Die Variable &#039;&#039;nDezimalwert&#039;&#039; wird auf den Wert 1234,5678 gesetzt. Anschließend wird der Wert auf zwei Nachkommastellen gerundet. Die Variable &#039;&#039;nWert&#039;&#039; entspricht also 1234.&lt;br /&gt;
==PadL==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadL(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur linken Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;    Müller&#039;&lt;br /&gt;
cAufgefuellt := PadL(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;XXXXMüller&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==PadR==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function PadR(const cVar : string; iPad : integer; cPad : char=&#039; &#039;) : string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Füllt die Zeichenkette &#039;&#039;cVar&#039;&#039; zur rechten Seite mit &#039;&#039;cPad&#039;&#039; auf, bis &#039;&#039;cVar&#039;&#039; &#039;&#039;iPad&#039;&#039; Zeichen lang ist.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
cAuffuellen := &#039;Müller&#039;;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10);&lt;br /&gt;
//cAufgefuellt ist &#039;Müller    &#039;&lt;br /&gt;
cAufgefuellt := PadR(cAuffuellen,10,&#039;X&#039;);&lt;br /&gt;
//cAufgefuellt ist &#039;MüllerXXXX&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CToD==&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function CToD(const sDate: string): TDateTime;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Konvertiert die Zeichenkette &#039;&#039;sDate&#039;&#039; in einen Datumswert des Typs [http://docwiki.embarcadero.com/Libraries/Rio/en/System.TDateTime &#039;&#039;TDateTime&#039;&#039;].&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18&#039;);&lt;br /&gt;
dDatum := CToD(&#039;2016-11-18 17:52:35&#039;);&lt;br /&gt;
//In beiden Fällen entspricht der Wert in dDatum dem 18.11.2016, da CToD nur das Datum übernimmt. Die Uhrzeit wird verworfen.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Artikelstamm==&lt;br /&gt;
===AR_Exists===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function AR_Exists(oMyDB: TxDB; const cArtNr: string): boolean;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Sucht im Artikelstamm nach der in &#039;&#039;cArtNr&#039;&#039; angegebenen Artikelnummer und liefert als Ergebnis &#039;&#039;True&#039;&#039; wenn der Artikel gefunden wurde.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
if (AR_Exists(oDB,&#039;ABC123&#039;)) then begin&lt;br /&gt;
    Meldung(&#039;Artikel existiert im Artikelstamm&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Umsatz- und Vorsteuer==&lt;br /&gt;
===FindUstFromSatz===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function FindUstFromSatz(oMyDB: TxDB; nSatz: double): string;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ermittelt den OBS-Umsatzsteuerschlüssel für den Steuersatz &#039;&#039;nSatz&#039;&#039;.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Gibt den zweistelligen Schlüssel (z. B. 01) für die Umsatzsteuer mit dem Satz 19 % aus&lt;br /&gt;
Meldung(FindUstFromSatz(oDB,19));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UST_VK_Netto2Brutto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(oMyDB          : TxDB;&lt;br /&gt;
                              nNetto         : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
function  UST_VK_Netto2Brutto(nNetto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===UST_VK_Brutto2Netto===&lt;br /&gt;
Definition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
//Variante 1&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              cArtNr         : string;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 2&lt;br /&gt;
function  UST_VK_Brutto2Netto(oMyDB          : TxDB;&lt;br /&gt;
                              nBrutto        : double;&lt;br /&gt;
                              cSchl          : string;&lt;br /&gt;
                              nDefaultResult : double=0;&lt;br /&gt;
                              nDefaultSatz   : double=0;&lt;br /&gt;
                              lUseStd        : boolean=False;&lt;br /&gt;
                              nNK            : integer=2): double; overload;&lt;br /&gt;
&lt;br /&gt;
//Variante 3&lt;br /&gt;
function  UST_VK_Brutto2Netto(nBrutto: double; nMwstSatz: double; nNK: integer=2) : double; overload;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Erklärung:&amp;lt;br /&amp;gt;&lt;br /&gt;
Wandelt einen Preis von Brutto nach Netto. Die Funktion gibt es in drei Ausführungen.&lt;br /&gt;
#Umwandlung über Artikelnummer&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto um. Der Steuersatz wird dabei über den Steuerschlüssel aus dem Artikelstamm gezogen. Falls kein Artikel mit der Nummer &#039;&#039;cArtNr&#039;&#039; im Artikelstamm gefunden werden kann, wird für die Umrechnung der Satz &#039;&#039;nDefaultSatz&#039;&#039; verwendet. Existiert der Artikel im Artikelstamm wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis verwendet, falls kein Steuerschlüssel im Artikel gepflegt ist. {{Hinweis|Wenn die Artikelnummer vorhanden ist, wird diese Variante der Umrechnung empfohlen, da hier auch Artikel mit mehreren Steuersätzen richtig umgewandelt werden.}}&lt;br /&gt;
#Umwandlung mit Steuerschlüssel&lt;br /&gt;
#:Wandelt den Wert &#039;&#039;nBrutto&#039;&#039; nach Netto anhand des übergebenen Steuerschlüssels &#039;&#039;cSchl&#039;&#039; um. Ist der Steuerschlüssel leer, wird &#039;&#039;nDefaultResult&#039;&#039; als Ergebnis zurückgegeben. Der Steuersatz &#039;&#039;nDefaultSatz&#039;&#039; wird verwendet, wenn kein passender Eintrag zum Steuerschlüssel im OBS gefunden werden konnte.&lt;br /&gt;
#Umwandlung mit Steuersatz&lt;br /&gt;
#:Der Wert &#039;&#039;nBrutto&#039;&#039; wird mit dem Steuersatz &#039;&#039;nMwstSatz&#039;&#039; umgerechnet. Die Rückgabe wird auf &#039;&#039;nNK&#039;&#039; Nachkommastellen gerundet.{{Achtung|Der Steuersatz 19 % wird in &#039;&#039;nMwstSatz&#039;&#039; als 19.00 (Punkt als Dezimaltrennzeichen) erwartet!}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Anwendungsbereiche/OFML-Kalkulation&amp;diff=57067</id>
		<title>OBS/Makros und Scripting/Anwendungsbereiche/OFML-Kalkulation</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Anwendungsbereiche/OFML-Kalkulation&amp;diff=57067"/>
		<updated>2020-01-10T08:12:33Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* Felderläuterungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Dieses Macro ist unter dem festen Namen &#039;&#039;&#039;OFML_PosToCalc&#039;&#039;&#039; in der [[OBS/Makros_und_Scripting/Allgemeines/Script_Library|Sript Lib]] zu finden.&lt;br /&gt;
&lt;br /&gt;
=übergebene Parameter und Rückgabe=&lt;br /&gt;
==Übergabe Parameter==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Bedeutung  !! Datentyp &lt;br /&gt;
|-&lt;br /&gt;
| cAngNr  || Die Nummer des Angebotes für die Kalkulation  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]&lt;br /&gt;
|-&lt;br /&gt;
| xData  || Datenstruktur, in dem der komplette Datensatz enthalten ist  ||  [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Funktionen#TqSQL|TqSQL]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Rückgabe==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Bedeutung  !!  Datentyp&lt;br /&gt;
|-&lt;br /&gt;
| Result  || bei &#039;&#039;&#039;True&#039;&#039;&#039; wird der Datensatz angelegt, bei &#039;&#039;&#039;False&#039;&#039;&#039; nicht  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#boolean|boolean]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Felderläuterungen=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Datenbankfeld !! Beschreibung  !!  Datentyp  !! Feldlänge   &lt;br /&gt;
|-&lt;br /&gt;
| mbc_bez1 || Bezeichnung 1 der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  200&lt;br /&gt;
|-&lt;br /&gt;
| mbc_bez2 || Bezeichnung 2 der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  200&lt;br /&gt;
|-&lt;br /&gt;
| mbc_text || Langtext der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  2000&lt;br /&gt;
|-&lt;br /&gt;
| mbc_artnr || Artikelnummer der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  40&lt;br /&gt;
|-&lt;br /&gt;
| mbc_bestnr || Bestellnummer der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  40&lt;br /&gt;
|-&lt;br /&gt;
| mbc_serie || Serie aus der OFML Datei  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  10&lt;br /&gt;
|-&lt;br /&gt;
| mbc_hersteller || Hersteller  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  60&lt;br /&gt;
|-&lt;br /&gt;
| mbc_menge || Menge  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]]  ||  10 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_ekpreis || Brutto EK-Preis  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]] ||  10 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_eknetto || Netto EK-Preis  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]]  ||  10 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_ekrabatt || EK Rabatt  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]]  ||  6 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vkpreis || Brutto VK-Preis  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]]  ||  10 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vknetto || Netto VK-Preis  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]]  ||  10 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vkrabatt || VK Rabatt  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]]  ||  6 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_memodruck || Artikellangtext wird ausgedruckt  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#boolean|boolean]]  ||  1 (1=true;2=false)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_ueberartnr || Artikeltexte aus dem Artikelstamm haben vorang   ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#boolean|boolean]]  ||  1 (1=true;2=false)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_ksperre || Diese Position wird in der Kalkulation nicht berücksichtigt   ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#boolean|boolean]]  ||  1 (1=true;2=false)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_neu_bild || Bild wird in das Angebot übernommen  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#boolean|boolean]]  ||  1 (1=true;2=false)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_neu_artikel || Artikel wird im Artikelstamm angelegt  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#boolean|boolean]]  ||  1 (1=true;2=false)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_apostfix || Vorgabe für die Artikelnummer  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  10&lt;br /&gt;
|-&lt;br /&gt;
| mbc_export || Export freigabe  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#boolean|boolean]]  ||  1 (1=true;2=false)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_sonderpreis || kein Sonderpreis  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#boolean|boolean]]  ||  1 (1=true;2=false)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_uebermemo || Langtextet ins Angebot übernehmen  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#boolean|boolean]]  ||  1 (1=true;2=false)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Beispiel=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function MyTqSQL(cAngNr:String; xData:TqSQL):Boolean;&lt;br /&gt;
begin&lt;br /&gt;
    DebugLine(&#039;Artikel-Nummer:&#039;+xData.A2C(&#039;mbc_artnr&#039;));&lt;br /&gt;
    DebugLine(&#039;Bestell-Nummer:&#039;+xData.A2C(&#039;mbc_bestnr&#039;));&lt;br /&gt;
    Result := True;&lt;br /&gt;
&lt;br /&gt;
    //Artikelnummer ändern&lt;br /&gt;
    //xData.qSet(&#039;mbc_artnr&#039;,&#039;123&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Anwendungsbereiche/OFML-Kalkulation&amp;diff=57066</id>
		<title>OBS/Makros und Scripting/Anwendungsbereiche/OFML-Kalkulation</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Anwendungsbereiche/OFML-Kalkulation&amp;diff=57066"/>
		<updated>2020-01-10T08:10:30Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* Felderläuterungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Dieses Macro ist unter dem festen Namen &#039;&#039;&#039;OFML_PosToCalc&#039;&#039;&#039; in der [[OBS/Makros_und_Scripting/Allgemeines/Script_Library|Sript Lib]] zu finden.&lt;br /&gt;
&lt;br /&gt;
=übergebene Parameter und Rückgabe=&lt;br /&gt;
==Übergabe Parameter==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Bedeutung  !! Datentyp &lt;br /&gt;
|-&lt;br /&gt;
| cAngNr  || Die Nummer des Angebotes für die Kalkulation  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]&lt;br /&gt;
|-&lt;br /&gt;
| xData  || Datenstruktur, in dem der komplette Datensatz enthalten ist  ||  [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Funktionen#TqSQL|TqSQL]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Rückgabe==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Bedeutung  !!  Datentyp&lt;br /&gt;
|-&lt;br /&gt;
| Result  || bei &#039;&#039;&#039;True&#039;&#039;&#039; wird der Datensatz angelegt, bei &#039;&#039;&#039;False&#039;&#039;&#039; nicht  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#boolean|boolean]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Felderläuterungen=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Datenbankfeld !! Beschreibung  !!  Datentyp  !! Feldlänge   &lt;br /&gt;
|-&lt;br /&gt;
| mbc_bez1 || Bezeichnung 1 der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  200&lt;br /&gt;
|-&lt;br /&gt;
| mbc_bez2 || Bezeichnung 2 der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  200&lt;br /&gt;
|-&lt;br /&gt;
| mbc_text || Langtext der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  2000&lt;br /&gt;
|-&lt;br /&gt;
| mbc_artnr || Artikelnummer der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  40&lt;br /&gt;
|-&lt;br /&gt;
| mbc_bestnr || Bestellnummer der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  40&lt;br /&gt;
|-&lt;br /&gt;
| mbc_serie || Serie aus der OFML Datei  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  10&lt;br /&gt;
|-&lt;br /&gt;
| mbc_hersteller || Hersteller  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  60&lt;br /&gt;
|-&lt;br /&gt;
| mbc_menge || Menge  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]]  ||  10 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_ekpreis || Brutto EK-Preis  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]] ||  10 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_eknetto || Netto EK-Preis  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]]  ||  10 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_ekrabatt || EK Rabatt  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]]  ||  6 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vkpreis || Brutto VK-Preis  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]]  ||  10 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vknetto || Netto VK-Preis  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]]  ||  10 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vkrabatt || VK Rabatt  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]]  ||  6 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_memodruck || Artikellangtext wird ausgedruckt&lt;br /&gt;
|-&lt;br /&gt;
| mbc_ueberartnr || Artikeltexte aus dem Artikelstamm haben vorang &lt;br /&gt;
|-&lt;br /&gt;
| mbc_ksperre || Diese Position wird in der Kalkulation nicht berücksichtigt &lt;br /&gt;
|-&lt;br /&gt;
| mbc_neu_bild || Bild wird in das Angebot übernommen&lt;br /&gt;
|-&lt;br /&gt;
| mbc_neu_artikel || Artikel wird im Artikelstamm angelegt&lt;br /&gt;
|-&lt;br /&gt;
| mbc_apostfix || Vorgabe für die Artikelnummer  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  10&lt;br /&gt;
|-&lt;br /&gt;
| mbc_export || Export freigabe&lt;br /&gt;
|-&lt;br /&gt;
| mbc_sonderpreis || kein Sonderpreis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_uebermemo || Langtextet ins Angebot übernehmen&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Beispiel=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function MyTqSQL(cAngNr:String; xData:TqSQL):Boolean;&lt;br /&gt;
begin&lt;br /&gt;
    DebugLine(&#039;Artikel-Nummer:&#039;+xData.A2C(&#039;mbc_artnr&#039;));&lt;br /&gt;
    DebugLine(&#039;Bestell-Nummer:&#039;+xData.A2C(&#039;mbc_bestnr&#039;));&lt;br /&gt;
    Result := True;&lt;br /&gt;
&lt;br /&gt;
    //Artikelnummer ändern&lt;br /&gt;
    //xData.qSet(&#039;mbc_artnr&#039;,&#039;123&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Anwendungsbereiche/OFML-Kalkulation&amp;diff=57065</id>
		<title>OBS/Makros und Scripting/Anwendungsbereiche/OFML-Kalkulation</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Anwendungsbereiche/OFML-Kalkulation&amp;diff=57065"/>
		<updated>2020-01-10T08:09:58Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* Felderläuterungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Dieses Macro ist unter dem festen Namen &#039;&#039;&#039;OFML_PosToCalc&#039;&#039;&#039; in der [[OBS/Makros_und_Scripting/Allgemeines/Script_Library|Sript Lib]] zu finden.&lt;br /&gt;
&lt;br /&gt;
=übergebene Parameter und Rückgabe=&lt;br /&gt;
==Übergabe Parameter==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Bedeutung  !! Datentyp &lt;br /&gt;
|-&lt;br /&gt;
| cAngNr  || Die Nummer des Angebotes für die Kalkulation  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]&lt;br /&gt;
|-&lt;br /&gt;
| xData  || Datenstruktur, in dem der komplette Datensatz enthalten ist  ||  [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Funktionen#TqSQL|TqSQL]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Rückgabe==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Bedeutung  !!  Datentyp&lt;br /&gt;
|-&lt;br /&gt;
| Result  || bei &#039;&#039;&#039;True&#039;&#039;&#039; wird der Datensatz angelegt, bei &#039;&#039;&#039;False&#039;&#039;&#039; nicht  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#boolean|boolean]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Felderläuterungen=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Datenbankfeld !! Beschreibung  !!  Datentyp  !! Feldlänge   &lt;br /&gt;
|-&lt;br /&gt;
| mbc_bez1 || Bezeichnung 1 der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  200&lt;br /&gt;
|-&lt;br /&gt;
| mbc_bez2 || Bezeichnung 2 der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  200&lt;br /&gt;
|-&lt;br /&gt;
| mbc_text || Langtext der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  2000&lt;br /&gt;
|-&lt;br /&gt;
| mbc_artnr || Artikelnummer der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  40&lt;br /&gt;
|-&lt;br /&gt;
| mbc_bestnr || Bestellnummer der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  40&lt;br /&gt;
|-&lt;br /&gt;
| mbc_serie || Serie aus der OFML Datei  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  10&lt;br /&gt;
|-&lt;br /&gt;
| mbc_hersteller || Hersteller  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  60&lt;br /&gt;
|-&lt;br /&gt;
| mbc_menge || Menge  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]]  ||  10 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_ekpreis || Brutto EK-Preis  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]] ||  10 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_eknetto || Netto EK-Preis  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]  ||  10 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_ekrabatt || EK Rabatt  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]]  ||  6 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vkpreis || Brutto VK-Preis  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]]  ||  10 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vknetto || Netto VK-Preis  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]]  ||  10 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vkrabatt || VK Rabatt  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#double|double]]  ||  6 (davon 2 NK)&lt;br /&gt;
|-&lt;br /&gt;
| mbc_memodruck || Artikellangtext wird ausgedruckt&lt;br /&gt;
|-&lt;br /&gt;
| mbc_ueberartnr || Artikeltexte aus dem Artikelstamm haben vorang &lt;br /&gt;
|-&lt;br /&gt;
| mbc_ksperre || Diese Position wird in der Kalkulation nicht berücksichtigt &lt;br /&gt;
|-&lt;br /&gt;
| mbc_neu_bild || Bild wird in das Angebot übernommen&lt;br /&gt;
|-&lt;br /&gt;
| mbc_neu_artikel || Artikel wird im Artikelstamm angelegt&lt;br /&gt;
|-&lt;br /&gt;
| mbc_apostfix || Vorgabe für die Artikelnummer  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  10&lt;br /&gt;
|-&lt;br /&gt;
| mbc_export || Export freigabe&lt;br /&gt;
|-&lt;br /&gt;
| mbc_sonderpreis || kein Sonderpreis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_uebermemo || Langtextet ins Angebot übernehmen&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Beispiel=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function MyTqSQL(cAngNr:String; xData:TqSQL):Boolean;&lt;br /&gt;
begin&lt;br /&gt;
    DebugLine(&#039;Artikel-Nummer:&#039;+xData.A2C(&#039;mbc_artnr&#039;));&lt;br /&gt;
    DebugLine(&#039;Bestell-Nummer:&#039;+xData.A2C(&#039;mbc_bestnr&#039;));&lt;br /&gt;
    Result := True;&lt;br /&gt;
&lt;br /&gt;
    //Artikelnummer ändern&lt;br /&gt;
    //xData.qSet(&#039;mbc_artnr&#039;,&#039;123&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Anwendungsbereiche/OFML-Kalkulation&amp;diff=57064</id>
		<title>OBS/Makros und Scripting/Anwendungsbereiche/OFML-Kalkulation</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Anwendungsbereiche/OFML-Kalkulation&amp;diff=57064"/>
		<updated>2020-01-10T08:05:21Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* Felderläuterungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Dieses Macro ist unter dem festen Namen &#039;&#039;&#039;OFML_PosToCalc&#039;&#039;&#039; in der [[OBS/Makros_und_Scripting/Allgemeines/Script_Library|Sript Lib]] zu finden.&lt;br /&gt;
&lt;br /&gt;
=übergebene Parameter und Rückgabe=&lt;br /&gt;
==Übergabe Parameter==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Bedeutung  !! Datentyp &lt;br /&gt;
|-&lt;br /&gt;
| cAngNr  || Die Nummer des Angebotes für die Kalkulation  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]&lt;br /&gt;
|-&lt;br /&gt;
| xData  || Datenstruktur, in dem der komplette Datensatz enthalten ist  ||  [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Funktionen#TqSQL|TqSQL]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Rückgabe==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Bedeutung  !!  Datentyp&lt;br /&gt;
|-&lt;br /&gt;
| Result  || bei &#039;&#039;&#039;True&#039;&#039;&#039; wird der Datensatz angelegt, bei &#039;&#039;&#039;False&#039;&#039;&#039; nicht  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#boolean|boolean]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Felderläuterungen=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Datenbankfeld !! Beschreibung  !!  Datentyp  !! Feldlänge&lt;br /&gt;
|-&lt;br /&gt;
| mbc_bez1 || Bezeichnung 1 der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  200&lt;br /&gt;
|-&lt;br /&gt;
| mbc_bez2 || Bezeichnung 2 der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  200&lt;br /&gt;
|-&lt;br /&gt;
| mbc_text || Langtext der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  2000&lt;br /&gt;
|-&lt;br /&gt;
| mbc_artnr || Artikelnummer der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  40&lt;br /&gt;
|-&lt;br /&gt;
| mbc_bestnr || Bestellnummer der Position  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  40&lt;br /&gt;
|-&lt;br /&gt;
| mbc_serie || Serie aus der OFML Datei  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  10&lt;br /&gt;
|-&lt;br /&gt;
| mbc_hersteller || Hersteller  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  60&lt;br /&gt;
|-&lt;br /&gt;
| mbc_menge || Menge&lt;br /&gt;
|-&lt;br /&gt;
| mbc_ekpreis || Brutto EK-Preis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_eknetto || Netto EK-Preis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vkpreis || Brutto VK-Preis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vkrabatt || VK Rabatt&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vknetto || Netto VK-Preis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_memodruck || Artikellangtext wird ausgedruckt&lt;br /&gt;
|-&lt;br /&gt;
| mbc_ueberartnr || Artikeltexte aus dem Artikelstamm haben vorang &lt;br /&gt;
|-&lt;br /&gt;
| mbc_ksperre || Diese Position wird in der Kalkulation nicht berücksichtigt &lt;br /&gt;
|-&lt;br /&gt;
| mbc_neu_bild || Bild wird in das Angebot übernommen&lt;br /&gt;
|-&lt;br /&gt;
| mbc_neu_artikel || Artikel wird im Artikelstamm angelegt&lt;br /&gt;
|-&lt;br /&gt;
| mbc_apostfix || Vorgabe für die Artikelnummer  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]  ||  10&lt;br /&gt;
|-&lt;br /&gt;
| mbc_export || Export freigabe&lt;br /&gt;
|-&lt;br /&gt;
| mbc_sonderpreis || kein Sonderpreis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_uebermemo || Langtextet ins Angebot übernehmen&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Beispiel=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function MyTqSQL(cAngNr:String; xData:TqSQL):Boolean;&lt;br /&gt;
begin&lt;br /&gt;
    DebugLine(&#039;Artikel-Nummer:&#039;+xData.A2C(&#039;mbc_artnr&#039;));&lt;br /&gt;
    DebugLine(&#039;Bestell-Nummer:&#039;+xData.A2C(&#039;mbc_bestnr&#039;));&lt;br /&gt;
    Result := True;&lt;br /&gt;
&lt;br /&gt;
    //Artikelnummer ändern&lt;br /&gt;
    //xData.qSet(&#039;mbc_artnr&#039;,&#039;123&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Anwendungsbereiche/OFML-Kalkulation&amp;diff=57063</id>
		<title>OBS/Makros und Scripting/Anwendungsbereiche/OFML-Kalkulation</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Anwendungsbereiche/OFML-Kalkulation&amp;diff=57063"/>
		<updated>2020-01-10T08:02:52Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* Felderläuterungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Dieses Macro ist unter dem festen Namen &#039;&#039;&#039;OFML_PosToCalc&#039;&#039;&#039; in der [[OBS/Makros_und_Scripting/Allgemeines/Script_Library|Sript Lib]] zu finden.&lt;br /&gt;
&lt;br /&gt;
=übergebene Parameter und Rückgabe=&lt;br /&gt;
==Übergabe Parameter==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Bedeutung  !! Datentyp &lt;br /&gt;
|-&lt;br /&gt;
| cAngNr  || Die Nummer des Angebotes für die Kalkulation  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]&lt;br /&gt;
|-&lt;br /&gt;
| xData  || Datenstruktur, in dem der komplette Datensatz enthalten ist  ||  [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Funktionen#TqSQL|TqSQL]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Rückgabe==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Bedeutung  !!  Datentyp&lt;br /&gt;
|-&lt;br /&gt;
| Result  || bei &#039;&#039;&#039;True&#039;&#039;&#039; wird der Datensatz angelegt, bei &#039;&#039;&#039;False&#039;&#039;&#039; nicht  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#boolean|boolean]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Felderläuterungen=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Datenbankfeld !! Beschreibung  !!  Datentyp&lt;br /&gt;
|-&lt;br /&gt;
| mbc_bez1 || Bezeichnung 1 der Position  ||  &lt;br /&gt;
|-&lt;br /&gt;
| mbc_bez2 || Bezeichnung 2 der Position&lt;br /&gt;
|-&lt;br /&gt;
| mbc_text || Langtext der Position&lt;br /&gt;
|-&lt;br /&gt;
| mbc_artnr || Artikelnummer der Position&lt;br /&gt;
|-&lt;br /&gt;
| mbc_bestnr || Bestellnummer der Position&lt;br /&gt;
|-&lt;br /&gt;
| mbc_serie || Serie aus der OFML Datei&lt;br /&gt;
|-&lt;br /&gt;
| mbc_hersteller || Hersteller&lt;br /&gt;
|-&lt;br /&gt;
| mbc_menge || Menge&lt;br /&gt;
|-&lt;br /&gt;
| mbc_ekpreis || Brutto EK-Preis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_eknetto || Netto EK-Preis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vkpreis || Brutto VK-Preis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vkrabatt || VK Rabatt&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vknetto || Netto VK-Preis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_memodruck || Artikellangtext wird ausgedruckt&lt;br /&gt;
|-&lt;br /&gt;
| mbc_ueberartnr || Artikeltexte aus dem Artikelstamm haben vorang &lt;br /&gt;
|-&lt;br /&gt;
| mbc_ksperre || Diese Position wird in der Kalkulation nicht berücksichtigt &lt;br /&gt;
|-&lt;br /&gt;
| mbc_neu_bild || Bild wird in das Angebot übernommen&lt;br /&gt;
|-&lt;br /&gt;
| mbc_neu_artikel || Artikel wird im Artikelstamm angelegt&lt;br /&gt;
|-&lt;br /&gt;
| mbc_apostfix || Vorgabe für die Artikelnummer&lt;br /&gt;
|-&lt;br /&gt;
| mbc_export || Export freigabe&lt;br /&gt;
|-&lt;br /&gt;
| mbc_sonderpreis || kein Sonderpreis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_uebermemo || Langtextet ins Angebot übernehmen&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Beispiel=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function MyTqSQL(cAngNr:String; xData:TqSQL):Boolean;&lt;br /&gt;
begin&lt;br /&gt;
    DebugLine(&#039;Artikel-Nummer:&#039;+xData.A2C(&#039;mbc_artnr&#039;));&lt;br /&gt;
    DebugLine(&#039;Bestell-Nummer:&#039;+xData.A2C(&#039;mbc_bestnr&#039;));&lt;br /&gt;
    Result := True;&lt;br /&gt;
&lt;br /&gt;
    //Artikelnummer ändern&lt;br /&gt;
    //xData.qSet(&#039;mbc_artnr&#039;,&#039;123&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Anwendungsbereiche/OFML-Kalkulation&amp;diff=57062</id>
		<title>OBS/Makros und Scripting/Anwendungsbereiche/OFML-Kalkulation</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Anwendungsbereiche/OFML-Kalkulation&amp;diff=57062"/>
		<updated>2020-01-10T08:02:29Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* Rückgabe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Dieses Macro ist unter dem festen Namen &#039;&#039;&#039;OFML_PosToCalc&#039;&#039;&#039; in der [[OBS/Makros_und_Scripting/Allgemeines/Script_Library|Sript Lib]] zu finden.&lt;br /&gt;
&lt;br /&gt;
=übergebene Parameter und Rückgabe=&lt;br /&gt;
==Übergabe Parameter==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Bedeutung  !! Datentyp &lt;br /&gt;
|-&lt;br /&gt;
| cAngNr  || Die Nummer des Angebotes für die Kalkulation  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]&lt;br /&gt;
|-&lt;br /&gt;
| xData  || Datenstruktur, in dem der komplette Datensatz enthalten ist  ||  [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Funktionen#TqSQL|TqSQL]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Rückgabe==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Bedeutung  !!  Datentyp&lt;br /&gt;
|-&lt;br /&gt;
| Result  || bei &#039;&#039;&#039;True&#039;&#039;&#039; wird der Datensatz angelegt, bei &#039;&#039;&#039;False&#039;&#039;&#039; nicht  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#boolean|boolean]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Felderläuterungen=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Datenbankfeld !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| mbc_bez1 || Bezeichnung 1 der Position&lt;br /&gt;
|-&lt;br /&gt;
| mbc_bez2 || Bezeichnung 2 der Position&lt;br /&gt;
|-&lt;br /&gt;
| mbc_text || Langtext der Position&lt;br /&gt;
|-&lt;br /&gt;
| mbc_artnr || Artikelnummer der Position&lt;br /&gt;
|-&lt;br /&gt;
| mbc_bestnr || Bestellnummer der Position&lt;br /&gt;
|-&lt;br /&gt;
| mbc_serie || Serie aus der OFML Datei&lt;br /&gt;
|-&lt;br /&gt;
| mbc_hersteller || Hersteller&lt;br /&gt;
|-&lt;br /&gt;
| mbc_menge || Menge&lt;br /&gt;
|-&lt;br /&gt;
| mbc_ekpreis || Brutto EK-Preis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_eknetto || Netto EK-Preis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vkpreis || Brutto VK-Preis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vkrabatt || VK Rabatt&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vknetto || Netto VK-Preis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_memodruck || Artikellangtext wird ausgedruckt&lt;br /&gt;
|-&lt;br /&gt;
| mbc_ueberartnr || Artikeltexte aus dem Artikelstamm haben vorang &lt;br /&gt;
|-&lt;br /&gt;
| mbc_ksperre || Diese Position wird in der Kalkulation nicht berücksichtigt &lt;br /&gt;
|-&lt;br /&gt;
| mbc_neu_bild || Bild wird in das Angebot übernommen&lt;br /&gt;
|-&lt;br /&gt;
| mbc_neu_artikel || Artikel wird im Artikelstamm angelegt&lt;br /&gt;
|-&lt;br /&gt;
| mbc_apostfix || Vorgabe für die Artikelnummer&lt;br /&gt;
|-&lt;br /&gt;
| mbc_export || Export freigabe&lt;br /&gt;
|-&lt;br /&gt;
| mbc_sonderpreis || kein Sonderpreis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_uebermemo || Langtextet ins Angebot übernehmen&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Beispiel=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function MyTqSQL(cAngNr:String; xData:TqSQL):Boolean;&lt;br /&gt;
begin&lt;br /&gt;
    DebugLine(&#039;Artikel-Nummer:&#039;+xData.A2C(&#039;mbc_artnr&#039;));&lt;br /&gt;
    DebugLine(&#039;Bestell-Nummer:&#039;+xData.A2C(&#039;mbc_bestnr&#039;));&lt;br /&gt;
    Result := True;&lt;br /&gt;
&lt;br /&gt;
    //Artikelnummer ändern&lt;br /&gt;
    //xData.qSet(&#039;mbc_artnr&#039;,&#039;123&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Anwendungsbereiche/OFML-Kalkulation&amp;diff=57061</id>
		<title>OBS/Makros und Scripting/Anwendungsbereiche/OFML-Kalkulation</title>
		<link rel="alternate" type="text/html" href="https://wiki.bergau.de/index.php?title=OBS/Makros_und_Scripting/Anwendungsbereiche/OFML-Kalkulation&amp;diff=57061"/>
		<updated>2020-01-10T08:02:07Z</updated>

		<summary type="html">&lt;p&gt;Wiki-Admin: /* Übergabe Parameter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Makros und Scripting}}&lt;br /&gt;
Dieses Macro ist unter dem festen Namen &#039;&#039;&#039;OFML_PosToCalc&#039;&#039;&#039; in der [[OBS/Makros_und_Scripting/Allgemeines/Script_Library|Sript Lib]] zu finden.&lt;br /&gt;
&lt;br /&gt;
=übergebene Parameter und Rückgabe=&lt;br /&gt;
==Übergabe Parameter==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Bedeutung  !! Datentyp &lt;br /&gt;
|-&lt;br /&gt;
| cAngNr  || Die Nummer des Angebotes für die Kalkulation  ||  [[OBS/Makros_und_Scripting/Allgemeines/Syntax#string|string]]&lt;br /&gt;
|-&lt;br /&gt;
| xData  || Datenstruktur, in dem der komplette Datensatz enthalten ist  ||  [[OBS/Makros_und_Scripting/Allgemeines/Übersicht_Funktionen#TqSQL|TqSQL]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Rückgabe==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Parameter !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| Result ([[OBS/Makros_und_Scripting/Allgemeines/Syntax#boolean|boolean]]) || bei &#039;&#039;&#039;True&#039;&#039;&#039; wird der Datensatz angelegt, bei &#039;&#039;&#039;False&#039;&#039;&#039; nicht&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Felderläuterungen=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Datenbankfeld !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| mbc_bez1 || Bezeichnung 1 der Position&lt;br /&gt;
|-&lt;br /&gt;
| mbc_bez2 || Bezeichnung 2 der Position&lt;br /&gt;
|-&lt;br /&gt;
| mbc_text || Langtext der Position&lt;br /&gt;
|-&lt;br /&gt;
| mbc_artnr || Artikelnummer der Position&lt;br /&gt;
|-&lt;br /&gt;
| mbc_bestnr || Bestellnummer der Position&lt;br /&gt;
|-&lt;br /&gt;
| mbc_serie || Serie aus der OFML Datei&lt;br /&gt;
|-&lt;br /&gt;
| mbc_hersteller || Hersteller&lt;br /&gt;
|-&lt;br /&gt;
| mbc_menge || Menge&lt;br /&gt;
|-&lt;br /&gt;
| mbc_ekpreis || Brutto EK-Preis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_eknetto || Netto EK-Preis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vkpreis || Brutto VK-Preis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vkrabatt || VK Rabatt&lt;br /&gt;
|-&lt;br /&gt;
| mbc_vknetto || Netto VK-Preis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_memodruck || Artikellangtext wird ausgedruckt&lt;br /&gt;
|-&lt;br /&gt;
| mbc_ueberartnr || Artikeltexte aus dem Artikelstamm haben vorang &lt;br /&gt;
|-&lt;br /&gt;
| mbc_ksperre || Diese Position wird in der Kalkulation nicht berücksichtigt &lt;br /&gt;
|-&lt;br /&gt;
| mbc_neu_bild || Bild wird in das Angebot übernommen&lt;br /&gt;
|-&lt;br /&gt;
| mbc_neu_artikel || Artikel wird im Artikelstamm angelegt&lt;br /&gt;
|-&lt;br /&gt;
| mbc_apostfix || Vorgabe für die Artikelnummer&lt;br /&gt;
|-&lt;br /&gt;
| mbc_export || Export freigabe&lt;br /&gt;
|-&lt;br /&gt;
| mbc_sonderpreis || kein Sonderpreis&lt;br /&gt;
|-&lt;br /&gt;
| mbc_uebermemo || Langtextet ins Angebot übernehmen&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Beispiel=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Delphi&amp;quot;&amp;gt;&lt;br /&gt;
function MyTqSQL(cAngNr:String; xData:TqSQL):Boolean;&lt;br /&gt;
begin&lt;br /&gt;
    DebugLine(&#039;Artikel-Nummer:&#039;+xData.A2C(&#039;mbc_artnr&#039;));&lt;br /&gt;
    DebugLine(&#039;Bestell-Nummer:&#039;+xData.A2C(&#039;mbc_bestnr&#039;));&lt;br /&gt;
    Result := True;&lt;br /&gt;
&lt;br /&gt;
    //Artikelnummer ändern&lt;br /&gt;
    //xData.qSet(&#039;mbc_artnr&#039;,&#039;123&#039;);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wiki-Admin</name></author>
	</entry>
</feed>