diff --git a/KSbExcelExportSivasTeilestamm/.idea/KSbExcelExportSivasTeilestamm.iml b/KSbExcelExportSivasTeilestamm/.idea/KSbExcelExportSivasTeilestamm.iml
index 74d515a..19be681 100644
--- a/KSbExcelExportSivasTeilestamm/.idea/KSbExcelExportSivasTeilestamm.iml
+++ b/KSbExcelExportSivasTeilestamm/.idea/KSbExcelExportSivasTeilestamm.iml
@@ -1,10 +1,10 @@
-
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/KSbExcelExportSivasTeilestamm/.idea/misc.xml b/KSbExcelExportSivasTeilestamm/.idea/misc.xml
index d4bc084..34f85ae 100644
--- a/KSbExcelExportSivasTeilestamm/.idea/misc.xml
+++ b/KSbExcelExportSivasTeilestamm/.idea/misc.xml
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/KSbExcelExportSivasTeilestamm/README.md b/KSbExcelExportSivasTeilestamm/README.md
index cc60c7b..02e4ffd 100644
--- a/KSbExcelExportSivasTeilestamm/README.md
+++ b/KSbExcelExportSivasTeilestamm/README.md
@@ -1,4 +1,6 @@
# KSbExcelExportSivasTeilestamm
-Ein Tool, um Daten aus dem SIVAS-Teilestamm in eine Excel-Datei zu exportieren. Es können mit dem Parameter TEILENR 1...n Teilenummern angegeben werden. Das Verzeichnis in welches die CSV-Dateien exportiert werden muss als Umgebungsvariable SIVAS_EXCEL_EXPORT_DIR definiert werden. Falls nicht spezifiziert, wird auf den Desktop exportiert.
-Beispielaufruf: KSbExcelExportSivasTeilestamm.exe TEILENR=4711,0815,1234
\ No newline at end of file
+Ein Tool, um Daten aus dem SIVAS-Teilestamm in eine Excel-Datei zu exportieren. Es können mit dem Parameter -teilenr 1...n Teilenummern angegeben werden. Das Verzeichnis in welches die CSV-Dateien exportiert werden muss als Umgebungsvariable SIVAS_EXCEL_EXPORT_DIR definiert werden. Falls nicht spezifiziert, wird auf den Desktop exportiert.
+Beispielaufruf: KSbExcelExportSivasTeilestamm.exe -teilenr=4711,0815,1234
+
+usage: KSbExcelExportSivasTeilestamm.exe [-h] -teilenr TEILENUMMERN_KOMMA_SEPARIERT
\ No newline at end of file
diff --git a/KSbExcelExportSivasTeilestamm/main.py b/KSbExcelExportSivasTeilestamm/main.py
index 76d0e8c..11689b2 100644
--- a/KSbExcelExportSivasTeilestamm/main.py
+++ b/KSbExcelExportSivasTeilestamm/main.py
@@ -1,16 +1,66 @@
-# This is a sample Python script.
+import csv
+import os
-# Press Umschalt+F10 to execute it or replace it with your code.
-# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
+from jit_oracle_connection import JitOracleConnection
+
+import argparse
-def print_hi(name):
- # Use a breakpoint in the code line below to debug your script.
- print(f'Hi, {name}') # Press Strg+F8 to toggle the breakpoint.
+def main():
+ count = 0
+ instantclient_path = r"\\195.243.223.3\sivas_schreiben\jit\oracle\bin\x64"
+ conn = JitOracleConnection(db_host='195.243.223.3', db_sid='linux', db_user='sivas', db_pwd='forte',
+ db_database='sivas', instantclient_dir=instantclient_path, tns_admin=None, app=None,
+ init_oracle_client=True)
+ if not conn:
+ return
+
+ if "SIVAS_EXCEL_EXPORT_DIR" in os.environ:
+ excel_export_dir = os.environ["SIVAS_EXCEL_EXPORT_DIR"]
+ else:
+ excel_export_dir = os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop')
+
+ parser = argparse.ArgumentParser(description='Ein Tool, um Daten aus dem SIVAS-Teilestamm in eine Excel-Datei zu exportieren. Es können mit dem Parameter TEILENR 1...n Teilenummern angegeben werden. Das Verzeichnis in welches die CSV-Dateien exportiert werden muss als Umgebungsvariable SIVAS_EXCEL_EXPORT_DIR definiert werden. Falls nicht spezifiziert, wird auf den Desktop exportiert. Beispielaufruf: KSbExcelExportSivasTeilestamm.exe TEILENR=4711,0815,1234')
+ parser.add_argument('-teilenr', dest='para_teilenr', help='Kommaseparierte liste von Artikelnummern')
+
+ args = parser.parse_args()
+
+ if not args.para_teilenr:
+ print("Fehler beim Auslesen des Teilenummern Parameters.")
+ return
+
+ teilenummern = [s.strip() for s in args.para_teilenr.split(",")]
+ for teilenr in teilenummern:
+ o_fehler = conn.cursor_var(str)
+ retval = conn.call('sivas.excel_ueb.konserve_ausfuehren', {"i_lfdnr": 500,
+ "i_param1": teilenr,
+ "o_fehler": o_fehler})
+
+ if not retval:
+ print(f"Fehler beim Export der Teilenummer {teilenr}: {o_fehler.getvalue()}")
+ return
+
+ writer = csv.writer(open(os.path.join(excel_export_dir, f"{teilenr}.csv"), "w", newline='', encoding='utf-8'), delimiter=";")
+
+ sql = """select zeile
+ from excel_ergebnis
+ order by lfdnr"""
+ zeilen = conn.query(sql)
+ for zeile in zeilen:
+ zeile_writable = zeile["ZEILE"].replace('\t', ';').lstrip('\"').rstrip('\"')
+ writer.writerow([zeile_writable])
+
+ count = count + 1
+ print(f"{teilenr}.csv exportiert nach {excel_export_dir}")
+
+ conn.connection().close()
+
+ if count > 0:
+ print(f"Alle Teile exportiert nach {excel_export_dir}")
+ os.startfile(excel_export_dir)
+ else:
+ print("Nichts exportiert")
-# Press the green button in the gutter to run the script.
if __name__ == '__main__':
- print_hi('PyCharm')
-
-# See PyCharm help at https://www.jetbrains.com/help/pycharm/
+ main()
\ No newline at end of file