Neu Ameise: Hilfe für Eigener Export

GBK

Sehr aktives Mitglied
21. Oktober 2019
185
39
Lüdinghausen
Moin Leute!

Wir haben zwecks Kalkulation von Produkten Eigene Felder bei Produkten hinterlegt. Marge und Zusatzkosten. Dafür konnte ich ein kleines Script schreiben, welches die Datei durchgeht und auf Basis des durchschnittlichen EKs neue VKs berechnet, sodass ich diese wieder per Ameise importieren kann. So weit, so gut. Allerdings wäre es höchst angenehm, wenn ich die passende Datei zum Bearbeiten in einem Rutsch bekommen könnte, da ich ja über den Eigene Felder Export keine durchschnittlichen EKs mit exportieren kann. Und ich hoffe, dass sich hier jemand findet, der mir dafür den Export schreiben kann, da ich von SQL leider keine Ahnung habe.

Folgende Felder soll der Export enthalten:
Artikelnummer
Artikelname
Netto-VK
dEK (durchschnittlicher EK)
Name (Eigene Felder)
Wert (Eigene Felder)
Name2 (nur Spaltenbezeichner)
Wert2 (nur Spaltenbezeichner)
nVK (nur Spaltenbezeichner)

Folgende Filter sollten gesetzt sein:
Nur aktive Artikel
Shopfilter: GBK-Shop

Bin mir nicht sicher, ob nur aktive Artikel hier nötig ist. Gehe eigentlich davon aus, dass nur aktive Artikel auch im Shop angezeigt werden können. Aber ich erwähne es einfach mal.

Beste Grüße, Marco
 

John

Sehr aktives Mitglied
3. März 2012
4.218
1.091
Berlin
Hier hast Du mal den Export für Artikel und Eigene Feld.
Den Rest mache ich nicht gratis fertig, denn es ist Arbeit - sowas gerne per PM, wenn Du es nicht selbst machen möchtest.

Code:
DECLARE @EigenesFeldName VarChar(128)

-- ###### Hier den Namen des Eigenen Feldes Eintragen ######
SET @EigenesFeldName = 'Mein eigenes Feld'
-- #########################################################

SELECT
cArtNr AS 'Artikelnummer',
vStdA.cName AS 'Artikelname',
@EigenesFeldName AS 'Name',
CASE
    WHEN tFeldTyp.nDatenTyp = 0 THEN CONVERT(VARCHAR, tArtikelAttributSprache.nWertInt)
    WHEN tFeldTyp.nDatenTyp = 1 THEN FORMAT(tArtikelAttributSprache.fWertDecimal, 'G', 'de-de')
    WHEN tFeldTyp.nDatenTyp = 2 THEN tArtikelAttributSprache.cWertVarchar
    WHEN tFeldTyp.nDatenTyp = 3 THEN CONVERT(VARCHAR, tArtikelAttributSprache.dWertDateTime, 104)
END AS 'Wert',
tFeldTyp.cName AS 'Datentyp (sonst autom. ermitteln)'
FROM vStandardArtikel vStdA
JOIN tArtikelAttribut on tArtikelAttribut.kArtikel = vStdA.kArtikel
JOIN tArtikelAttributSprache ON tArtikelAttribut.kArtikelAttribut= tArtikelAttributSprache.kArtikelAttribut
JOIN tAttribut ON tAttribut.kAttribut = tArtikelAttribut.kAttribut
JOIN tFeldTyp ON tFeldTyp.kFeldTyp = tAttribut.kFeldTyp
WHERE tArtikelAttributSprache.kSprache = 0
AND tArtikelAttribut.kAttribut=(SELECT TOP(1) kAttribut FROM tAttributSprache WHERE kSprache = 0 AND cName = @EigenesFeldName)
 

frankell

Sehr aktives Mitglied
9. September 2019
2.685
840
Flensburg
Moin Marco,

rein interessehalber:

Name (Eigene Felder)
Wert (Eigene Felder)

Meinst Du das wirklich so? Denn wenn Du, wie Du schreibst, sowohl Marge als auch Zusatzkosten als Eigene Felder angelegt hast, würdest Du mit diesem Aufbau zwei Zeilen pro Artikel erhalten, eine Zeile pro Eigenes Feld.

Ist nicht eher

Wert Marge (mit Spaltenbezeichner Marge)
Wert Zusatzkosten (mit Spaltenbezeichner Zusatzkosten)

gemeint?

VG,
Frank
 

GBK

Sehr aktives Mitglied
21. Oktober 2019
185
39
Lüdinghausen
Hier hast Du mal den Export für Artikel und Eigene Feld.
Den Rest mache ich nicht gratis fertig, denn es ist Arbeit - sowas gerne per PM, wenn Du es nicht selbst machen möchtest.

Code:
DECLARE @EigenesFeldName VarChar(128)

-- ###### Hier den Namen des Eigenen Feldes Eintragen ######
SET @EigenesFeldName = 'Mein eigenes Feld'
-- #########################################################

SELECT
cArtNr AS 'Artikelnummer',
vStdA.cName AS 'Artikelname',
@EigenesFeldName AS 'Name',
CASE
    WHEN tFeldTyp.nDatenTyp = 0 THEN CONVERT(VARCHAR, tArtikelAttributSprache.nWertInt)
    WHEN tFeldTyp.nDatenTyp = 1 THEN FORMAT(tArtikelAttributSprache.fWertDecimal, 'G', 'de-de')
    WHEN tFeldTyp.nDatenTyp = 2 THEN tArtikelAttributSprache.cWertVarchar
    WHEN tFeldTyp.nDatenTyp = 3 THEN CONVERT(VARCHAR, tArtikelAttributSprache.dWertDateTime, 104)
END AS 'Wert',
tFeldTyp.cName AS 'Datentyp (sonst autom. ermitteln)'
FROM vStandardArtikel vStdA
JOIN tArtikelAttribut on tArtikelAttribut.kArtikel = vStdA.kArtikel
JOIN tArtikelAttributSprache ON tArtikelAttribut.kArtikelAttribut= tArtikelAttributSprache.kArtikelAttribut
JOIN tAttribut ON tAttribut.kAttribut = tArtikelAttribut.kAttribut
JOIN tFeldTyp ON tFeldTyp.kFeldTyp = tAttribut.kFeldTyp
WHERE tArtikelAttributSprache.kSprache = 0
AND tArtikelAttribut.kAttribut=(SELECT TOP(1) kAttribut FROM tAttributSprache WHERE kSprache = 0 AND cName = @EigenesFeldName)
Danke dafür, John. Ich komme ggfl. darauf zurück.
 

GBK

Sehr aktives Mitglied
21. Oktober 2019
185
39
Lüdinghausen
Moin Marco,

rein interessehalber:



Meinst Du das wirklich so? Denn wenn Du, wie Du schreibst, sowohl Marge als auch Zusatzkosten als Eigene Felder angelegt hast, würdest Du mit diesem Aufbau zwei Zeilen pro Artikel erhalten, eine Zeile pro Eigenes Feld.

Ist nicht eher

Wert Marge (mit Spaltenbezeichner Marge)
Wert Zusatzkosten (mit Spaltenbezeichner Zusatzkosten)

gemeint?

VG,
Frank
Moin Frank,

ja, das meine ich wirklich so. Mir ist nachher erst aufgefallen, dass der Eigene Export das ja durchaus schöner machen könnte und so, wie du gesagt hast, es direkt in eine Zeile schreibt. Aber das habe ich nun in meinem Script bereits so verarbeitet. Also, ob nun so oder so, ist eigentlich egal. Ich kann den Teil ja aus meinem Script sonst wieder rausnehmen 🙂
Ich hatte mich gedanklich einfach an dem normalen Eigene Felder Export aus der Ameise orientiert und dort ist es ja so.

Beste Grüße, Marco
 

Ähnliche Themen