OBS/Stammdaten/Artikel: Import Externe-Artikeltexte: Unterschied zwischen den Versionen
Nimz (Diskussion | Beiträge) K (Nimz verschob die Seite OBS/Stammdaten/Artikel: Automatischer Shop-Texte Import nach OBS/Stammdaten/Artikel: Import Externe-Artikeltexte: Bezeichnung etwas unglücklich, da allgemein externe Texte importiert werden können und nicht nur Texte f…) |
Nimz (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
{{Artikel F10}}< | {{Artikel F10}} | ||
=Maske= | |||
[[Image:ImportArtikelExtText.png|thumb|Import-Maske]]<br/> | |||
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.<br /> | |||
==Einstellungen== | |||
===Land=== | |||
Geben Sie hier ein Land für den Import vor. Mit der Makro-Funktion [[#ArtikelLand|''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|''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.{{Hinweis|Die Zählung der Zeilen beginnt hier bei 0. Die erste Zeile ist also nicht 1 sondern 0. Sollen die Daten ab Zeile 10 übernommen werden, so ist eine 9 einzugeben.}} | |||
===Lieferanten-Nr=== | |||
Falls Sie Daten eines Lieferanten übernehmen, können Sie diesen hier angeben. Kann mit der Artikelnummer (siehe Makro-Funktion [[#ArtikelNummer|''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 {{Key|#}} 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|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= | |||
==Import-Funktionen== | |||
===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. | |||
===ArtikelLand=== | |||
In dieser Funktion kann die Vorgabe der Einstellung ''Land'' ü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.<br /> | |||
<br /> | |||
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. | |||
{{Hinweis|Im Normalfall werden Sie nur Variablen des Typs [[https://de.wikipedia.org/wiki/Zeichenkette#Pascal|'''string''']] benötigen.}} | |||
===ExtractFileName=== | |||
Verwendung: Dateinamen aus Dateipfad auslesen. | |||
Parameter: string | |||
Rückgabe: string | |||
Beispiel:<br /> | |||
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:<br /> | |||
cDatei := 'Datei.txt'; | |||
cName := StrTran(cDatei ,'.txt',<nowiki>''</nowiki>); | |||
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. | |||
Der | Parameter: string | ||
Rückgabe: integer | |||
Beispiel:<br /> | |||
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:<br /> | |||
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''. | |||
{{Hinweis|Sollten mehr Zeichen ermittelt werden, als der ursprüngliche Wert Zeichen hat, so ist das Ergbenis gleich dem Ursprung. LeftStr(cDatei,8) hätte z. B. dazu geführt, dass cLeft ebenfalls ''Datei'' enthält.}} | |||
===UpperCase/LowerCase=== | |||
Verwendung: Umwandeln einer Zeichenkette in Großbuchstaben/Kleinbuchstaben. | |||
---- | Parameter: string | ||
Rückgabe: string | |||
Beispiel:<br /> | |||
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:<br /> | |||
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''. | |||
=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 := '9101'; | |||
end; | |||
//----------------------------------------------------------------------------- | |||
function ArtikelLand(oXLS:TObject;nRow:Intgeger) : String; | |||
begin | |||
Result := 'D'; | |||
end; | |||
//----------------------------------------------------------------------------- | |||
function ShopZuord(oXLS:TObject;nRow:Intgeger) : String; | |||
begin | |||
Result := ''; | |||
end; |
Version vom 2. November 2017, 16:14 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
Import-Funktionen
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.
ArtikelLand
In dieser Funktion kann die Vorgabe der Einstellung Land ü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.
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 := '9101'; end; //----------------------------------------------------------------------------- function ArtikelLand(oXLS:TObject;nRow:Intgeger) : String; begin Result := 'D'; end; //----------------------------------------------------------------------------- function ShopZuord(oXLS:TObject;nRow:Intgeger) : String; begin Result := ; end;