OBS/Stammdaten/Artikel: Import Externe-Artikeltexte: Unterschied zwischen den Versionen
Nimz (Diskussion | Beiträge) (→Makro) |
Nimz (Diskussion | Beiträge) |
||
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 34: | Zeile 34: | ||
===ArtikelTyp=== | ===ArtikelTyp=== | ||
In dieser Funktion kann die Vorgabe der Einstellung ''Typ'' übersteuert werden. | In dieser Funktion kann die Vorgabe der Einstellung ''Typ'' übersteuert werden. | ||
=== | ===ArtikelSprache=== | ||
In dieser Funktion kann die Vorgabe der Einstellung '' | In dieser Funktion kann die Vorgabe der Einstellung ''Sprache'' übersteuert werden. | ||
===ShopZuord=== | ===ShopZuord=== | ||
Diese Funktion muss im Makro nicht vorkommen. Sie ist optional und dient der Angabe von Shop-Schnittstellen. Die Texte können somit direkt beim Import einer oder mehreren Shop-Schnittstellen zugeordnet werden. Die Nummern der Schnittstellen sind mit Komma getrennt anzugeben bzw. zurückzugeben.<br /> | Diese Funktion muss im Makro nicht vorkommen. Sie ist optional und dient der Angabe von Shop-Schnittstellen. Die Texte können somit direkt beim Import einer oder mehreren Shop-Schnittstellen zugeordnet werden. Die Nummern der Schnittstellen sind mit Komma getrennt anzugeben bzw. zurückzugeben.<br /> | ||
Zeile 48: | Zeile 49: | ||
{{Hinweis|Im Normalfall werden Sie nur Variablen des Typs [[https://de.wikipedia.org/wiki/Zeichenkette#Pascal|'''string''']] benötigen.}} | {{Hinweis|Im Normalfall werden Sie nur Variablen des Typs [[https://de.wikipedia.org/wiki/Zeichenkette#Pascal|'''string''']] benötigen.}} | ||
===ExtractFileName=== | ===ExtractFileName=== | ||
Verwendung: Dateinamen aus Dateipfad auslesen. | Verwendung: Dateinamen aus Dateipfad auslesen.<br /> | ||
Parameter: string | Parameter: string<br /> | ||
Rückgabe: string | Rückgabe: string<br /> | ||
Beispiel:<br /> | Beispiel:<br /> | ||
cDatei := 'c:\\Ordner\Datei.txt'; | cDatei := 'c:\\Ordner\Datei.txt'; | ||
Zeile 56: | Zeile 57: | ||
Erklärung: Der String-Variable ''cDatei'' wird der Wert ''c:\\Ordner\Datei.txt'' zugewiesen. Mit ''ExtractFileName'' wird der Dateiname herausgesucht und zurückgegeben. Danach enthält ''cDatei'' nur noch den Wert ''Datei.txt''. | Erklärung: Der String-Variable ''cDatei'' wird der Wert ''c:\\Ordner\Datei.txt'' zugewiesen. Mit ''ExtractFileName'' wird der Dateiname herausgesucht und zurückgegeben. Danach enthält ''cDatei'' nur noch den Wert ''Datei.txt''. | ||
===StrTran=== | ===StrTran=== | ||
Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen). | Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen).<br /> | ||
Parameter: string, string, string | Parameter: string, string, string<br /> | ||
Rückgabe: string | Rückgabe: string<br /> | ||
Beispiel:<br /> | Beispiel:<br /> | ||
cDatei := 'Datei.txt'; | cDatei := 'Datei.txt'; | ||
Zeile 65: | Zeile 66: | ||
===Length=== | ===Length=== | ||
Verwendung: Ermittelt die Länge einer Zeichenkette. | Verwendung: Ermittelt die Länge einer Zeichenkette.<br /> | ||
Parameter: string | Parameter: string<br /> | ||
Rückgabe: integer | Rückgabe: integer<br /> | ||
Beispiel:<br /> | Beispiel:<br /> | ||
cDatei := 'Datei'; | cDatei := 'Datei'; | ||
Zeile 73: | Zeile 74: | ||
Erklärung: Der String-Variable ''cDatei'' wird der Wert ''Datei'' zugewiesen. Mit ''Length'' wird die Länge ermittelt. Das Wort "Datei" hat 5 Buchstaben. ''nLaenge'' hat also den Wert ''5''. | Erklärung: Der String-Variable ''cDatei'' wird der Wert ''Datei'' zugewiesen. Mit ''Length'' wird die Länge ermittelt. Das Wort "Datei" hat 5 Buchstaben. ''nLaenge'' hat also den Wert ''5''. | ||
===LeftStr/RightStr=== | ===LeftStr/RightStr=== | ||
Verwendung: Gibt den linken/rechten Teil einer Zeichenketten zurück. Es werden dabei maximal soviele Zeichen zurückgegeben, wie im zweiten Parameter angegeben. | Verwendung: Gibt den linken/rechten Teil einer Zeichenketten zurück. Es werden dabei maximal soviele Zeichen zurückgegeben, wie im zweiten Parameter angegeben.<br /> | ||
Parameter: string, integer | Parameter: string, integer<br /> | ||
Rückgabe: string | Rückgabe: string<br /> | ||
Beispiel:<br /> | Beispiel:<br /> | ||
cDatei := 'Datei'; | cDatei := 'Datei'; | ||
Zeile 84: | Zeile 85: | ||
===UpperCase/LowerCase=== | ===UpperCase/LowerCase=== | ||
Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben. | Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben.<br /> | ||
Parameter: string | Parameter: string<br /> | ||
Rückgabe: string | Rückgabe: string<br /> | ||
Beispiel:<br /> | Beispiel:<br /> | ||
cDatei := 'Datei'; | cDatei := 'Datei'; | ||
Zeile 93: | Zeile 94: | ||
Erklärung: Der String-Variable ''cDatei'' wird der Wert ''Datei'' zugewiesen. Mit ''UpperCase'' und ''LowerCase'' wird die Zeichenkette umgewandelt. ''cUpper'' enthält danach den Wert ''DATEI'' und ''cLower'' den Wert ''datei''. | Erklärung: Der String-Variable ''cDatei'' wird der Wert ''Datei'' zugewiesen. Mit ''UpperCase'' und ''LowerCase'' wird die Zeichenkette umgewandelt. ''cUpper'' enthält danach den Wert ''DATEI'' und ''cLower'' den Wert ''datei''. | ||
===Token=== | ===Token=== | ||
Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück. | Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück.<br /> | ||
Parameter: string, string, integer | Parameter: string, string, integer<br /> | ||
Rückgabe: string | Rückgabe: string<br /> | ||
Beispiel:<br /> | Beispiel:<br /> | ||
cDatei := 'Datei_Name_Mit_Unterstrichen.txt'; | cDatei := 'Datei_Name_Mit_Unterstrichen.txt'; | ||
cTeil := Token(cDatei,'_',2); | cTeil := Token(cDatei,'_',2); | ||
Erklärung: Der String-Variable ''cDatei'' wird der Wert ''Datei_Name_Mit_Unterstrichen.txt'' zugewiesen. Mit ''Token'' wird die Zeichenkette aufgeteilt. Als Teiler ist ein Unterstrich angeben. Dies führt im angegebenen Beispiel zu vier Teilen: ''Datei'', ''Name'', ''Mit'' und ''Unterstrichen.txt''. Es wird der zweite Teil gefordert. Die Variable ''cTeil'' enthält demnach den Wert ''Name''. | Erklärung: Der String-Variable ''cDatei'' wird der Wert ''Datei_Name_Mit_Unterstrichen.txt'' zugewiesen. Mit ''Token'' wird die Zeichenkette aufgeteilt. Als Teiler ist ein Unterstrich angeben. Dies führt im angegebenen Beispiel zu vier Teilen: ''Datei'', ''Name'', ''Mit'' und ''Unterstrichen.txt''. Es wird der zweite Teil gefordert. Die Variable ''cTeil'' enthält demnach den Wert ''Name''. | ||
===TISO.LanguageGetRefNo=== | |||
Verwendung: Ermitteln der OBS-Referenz für eine Sprache per ISO-Code. Dafür wird der Sprach-Standard '''[https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes ISO 639]''' verwendet.<br /> | |||
Parameter: TxDB (Datenbank-Verbindung, immer ''oDB'' !), TISOLanguageCodes (enummeration), string<br /> | |||
Rückgabe: string<br /> | |||
Beispiel:<br /> | |||
cISO1 := TISO.LanguageGetRefNo(oDB,iso639_1 ,'en'); | |||
cISO2b := TISO.LanguageGetRefNo(oDB,iso639_2b,'eng'); | |||
cISO2t := TISO.LanguageGetRefNo(oDB,iso639_2t,'eng'); | |||
cISO3 := TISO.LanguageGetRefNo(oDB,iso639_3 ,'eng'); | |||
Erklärung: Die Standard-Sprache in OBS ist Deutsch. Bei Verwendung des Moduls Mehrsprachen, muss bei entsprechenden Texten die Sprache gesetzt werden. Für Importe haben Sie die Möglichkeit ISO-Codes in die OBS-Referenz umzuwandeln. Um die verschiedenen Codierungen zu verwenden, ist der zweite Parameter entscheidend. Dieser steht nämlich für den verwendeten ISO-639-Code. Das Beispiel würde jetzt also nacheinander für die Sprache '''Englisch''' die OBS-Referenz und schreibt diese in eine Variable.<br /> | |||
Unterstütze Codes: | |||
{| class="wikitable" | |||
|- | |||
! Code!! TISOLanguageCodes | |||
|- | |||
| ISO 639-1|| iso639_1 | |||
|- | |||
| ISO 639-2/B|| iso639_2b | |||
|- | |||
| ISO 639-2/T|| iso639_2t | |||
|- | |||
| ISO 639-3|| iso639_3 | |||
|} | |||
{{Hinweis|In der Regel wird beim Datenaustausch die zweistellige ISO 639-1 verwendet. Alle anderen Kodierungen sind dreistellig.}} | |||
=Beispiel= | =Beispiel= | ||
{{Achtung|Die Funktion ArtikelSprache bis Version '''002772''' mit leerer Rückgabe ('''<nowiki>Result := '';</nowiki>''') verwenden! Die Funktionalität über die internen ISO-Funktionen ist erst ab 002773 verfügbar.}} | |||
function ArtikelNummer(oXLS:TObject;nRow:Intgeger) : String; | function ArtikelNummer(oXLS:TObject;nRow:Intgeger) : String; | ||
begin | begin | ||
Zeile 132: | Zeile 160: | ||
function ArtikelTyp(oXLS:TObject;nRow:Intgeger) : String; | function ArtikelTyp(oXLS:TObject;nRow:Intgeger) : String; | ||
begin | begin | ||
Result := | Result := GetCell(oXLS,nRow,4); | ||
end; | end; | ||
//----------------------------------------------------------------------------- | //----------------------------------------------------------------------------- | ||
function | function ArtikelSprache(oXLS:TObject;nRow:Intgeger) : String; | ||
begin | begin | ||
Result := ' | Result := TISO.LanguageGetRefNo(oDB,iso639_1,'de'); | ||
end; | end; | ||
Zeile 146: | Zeile 174: | ||
function ShopZuord(oXLS:TObject;nRow:Intgeger) : String; | function ShopZuord(oXLS:TObject;nRow:Intgeger) : String; | ||
begin | begin | ||
Result := ''; | Result := <nowiki>''</nowiki>; | ||
end; | end; |
Aktuelle Version vom 26. Oktober 2018, 12:02 Uhr
- A - Aktionspreis
- A - In Preislisten enthalten
- A1 - Artikel "nicht mehr lieferbar"
- A2 - Änderungen durch Artikelpflege
- B Lohnstunden-Lohnarten für Artikel
- C - Verkauf über Material
- C1 - Hitliste Kunden(Material)
- Cashback Verwaltung
- D1 - Verkauf über Rechnungen
- F - Einkauf von Lieferanten
- F1 - Filialen-Bestellungen
- F2 - Artikel aus Filiale übernehmen
- G - Einkauf-LS von Lieferanten
- H1 - EAN-Verwaltung
- H2 - Bildverwaltung
- H3 - Shoppflege
- ISBN-Verwaltung
- H5 - Etiketten Druck Definition:
- Sollzahlen
- J1 - Personenbezoegene Preise
- J2 - Personenbezogene Einmal-/Bonus-Artikel
- J3 Preislisten Verwaltung
- K - Bestandsbindende Aufträge
- L - Aktuelle Bestellungen
- M - Datanorm-Nummer löschen
- M - Obst-Verwaltung
- N1 - Staffelpreise
- O1 - Stückliste
- O2 - Preis-Varianten
- O3 - Vergleichbare Artikel
- P - Seriennummern
- Q - Artikel-Zugang
- R - Verpackungen
- R1 - Artikel Stammdaten/Lieferantendaten Kontrollen
- S - Eigenschaften
- T - Ersatzteil-/Verbrauchsmaterial-Liste
- U - Ersatzteil-/Verbrauchsmaterial ist enthalten in
- V1 - Bild öffnen
- V2 - QR Code anzeigen
- V4 VCS Datei Versionierung
- X1 - Artikel verschmelzen/Artikelnummer ändern
- Y - Bestandsveränderungshistorie
- Y1 - Durchschnitts-EK-Historie
- Andere Filialen anzeigen
Maske
Die Maske kann in drei Bereiche unterteilt werden: Einstellungen (1), Dateiinhalt (2) und Makro (3). Die Einstellungen werden mit Standardwerten vorbelegt. Der Dateiinhalt wird erst angezeigt, nachdem eine xls-Datei für den Import ausgewählt wurde. Als Makro wird immer das zuletzt verwendete geladen. Wenn Sie verschiedene Dateien importieren ist es daher ratsam die verwendeten Makros in einer Datei abzuspeichern, um dies nicht jedesmal neu eingeben zu müssen. Sie können dann den Inhalt einfach ersetzen.
Einstellungen
Land
Geben Sie hier ein Land für den Import vor. Mit der Makro-Funktion ArtikelLand lässt sich die Vorgabe später übersteuern. Bei leerem Ergebnis wird jedoch der Wert dieses Feldes verwendet.
Typ
Geben Sie hier einen Text-Typ für den Import vor. Mit der Makro-Funktion ArtikelTyp lässt sich die Vorgabe später übersteuern. Bei leerem Ergebnis wird jedoch der Wert dieses Feldes verwendet.
Start-Zeile
Hier können Sie bestimmen, ab welcher Zeile die Daten übernommen werden sollen.
Lieferanten-Nr
Falls Sie Daten eines Lieferanten übernehmen, können Sie diesen hier angeben. Kann mit der Artikelnummer (siehe Makro-Funktion ArtikelNummer) kein Artikel im OBS-Artikelstamm gefunden werden, so wird die Artikelnummer als Bestellnummer interpretiert und die OBS-Artikelnummer über Liefernt und Bestellnummer ermittelt.
Dateiname
Mit # ist in diesem Feld die Datei auszuwählen. Sie können Dateien in den Formaten xls und xlsx verwenden. Nach der Auswahl wird Ihnen der Inhalt in der Tabelle (2) angezeigt.
Vorgang
Wird in das Feld Nummer übernommen. Es sind alphanummerische Angaben möglich.
Vorhandene Texte überschreiben
Ist das Häkchen in diesem Feld gesetzt, so werden bereits gepflegte externe Texte (identisch mit Land, Typ und Artikelnummer) mit dem Inhalt der Datei aktualisiert. Andernfalls werden die bisherigen Texte beibehalten.
Leere Texte in Datei überspringen
Dieses Feld ist nur interessant, wenn Vorhandene Texte überschreiben aktiv ist. Je nachdem woher die Daten für den Import bezogen werden, kann es sein, dass im eigenen Datenbestand bereits Texte vorhanden sind, die Datei jedoch an der Stelle nichts enthält. Um die Texte im eigenen System nicht zu löschen, können Sie hier ein Häkchen setzen.
Makro
Die Makros orientieren sich and der Syntax der Sprache Pascal.
Import-Funktionen
Alle vorgegebenen Funktionen haben die Parameter oXLS und nRow. Diese Variable oXLS enthält die Referenz auf das Excel-Dokument und nRow die aktuelle Zeile des Imports.
ArtikelNummer
Diese Funktion dient dazu die Artikelnummer zu ermitteln. Bedenken Sie, dass das Ergebnis auch die Bestellnummer bei Ihrem Lieferanten sein kann.
ArtikelEAN
Diese Funktion dient dazu die EAN zu ermitteln. Die EAN wird als alternative für die Artikelnummer verwendet, um die OBS-Artikelnummer zu ermitteln.
ArtikelName
Die Rückgabe dieser Funktion beeinfluss die Bezeichnung des Bildes. Wenn die Rückgabe leer ist, so wird die Bezeichnung automatisch mit "Art-Nr.: " und der ermittelten Artikelnummer gefüllt.
ArtikelText
Mit dieser Funktion wird der Text ermittelt.
ArtikelTyp
In dieser Funktion kann die Vorgabe der Einstellung Typ übersteuert werden.
ArtikelSprache
In dieser Funktion kann die Vorgabe der Einstellung Sprache übersteuert werden.
ShopZuord
Diese Funktion muss im Makro nicht vorkommen. Sie ist optional und dient der Angabe von Shop-Schnittstellen. Die Texte können somit direkt beim Import einer oder mehreren Shop-Schnittstellen zugeordnet werden. Die Nummern der Schnittstellen sind mit Komma getrennt anzugeben bzw. zurückzugeben.
Beispiel:
function ShopZuord(oXLS:TObject;nRow:Intgeger) : String; begin Result := '001,002'; end;
Befehle
Hier finden Sie einige nützliche Befehle/Funktionen, die Sie verwenden können, um das Makro so zu verändern, dass Sie das gewünschte ergebnis erzielen können. Dadurch dass Sie von der Datei selbst jedoch nur Zugriff auf den Dateinamen haben, sind die Möglichkeiten allerdings begrenzt.
ExtractFileName
Verwendung: Dateinamen aus Dateipfad auslesen.
Parameter: string
Rückgabe: string
Beispiel:
cDatei := 'c:\\Ordner\Datei.txt'; cDatei := ExtractFileName(cDatei);
Erklärung: Der String-Variable cDatei wird der Wert c:\\Ordner\Datei.txt zugewiesen. Mit ExtractFileName wird der Dateiname herausgesucht und zurückgegeben. Danach enthält cDatei nur noch den Wert Datei.txt.
StrTran
Verwendung: Sucht einen Text innerhalb eines Textes und ersetzte diesen durch einen andren Text (Suchen und ersetzen).
Parameter: string, string, string
Rückgabe: string
Beispiel:
cDatei := 'Datei.txt'; cName := StrTran(cDatei ,'.txt','');
Erklärung: Der String-Variable cDatei wird der Wert Datei.txt zugewiesen. Mit StrTran wird im Text der Variable cDatei nach .txt gesucht. Der gefundene Teil wird mit einer leeren Zeichenkette ersetzt. Danach enthält cDatei nur noch den Wert Datei.
Length
Verwendung: Ermittelt die Länge einer Zeichenkette.
Parameter: string
Rückgabe: integer
Beispiel:
cDatei := 'Datei'; nLaenge := Length(cDatei);
Erklärung: Der String-Variable cDatei wird der Wert Datei zugewiesen. Mit Length wird die Länge ermittelt. Das Wort "Datei" hat 5 Buchstaben. nLaenge hat also den Wert 5.
LeftStr/RightStr
Verwendung: Gibt den linken/rechten Teil einer Zeichenketten zurück. Es werden dabei maximal soviele Zeichen zurückgegeben, wie im zweiten Parameter angegeben.
Parameter: string, integer
Rückgabe: string
Beispiel:
cDatei := 'Datei'; cLeft := LeftStr(cDatei,2); cRight := RightStr(cDatei,2);
Erklärung: Der String-Variable cDatei wird der Wert Datei zugewiesen. Mit LeftStr und RightStr werden jeweils die ersten zwei Zeichen von Links und Rechts zurückgegeben. cLeft enthält danach den Wert Da und cRight den Wert ei.
UpperCase/LowerCase
Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben.
Parameter: string
Rückgabe: string
Beispiel:
cDatei := 'Datei'; cUpper := UpperCase(cDatei); cLower := LowerCase(cDatei);
Erklärung: Der String-Variable cDatei wird der Wert Datei zugewiesen. Mit UpperCase und LowerCase wird die Zeichenkette umgewandelt. cUpper enthält danach den Wert DATEI und cLower den Wert datei.
Token
Verwendung: Teilt eine Zeichenkette anhand eines Zeichens auf und gibt den engebenen Teil zurück.
Parameter: string, string, integer
Rückgabe: string
Beispiel:
cDatei := 'Datei_Name_Mit_Unterstrichen.txt'; cTeil := Token(cDatei,'_',2);
Erklärung: Der String-Variable cDatei wird der Wert Datei_Name_Mit_Unterstrichen.txt zugewiesen. Mit Token wird die Zeichenkette aufgeteilt. Als Teiler ist ein Unterstrich angeben. Dies führt im angegebenen Beispiel zu vier Teilen: Datei, Name, Mit und Unterstrichen.txt. Es wird der zweite Teil gefordert. Die Variable cTeil enthält demnach den Wert Name.
TISO.LanguageGetRefNo
Verwendung: Ermitteln der OBS-Referenz für eine Sprache per ISO-Code. Dafür wird der Sprach-Standard ISO 639 verwendet.
Parameter: TxDB (Datenbank-Verbindung, immer oDB !), TISOLanguageCodes (enummeration), string
Rückgabe: string
Beispiel:
cISO1 := TISO.LanguageGetRefNo(oDB,iso639_1 ,'en'); cISO2b := TISO.LanguageGetRefNo(oDB,iso639_2b,'eng'); cISO2t := TISO.LanguageGetRefNo(oDB,iso639_2t,'eng'); cISO3 := TISO.LanguageGetRefNo(oDB,iso639_3 ,'eng');
Erklärung: Die Standard-Sprache in OBS ist Deutsch. Bei Verwendung des Moduls Mehrsprachen, muss bei entsprechenden Texten die Sprache gesetzt werden. Für Importe haben Sie die Möglichkeit ISO-Codes in die OBS-Referenz umzuwandeln. Um die verschiedenen Codierungen zu verwenden, ist der zweite Parameter entscheidend. Dieser steht nämlich für den verwendeten ISO-639-Code. Das Beispiel würde jetzt also nacheinander für die Sprache Englisch die OBS-Referenz und schreibt diese in eine Variable.
Unterstütze Codes:
Code | TISOLanguageCodes |
---|---|
ISO 639-1 | iso639_1 |
ISO 639-2/B | iso639_2b |
ISO 639-2/T | iso639_2t |
ISO 639-3 | iso639_3 |
Beispiel
function ArtikelNummer(oXLS:TObject;nRow:Intgeger) : String; begin Result := LeftStr(GetCell(oXLS,nRow,0),6); end; //----------------------------------------------------------------------------- function ArtikelEAN(oXLS:TObject;nRow:Intgeger) : String; begin Result := GetCell(oXLS,nRow,1); end; //----------------------------------------------------------------------------- function ArtikelName(oXLS:TObject;nRow:Intgeger) : String; begin Result := GetCell(oXLS,nRow,2); end; //----------------------------------------------------------------------------- function ArtikelText(oXLS:TObject;nRow:Intgeger) : String; begin Result := GetCell(oXLS,nRow,3); end; //----------------------------------------------------------------------------- function ArtikelTyp(oXLS:TObject;nRow:Intgeger) : String; begin Result := GetCell(oXLS,nRow,4); end; //----------------------------------------------------------------------------- function ArtikelSprache(oXLS:TObject;nRow:Intgeger) : String; begin Result := TISO.LanguageGetRefNo(oDB,iso639_1,'de'); end; //----------------------------------------------------------------------------- function ShopZuord(oXLS:TObject;nRow:Intgeger) : String; begin Result := ''; end;