Listenexport für CSV-Dateien anpassen

Teilweise steht in den Listenansichten im eserp eine Funktion zum Exportieren der angezeigten Daten bereit.

Über die Schaltfläche Exportieren in der Symbolleiste können Sie können die angezeigten Datensätze der Listenansicht als Datei zur beliebigen Weiterverarbeitung speichern. Dabei können die Daten wie sie in der Listenansicht zu sehen sind (Spalten, Filter, Suchergebnis, Sortierung), in die zur Verfügung stehenden Dateiformate exportiert werden.

 

Für die Verwendung dieser Funktion wird die Berechtigung Allgemein | Datengitter exportieren benötigt.

Neben den vorgegebenen Exportformaten EXCEL und CSV können individuelle Exportformate für CSV-Dateien festgelegt werden. Diese eigenen Exportformate werden je nach Vorgangsart im Listenexport mit einen vorher festgelegten Namen angezeigt.

 

Es kann zum Beispiel der Export von Lieferscheindaten für die Erfassungssoftware eines Versanddienstleisters umgesetzt werden (zum Beispiel DeLisPrint / DPD Print von DPD).

CSV Exportformate über die Datenbank anlegen

Die individuellen Exportformate für CSV Dateien werden über die Datenbank angelegt, dies setzt administrative Berechtigungen und Kenntnisse für die Bearbeitung von Datenbankeinträgen voraus.

 

es2000 macht keine Angaben zu einer bestimmten Eignung obiger Informationen. Irrtümer und Fehler bleiben ausdrücklich vorbehalten, die Angaben erfolgen ohne Gewähr. Die Angaben stellen nur Beschreibungen dar und enthalten keine Garantie der Beschaffenheit der Produkte. Die Informationen können z.T. auch ein Versuch sein, Ihnen bei einer Aufgabenstellung zu helfen, selbst wenn das Produkt eigentlich nicht für diesen speziellen Zweck vorgesehen wurde.

Dafür werden in die Tabellen ExportTemplate und ExportTemplateBez entsprechende Datenzeilen hinzugefügt.

Sie können das Tool esdbm verwenden, um entsprechende Datenbankeinträge anzulegen.

Siehe auch

Tabelle 'ExportTemplate'

In der Tabelle ExportTemplate wird das eigentlich Exportformat festgelegt.

ExportTemplateId

Tragen Sie hier eine eindeutige Nummer für jeden individuellen CSV-Export ein.

Diese Nummer stellt auch die Verknüpfung zur Bezeichnungs-Tabelle 'ExportTemplateBez' über das gleichnamige Feld ExportTemplateid her.

VorgangArt

Tragen Sie hier die Nummer der Vorgangsart (VorgangsID) ein. Über die Vorgangsart legen Sie fest, in welcher Listenansicht (Vorgängen) das Exportformat verfügbar ist.

ExportType

Gibt den Mimetype für die Art des Exports an. Hier steht nur text/csv zur Verfügung.

Configuration

Mittels JSON-Skript kann im Feld Configuration der CSV-Export im Detail festgelegt werden. .

 

{
'Separator': ';',
'QuoteValues': 'Strings',
'EncodingName': 'Windows-1252',
'IncludeHeaders': false,
'QuoteChar': '\'',
'Columns': [
{
'FieldName': 'LieferscheinNr',
'Label': 'LS-Nr',
},{
'FieldName': 'AenderDat',
'Label': 'LS-Nr',
'Format': 'hh:mm',
}
]
}

Erklärungen zum Beispiel

Separator

Gibt das Trennzeichen des CSV Formats an.

QuoteValues

Gibt an, welche Spalten mit Quotierungszeichen (Quotes) umschlossen werden sollen, dabei sind mögliche Werte

  • Never

    Keine Quotes verwenden

  • Always

    Quotes für alle Spalten verwenden

  • Strings

    Quotes werden nur für Zeichenketten-Spalten verwendet

 

Welches Quotierungszeichen verwendet werden soll, legen Sie über QuoteChar fest.

EncodingName

Gibt die Dateikodierung für die CSV-Datei an.

Standard Wert ist hier ASCII, für Umlaute bietet sich aber Windows-1252 an.

IncludeHeaders

Gibt an, ob in der ersten Zeile der Datei die Spaltenbeschreibungen geschrieben werden sollen.

  • True

    Spaltenüberschriften werden in der ersten Zeile (Header) mit ausgegeben.

  • False

    Es werden keine Spaltenüberschriften in der ersten Zeile (Header) mit ausgegeben.

QuoteChar

Gibt bei den Spalten, die via QuoteValues bestimmt wurden das Zeichen an, welches zum Umschließen verwendet werden soll.

Columns

In Columns können die Spalten der CSV Datei spezifiziert werden, dabei hat jede Spalte drei Eigenschaften:

  • FieldName

    Gibt den Namen des Datenfeldes / der Spalte an.

  • Label

    Gibt die Spaltenüberschrift in der CSV an, falls Header exportiert werden. Wenn kein Wert angegeben ist, wird hier der Feldname verwendet.

  • Format

    Ermöglicht es bei Nummern und Ähnlichem die Formatierung anzugeben, um so zum Beispiel nur den Zeitanteil eines Zeitstempels zu exportieren.

DefaultFileName

Hiermit legen Sie den Vorgabe Dateinamen und den Ausgabepfad fest.

'DefaultFileName": 'C:\\Daten\\Test_{0}.csv'

Der Platzhalter {0} definiert hierbei das aktuelle Datum und kann mit den C# Format-Spezifizierer festgelegt werden.

'DefaultFileName': 'C:\\Daten\\LS_{0:yyyy-M-dd-HH-mm-ss}.csv'

Siehe auch https://learn.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings

Tabelle 'ExportTemplateBez'

Die Tabelle ExportTemplateBez beinhaltet die Bezeichnungen für die Export-Formate.

Sollen Bezeichnungen in mehreren Sprachen angezeigt werden, ist je Sprache ein Eintrag erforderlich. Dabei ist darauf zu achten, dass die Kombination aus ExportTemplateid und Sprachcode eindeutig gewählt wird.

ExportTemplateid

Geben Sie hier die gleiche Nummer für die Exportvorlage aus der Tabelle 'ExportTemplate' (Feld ExportTemplateid).

Spachcode

Tragen Sie hier die Nummer für Sprachcode ein. Der Sprachcode bezieht sich dabei auf die Sprache in der die Bezeichnung eingetragen worden ist.

 

Der Sprachcode 0 steht für Alle Sprachen

Bezeichnung

Tragen Sie hier eine sprechende Bezeichnung für das Exportformat ein. Diese Bezeichnung wird unterhalb der Listenexport-Schaltfläche angezeigt.

Beispiel SQL-Skript

Mit dem nachfolgenden Beispiel SQL-Skript können Sie einen Listenexport im CSV-Format für Lieferscheine (Vorgangsart=19) anlegen. Das Skript kann im esdbm ausgeführt werden, siehe auch SQL-Skript laden.

 

Im Beispiel wird die ExportTemplateid 100 verwendet. Wenn Sie diese ID bereits verwenden, ändern Sie das Skript vor der Ausführung entsprechend ab.

Kopieren

MSSQL Skript

INSERT INTO ExportTemplate (ExportTemplateId, VorgangArt, ExportType, Configuration) 
VALUES ('100', '19', 'text/csv', '{
    ''Separator'': '';'',
    ''QuoteValues'': ''Strings'',
    ''EncodingName'': ''Windows-1252'',
    ''IncludeHeaders'': false,
    ''QuoteChar'': ''\'''',
    ''DefaultFileName'': ''C:\\Daten\\LS_{0:yyyy-M-dd-HH-mm-ss}.csv'',
    ''Columns'': [
        {
            ''FieldName'': ''LieferscheinNr'',
        },{
            ''FieldName'': ''Anrede'',
        },{
            ''FieldName'': ''Firma1'',
        },{
            ''FieldName'': ''Firma2'',
        },{
            ''FieldName'': ''Firma3'',
        },{
            ''FieldName'': ''Strasse'',
        },{
            ''FieldName'': ''Plz'',
        },{
            ''FieldName'': ''Ort'',
        },{
            ''FieldName'': ''Telefon'',
        },{
            ''FieldName'': ''KundenNr'',
        },{
            ''FieldName'': ''Nationen.IsoCode'',
        },{
            ''FieldName'': ''PortoArt'',
        },{
        }
    ]
}
')
GO
INSERT INTO ExportTemplateBez (ExportTemplateId, SprachCode, Bezeichnung) VALUES ('100', '1', 'DLisPrint / DPD Print')
GO