OBS/Stammdaten/Artikel: Automatischer Bilder Import: Unterschied zwischen den Versionen
Nimz (Diskussion | Beiträge) |
Nimz (Diskussion | Beiträge) |
||
Zeile 101: | Zeile 101: | ||
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''. | ||
==Beispiele== | ==Beispiele== | ||
Nachfolgend finden Sie Beispiele zu einigen bekannten Lieferanten. | |||
{{Hinweis|Funktinalität der Makros ohne Gewähr. Es kann passieren, dass ein Lieferant Anpassungen seiner Daten vornimmt. Daher können wir die Funktionalität der angegebenen Makros nicht garantieren. Prüfen Sie nach dem Import die Daten stichprobenartig.}} | |||
===Büroring=== | ===Büroring=== | ||
function ArtikelNummer(cBildName : String) : String; | function ArtikelNummer(cBildName : String) : String; | ||
Zeile 196: | Zeile 198: | ||
Result := <nowiki>''</nowiki>; | Result := <nowiki>''</nowiki>; | ||
end; | end; | ||
===Intos=== | |||
function ArtikelNummer(cBildName : String) : String; | |||
var cNr : String; | |||
begin | |||
cBildName := LowerCase(ExtractFileName(cBildName)); | |||
cBildName := StrTran(cBildName,'.jpg',''); | |||
cNr := leftstr(cBildName,6); | |||
Result := cNr; | |||
end; | |||
//------------------------------------------------------------------------------ | |||
function ArtikelEAN(cBildName : String) : String; | |||
begin | |||
Result := ''; | |||
end; | |||
//------------------------------------------------------------------------------ | |||
function ArtikelTyp(cBildName : String) : String; | |||
begin | |||
Result := ''; | |||
end; | |||
//------------------------------------------------------------------------------ | |||
function ArtikelName(cBildName : String) : String; | |||
begin | |||
cBildName := LowerCase(ExtractFileName(cBildName)); | |||
cBildName := StrTran(cBildName,'.jpg',''); | |||
Result := 'Bildname:'+cBildName; | |||
end; | |||
//------------------------------------------------------------------------------ | |||
function BilderTyp(cBildName : String) : String; | |||
var cBildTyp : String; | |||
cTmp : String; | |||
begin | |||
cBildName := LowerCase(ExtractFileName(cBildName)); | |||
cBildName := StrTran(cBildName,'.jpg',''); | |||
cBildTyp := '9001'; | |||
if (length(cBildName)>6) then begin | |||
cBildTyp := '9002'; | |||
end; | |||
Result := cBildTyp; | |||
end; | |||
===Rössler=== | ===Rössler=== |
Version vom 2. November 2017, 12:16 Uhr
- Artikel
- Beispiel: Anlegen eines Artikels
- Anleitung für den Etikettendruck
- Brutto und Nettopreise in OBS
- Artikel Preispflege
- Tasten und Schaltflächen
- Weitere Funktionen Schaltfläche
- Eingabemaske
- Registerkarte: Allgemeine Artikelstammda
- Registerkarte: Umsatzstatistiken + Anderes
- Multisteuer
- Registerkarte: Langtext
- Registerkarte: Shop (xtcModified Shop)
- F5 EAN
- F6 Personenbezogene Preise
- F7 Kalkulation
- F8 EAN-Verwaltung
- F9 VK - Preise 1-9
- F10 EK Lieferanten für Artikel/
- Artikel / Lieferanten Einstellung
- Periodenumsatz
- Tasten und Schaltflächen
- Eingabemaske
- A Shop-Stammdaten
- C Personen übertragen
- D Kataloge verwalten
- E Kategorien verwalten
- F Preislisten-Update
- G Bestellungen abholen
- H Verfügbarkeit übertragen
- I Merkliste übertragen
- V Varianten übertragen
- W Artikelvarianten übertragen
- X Protokoll
- Y leere Passworte füllen
- Z Update-Informationen zurücksetzen
- A Shop-Stammdaten
- B Datenbankzugang
- C Personen übertragen
- D Preise aktualisieren
- E eigene Artikel übertragen
- F Preislisten verwalten
- G Warengruppen verwalten
- H Bestellvorlagen übertragen
- Y leere Passworte füllen
- Z FTP-Protokoll
- A Shop-Stammdaten
- B Datenbankzugang
- C Personen übertragen
- D Preise aktualisieren
- E eigene Artikel übertragen
- F Preislisten verwalten
- G Warengruppen verwalten
- H Bestellvorlagen übertragen
- I Kundengruppen
- K Zugang für Bildübertragung
- Y leere Passworte füllen
- Z FTP-Protokoll
- Tasten und Schaltflächen
- Eingabemaske
- Registerkarte: 1 Vertrag
- Registerkarte: 2 Druckabrechnung
- Registerkarte: 3 Text Pauschale
- Registerkarte: 4 Text Druckabrechnung
- Registerkarte: 5 Text Zählerstandabfrage
- Registerkarte: 6 Zusatzkosten
- Weitere
- Tasten und Schaltflächen
- F10 Weitere Funktionen
- Eingabemaske
- Mail-Regeln
- Liste
- Eingabemaske
- Marketing
- Aufgaben-Gruppen
- Wiederkehrende Aufgaben
- Geteilte Aufgaben
- Termine
- Termine
- neuen Termin erstellen/Termin bearbeiten
- neuen Langzeittermin erstellen/Langzeittermin bearbeiten
- Geburtstag
- Geteilte Termine
- Technikersteuerung
- Tasten und Schaltflächen
Dieses Fenster dient dem Import von Bildern aus einem Verzeichnis. Dazu gibt es verschiedene Einstellungen ein Makro-Funktionen, mit denen aus den Dateinamen z. B. die Artikelnummer ermittelt werden kann. In der Regel kann dieser Import für die Bilder eigener Lieferanten problemlos genutzt werden, da sich die Bestellnummer meist innerhalb des Dateinamens finden lässt.
Maske
Die Maske kann in drei Bereiche unterteilt werden: Einstellungen (1), Bilddateien (2) und Makro (3). Die Einstellungen werden mit Standardwerten vorbelegt. Bilddateien werden erst angezeigt, nachdem über F7 das Verzeichnis, dass importiert werden soll, ausgewählt wurde. Als Makro wird immer das zuletzt verwendete geladen. Wenn Sie verschiedene Lieferanten 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
Klasse
Die Klasse wird für die Referenzierung innerhalb vom OBS benötigt. Zur Zeit gibt es nur die Verwendung als Artikelbilder und die Klasse sollte immer mit "AR" (Standard) gesetzt sein.
Typ
Es gibt für Bilder drei Standard-Typen. Dies sind 9000 (Freie Artikelbilder), 9001 (Shop Hauptbild) und 9002 (Shop Zusatzbild). Der Typ kann im Makro noch beeinflusst werden (mehr dazu unter Befehle). Wenn Sie eine Shop-Schnittstelle des Typs VShop 4, modified eCommerce oder DoubleM verwenden, können die Typen 9001 und 9002 verwendet werden, um die Bilder für die entsprechende Schnittstelle zum Export freizugeben. Innerhalb vom OBS ist der Typ nur relevant, wenn Sie über diesen in der Positionserfassung die manuelle Bilderauswahl beeinflussen möchten.
Lieferanten-Nr.
Hier kann eine Lieferantennummer aus Ihrem Personenstamm eingetragen werden. Diese dient während des Imports dazu das Bild einem Artikel zuzuordnen. Sollte über die Artikelnummer kein Artikel gefunden werden, so wird die Artikelnummer als Bestellnummer interpretiert und die Artikelnummer über die in den Artikeln hinterlegten Lieferanten zusammen mit der Lieferantennummer ermittelt.
Artikel muss im Artikelstamm vorhanden sein
Aktivieren Sie diese Einstellung, um nur Bilder zu importieren, die auch einem Artikel Ihres Artikelstamms zugeordnet werden können.
Bilder in Datenbank speichern
Wenn Sie insgesamt nur wenig Bilder importieren, können diese auch direkt in der Datenbank gespeichert werden. Je nach Server und sonstiger Anwendungsbreiche kann hier die optimale Anzahl an Bildern stark variiren.
Bilder in Positionseingabe verwenden
Diese Einstellung ssorgt dafür, dass Bilder beim Import auch für die Positionserfassung von Angeboten freigegeben werden. Es können mehrere Bilder orp Artikel freigegeben werden.
Standard
Diese Einstellung bezieht sich auf Bilder in Positionseingabe verwenden und gibt Ihnen die Möglichkeit ein Bild als Standard zu definieren. Bei mehreren Artikelbildern wird das Standard-Bild in der Positionserfassung automatisch gezogen.
Bilder im Shop verwenden
Um Bilder im Shop verwenden zu können, muss diese Einstellung aktiviert werden. Standardmäßig sollte dies der Fall sein.
Vorhandene Shop-Bilder löschen
Diese Einstellung gibt Ihnen die Möglichkeit über den Import die alten Bilder automatisch entfernen zu lassen.
Import Shop-Hauptbilder bei Artikel
Da es nur ein Hauptbild im Shop geben kann, können Sie hier über drei Möglichkeiten angeben, wie beim Importieren von neuen Shop-Hauptbildern verfahren werden soll, wenn bereits Eines existiert.
- überspringen: Das vorhandenes Bild wird beibehalten. Das neue Bild wird nicht importiert.
- ersetzen (vorhandenes Hauptbild wird Zusatzbild): Aus dem vorhandenen Bild wird ein Zusatzbild gemacht (Typ auf 9002 geändert).
- ersetzen (Hauptbild überschreiben): Der Eintrag für das vorhandene Bild wird aus der Datenbank gelöscht.
Makro
Die Makros orientieren sich and er Syntax der Sprache [[1]]. Alle vorgegebenen Funktionen haben den Parameter cBildname. Diese Variable enthält immer den vollen Bildpfad (z. B. c:\\OBS\...\BILDARCHIV\700000\AB123456_1.jpg).
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
Mit dieser Funktion können Sie die EAN ermitteln lassen. In der Regel stellen Lieferanten Ihre Bilder jedoch mit Bestellnummer und nicht mit EAN zur Verfügung.
ArtikelTyp
Dies setzt den Referenz-Typ im Bild-Eintrag. Dies wird für die weitere Nutzung nicht zwangsweise benötigt, daher kann die Rückgabe gerne leer gelassen werden.
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.
BilderTyp
Hier kann der Typ des Bildes nachträglich beeinflusst werden. So können Sie z. B. auch bei Angabe 9001 in den Einstellungen Bilder trotzdem als 9002 importieren lassen.
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.
Beispiele
Nachfolgend finden Sie Beispiele zu einigen bekannten Lieferanten.
Büroring
function ArtikelNummer(cBildName : String) : String; var cNr : String; begin cBildName := LowerCase(ExtractFileName(cBildName)); cNr := Token(cBildName,'_',1); Result := cNr; end; //------------------------------------------------------------------------------ function ArtikelEAN(cBildName : String) : String; begin Result := ''; end; //------------------------------------------------------------------------------ function ArtikelTyp(cBildName : String) : String; begin Result := ''; end; //------------------------------------------------------------------------------ function ArtikelName(cBildName : String) : String; begin cBildName := LowerCase(ExtractFileName(cBildName)); cBildName := StrTran(cBildName,'.jpg',''); Result := 'Bildname:'+cBildName; end; //------------------------------------------------------------------------------ function BilderTyp(cBildName : String) : String; var cBildTyp : String; cTmp : String; begin cBildTyp := ''; cBildName := LowerCase(ExtractFileName(cBildName)); cTmp := LeftStr(Token(cBildName,'_',2),2); if (cTmp = 'a1') then begin cBildTyp := '9001'; end else begin if (LeftStr(cTmp,1) = 'a') then begin cBildTyp := '9002'; end else if (LeftStr(cTmp,1) = 'p') then begin cBildTyp := '9002'; end else if (LeftStr(cTmp,1) = 's') then begin cBildTyp := '9002'; end; end; Result := cBildTyp; end;
Adveo
function ArtikelNummer(cBildName : String) : String; var cArtNr : String; begin cArtNr := ExtractFileName(cBildName); cArtNr := LeftStr(cArtNr,6); Result := cArtNr; end; //------------------------------------------------------------------------------ function ArtikelEAN(cBildName : String) : String; begin Result := ''; end; //------------------------------------------------------------------------------ function ArtikelTyp(cBildName : String) : String; begin Result := ''; end; //------------------------------------------------------------------------------ function ArtikelName(cBildName : String) : String; var cArtNr : String; begin cArtNr := UpperCase(ExtractFileName(cBildName)); cArtNr := LeftStr(cArtNr,6); Result := 'Art-Nr:'+cArtNr; end; //------------------------------------------------------------------------------ function BilderTyp(cBildName : String) : String; begin Result := ''; end;
Intos
function ArtikelNummer(cBildName : String) : String; var cNr : String; begin cBildName := LowerCase(ExtractFileName(cBildName)); cBildName := StrTran(cBildName,'.jpg',); cNr := leftstr(cBildName,6); Result := cNr; end; //------------------------------------------------------------------------------ function ArtikelEAN(cBildName : String) : String; begin Result := ; end; //------------------------------------------------------------------------------ function ArtikelTyp(cBildName : String) : String; begin Result := ; end; //------------------------------------------------------------------------------ function ArtikelName(cBildName : String) : String; begin cBildName := LowerCase(ExtractFileName(cBildName)); cBildName := StrTran(cBildName,'.jpg',); Result := 'Bildname:'+cBildName; end; //------------------------------------------------------------------------------ function BilderTyp(cBildName : String) : String; var cBildTyp : String; cTmp : String; begin cBildName := LowerCase(ExtractFileName(cBildName)); cBildName := StrTran(cBildName,'.jpg',); cBildTyp := '9001'; if (length(cBildName)>6) then begin cBildTyp := '9002'; end; Result := cBildTyp; end;
Rössler
function ArtikelNummer(cBildName : String) : String; var cNr : String; begin cBildName := LowerCase(ExtractFileName(cBildName)); cNr := Token(cBildName,'_',1); Result := cNr; end; //------------------------------------------------------------------------------ function ArtikelEAN(cBildName : String) : String; begin Result := ''; end; //------------------------------------------------------------------------------ function ArtikelTyp(cBildName : String) : String; begin Result := ''; end; //------------------------------------------------------------------------------ function ArtikelName(cBildName : String) : String; begin cBildName := LowerCase(ExtractFileName(cBildName)); cBildName := StrTran(cBildName,'.jpg',''); Result := 'Bildname:'+cBildName; end; //------------------------------------------------------------------------------ function BilderTyp(cBildName : String) : String; var cBildTyp : String; nTmp : Integer; begin cBildTyp := ''; cBildName := LowerCase(ExtractFileName(cBildName)); nTmp := iVal(LeftStr(Token(cBildName,'_',2),2)); if (nTmp > 1) then begin cBildTyp := '9002'; end else begin cBildTyp := '9001'; end; Result := cBildTyp; end;