PMS32 Online- Hilfereferenz
Buchungssätze FIBU
Belegdatum bzw. Rechnungsdatum
Belegdatum, zu diesem Datum wurde die Rechnung berechnet. Unterschieden wird dabei zwischen Ausgangsrechnungen und Eingangsrechnungen. Folgende Werte kann BEDATE enthalten:
E10.RGDATUM, für Rechnung, Gutschrift und Barverkauf
D44.REDATUM, für Eingangsrechnungen
D45.REDATUM, für Spediteuersrechnungen
D46.GDATUM, für Lieferantengutschriften
In diesem Feld wird die Nummer der Rechnung, oder der Eingangsrechnung für die Übergabe an die FIBU-Schnittstelle gespeichert. Das Feld kann folgende Informationen enthalten:
E10.NUMMER, für Rechnungen, Gutschriften und Barverkäufe
D44.RENUMMER, für Eingangsrechnungen
D45.RENUMMER, für Spediteuersrechnungen
D46.GNUMMER, für Lieferantengutschriften
Leistungsdatum
Leistungsdatum, zu diesem Datum wurde die Rechnung berechnet. Unterschieden wird dabei zwischen Ausgangsrechnungen und Eingangsrechnungen. Folgende Werte kann BEDATE enthalten:
E10.RGDATUM/E11.LIEFDATUM, für Rechnung, Gutschrift und Barverkauf
D44.REDATUM/D55.LIEFDATUM, für Eingangsrechnungen
D45.REDATUM/D56.LIEFDATUM, für Spediteuersrechnungen
D46.GDATUM/D57.LIEFDATUM, für Lieferantengutschriften
Datum der Umsatzsteuer - ID Prüfung!
Datum der Umsatzsteuer - ID Prüfung!
Länderangabe der Umsatzsteuer ID. Diese Eingabe wird nur bei angeschlossener Finanzbuchhaltung benötigt.
Länderangabe der Umsatzsteuer ID. Diese Eingabe wird nur bei angeschlossener Finanzbuchhaltung benötigt. Diverse angeschlossene Finanzbuchhaltungssysteme erwarten die Länderangabe der Umsatzsteuer ID (EGUSTID, EUROIDENT) als separaten Wert bei der Übertragung. Hier ist die Einstellung der Finanzbuchhaltungssoftware gefragt, wie die Daten an diese übergeben werden müssen. Für die Eingaben ziehen Sie bitte die Dokumentation der Finanzbuchhaltung zu Rate.
Umsatzsteuer ID. Diese Eingabe wird nur bei angeschlossener Finanzbuchhaltung benötigt.
Umsatzsteuer ID. Diese Eingabe wird nur bei angeschlossener Finanzbuchhaltung benötigt. Dieser Wert wird bei angeschlossener Finanzbuchhaltung ausgewertet und an diese Übertragen. Für die Eingaben ziehen Sie bitte die Dokumentation der Finanzbuchhaltung zu Rate.
Umrechnungsfaktor für Währungsumrechnungen. Der Faktor muss größer Null sein! Er dient zur besseren Berechnung bei großen Währungseinheiten.
Umrechnungsfaktor für Währungsumrechnungen. Der Faktor muss größer Null sein! Er dient zur besseren Berechnung bei großen Währungseinheiten. Dieser Faktor wird für die Umrechnung von der Systemwährung in andere Fremdwährungen benötigt. Zusätzlich werden die Felder KURS, WSYSBOL, NMINW und NKOMMA zur Umrechnung benötigt. An einem Codebeispiel für die Umrechnung in die Kundenwährung in einem Vorgang können Sie die Formel zur Umrechnung von Währungen einsehen.
*/ Codebeispiel für die Umrechnung des VK-Preises im Vorgang zur Währung des Kunden. */ Angenommen, der Kunde bezahlt seine Rechnungen in US Dollar und in den Stammdaten sind folgende Werte hinterlegt: */ Maske C0301: */ C03.IDC03 = "USD" */ C03.KURS = 1,236 && US-Doller für einen EURO */ C03.FAKTOR = 1 && Bleibt eins, bei kleinen Währungen */ Dann wird der VK-Preis in US Doller für eine Position wie folgt berechnet: */ Maske E....: */ E10.IDC03 = "USD" */ E10.FAKTOR = 1 */ E10.KURS = 1,236 && Wird bei Neuanlage übernommen */ E10.WSYMBOL = "EUR" && Systemwährung */ E12.VKSTAMM = 134,24 EUR && Summe in Systemwährung, berechnet aus Kalkualtion */ E11.PREIS_F = Gesamtpreis in Fremdwährung e11.preis_f = e12.vkstamm * e10.kurs / e10.faktor e11.preis_f = 134,24 * 1,236 / 1 = 165,92064 => Gerundet: 165,92 US$ */ Der Preis wird dann noch durch eine Systemroutine auf die korrekte Anzahl der Nachkommastellen gerundet */ Außerdem wird in der Systemroutine die "kleinste Währungseinheit" - NMINW beachtet, die die kleinste */ Einheit in der Währung angibt. Z.B., in der Schweiz 5 Rappen => 0,05 SFR */ Umrechnung von einer Fremdwährung in eine andere Fremdwährung über die Systemwährung */ Währung a: IDC03="USD", KURS=1,236, FAKTOR=1 */ Währung b: IDC03="SFR", KURS=1,352, FAKTOR=1 */ Nach obigem Beispiel: WERTb = WERTa * FAKTORa / KURSa / FAKTORb * KURSb WERTb = 165,92 * 1 / 1,236 / 1 * 1,352 = 181,49177994 SFR => Gerundet: 181,50 SFR !! NMINW=0,05
Sollkonto der Buchung
Gegenkonto der Buchung.
Benutzerschlüssel der Mastertabelle
Enthält die Nummer der Mastertabelle ohne Änderungen. Dieses Feld wird mit folgenden Werten gefüllt:
E10.NUMMER, für Rechnungen, Gutschriften und Barverkäufe
D44.MATCH, für Lieferantenrechnungen
D45.MATCH, für Spediteursrechnungen
D46.GNUMMER, für Lieferantengutschriften
Relationales Feld (Lookup) in die Währungstabelle. Der Feldinhalt wird meistens durch F2 bzw. F3 - Auswahl gefüllt.
Relationales Feld zur Währungstabelle. Dieses Feld ist ein Lookup- relationales Feld in die Währungstabelle (C03). Bei SQL Abfragen wird dieses Feld zur Verknüpfung der eigentlichen Tabelle mit der Währungstabelle benötigt. Ein Beispiel: SELECT c03.icc03, COUNT(*) AS anzahl FROM c03,d40 WHERE c03.idc03=d40.idc03 AND ... GROUP BY 1 ... In den Tabellen, in denen die Währung als Lookup abgebildet wird, wird beim Ändern der Währung durch F3 eine Neuberechnung der Positionen mit der neuen Währung durchgeführt.
*/ Dieses Feld ist ein relationales Feld zur Tabelle: C03 - Währungen */ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen H03 und C03... */ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel: SELECT H03.IDC03 AS _Quelle, C03.IDC03 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") LEFT OUTER JOIN (My.Clients.Path.cDbfDir+"C03.DBF") ON H03.IDC03=C03.IDC03 ; WHERE H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Der obige Cursor enthält alle Datensätze der Tabelle H03 im Feld _Quelle und nur vorhandene Datensätze der Tabelle C03 */ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL. */ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind: SELECT H03.IDC03 AS _Quelle, C03.IDC03 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") INNER JOIN (My.Clients.Path.cDbfDir+"C03.DBF") ON H03.IDC03=C03.IDC03 ; WHERE H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Geht auch so... SELECT H03.IDC03 AS _Quelle, C03.IDC03 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") , (My.Clients.Path.cDbfDir+"C03.DBF") ; WHERE H03.IDC03=C03.IDC03 AND H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Es gibt auch einen Zugriff über die My - Struktur, die ein Tabellen-Objekt zurückgibt... LOCAL loC03 AS Object loC03 = My.Bussines.Strain.Misc.oC03[H03.IDC03] IF !EMPTY(loC03.IDC03) */ Dann wurde der Datensatz in der Tabelle C03 gefunden! */ Weiterer Code kann hier stehen... ENDIF
Relationales Feld zur Steuerschlüsseltabelle. Der Feldinhalt wird meistens durch F2 bzw. F3 - Auswahl gefüllt.
Relationales Feld zur Steuerschlüsseltabelle. Dieses Feld ist ein Lookup- relationales Feld in die Steuerschlüsseltabelle (C08). Dieses Feld ist außer im Artikelstamm sonst nur in diversen Positionstabellen zu finden. Über diesen Schlüssel wird die Berechnung des Steuersatzes der Positon bestimmt. Die Vorgabe der Berechnung kommt aus dem Artikelstamm und sollte nicht geändert werden. Hierzu sei ein Hinweis zur Steuerberechnung äußerst wichtig!! Die Steuerberechnung in PMS32 geht über verschiedene Felder der Kopf- sowie der Positionsdaten. Ein Beispiel für die Berechnung der Mehrwertsteuer im Vorgang können Sie sich im Codebeispiel ansehen. In der Stammmaske C0801 wird jeweils nur EIN Kürzel für den Steuerschlüssel "voller Steuersatz" für C08.IDC08 gewählt. Z.B. "001". Alle weiteren Daten werden dann in den Feldern C08.IDC09 - Steuerschlüsselland C08.GDATUM - Gültig ab und C08.IDC26 hinterlegt, wobei die Sprache zumindest in der Systemsprache vorliegen muss. Ändert sich der Steuersatz ab einem bestimmten Datum, so wird in der Maske C0108 einfach eine Kopie des Datensatzes mit "gleichem" Schlüssel erstellt und ein neues Datum für C08.GDATUM eingetragen. Damit berechnet PMS32 für alle Steuerberechnungen ab diesem Datum die Steuersätze mit dem neuen Steuersatz. In etwa Gleiches gilt für Steuerberechnungen, die für ausländische Kunden bzw. Lieferanten durchgeführt werden müssen. Hier wird eine Kopie mit gleichem Schlüssel erstellt und nur das Land C08.IDC09 entsprechend ausgetauscht. Beim Kunden bzw. Lieferanten muss dort im Feld "Steuerschlüsselland" .IDC09ST dann das entsprechende Land hinterlegt werden, was als Vorlage für Vorgänge bzw. Bestellungen dient.
*/ Dieses Feld ist ein relationales Feld zur Tabelle: C08 - Steuerschlüssel */ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen H03 und C08... */ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel: SELECT H03.IDC08 AS _Quelle, C08.IDC08 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") LEFT OUTER JOIN (My.Clients.Path.cDbfDir+"C08.DBF") ON H03.IDC08=C08.IDC08 ; WHERE H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Der obige Cursor enthält alle Datensätze der Tabelle H03 im Feld _Quelle und nur vorhandene Datensätze der Tabelle C08 */ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL. */ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind: SELECT H03.IDC08 AS _Quelle, C08.IDC08 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") INNER JOIN (My.Clients.Path.cDbfDir+"C08.DBF") ON H03.IDC08=C08.IDC08 ; WHERE H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Geht auch so... SELECT H03.IDC08 AS _Quelle, C08.IDC08 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") , (My.Clients.Path.cDbfDir+"C08.DBF") ; WHERE H03.IDC08=C08.IDC08 AND H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Es gibt auch einen Zugriff über die My - Struktur, die ein Tabellen-Objekt zurückgibt... LOCAL loC08 AS Object loC08 = My.Bussines.Strain.Misc.oC08[H03.IDC08] IF !EMPTY(loC08.IDC08) */ Dann wurde der Datensatz in der Tabelle C08 gefunden! */ Weiterer Code kann hier stehen... ENDIF
Lookup in : FIBU - Gruppen Kopfdaten (C20). Eine Änderung erfolgt durch F3 - Auswahl. Der Srung zu Stammtabelle erfolgt mit F2
Lookup- bzw. relationale Felder werden benötigt um Tabellen mittels SQL Select oder einer Relation zu verbinden. Durch die Namensgebung der Lookupfelder kann aus dem Feldnamen "meistens" die Zieltabelle der Relation bestimmt werden. Alle Relationen werden in PMS32 über sogenannte ID- Felder hergestellt, wobei die Zieltabelle ab der dritten Stelle des Feldnamens bis zur fünften Stelle des Feldnames angegeben ist. Aus ein paar Beispielen: D51.IDB01 => B01, I40.IDC42VKB => C42, I50.IDC25B => C25. Mit der Formel aus dem Codeblock kann zu "fast" allen ID Feldern die entsprechende Zieltabelle ermittelt werden. Spezial- Lookupfelder wie z.B.: I20.IDZWI oder I23.IDAUFA... benötigen zur Bestimmung die entsprechende IP, mit der über die Systemtabelle Y01 die entsprechende Zieltabelle ermittelt werden kann.
*/ Dieses Feld ist ein relationales Feld zur Tabelle: C20 - FIBU - Gruppen Kopfdaten */ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen H03 und C20... */ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel: SELECT H03.IDC20 AS _Quelle, C20.IDC20 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") LEFT OUTER JOIN (My.Clients.Path.cDbfDir+"C20.DBF") ON H03.IDC20=C20.IDC20 ; WHERE H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Der obige Cursor enthält alle Datensätze der Tabelle H03 im Feld _Quelle und nur vorhandene Datensätze der Tabelle C20 */ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL. */ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind: SELECT H03.IDC20 AS _Quelle, C20.IDC20 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") INNER JOIN (My.Clients.Path.cDbfDir+"C20.DBF") ON H03.IDC20=C20.IDC20 ; WHERE H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Geht auch so... SELECT H03.IDC20 AS _Quelle, C20.IDC20 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") , (My.Clients.Path.cDbfDir+"C20.DBF") ; WHERE H03.IDC20=C20.IDC20 AND H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Es gibt auch einen Zugriff über die My - Struktur, die ein Tabellen-Objekt zurückgibt... LOCAL loC20 AS Object loC20 = My.Bussines.Strain.Misc.oC20[H03.IDC20] IF !EMPTY(loC20.IDC20) */ Dann wurde der Datensatz in der Tabelle C20 gefunden! */ Weiterer Code kann hier stehen... ENDIF
Lookup in : Zahlungskonditionen (C24). Eine Änderung erfolgt durch F3 - Auswahl. Der Srung zu Stammtabelle erfolgt mit F2
Lookup- bzw. relationale Felder werden benötigt um Tabellen mittels SQL Select oder einer Relation zu verbinden. Durch die Namensgebung der Lookupfelder kann aus dem Feldnamen "meistens" die Zieltabelle der Relation bestimmt werden. Alle Relationen werden in PMS32 über sogenannte ID- Felder hergestellt, wobei die Zieltabelle ab der dritten Stelle des Feldnamens bis zur fünften Stelle des Feldnames angegeben ist. Aus ein paar Beispielen: D51.IDB01 => B01, I40.IDC42VKB => C42, I50.IDC25B => C25. Mit der Formel aus dem Codeblock kann zu "fast" allen ID Feldern die entsprechende Zieltabelle ermittelt werden. Spezial- Lookupfelder wie z.B.: I20.IDZWI oder I23.IDAUFA... benötigen zur Bestimmung die entsprechende IP, mit der über die Systemtabelle Y01 die entsprechende Zieltabelle ermittelt werden kann.
*/ Dieses Feld ist ein relationales Feld zur Tabelle: C24 - Zahlungskonditionen */ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen H03 und C24... */ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel: SELECT H03.IDC24 AS _Quelle, C24.IDC24 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") LEFT OUTER JOIN (My.Clients.Path.cDbfDir+"C24.DBF") ON H03.IDC24=C24.IDC24 ; WHERE H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Der obige Cursor enthält alle Datensätze der Tabelle H03 im Feld _Quelle und nur vorhandene Datensätze der Tabelle C24 */ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL. */ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind: SELECT H03.IDC24 AS _Quelle, C24.IDC24 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") INNER JOIN (My.Clients.Path.cDbfDir+"C24.DBF") ON H03.IDC24=C24.IDC24 ; WHERE H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Geht auch so... SELECT H03.IDC24 AS _Quelle, C24.IDC24 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") , (My.Clients.Path.cDbfDir+"C24.DBF") ; WHERE H03.IDC24=C24.IDC24 AND H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Es gibt auch einen Zugriff über die My - Struktur, die ein Tabellen-Objekt zurückgibt... LOCAL loC24 AS Object loC24 = My.Bussines.Strain.Misc.oC24[H03.IDC24] IF !EMPTY(loC24.IDC24) */ Dann wurde der Datensatz in der Tabelle C24 gefunden! */ Weiterer Code kann hier stehen... ENDIF
ID der Adresse
Lookup- bzw. relationale Felder werden benötigt um Tabellen mittels SQL Select oder einer Relation zu verbinden. Durch die Namensgebung der Lookupfelder kann aus dem Feldnamen "meistens" die Zieltabelle der Relation bestimmt werden. Alle Relationen werden in PMS32 über sogenannte ID- Felder hergestellt, wobei die Zieltabelle ab der dritten Stelle des Feldnamens bis zur fünften Stelle des Feldnames angegeben ist. Aus ein paar Beispielen: D51.IDB01 => B01, I40.IDC42VKB => C42, I50.IDC25B => C25. Mit der Formel aus dem Codeblock kann zu "fast" allen ID Feldern die entsprechende Zieltabelle ermittelt werden. Spezial- Lookupfelder wie z.B.: I20.IDZWI oder I23.IDAUFA... benötigen zur Bestimmung die entsprechende IP, mit der über die Systemtabelle Y01 die entsprechende Zieltabelle ermittelt werden kann.
*/ Dieses Feld ist ein relationales Feld zur Tabelle: - */ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen H03 und ... */ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel: SELECT H03.IDC6X AS _Quelle, . AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") LEFT OUTER JOIN () ON H03.IDC6X=. ; WHERE H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Der obige Cursor enthält alle Datensätze der Tabelle H03 im Feld _Quelle und nur vorhandene Datensätze der Tabelle */ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL. */ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind: SELECT H03.IDC6X AS _Quelle, . AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") INNER JOIN () ON H03.IDC6X=. ; WHERE H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Geht auch so... SELECT H03.IDC6X AS _Quelle, . AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") , () ; WHERE H03.IDC6X=. AND H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Es gibt auch einen Zugriff über die My - Struktur, die ein Tabellen-Objekt zurückgibt... LOCAL lo AS Object lo = My.Bussines.Strain.Misc.o[H03.IDC6X] IF !EMPTY(lo.) */ Dann wurde der Datensatz in der Tabelle gefunden! */ Weiterer Code kann hier stehen... ENDIF
ID der Übertragung
*/ Dieses Feld ist ein relationales Feld zur Tabelle: H02 - FIBU Positionsdaten */ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen H03 und H02... */ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel: SELECT H03.IDH02 AS _Quelle, H02.IDH02 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") LEFT OUTER JOIN (My.Clients.Path.cDbfDir+"H02.DBF") ON H03.IDH02=H02.IDH02 ; WHERE H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Der obige Cursor enthält alle Datensätze der Tabelle H03 im Feld _Quelle und nur vorhandene Datensätze der Tabelle H02 */ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL. */ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind: SELECT H03.IDH02 AS _Quelle, H02.IDH02 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") INNER JOIN (My.Clients.Path.cDbfDir+"H02.DBF") ON H03.IDH02=H02.IDH02 ; WHERE H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Geht auch so... SELECT H03.IDH02 AS _Quelle, H02.IDH02 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") , (My.Clients.Path.cDbfDir+"H02.DBF") ; WHERE H03.IDH02=H02.IDH02 AND H03.... ; INTO CURSOR qH03 NOFILTER READWRITE
*/ Das Feld IDH03 ist das Primärschlüsselfeld der Tabelle H03 - Buchungssätze FIBU */ Dieses Feld kann in anderen Tabellen als relationaler Schlüssel zu dieser Tabelle dienen */ An einem SQL - Beispiel eines beschreibbaren Cursors... */ Die Daten des Cursors können zwar geändert werden, die Änderungen werden jedoch NICHT in die Datenbank zurückgeschrieben! SELECT H03.* FROM (My.Clients.Path.cDbfDir+"H03.DBF") ; WHERE H03.IDH03 = m.idh03 ; INTO CURSOR qH03 NOFILTER READWRITE */ Werden die Daten über die die Methode _SqlRead() abgerufen, so kann der Pfad als Datenbank-Verweis angegeben werden... IF poThis._SqlRead([SELECT H03.* FROM CDBFDIR!H03 WHERE IDH03=']+m.idh03+['],"qH03",2) */ Hier könnte Code stehen... */ Siehe auch: My.Clients.SQL.SQLRead(tnDataSession,tcSQLStatement,tcAlias,tvTable) ENDIF
Primärschlüssel der Mastertabelle
Primärschlüssel der in IPXXX (IPY01) angegebenen Mastertabelle. Die entsprechenden Daten können über die Systemtabelle Y01 errechnet werden.
E10.IDE10, für Rechnungen, Gutschriften und Barverkäufe
D44.IDD44, für Lieferantenrechnungen
D45.IDD45, für Spediteursrechnungen
D46.IDD46, für Lieferantengutschriften
*/ Dieses ID Feld IDXXX kann Informationen aus verschiedenen Tabellen enthalten! */ Wichtig in diesem Zusammenhang ist das IP Feld IPXXX in dem über die Systemtabelle Y01 die Zieltabelle angegeben wird... */ Substitution des Feldes IPXXX : LOCAL loY01 AS Object,lcDbf AS String,lcIC AS String,lcID AS String,loDbf AS Object,lxDbf */ Wir holen uns zunächst die Informationen über die IP aus der Systemtabelle Y01... loY01 = My.Bussines.Strain.Misc.vY01[H03.IPXXX] IF !EMPTY(m.lcIP) */ Dann wurden Informationen gefunden... lcDbf = RTRIM(loY01.cmDbf) && Die Mastertabelle der IP lcID = "ID"+m.lcDbf && Das Primärschlüsselfeld der Mastertabelle lcIC = RTRIM(loY01.cMic) && Das Candidate Feld der Mastertabelle (z.B. Artikelnummer: B01=>ARTNR) lxDbf = "o"+m.lcDbf IF PEMSTATUS(My.Bussines.Strain.Misc,m.lxDbf,5) */ Dann gibt es einen direkten Abruf des Datensatzes loDbf = My.Bussines.Strain.Misc.&lxDbf[H03.IDXXX] IF !EMPTY(loDbf.&lcID) */ Dann wurden die Daten gefunden... ENDIF ENDIF ENDIF */ Ein direkter Abruf kann auch über: LOCAL loDbf AS Object loDbf = My.Bussines.Strain.Misc.oSWTbl(H03.IPXXX,H03.IDXXX) */ erfolgen, hier muss man prüfen, ob loDbf <> .NULL. ist... IF !ISNULL(m.loDbf) */ Dann kann auf die Daten der Switched Table zugeriffen werden! */ Um dem Benutzer die Aufgabe einfacher zu machen werden an das Tabellenobjekt folgende Felder geadded: */ __DBF => Name der Tabelle (B01) */ __ID => Name des ID Feldes */ __IC => Name des IC Feldes, falls vorhanden ENDIF
Lookup in : Zahlungspläne (Z01). Eine Änderung erfolgt durch F3 - Auswahl. Der Srung zu Stammtabelle erfolgt mit F2
Lookup- bzw. relationale Felder werden benötigt um Tabellen mittels SQL Select oder einer Relation zu verbinden. Durch die Namensgebung der Lookupfelder kann aus dem Feldnamen "meistens" die Zieltabelle der Relation bestimmt werden. Alle Relationen werden in PMS32 über sogenannte ID- Felder hergestellt, wobei die Zieltabelle ab der dritten Stelle des Feldnamens bis zur fünften Stelle des Feldnames angegeben ist. Aus ein paar Beispielen: D51.IDB01 => B01, I40.IDC42VKB => C42, I50.IDC25B => C25. Mit der Formel aus dem Codeblock kann zu "fast" allen ID Feldern die entsprechende Zieltabelle ermittelt werden. Spezial- Lookupfelder wie z.B.: I20.IDZWI oder I23.IDAUFA... benötigen zur Bestimmung die entsprechende IP, mit der über die Systemtabelle Y01 die entsprechende Zieltabelle ermittelt werden kann.
*/ Dieses Feld ist ein relationales Feld zur Tabelle: Z01 - Zahlungspläne */ Evetuell ist dieses Feld NICHT gefüllt, dann besteht keine relationale Verbindung zwischen H03 und Z01... */ Eine SQL - Abfrage zum Ermitteln von Quelle und Ziel: SELECT H03.IDZ01 AS _Quelle, Z01.IDZ01 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") LEFT OUTER JOIN (My.Clients.Path.cDbfDir+"Z01.DBF") ON H03.IDZ01=Z01.IDZ01 ; WHERE H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Der obige Cursor enthält alle Datensätze der Tabelle H03 im Feld _Quelle und nur vorhandene Datensätze der Tabelle Z01 */ Besteht keine relationale Verbindung, so ist der Inhalt der Cursorspalte _Ziel = .NULL. */ Die 'gleiche' Abfrage in der NUR relationale Daten vonhanden sind: SELECT H03.IDZ01 AS _Quelle, Z01.IDZ01 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") INNER JOIN (My.Clients.Path.cDbfDir+"Z01.DBF") ON H03.IDZ01=Z01.IDZ01 ; WHERE H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Geht auch so... SELECT H03.IDZ01 AS _Quelle, Z01.IDZ01 AS _Ziel ; FROM (My.Clients.Path.cDbfDir+"H03.DBF") , (My.Clients.Path.cDbfDir+"Z01.DBF") ; WHERE H03.IDZ01=Z01.IDZ01 AND H03.... ; INTO CURSOR qH03 NOFILTER READWRITE */ Es gibt auch einen Zugriff über die My - Struktur, die ein Tabellen-Objekt zurückgibt... LOCAL loZ01 AS Object loZ01 = My.Bussines.Strain.Misc.oZ01[H03.IDZ01] IF !EMPTY(loZ01.IDZ01) */ Dann wurde der Datensatz in der Tabelle Z01 gefunden! */ Weiterer Code kann hier stehen... ENDIF
IP der Adresstabelle
Ein IP-Feld spezifiziert die "Art" eines Datensatzes. Die Erklärungen können über die (System) Tabelle Y01 ermittelt werden. Am Beispiel von B01.IPB01 => Y01.IPY01. Die Tabelle Y01 enthält noch den Sprachkenner IDC26, weshalb dort über die entsprechende Sprache gefiltert werden muss. Für die IP-Felder IPAUF und IPZWI, bei denen keine (existierende) Tabelle angegeben ist gilt: das entsprechende ID-Feld der Tabelle ist ein Switch-Primärschlüssel aus der Tabelle, die über Y01.MASTER ermittelt werden kann. IP-Felder sind Präfixe für bestimmte Tabellen. Beispiel an E11 (Vorgangspositionen) E11.IPY01 = "709" => NN-Artikel. Teilweise geben IP-Felder auch einen Status des entsprechenden Datensatzes an, I22.IPI22S => Status der Lagerumbuchung kann aus Y01.KURZ bzw. Y01.BEZEI ermittelt werden.
*/ Dieses Feld ist ein IP - Feld der Tabelle... */ Der Abruf der Informationen kann über die Tabelle Y01 erfolgen... */ IP Felder geben entweder eine Zeilenart oder eine relationale Tabelle an... LOCAL loY01 AS Object loY01 = My.Bussines.Strain.Misc.vY01[H03.IPC6X] */ Damit kann die Zeilenart bestimmt werden...
Datenherkunft über Y01 zu ermitteln.
Dieses IP Feld enthält die Datenherkunft. Damit kann die Master-Tabelle ermittelt werden, aus der die Daten ermittelt wurden. Zu diesem Feld gehört das Feld IDXXX, dass die ID innerhalb der Mastertabelle angibt. (Primärschlüssel) Dieses Feld enthält folgende Werte:
"103", für Rechnungen
"104", für Gutschriften
"105", für Barverkäufe
"325", für Lieferantenrechnungen
"328", für Spediteuersrechnungen
"326", für Spediteursrechnungen
*/ Dieses Feld ist ein IP - Feld der Tabelle... */ Der Abruf der Informationen kann über die Tabelle Y01 erfolgen... */ IP Felder geben entweder eine Zeilenart oder eine relationale Tabelle an... LOCAL loY01 AS Object loY01 = My.Bussines.Strain.Misc.vY01[H03.IPXXX] */ Damit kann die Zeilenart bestimmt werden...
Datenherkunft über Y01 zu ermitteln.
Dieses IP Feld enthält die Datenherkunft. Siehe auch IPXXX. Damit kann die Master-Tabelle ermittelt werden, aus der die Daten ermittelt wurden. Zu diesem Feld gehört das Feld IDXXX, dass die ID innerhalb der Mastertabelle angibt. (Primärschlüssel) Dieses Feld enthält folgende Werte:
"103", für Rechnungen
"104", für Gutschriften
"105", für Barverkäufe
"325", für Lieferantenrechnungen
"328", für Spediteuersrechnungen
"326", für Spediteursrechnungen
*/ Dieses Feld ist ein IP - Feld der Tabelle... */ Der Abruf der Informationen kann über die Tabelle Y01 erfolgen... */ IP Felder geben entweder eine Zeilenart oder eine relationale Tabelle an... LOCAL loY01 AS Object loY01 = My.Bussines.Strain.Misc.vY01[H03.IPY01] */ Damit kann die Zeilenart bestimmt werden...
Status des Zahlungsplans
Ein IP-Feld spezifiziert die "Art" eines Datensatzes. Die Erklärungen können über die (System) Tabelle Y01 ermittelt werden. Am Beispiel von B01.IPB01 => Y01.IPY01. Die Tabelle Y01 enthält noch den Sprachkenner IDC26, weshalb dort über die entsprechende Sprache gefiltert werden muss. Für die IP-Felder IPAUF und IPZWI, bei denen keine (existierende) Tabelle angegeben ist gilt: das entsprechende ID-Feld der Tabelle ist ein Switch-Primärschlüssel aus der Tabelle, die über Y01.MASTER ermittelt werden kann. IP-Felder sind Präfixe für bestimmte Tabellen. Beispiel an E11 (Vorgangspositionen) E11.IPY01 = "709" => NN-Artikel. Teilweise geben IP-Felder auch einen Status des entsprechenden Datensatzes an, I22.IPI22S => Status der Lagerumbuchung kann aus Y01.KURZ bzw. Y01.BEZEI ermittelt werden.
*/ Dieses Feld ist ein IP - Feld der Tabelle... */ Der Abruf der Informationen kann über die Tabelle Y01 erfolgen... */ IP Felder geben entweder eine Zeilenart oder eine relationale Tabelle an... LOCAL loY01 AS Object loY01 = My.Bussines.Strain.Misc.vY01[H03.IPZ02] */ Damit kann die Zeilenart bestimmt werden...
Habenkonto der Buchung
Umrechnungskurs für Währungsumrechnungen. Der Kurs muss größer Null sein!
Umrechnungskurs für Währungsumrechnungen. Der Kurs muss größer Null sein! Der Kurs wird für die Umrechnung von der Systemwährung in andere Fremdwährungen benötigt. Zusätzlich werden die Felder FAKTOR, WSYSBOL, NMINW und NKOMMA zur Umrechnung benötigt. An einem Codebeispiel für die Umrechnung in die Kundenwährung in einem Vorgang können Sie die Formel zur Umrechnung von Währungen einsehen.
*/ Codebeispiel für die Umrechnung des VK-Preises im Vorgang zur Währung des Kunden. */ Angenommen, der Kunde bezahlt seine Rechnungen in US Dollar und in den Stammdaten sind folgende Werte hinterlegt: */ Maske C0301: */ C03.IDC03 = "USD" */ C03.KURS = 1,236 && US-Doller für einen EURO */ C03.FAKTOR = 1 && Bleibt eins, bei kleinen Währungen */ Dann wird der VK-Preis in US Doller für eine Position wie folgt berechnet: */ Maske E....: */ E10.IDC03 = "USD" */ E10.FAKTOR = 1 */ E10.KURS = 1,236 && Wird bei Neuanlage übernommen */ E10.WSYMBOL = "EUR" && Systemwährung */ E12.VKSTAMM = 134,24 EUR && Summe in Systemwährung, berechnet aus Kalkualtion */ E11.PREIS_F = Gesamtpreis in Fremdwährung e11.preis_f = e12.vkstamm * e10.kurs / e10.faktor e11.preis_f = 134,24 * 1,236 / 1 = 165,92064 => Gerundet: 165,92 US$ */ Der Preis wird dann noch durch eine Systemroutine auf die korrekte Anzahl der Nachkommastellen gerundet */ Außerdem wird in der Systemroutine die "kleinste Währungseinheit" - NMINW beachtet, die die kleinste */ Einheit in der Währung angibt. Z.B., in der Schweiz 5 Rappen => 0,05 SFR */ Umrechnung von einer Fremdwährung in eine andere Fremdwährung über die Systemwährung */ Währung a: IDC03="USD", KURS=1,236, FAKTOR=1 */ Währung b: IDC03="SFR", KURS=1,352, FAKTOR=1 */ Nach obigem Beispiel: WERTb = WERTa * FAKTORa / KURSa / FAKTORb * KURSb WERTb = 165,92 * 1 / 1,236 / 1 * 1,352 = 181,49177994 SFR => Gerundet: 181,50 SFR !! NMINW=0,05
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld führt ein sogenanntes Änderungskennzeichen mit.
Bei jeder Änderung an dem Datensatz der Tabelle wird dieses Feld um 1 nach oben gezählt.
Bei einem Wert der größer 999 ist wird wieder bei 0 angefangen.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LASTUPD WITH (LASTUPD+1)%1000 UPDATE .... , LASTUPD = (LASTUPD+1)%1000
Automatikkonto J/N => DATEV-WINDOWS. Wird aus C20/C21 ermittelt
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das letzte Änderungsdatum des Datensatzes.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LDATUM WITH My.xDate UPDATE .... , LDATUM = My.xDate
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das Programm der letzten Änderung des Datensatzes.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LPRG WITH My.lProgram UPDATE .... , LPRG = My.lProgram
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält den Benutzer der letzten Änderung des Datensatzes.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LWER WITH My.cUser UPDATE .... , LWER = My.cUser
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält die Uhrzeit der letzten Änderung des Datensatzes.
*/ Ein Beispiel für die Berechnung: REPLACE ... , LZEIT WITH My.xTime UPDATE .... , LZEIT = My.xTime
Suchbegriff, der nicht eindeutig sein muss. Er dient zum schnellen Finden von Daten innerhalb einer Auswahlliste.
Suchbegriff, der nicht eindeutig sein muss. Er dient zum schnellen Finden von Daten innerhalb einer Auswahlliste. Kann als weiterer Ordnungsbegriff für die Suche in Auswahllisten genutzt werden. Im Artikelstamm könnten so z.B. Artikelarten unterschieden werden. Beispiele: "SCHUETZ, SCHRANK, KLEMMLEISTE, etc."
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das Neuanlagedatum des Datensatzes.
My.xDate gibt das aktuelle Datum zurück.
Bitte verwenden Sie nicht DATE()!
*/ Ein Beispiel für die Berechnung: INSERT INTO ... (...,NDATUM) VALUES (...,My.xDate)
Anzahl der Nachkommastellen für Währungsumrechnungen.
Anzahl der Nachkommastellen für Währungsumrechnungen. Mit dem Wert wird die Anzahl der Nachkommastellen in der Fremdwährung berechnet. Zusätzlich werden die Felder FAKTOR, WSYSBOL, NMINW und KURS zur Umrechnung benötigt. An einem Codebeispiel für die Umrechnung in die Kundenwährung in einem Vorgang können Sie die Formel zur Umrechnung von Währungen einsehen.
*/ Codebeispiel für die Umrechnung des VK-Preises im Vorgang zur Währung des Kunden. */ Angenommen, der Kunde bezahlt seine Rechnungen in US Dollar und in den Stammdaten sind folgende Werte hinterlegt: */ Maske C0301: */ C03.IDC03 = "USD" */ C03.KURS = 1,236 && US-Doller für einen EURO */ C03.FAKTOR = 1 && Bleibt eins, bei kleinen Währungen */ Dann wird der VK-Preis in US Doller für eine Position wie folgt berechnet: */ Maske E....: */ E10.IDC03 = "USD" */ E10.FAKTOR = 1 */ E10.KURS = 1,236 && Wird bei Neuanlage übernommen */ E10.WSYMBOL = "EUR" && Systemwährung */ E12.VKSTAMM = 134,24 EUR && Summe in Systemwährung, berechnet aus Kalkualtion */ E11.PREIS_F = Gesamtpreis in Fremdwährung e11.preis_f = e12.vkstamm * e10.kurs / e10.faktor e11.preis_f = 134,24 * 1,236 / 1 = 165,92064 => Gerundet: 165,92 US$ */ Der Preis wird dann noch durch eine Systemroutine auf die korrekte Anzahl der Nachkommastellen gerundet */ Außerdem wird in der Systemroutine die "kleinste Währungseinheit" - NMINW beachtet, die die kleinste */ Einheit in der Währung angibt. Z.B., in der Schweiz 5 Rappen => 0,05 SFR */ Umrechnung von einer Fremdwährung in eine andere Fremdwährung über die Systemwährung */ Währung a: IDC03="USD", KURS=1,236, FAKTOR=1 */ Währung b: IDC03="SFR", KURS=1,352, FAKTOR=1 */ Nach obigem Beispiel: WERTb = WERTa * FAKTORa / KURSa / FAKTORb * KURSb WERTb = 165,92 * 1 / 1,236 / 1 * 1,352 = 181,49177994 SFR => Gerundet: 181,50 SFR !! NMINW=0,05
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das Programm der Neuanlage des Datensatzes.
My.lProgram gibt das aktuelle Programm zurück.
*/ Ein Beispiel für die Berechnung: INSERT INTO ... (...,NWER) VALUES (...,My.cUser)
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält den Benutzer der Neuanlage des Datensatzes.
My.cUser gibt den angemeldeten Benutzer (C65) zurück.
*/ Ein Beispiel für die Berechnung: INSERT INTO ... (...,NWER) VALUES (...,My.cUser)
Diese Feld dient als Timestamp Feld innerhalb der Tabelle und wird vom System verwendet.
Dieses Feld enthält das Neuanlageuhrzeit des Datensatzes.
My.xTime gibt das aktuelle Uhrzeit zurück.
Bitte verwenden Sie nicht TIME()!
*/ Ein Beispiel für die Berechnung: INSERT INTO ... (...,NZEIT) VALUES (...,My.xTime)
Anzahl der Tage ab Rechnungsdatum, ab dem ohne Skonto gerechnet wird
Anzahl der Tage ab Rechnungsdatum, ab dem ohne Skonto gerechnet wird. Beachten Sie auch die Eingaben im Feld SKTAGE - SKTAGE4. Die dort enthaltenen Werte enthalten, wenn größer Null, die Tage ab rechnungsdatum in denen Skonto gewährt wird.
Skonto des Rechnungsbetrags
Enthalten ist der erste Skonto Betag in Prozent. Beachten Sie bitte auch die Felder SKTAGE - SKTAGE4 und SKONTO - SKONTO4.
Skonto des Rechnungsbetrags
Enthalten ist der erste Skonto Betag in Prozent. Beachten Sie bitte auch die Felder SKTAGE - SKTAGE4 und SKONTO - SKONTO4.
Skonto des Rechnungsbetrags
Enthalten ist der erste Skonto Betag in Prozent. Beachten Sie bitte auch die Felder SKTAGE - SKTAGE4 und SKONTO - SKONTO4.
Skonto des Rechnungsbetrags
Enthalten ist der erste Skonto Betag in Prozent. Beachten Sie bitte auch die Felder SKTAGE - SKTAGE4 und SKONTO - SKONTO4.
Zeitraum in Tagen ab Rechnungsdatum zu dem das Skonto gewährt wird
Zeitraum in Tagen ab Rechnungsdatum zu dem das Skonto gewährt wird. Bitte beachten Sie auch die Werte SKONTO - SKONTO4.
Zeitraum in Tagen ab Rechnungsdatum zu dem das Skonto gewährt wird
Zeitraum in Tagen ab Rechnungsdatum zu dem das Skonto gewährt wird. Bitte beachten Sie auch die Werte SKONTO - SKONTO4.
Zeitraum in Tagen ab Rechnungsdatum zu dem das Skonto gewährt wird
Zeitraum in Tagen ab Rechnungsdatum zu dem das Skonto gewährt wird. Bitte beachten Sie auch die Werte SKONTO - SKONTO4.
Zeitraum in Tagen ab Rechnungsdatum zu dem das Skonto gewährt wird
Zeitraum in Tagen ab Rechnungsdatum zu dem das Skonto gewährt wird. Bitte beachten Sie auch die Werte SKONTO - SKONTO4.
Storniert. Diese Option gibt an, ob die Position oder der ganze Vorgang storniert wurde.
Storniert. Diese Option gibt an, ob die Position oder der ganze Vorgang storniert wurde. Der Wert ist vom Benutzer "meistens" nicht zu ändern, sondern wird vom System gesetzt. Wird eine Position bzw. ein Vorgang storniert, so ist "meistens" der Stornogrund, siehe Feld GRUND, anzugeben. Vorgänge bzw. Positionen werden Storniert, wenn diese z.B. vorher verbucht, siehe GEBUCHT, wurden. Dann dürfen die Positionen nicht mehr gelöscht werden.
Preisfeld in Firmenwährung. Diese Feld enthält einen Wert in Firmenwährung.
Preisfeld in Firmenwährung. Diese Feld enthält einen Wert in Firmenwährung.
Dieses Feld enthält den Umsatz OHNE Skonto in Firmenwährung des Kopfes der Rechnung bzw. Gutschrift oder des Barverkaufs.
Dieses Feld wird aus folgenden Feldern gefüllt:
E10.h_vol3, für Rechnungen, Gutschriften und Barverkäufe
D44.ekgnet, für Lieferantenrechnungen
D45.ekgnet, für Spediteursrechnungen
D46.eknet, für Lieferantengutschriften
Preisfeld in Fremdwährung. Dieses Feld enthält einen Wert in Fremdwährung. Bitte beachten Sie in diesem Zusammenhang die Einstellung für Währung: IDC03
Umsatz bzw. Rechnungswert in der Fremdwährung. Siehe auch UMSATZ - in Firmenwährung.
Zu- bzw. Abschlagsfeld in Prozent "%". Bitte achten Sie auf die Einstellungen "%","/",".","F" falls vorhanden.
ustcode+sprache -> C08
Valuta Datum bei der Vergabe von Skonto
Das Valuta Datum berechnet sich nach der Anzahl der Skontotage ab dem Rechnungsdatum. Beachten Sie bitte, dass es ab Version 1.0.04 bis zu vier Valuta Daten geben kann.
Datumsfeld. Hier können Sie wenn erlaubt ein Datum eingeben oder mit dem Button rechts neben dem Feld ein Datum aus der Kalendermaske auswählen. Bitte beachten Sie, dass Datumseingaben vor dem 01.01.1600 als falsches Datum interpretiert werden!
Basiswährung des Vorgangs. Enthält das Systemwährungskürzel aus den Firmenparametern.
Basiswährung des Vorgangs. Enthält das Systemwährungskürzel aus den Firmenparametern. Zusätzlich werden die Felder FAKTOR, NKOMMA, NMINW und KURS zur Umrechnung benötigt. An einem Codebeispiel für die Umrechnung in die Kundenwährung in einem Vorgang können Sie die Formel zur Umrechnung von Währungen einsehen.
*/ Codebeispiel für die Umrechnung des VK-Preises im Vorgang zur Währung des Kunden. */ Angenommen, der Kunde bezahlt seine Rechnungen in US Dollar und in den Stammdaten sind folgende Werte hinterlegt: */ Maske C0301: */ C03.IDC03 = "USD" */ C03.KURS = 1,236 && US-Doller für einen EURO */ C03.FAKTOR = 1 && Bleibt eins, bei kleinen Währungen */ Dann wird der VK-Preis in US Doller für eine Position wie folgt berechnet: */ Maske E....: */ E10.IDC03 = "USD" */ E10.FAKTOR = 1 */ E10.KURS = 1,236 && Wird bei Neuanlage übernommen */ E10.WSYMBOL = "EUR" && Systemwährung */ E12.VKSTAMM = 134,24 EUR && Summe in Systemwährung, berechnet aus Kalkualtion */ E11.PREIS_F = Gesamtpreis in Fremdwährung e11.preis_f = e12.vkstamm * e10.kurs / e10.faktor e11.preis_f = 134,24 * 1,236 / 1 = 165,92064 => Gerundet: 165,92 US$ */ Der Preis wird dann noch durch eine Systemroutine auf die korrekte Anzahl der Nachkommastellen gerundet */ Außerdem wird in der Systemroutine die "kleinste Währungseinheit" - NMINW beachtet, die die kleinste */ Einheit in der Währung angibt. Z.B., in der Schweiz 5 Rappen => 0,05 SFR */ Umrechnung von einer Fremdwährung in eine andere Fremdwährung über die Systemwährung */ Währung a: IDC03="USD", KURS=1,236, FAKTOR=1 */ Währung b: IDC03="SFR", KURS=1,352, FAKTOR=1 */ Nach obigem Beispiel: WERTb = WERTa * FAKTORa / KURSa / FAKTORb * KURSb WERTb = 165,92 * 1 / 1,236 / 1 * 1,352 = 181,49177994 SFR => Gerundet: 181,50 SFR !! NMINW=0,05
Siehe auch : Hauptmenü / Hauptindex / Such Index / Cursor Index / Programm Module / Tabellen Index / Tabellenmodule / Masken Index / Programmcode Index / Servicepacks / My.Struktur / Funktionen / Sonstiges Index
Lokale Benutzerhilfe : Meine eigene Hilfe / Zurück zur PMS32 - Hilfe
Dateiversion:1.0.04#3648 - H.U.DD#SSFF 02.12.2022
Senden Sie Ihren Kommentar zu diesem Thema an das Entwicklungsteam von PMS32
Weitere Informationen finden Sie unter der aktuellen
PMS32 WEB-Hilfe
Die Informationen dieser Mitteilung sind vertraulich und nur für Sie bestimmt. Unbefugtes Weiterleiten,
Veröffentlichen, Kopieren usw. sind untersagt und werden gerichtlich verfolgt.
© PMS Compelec GmbH 2022 ® el-Projekt