Эх сурвалжийг харах

gctools-Paket vom 9.11.2023 (mehrere Anpassungen)

gc-server3 1 жил өмнө
parent
commit
ea43c057ba

+ 2 - 2
c11.py

@@ -80,5 +80,5 @@ def mdlconvert(mdl_file):
 
 
 if __name__ == "__main__":
-    app()
-    # reportoutput()
+    # app()
+    reportoutput()

+ 13 - 5
cognos11/c11_api.py

@@ -158,11 +158,10 @@ class c11_api:
                 if f["type"] == "reportView":
                     report["target_id"] = f["base"][0]["id"]
                     report["parameters"] = {}
-                    params = [p for p in f["parameters"] if len(p["value"]) > 0]
-                    for p in params:
-                        report["parameters"][p["name"]] = dict([(v["use"], v["display"]) for v in p["value"]])
-                    # report["details"] = self.get_report_details(report["id"])
-                    # print(json.dumps(f, indent=2))
+                    if f["parameters"] is not None:
+                        params = [p for p in f["parameters"] if len(p["value"]) > 0]
+                        for p in params:
+                            report["parameters"][p["name"]] = dict([(v["use"], v["display"]) for v in p["value"]])
                 self.reports.append(report)
             elif f["type"] == "jobDefinition":
                 job = {"id": f["id"], "name": f["defaultName"], "path": prefix}
@@ -334,10 +333,19 @@ class c11_api:
         filename = self.cfg.cognos11.config_dir + f"/params/{report['path']}/{report['name']}.json"
         os.makedirs(os.path.dirname(filename), exist_ok=True)
         json.dump(meta, open(filename, "w"), indent=2)
+        report["cube"] = self.get_cube_name(meta)
         report["meta"] = meta
         report["spec"] = parts[2].text
         return report
 
+    @staticmethod
+    def get_cube_name(meta):
+        for param in meta["optional"].values():
+            for key in param.keys():
+                if key.startswith("["):
+                    res = re.search(r"^\[([^\]]*)\]", key)
+                    return res.group(1)
+
     def get_report_filename(self, report):
         path = report["path"].replace("Team Content/ReportOutput", "")
         report["filename"] = f"{self.cfg.cognos11.reportoutput_dir}/{path}/{report['name']}.pdf"

+ 1 - 1
cognos11/c11_export.py

@@ -188,7 +188,7 @@ class c11_export:
 
     def export_errors(self):
         reports = self.api.get_reports_in_folder("Team Content", recursive=True, specs=True)
-        errors = [r for r in reports if "error" in r]
+        errors = [r for r in reports if "error" in r and not self.is_obsolete_or_ignored(r)]
         filename = self.cfg.cognos11.logs_dir + "/c11_report_errors.json"
         json.dump(errors, open(filename, "w"), indent=2)
 

+ 12 - 24
cognos11/c11_jobs.py

@@ -13,42 +13,34 @@ def get_converted_jobs(cfg: config.Config):
         data = json.load(frh)
 
     result = []
+    if len(data) == 0:
+        return
+
+    print("\nZusaetzlicher C11-interner Versand:")
     for job in data:
         print(job["name"])
 
         for step in job["details"]["steps"]:
             res = {}
             res["job_name"] = job["name"]
-            res["to_address"] = ",".join(
-                [opt["value"] for opt in step["options"] if opt["name"] == "toAddress"][
-                    0
-                ]
-            )
+            if not step["options"]:
+                continue
+            step_options = dict([(opt["name"], opt["value"]) for opt in step["options"]])
+            res["to_address"] = ",".join(step_options.get("toAddress", []))
             res["params"] = {}
             if step["parameters"]:
                 res["params"] = dict(
-                    [
-                        (opt["name"], opt["value"][0]["display"])
-                        for opt in step["parameters"]
-                        if len(opt["value"]) > 0
-                    ]
+                    [(opt["name"], opt["value"][0]["display"]) for opt in step["parameters"] if len(opt["value"]) > 0]
                 )
 
             res["report_name"] = report_id_to_name[step["report_id"]]
-            res["subject"] = [
-                opt["value"] for opt in step["options"] if opt["name"] == "subject"
-            ][0]
+            res["subject"] = step_options.get("subject", "")
             print("  " + res["report_name"])
             # print("    " + ",\n    ".join(res["to_address"]))
             # print("    ", res["params"])
             result.append(res)
 
-    if len(result) == 0:
-        return
-
-    with open(
-        cfg.cognos11.config_dir + "/c11_jobs.csv", "w", encoding="latin-1", newline=""
-    ) as fwh:
+    with open(cfg.cognos11.config_dir + "/c11_jobs.csv", "w", encoding="latin-1", newline="") as fwh:
         csv_writer = csv.writer(fwh, delimiter=";")
         csv_writer.writerow(result[0].keys())
         for row in result:
@@ -63,10 +55,6 @@ def get_converted_jobs(cfg: config.Config):
         csv_writer = csv.writer(fwh, delimiter=";")
         csv_writer.writerow(["Report", "Empfaenger"])
         for row in result:
-            suffix = (
-                "_Summe"
-                if len(row["params"].values()) == 0
-                else list(row["params"].values())[0]
-            )
+            suffix = "_Summe" if len(row["params"].values()) == 0 else list(row["params"].values())[0]
             filename = f'{row["job_name"]}\\{row["report_name"]}_{suffix}.pdf'
             csv_writer.writerow([filename, row["to_address"].lower()])

+ 669 - 0
cognos11/examples/Z.05_error.xml

@@ -0,0 +1,669 @@
+<html xmlns:xlink="http://www.w3.org/1999/xlink" lang="de">
+    <head>
+        <styleOptions>
+            <cssUrl>../schemas/GlobalReportStyles_11.4.css</cssUrl>
+            <namedCssStyleText>
+.pg{white-space:nowrap}
+
+.cls1{padding:4px 5px 4px 6px;background-color:#FFE97E;line-break:strict}
+
+.cls11{padding:4px 5px 4px 6px;background-color:#F9DC5C;line-break:strict}
+
+.cls2{padding:4px 5px 4px 6px;background-color:#3868A3;line-break:strict}
+
+.cls3{padding:4px 5px 4px 6px;background-color:#648BD0;line-break:strict}
+
+.cls4{padding:4px 5px 4px 6px;background-color:#C7DEE7;line-break:strict}
+
+.cls5{padding:4px 5px 4px 6px;background-color:#97CDD3;line-break:strict}
+
+.cls6{padding:4px 5px 4px 6px;background-color:#B6CB9B;line-break:strict}
+
+.cls14{background-color:#C3CCD4}
+
+.cls7{padding:4px 5px 4px 6px;background-color:#8EA375;line-break:strict}
+
+.cls8{padding:4px 5px 4px 6px;background-color:#E98751;line-break:strict}
+
+.cls9{padding:4px 5px 4px 6px;background-color:#D3D3D3;line-break:strict}
+
+.cls10{padding:4px 5px 4px 6px;background-color:#E60606;line-break:strict}
+
+.cls12{display:block}
+
+.cls13{padding:4px 5px 4px 6px;color:#E98751;font-weight:bold;vertical-align:top;background-color:transparent;border:1px solid silver}
+
+.lg{direction:auto;unicode-bidi:embed}
+
+.bp{color:#3E5C76;border:0.5pt solid #3E5C76}
+
+.bph{color:#3E5C76;background-color:#E98751;border:0.5pt solid #3E5C76}
+.mc_2265350403 {font-weight:bold;color:#FFFFFF;background-color:#3E5C76;border-width:3px;display:table-cell;padding-left:10px;padding-top:10px;padding-bottom:10px;vertical-align:middle;text-align:left}
+
+
+.mc_3350675781 {font-weight:bold;color:#FFFFFF;background-color:#3E5C76;border-width:3px;display:table-cell;padding-left:10px;padding-top:10px;padding-bottom:10px;width:200px;vertical-align:middle;text-align:left}
+
+
+.mc_3657730628 {font-weight:bold;color:#FFFFFF;background-color:#FFFFFF;border-width:3px;display:table-cell;padding-left:10px;padding-top:10px;padding-bottom:10px;vertical-align:middle;text-align:left}
+
+
+.mc_3902486253 {border-width:3px;display:table-cell;padding-top:10px;padding-bottom:25px;vertical-align:middle;text-align:start}
+
+
+</namedCssStyleText>
+        </styleOptions>
+        <title>Z.05 Entwicklung Kennzahlen</title>
+        <metaData>
+            <![CDATA[{}]]>
+        </metaData>
+        <ctxData>
+            <![CDATA[{}]]>
+        </ctxData>
+        <ASPS/>
+        <PageCache index="0" reset="true"/>
+    </head>
+    <body>
+        <table cellpadding="0" cellspacing="0" border="0" class="pp" specname="page" LID="Eingabeaufforderungsseite1">
+            <tr>
+                <td style="height:70px;" class="cls14" specname="pageHeader">
+                    <table style="border-collapse:collapse;width:100%;" class="tb" specname="table" cellpadding="0" dir="ltr">
+                        <tr specname="tableRow">
+                            <td style="padding-left:50px;width:250px;height:50px;" specname="tableCell">
+                                <img tabIndex="0" style="height:40px;vertical-align:bottom;;" specname="image" src="/bi/samples/images/GC_LOGO/LOGO.png"/>
+                            </td>
+                            <td specname="tableCell">
+                                <span tabIndex="0" style="font-size:22pt;" specname="textItem">Filterauswahl</span>
+                            </td>
+                        </tr>
+                    </table>
+                </td>
+            </tr>
+            <tr>
+                <td style="background-color:#FFFFFF;" class="py" specname="pageBody">
+                    <div class="q-div" style="display:table;padding-left:15px;width:100%">
+                        <table style="background-color:#FFFFFF;border-style:none;border-collapse:collapse;width:100%;vertical-align:bottom;display:inline-table;" class="tb" specname="table" cellpadding="0" dir="ltr">
+                            <tr specname="tableRow">
+                                <td specname="tableCell">
+                                    <span tabIndex="0" style="width:20px;display:inline-table;border-collapse:separate;border-spacing:0px;" specname="textItem"></span>
+                                </td>
+                                <td style="font-weight:bold;color:#FFFFFF;background-color:#3E5C76;padding-left:10px;padding-top:10px;padding-bottom:10px;height:50px;vertical-align:middle;text-align:left;" specname="tableCell">
+                                    <span tabIndex="0" specname="textItem">Monat:</span>
+                                </td>
+                                <td style="width:45px;text-align:center;" specname="tableCell">
+                                    <span tabIndex="0" style="font-weight:bold;color:#FFFFFF;width:40px;display:inline-table;border-collapse:separate;border-spacing:0px;" specname="textItem">Oder</span>
+                                </td>
+                                <td style="font-weight:bold;color:#FFFFFF;background-color:#3E5C76;padding-left:10px;padding-top:10px;padding-bottom:10px;width:7%;height:50px;vertical-align:middle;text-align:left;" specname="tableCell">
+                                    <span tabIndex="0" specname="textItem">Zeitraum:</span>
+                                </td>
+                                <td style="padding-top:20px;width:15px;text-align:left;" specname="tableCell">
+                                    <span tabIndex="0" style="width:45px;display:inline-table;border-collapse:separate;border-spacing:0px;" specname="textItem"></span>
+                                </td>
+                                <td style="padding-top:20px;width:7%;" specname="tableCell"/>
+                                <td style="width:15px;" specname="tableCell">
+                                    <span tabIndex="0" style="width:45px;display:inline-table;border-collapse:separate;border-spacing:0px;" specname="textItem"></span>
+                                </td>
+                                <td style="padding-top:20px;width:7%;vertical-align:bottom;text-align:right;" specname="tableCell">
+                                    <promptButton specname="promptButton" type="finish" class="bp"/>
+                                </td>
+                                <td style="padding-top:20px;width:13%;vertical-align:bottom;text-align:right;" specname="tableCell"/>
+                                <td style="padding-top:20px;width:17%;" specname="tableCell"/>
+                                <td style="padding-left:80px;padding-top:20px;width:7%;" specname="tableCell"/>
+                                <td style="padding-top:20px;width:7%;" specname="tableCell"/>
+                            </tr>
+                            <tr specname="tableRow">
+                                <td specname="tableCell"/>
+                                <td style="padding-top:10px;padding-bottom:25px;vertical-align:top;text-align:left;" specname="tableCell">
+                                    <selectValue specname="selectValue" parameter="p_Auswahl_Monate" range="false" required="false" hideAdornments="false" multiSelect="true" prePopulateIfParentOptional="false" selectValueUI="checkboxGroup" rowsPerPage="5000" autoSubmit="false" name="_P1237456028" style="width:300px" columnName="Alle Autohäuser">
+                                        <selectChoices>
+                                            <selectOption useValue="letzte 13 Monate" displayValue="letzte 13 Monate"/>
+                                        </selectChoices>
+                                        <selectOptions>
+                                            <selectOption useValue="letzte 13 Monate" displayValue="letzte 13 Monate"/>
+                                        </selectOptions>
+                                    </selectValue>
+                                </td>
+                                <td specname="tableCell"/>
+                                <td style="padding-top:10px;padding-bottom:25px;vertical-align:middle;" class="mc_3902486253" specname="tableCell">
+                                    <table style="background-color:#FFFFFF;border-collapse:collapse;width:100%;" class="tb" specname="table" cellpadding="0" dir="ltr">
+                                        <tr specname="tableRow">
+                                            <td style="padding-bottom:10px;" specname="tableCell">
+                                                <span tabIndex="0" style="padding-bottom:10px;" specname="textItem">Von:</span>
+                                            </td>
+                                        </tr>
+                                        <tr specname="tableRow">
+                                            <td specname="tableCell">
+                                                <selectDate specname="selectDate" parameter="p_Von" range="false" required="true" hideAdornments="false" multiSelect="false" calendar="Gregorian" selectDateUI="editBox" name="_P161953329"/>
+                                            </td>
+                                        </tr>
+                                        <tr specname="tableRow">
+                                            <td style="padding-bottom:10px;" specname="tableCell">
+                                                <span tabIndex="0" specname="textItem">Bis:</span>
+                                            </td>
+                                        </tr>
+                                        <tr specname="tableRow">
+                                            <td specname="tableCell">
+                                                <selectDate specname="selectDate" parameter="p_Bis" range="false" required="true" hideAdornments="false" multiSelect="false" calendar="Gregorian" selectDateUI="editBox" name="_P2059227067"/>
+                                            </td>
+                                        </tr>
+                                    </table>
+                                </td>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td style="padding-top:25px;width:13%;vertical-align:top;text-align:right;" specname="tableCell">
+                                    <div class="q-div" style="display:table;width:100%">
+                                        <table style="border-collapse:collapse;width:100%;vertical-align:bottom;display:inline-table;" class="tb" specname="table" cellpadding="0" blkTblAgn="right" dir="ltr">
+                                            <tr specname="tableRow">
+                                                <td style="text-align:right;" specname="tableCell">
+                                                    <promptButton specname="promptButton" type="cancel" class="bp"/>
+                                                </td>
+                                            </tr>
+                                            <tr specname="tableRow">
+                                                <td specname="tableCell"/>
+                                            </tr>
+                                            <tr specname="tableRow">
+                                                <td style="padding-top:30px;text-align:right;" specname="tableCell"/>
+                                            </tr>
+                                        </table>
+                                    </div>
+                                </td>
+                                <td style="padding-top:25px;width:13%;vertical-align:top;text-align:right;" specname="tableCell"/>
+                                <td style="width:17%;" specname="tableCell"/>
+                                <td style="padding-left:80px;" specname="tableCell"/>
+                                <td specname="tableCell"/>
+                            </tr>
+                            <tr specname="tableRow">
+                                <td specname="tableCell">
+                                    <span tabIndex="0" style="width:20px;height:30px;display:inline-table;border-collapse:separate;border-spacing:0px;" specname="textItem"></span>
+                                </td>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                            </tr>
+                            <tr specname="tableRow">
+                                <td specname="tableCell"/>
+                                <td style="font-weight:bold;color:#FFFFFF;background-color:#3E5C76;padding-left:10px;padding-top:10px;padding-bottom:10px;height:50px;vertical-align:middle;text-align:left;" specname="tableCell">
+                                    <span tabIndex="0" style="font-weight:bold;color:#FFFFFF;vertical-align:top;" specname="textItem">Mandant:</span>
+                                </td>
+                                <td style="padding-left:10px;" specname="tableCell"/>
+                                <td style="font-weight:bold;color:#FFFFFF;background-color:#3E5C76;padding-left:10px;padding-top:10px;padding-bottom:10px;vertical-align:middle;text-align:left;" specname="tableCell">
+                                    <span tabIndex="0" style="font-weight:bold;color:#FFFFFF;vertical-align:top;" specname="textItem">AH-Gruppe:</span>
+                                </td>
+                                <td style="padding-left:10px;text-align:left;" specname="tableCell"/>
+                                <td style="font-weight:bold;color:#FFFFFF;background-color:#3E5C76;padding-left:10px;padding-top:10px;padding-bottom:10px;width:200px;vertical-align:middle;text-align:left;" specname="tableCell">
+                                    <span tabIndex="0" style="font-weight:bold;color:#FFFFFF;vertical-align:top;" specname="textItem">Monteurgruppe:</span>
+                                </td>
+                                <td style="font-weight:bold;color:#FFFFFF;background-color:#FFFFFF;padding-left:10px;padding-top:10px;padding-bottom:10px;vertical-align:middle;text-align:left;" specname="tableCell"/>
+                                <td style="font-weight:bold;color:#FFFFFF;background-color:#3E5C76;padding-left:10px;padding-top:10px;padding-bottom:10px;width:200px;vertical-align:middle;text-align:left;" class="mc_3350675781" specname="tableCell">
+                                    <table style="border-collapse:collapse;width:100%;" class="tb" specname="table" cellpadding="0" dir="ltr">
+                                        <tr specname="tableRow">
+                                            <td specname="tableCell">
+                                                <span tabIndex="0" style="font-weight:bold;color:#FFFFFF;vertical-align:top;" specname="textItem">Monteur:</span>
+                                            </td>
+                                            <td style="padding-right:5px;width:55%;text-align:right;" specname="tableCell">
+                                                <promptButton specname="promptButton" type="reprompt" class="bp">
+                                                    <span tabIndex="0" specname="textItem">Refresh</span>
+                                                </promptButton>
+                                            </td>
+                                        </tr>
+                                    </table>
+                                </td>
+                                <td style="font-weight:bold;color:#FFFFFF;background-color:#FFFFFF;padding-left:10px;padding-top:10px;padding-bottom:10px;width:13%;vertical-align:middle;text-align:left;" specname="tableCell"/>
+                                <td style="width:17%;" specname="tableCell"/>
+                                <td style="padding-left:10px;" specname="tableCell"/>
+                                <td specname="tableCell"/>
+                            </tr>
+                            <tr specname="tableRow">
+                                <td specname="tableCell"/>
+                                <td style="border-style:none;vertical-align:top;" specname="tableCell">
+                                    <selectValue specname="selectValue" parameter="p_Mandant" range="false" required="false" hideAdornments="false" multiSelect="true" refQuery="qry_Mandant1" prePopulateIfParentOptional="false" selectValueUI="checkboxGroup" rowsPerPage="5000" autoSubmit="false" name="_P765688149" dataType="memberUniqueName" style="width:300px" columnName="Alle Mandanten">
+                                        <selectOptions>
+                                            <selectOption refDataItem="AH Vogl e.K." useValue="[Z_Monteure].[AH-Gruppe].[AH-Gruppe].[Hauptbetrieb]-&gt;:[PC].[@MEMBER].[1]" displayValue="AH Schmidt"/>
+                                        </selectOptions>
+                                    </selectValue>
+                                </td>
+                                <td specname="tableCell"/>
+                                <td style="border-style:none;" specname="tableCell">
+                                    <selectValue specname="selectValue" parameter="p_AH" range="false" required="false" hideAdornments="false" multiSelect="true" refQuery="qry_AH1" prePopulateIfParentOptional="false" selectValueUI="checkboxGroup" rowsPerPage="5000" autoSubmit="false" name="_P2732821749" dataType="memberUniqueName" style="width:300px" columnName="Alle Autohäuser">
+                                        <selectOptions>
+                                            <selectOption refDataItem="Standort" useValue="[Z_Monteure].[AH-Gruppe].[AH-Gruppe].[Standort]-&gt;:[PC].[@MEMBER].[10]" displayValue="WOR"/>
+                                            <selectOption refDataItem="Standort" useValue="[Z_Monteure].[AH-Gruppe].[AH-Gruppe].[Standort]-&gt;:[PC].[@MEMBER].[20]" displayValue="TOEL"/>
+                                            <selectOption refDataItem="Standort" useValue="[Z_Monteure].[AH-Gruppe].[AH-Gruppe].[Standort]-&gt;:[PC].[@MEMBER].[30]" displayValue="STA"/>
+                                            <selectOption refDataItem="Standort" useValue="[Z_Monteure].[AH-Gruppe].[AH-Gruppe].[Standort]-&gt;:[PC].[@MEMBER].[40]" displayValue="GER"/>
+                                            <selectOption refDataItem="Standort" useValue="[Z_Monteure].[AH-Gruppe].[AH-Gruppe].[Standort]-&gt;:[PC].[@MEMBER].[50]" displayValue="GWG"/>
+                                            <selectOption refDataItem="Standort" useValue="[Z_Monteure].[AH-Gruppe].[AH-Gruppe].[Standort]-&gt;:[PC].[@MEMBER].[60]" displayValue="GWZ"/>
+                                            <selectOption refDataItem="Standort" useValue="[Z_Monteure].[AH-Gruppe].[AH-Gruppe].[Standort]-&gt;:[PC].[@MEMBER].[90]" displayValue="BB"/>
+                                            <selectOption refDataItem="Standort" useValue="[Z_Monteure].[AH-Gruppe].[AH-Gruppe].[Standort]-&gt;:[PC].[@MEMBER].[95]" displayValue="SPC"/>
+                                            <selectOption refDataItem="Standort" useValue="[Z_Monteure].[AH-Gruppe].[AH-Gruppe].[Standort]-&gt;:[PC].[@MEMBER].[96]" displayValue="RST"/>
+                                            <selectOption refDataItem="Standort" useValue="[Z_Monteure].[AH-Gruppe].[AH-Gruppe].[Standort]-&gt;:[PC].[@MEMBER].[( Leerstelle )~343190]" displayValue="( Leerstelle )"/>
+                                        </selectOptions>
+                                    </selectValue>
+                                </td>
+                                <td specname="tableCell"/>
+                                <td style="border-style:none;vertical-align:top;" specname="tableCell">
+                                    <selectValue specname="selectValue" parameter="p_Monteurgruppe" range="false" required="false" hideAdornments="false" multiSelect="true" refQuery="qry_Monteurgruppe1" prePopulateIfParentOptional="false" selectValueUI="checkboxGroup" rowsPerPage="5000" autoSubmit="false" name="_P3626229653" dataType="memberUniqueName" style="width:300px" columnName="Alle Monteurgruppen">
+                                        <selectOptions>
+                                            <selectOption refDataItem="Monteur_Gruppe_3" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur_Gruppe_2]-&gt;:[PC].[@MEMBER].[MECH]" displayValue="MECH"/>
+                                            <selectOption refDataItem="Monteur_Gruppe_3" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur_Gruppe_2]-&gt;:[PC].[@MEMBER].[SPENG]" displayValue="SPENG"/>
+                                            <selectOption refDataItem="Monteur_Gruppe_3" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur_Gruppe_2]-&gt;:[PC].[@MEMBER].[WERKMEI]" displayValue="AUFBER"/>
+                                            <selectOption refDataItem="Monteur_Gruppe_3" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur_Gruppe_2]-&gt;:[PC].[@MEMBER].[AZUBI~325086]" displayValue="AZUBI"/>
+                                            <selectOption refDataItem="Monteur_Gruppe_3" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur_Gruppe_2]-&gt;:[PC].[@MEMBER].[MONTEURE]" displayValue="MONTEURE"/>
+                                            <selectOption refDataItem="Monteur_Gruppe_3" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur_Gruppe_2]-&gt;:[PC].[@MEMBER].[LEHRLINGE]" displayValue="LEHRLINGE"/>
+                                        </selectOptions>
+                                    </selectValue>
+                                </td>
+                                <td style="text-align:right;" specname="tableCell"/>
+                                <td style="vertical-align:top;" specname="tableCell">
+                                    <selectValue specname="selectValue" parameter="p_Monteure" range="false" required="false" hideAdornments="false" multiSelect="true" refQuery="qry_Monteur1" cascadeOn="p_AH" prePopulateIfParentOptional="true" selectValueUI="checkboxGroup" rowsPerPage="5000" autoSubmit="false" name="_P1729323508" dataType="memberUniqueName" style="width:300px" columnName="Alle Monteure">
+                                        <selectOptions>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Melih Aksoy]" displayValue="Melih Aksoy"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Gheorghe Alin Buzgau]" displayValue="Gheorghe Alin Buzgau"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Viktor Balajti]" displayValue="Viktor Balajti"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Andreas Barduc]" displayValue="Andreas Barduc"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Leonard Barth]" displayValue="Leonard Barth"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Dominko Brkic]" displayValue="Dominko Brkic"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Rainer Dölle]" displayValue="Rainer Dölle"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Arlind Fazliu]" displayValue="Arlind Fazliu"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Luca Giorno]" displayValue="Luca Giorno"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Markus Gräubig]" displayValue="Markus Gräubig"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Tilo Güds]" displayValue="Tilo Güds"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Andreas Hamlescher]" displayValue="Andreas Hamlescher"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Johannes Hohenadl]" displayValue="Johannes Hohenadl"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Ahmet Husic]" displayValue="Ahmet Husic"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Alexander Karl]" displayValue="Alexander Karl"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Armen Khachatryan]" displayValue="Armen Khachatryan"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Ala Djabar Khalil]" displayValue="Ala Djabar Khalil"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Burim Kllokoqi]" displayValue="Burim Kllokoqi"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Oliver Kraus]" displayValue="Oliver Kraus"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Jan Kühnert]" displayValue="Jan Kühnert"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Vasile Lungu]" displayValue="Vasile Lungu"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Orkun Malakcioglu]" displayValue="Orkun Malakcioglu"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Maximilian Meichßner]" displayValue="Maximilian Meichßner"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Ludwig Meier]" displayValue="Ludwig Meier"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Nicolae Moraru]" displayValue="Nicolae Moraru"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Maximilian Nagel]" displayValue="Maximilian Nagel"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Rudolf-Asmir Peischl]" displayValue="Rudolf-Asmir Peischl"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Claudiu-Dumitru Pripon]" displayValue="Claudiu-Dumitru Pripon"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Fabian Salbach]" displayValue="Fabian Salbach"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Dominik Scharl]" displayValue="Dominik Scharl"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Matthias Schier]" displayValue="Matthias Schier"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Stefan Schlichting]" displayValue="Stefan Schlichting"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Mario Schrickel]" displayValue="Mario Schrickel"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Ivitsa Silyanoski]" displayValue="Ivitsa Silyanoski"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Alexander Strobl]" displayValue="Alexander Strobl"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Alexander Anton Strobl]" displayValue="Alexander Anton Strobl"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Marco Tramon]" displayValue="Marco Tramon"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Kevin Ullmann]" displayValue="Kevin Ullmann"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Petre Ungureanu]" displayValue="Petre Ungureanu"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Celal Kadir Vural]" displayValue="Celal Kadir Vural"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Thomas Ziep]" displayValue="Thomas Ziep"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Florin-Gabriel Moraru]" displayValue="Florin-Gabriel Moraru"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Florian Zandt]" displayValue="Florian Zandt"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Agim Abazaj]" displayValue="Agim Abazaj"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Armend Ajubi]" displayValue="Armend Ajubi"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Hadis Arifi]" displayValue="Hadis Arifi"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Dragan Bagaric]" displayValue="Dragan Bagaric"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Raffaele Cimatti]" displayValue="Raffaele Cimatti"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Ionel Ciprian Costea]" displayValue="Ionel Ciprian Costea"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Raymond Francisc Magyar]" displayValue="Raymond Francisc Magyar"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Daniel Pripon]" displayValue="Daniel Pripon"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Christian Schlundt]" displayValue="Christian Schlundt"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Julian Marco von Eyern]" displayValue="Julian Marco von Eyern"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Simon Maurice Dietsch]" displayValue="Simon Maurice Dietsch"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Niclas Paul Thürer]" displayValue="Niclas Paul Thürer"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Hammoud Komail]" displayValue="Hammoud Komail"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Nikolaou Apostolos-Eleftherios]" displayValue="Nikolaou Apostolos-Eleftherios"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Simon Böhm]" displayValue="Simon Böhm"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Arif Buchmeier]" displayValue="Arif Buchmeier"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Oguzhan Bulut]" displayValue="Oguzhan Bulut"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Vincent Bury]" displayValue="Vincent Bury"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Simon Maurice  Dietsch]" displayValue="Simon Maurice  Dietsch"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Milutin Djordjevic]" displayValue="Milutin Djordjevic"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Almir Dodic]" displayValue="Almir Dodic"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Alexander Draganovic]" displayValue="Alexander Draganovic"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Cameron Eichel]" displayValue="Cameron Eichel"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Leo Erceg]" displayValue="Leo Erceg"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Joni Gecaj]" displayValue="Joni Gecaj"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Kevin Greinwald]" displayValue="Kevin Greinwald"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Thushmithan Gunaratnam]" displayValue="Thushmithan Gunaratnam"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Timo Haas]" displayValue="Timo Haas"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Komail Hammoud]" displayValue="Komail Hammoud"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Christina Hohenleitner]" displayValue="Christina Hohenleitner"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Ebru Iyi]" displayValue="Ebru Iyi"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Hamza Jabar Ahmad]" displayValue="Hamza Jabar Ahmad"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Tobias Jantz]" displayValue="Tobias Jantz"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Baschar Khalil]" displayValue="Baschar Khalil"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Enes Emre Kilic]" displayValue="Enes Emre Kilic"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Emre Kocyigit]" displayValue="Emre Kocyigit"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Simon Kriest]" displayValue="Simon Kriest"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Marko Krstic]" displayValue="Marko Krstic"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Fabian Kühl]" displayValue="Fabian Kühl"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Dominik Lüftner]" displayValue="Dominik Lüftner"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Mark Major]" displayValue="Mark Major"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Maurice Markovic]" displayValue="Maurice Markovic"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Fabian Metzger]" displayValue="Fabian Metzger"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Lena Milic]" displayValue="Lena Milic"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Hamid Mirzaei]" displayValue="Hamid Mirzaei"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Marco Napolitano]" displayValue="Marco Napolitano"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Maximilian Obermaier]" displayValue="Maximilian Obermaier"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Marc Obermaier]" displayValue="Marc Obermaier"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Nicolo Panizza]" displayValue="Nicolo Panizza"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Erkan Raif Oglou]" displayValue="Erkan Raif Oglou"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Dzemail Ramovic]" displayValue="Dzemail Ramovic"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Omid Rasuli]" displayValue="Omid Rasuli"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Nils Rübenstrunk]" displayValue="Nils Rübenstrunk"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Nicolas Sandu]" displayValue="Nicolas Sandu"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Janik Schmitt]" displayValue="Janik Schmitt"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Cyrill Schreiber]" displayValue="Cyrill Schreiber"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Jonathan Sulzbach]" displayValue="Jonathan Sulzbach"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Niclas Thürer]" displayValue="Niclas Thürer"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Mehmet Serkan Tokmak]" displayValue="Mehmet Serkan Tokmak"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Mehmet-Ali Tuncer]" displayValue="Mehmet-Ali Tuncer"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Siegfried van Laak]" displayValue="Siegfried van Laak"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Vitus von Ah]" displayValue="Vitus von Ah"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Julian Marco von Eynern]" displayValue="Julian Marco von Eynern"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Konstantin Werner]" displayValue="Konstantin Werner"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Tim Wieczorek]" displayValue="Tim Wieczorek"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Michael Willibald]" displayValue="Michael Willibald"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Abazaj Agim]" displayValue="Abazaj Agim"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[( Leerstelle )~401246]" displayValue="( Leerstelle )"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Agim Abazaj~400989]" displayValue="Agim Abazaj"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Muhamed Cordic]" displayValue="Muhamed Cordic"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Florian Esten~398822]" displayValue="Florian Esten"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Benedikt Kaehs~401257]" displayValue="Benedikt Kaehs"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Daniel Karlsson~395332]" displayValue="Daniel Karlsson"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Oliver Kraus~396398]" displayValue="Oliver Kraus"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Vasile Lungu~400696]" displayValue="Vasile Lungu"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Ludwig  Meier]" displayValue="Ludwig  Meier"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Niklas Stöckemann~400952]" displayValue="Niklas Stöckemann"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Bernhard Süß]" displayValue="Bernhard Süß"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Petre Ungureanu~397072]" displayValue="Petre Ungureanu"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Emilio Galluzzi~400994]" displayValue="Emilio Galluzzi"/>
+                                            <selectOption refDataItem="Monteur" useValue="[Z_Monteure].[Monteur_Gruppe].[ohne ausgetretene MA].[Monteur]-&gt;:[PC].[@MEMBER].[Michael Türk]" displayValue="Michael Türk"/>
+                                        </selectOptions>
+                                    </selectValue>
+                                </td>
+                                <td style="text-align:right;" specname="tableCell"/>
+                                <td style="width:17%;" specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                            </tr>
+                            <tr specname="tableRow">
+                                <td specname="tableCell">
+                                    <span tabIndex="0" style="width:20px;height:30px;display:inline-table;border-collapse:separate;border-spacing:0px;" specname="textItem"></span>
+                                </td>
+                                <td style="padding-top:10px;padding-bottom:10px;" specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td style="width:13%;" specname="tableCell"/>
+                                <td style="width:17%;" specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                            </tr>
+                            <tr specname="tableRow">
+                                <td specname="tableCell"/>
+                                <td style="font-weight:bold;color:#FFFFFF;background-color:#3E5C76;padding-left:10px;padding-top:10px;padding-bottom:10px;height:50px;vertical-align:middle;text-align:left;" specname="tableCell">
+                                    <span tabIndex="0" style="font-weight:bold;color:#FFFFFF;vertical-align:top;" specname="textItem">Stempel-Code:</span>
+                                </td>
+                                <td style="padding-left:10px;" specname="tableCell"/>
+                                <td style="font-weight:bold;color:#FFFFFF;background-color:#3E5C76;padding-left:10px;padding-top:10px;padding-bottom:10px;vertical-align:middle;text-align:left;" class="mc_2265350403" specname="tableCell">
+                                    <span tabIndex="0" style="font-weight:bold;color:#FFFFFF;vertical-align:top;" specname="textItem">Stempel-Gruppe:</span>
+                                </td>
+                                <td style="padding-left:10px;" specname="tableCell"/>
+                                <td style="font-weight:bold;color:#FFFFFF;background-color:#3E5C76;padding-left:10px;padding-top:10px;padding-bottom:10px;vertical-align:middle;text-align:left;" specname="tableCell">
+                                    <table style="border-collapse:collapse;width:100%;" class="tb" specname="table" cellpadding="0" dir="ltr">
+                                        <tr specname="tableRow">
+                                            <td specname="tableCell">
+                                                <span tabIndex="0" style="font-weight:bold;color:#FFFFFF;vertical-align:top;" specname="textItem">Stempel-Gruppe Detail:</span>
+                                            </td>
+                                            <td style="padding-right:5px;text-align:right;" specname="tableCell">
+                                                <promptButton specname="promptButton" type="reprompt" class="bp">
+                                                    <span tabIndex="0" specname="textItem">Refresh</span>
+                                                </promptButton>
+                                            </td>
+                                        </tr>
+                                    </table>
+                                </td>
+                                <td style="font-weight:bold;color:#FFFFFF;background-color:#FFFFFF;padding-left:10px;padding-top:10px;padding-bottom:10px;vertical-align:middle;text-align:left;" specname="tableCell"/>
+                                <td style="font-weight:bold;color:#FFFFFF;background-color:#FFFFFF;padding-left:10px;padding-top:10px;padding-bottom:10px;vertical-align:middle;text-align:left;" class="mc_3657730628" specname="tableCell"/>
+                                <td style="font-weight:bold;color:#FFFFFF;background-color:#FFFFFF;padding-left:10px;padding-top:10px;padding-bottom:10px;width:13%;vertical-align:middle;text-align:left;" specname="tableCell"/>
+                                <td style="width:17%;" specname="tableCell"/>
+                                <td style="padding-left:10px;" specname="tableCell"/>
+                                <td specname="tableCell"/>
+                            </tr>
+                            <tr specname="tableRow">
+                                <td specname="tableCell"/>
+                                <td style="border-style:none;vertical-align:top;" specname="tableCell">
+                                    <selectValue specname="selectValue" parameter="p_Stempelcode" range="false" required="false" hideAdornments="false" multiSelect="true" refQuery="qry_Stempelcode1" prePopulateIfParentOptional="false" selectValueUI="checkboxGroup" rowsPerPage="5000" autoSubmit="false" name="_P3706494466" style="width:300px" columnName="Alle Stempelcodes">
+                                        <selectOptions>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[109 - Azubi 1.Lehrjahr]" displayValue="109 - Azubi 1.Lehrjahr"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[110 - Arbeitszeit Verwaltungs- und sonstige Mitarbeiter]" displayValue="110 - Arbeitszeit Verwaltungs- und sonstige Mitarbeiter"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[111 - Auftrag extern AW]" displayValue="111 - Auftrag extern AW"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[112 - Werkstatt Leerlauf]" displayValue="112 - Werkstatt Leerlauf"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[116 - Extern Werkstattauftrag abschleppen]" displayValue="116 - Extern Werkstattauftrag abschleppen"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[118 - Extern Teilebeschaffung für Werkstatt]" displayValue="118 - Extern Teilebeschaffung für Werkstatt"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[150 - Auftrag intern AW]" displayValue="150 - Auftrag intern AW"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[160 - Intern Werkstattauftrag Überführung]" displayValue="160 - Intern Werkstattauftrag Überführung"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[180 - Reinigung und Pflege Gebr.FZG. ohne Auftrag]" displayValue="180 - Reinigung und Pflege Gebr.FZG. ohne Auftrag"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[200 - Endkontrolle für Teamverantwortlichen]" displayValue="200 - Endkontrolle für Teamverantwortlichen"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[205 - Unterstützung Annahme/Fehlerspeicher auslesen]" displayValue="205 - Unterstützung Annahme/Fehlerspeicher auslesen"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[210 - Homeoffice Verwaltungs- und sonstige Mitarbeiter]" displayValue="210 - Homeoffice Verwaltungs- und sonstige Mitarbeiter"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[211 - Werkstattarbeiten Allgemein/Reinigung]" displayValue="211 - Werkstattarbeiten Allgemein/Reinigung"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[212 - Arbeiten für RR]" displayValue="212 - Arbeiten für RR"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[213 - Rädereinlagerung ohne Auftrag]" displayValue="213 - Rädereinlagerung ohne Auftrag"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[215 - Rücknahme und Betankung Ersatzfzg. ohne Auftrag]" displayValue="215 - Rücknahme und Betankung Ersatzfzg. ohne Auftrag"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[216 - Hol und Bring Service]" displayValue="216 - Hol und Bring Service"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[218 - Teilebeschaffung ohne Werkstattauftrag]" displayValue="218 - Teilebeschaffung ohne Werkstattauftrag"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[240 - Reparatur Abschleppfzg./Servicemobil]" displayValue="240 - Reparatur Abschleppfzg./Servicemobil"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[241 - Werkstatt Nacharbeiten]" displayValue="241 - Werkstatt Nacharbeiten"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[242 - Meistervertretung]" displayValue="242 - Meistervertretung"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[243 - Servicemobil]" displayValue="243 - Servicemobil"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[300 - Fehlzeit ungenehmigt]" displayValue="300 - Fehlzeit ungenehmigt"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[304 - Kurzarbeit genehmigt]" displayValue="304 - Kurzarbeit genehmigt"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[319 - Krankheit]" displayValue="319 - Krankheit"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[331 - Fortbildung intern]" displayValue="331 - Fortbildung intern"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[350 - Urlaub bezahlt in Std]" displayValue="350 - Urlaub bezahlt in Std"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[351 - Urlaub unbezahlt in Std]" displayValue="351 - Urlaub unbezahlt in Std"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[352 - Sonderurlaub in Std]" displayValue="352 - Sonderurlaub in Std"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[353 - Erziehungsurlaub in Std]" displayValue="353 - Erziehungsurlaub in Std"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[354 - Berufsschule in Std]" displayValue="354 - Berufsschule in Std"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[355 - Fortbildung in Std]" displayValue="355 - Fortbildung in Std"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[356 - Dienstreise in Std]" displayValue="356 - Dienstreise in Std"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[357 - Prüfung in Std]" displayValue="357 - Prüfung in Std"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[370 - Krank in Std]" displayValue="370 - Krank in Std"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[371 - Krank o. Arb.unf.Besch. in Std]" displayValue="371 - Krank o. Arb.unf.Besch. in Std"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[372 - Krank ohne LFZ in Std]" displayValue="372 - Krank ohne LFZ in Std"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[375 - Unfall in Std]" displayValue="375 - Unfall in Std"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[377 - Fehltag unbezahlt in Std]" displayValue="377 - Fehltag unbezahlt in Std"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[378 - Freizeit aus Ü-Std. in St]" displayValue="378 - Freizeit aus Ü-Std. in St"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[379 - Wehrdienst in Std]" displayValue="379 - Wehrdienst in Std"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[400 - Heiligabend in Std]" displayValue="400 - Heiligabend in Std"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[401 - Sylvester in Std]" displayValue="401 - Sylvester in Std"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[450 - Feiertag in Std]" displayValue="450 - Feiertag in Std"/>
+                                            <selectOption refDataItem="chd_Stempelcode" useValue="[Z_Monteure].[Stempel-Code].[Stempel-Code].[Activity_Desc]-&gt;:[PC].[@MEMBER].[1200 - Sollzeit]" displayValue="1200 - Sollzeit"/>
+                                        </selectOptions>
+                                    </selectValue>
+                                </td>
+                                <td specname="tableCell"/>
+                                <td style="border-style:none;" specname="tableCell">
+                                    <selectValue specname="selectValue" parameter="p_Stempelgruppen" range="false" required="false" hideAdornments="false" multiSelect="true" refQuery="qry_Stempelgruppen1" prePopulateIfParentOptional="false" selectValueUI="checkboxGroup" rowsPerPage="5000" autoSubmit="false" name="_P1403808674" dataType="memberUniqueName" style="width:300px" columnName="Alle Stempelgruppen">
+                                        <selectOptions>
+                                            <selectOption refDataItem="Activity_Codes_Group1" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group1]-&gt;:[PC].[@MEMBER].[prod.]" displayValue="prod."/>
+                                            <selectOption refDataItem="Activity_Codes_Group1" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group1]-&gt;:[PC].[@MEMBER].[unprod.]" displayValue="W-var. Std."/>
+                                            <selectOption refDataItem="Activity_Codes_Group1" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group1]-&gt;:[PC].[@MEMBER].[abw.]" displayValue="W-fix Std."/>
+                                        </selectOptions>
+                                    </selectValue>
+                                </td>
+                                <td specname="tableCell"/>
+                                <td style="border-style:none;vertical-align:top;" specname="tableCell">
+                                    <selectValue specname="selectValue" parameter="p_Stempelgruppen2" range="false" required="false" hideAdornments="false" multiSelect="true" refQuery="qry_Stempelgruppen1" cascadeOn="p_Stempelgruppen" prePopulateIfParentOptional="true" selectValueUI="checkboxGroup" rowsPerPage="5000" autoSubmit="false" name="_P694958274" dataType="memberUniqueName" style="width:300px" columnName="Alle Activity Codes">
+                                        <selectOptions>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[extern]" displayValue="extern"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[intern]" displayValue="intern"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[116 - Extern Werkstattauftrag abschleppen]" displayValue="116 - Extern Werkstattauftrag abschleppen"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[118 - Extern Teilebeschaffung für Werkstatt]" displayValue="118 - Extern Teilebeschaffung für Werkstatt"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[160 - Intern Werkstattauftrag Überführung]" displayValue="160 - Intern Werkstattauftrag Überführung"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[180 - Reinigung und Pflege Gebr.FZG. ohne Auftrag]" displayValue="180 - Reinigung und Pflege Gebr.FZG. ohne Auftrag"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[200 - Endkontrolle für Teamverantwortlichen]" displayValue="200 - Endkontrolle für Teamverantwortlichen"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[205 - Unterstützung Annahme/Fehlerspeicher auslesen]" displayValue="205 - Unterstützung Annahme/Fehlerspeicher auslesen"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[211 - Werkstattarbeiten Allgemein/Reinigung]" displayValue="211 - Werkstattarbeiten Allgemein/Reinigung"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[213 - Rädereinlagerung ohne Auftrag]" displayValue="213 - Rädereinlagerung ohne Auftrag"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[215 - Rücknahme und Betankung Ersatzfzg. ohne Auftrag]" displayValue="215 - Rücknahme und Betankung Ersatzfzg. ohne Auftrag"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[216 - Hol und Bring Service]" displayValue="216 - Hol und Bring Service"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[218 - Teilebeschaffung ohne Werkstattauftrag]" displayValue="218 - Teilebeschaffung ohne Werkstattauftrag"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[240 - Reparatur Abschleppfzg./Servicemobil]" displayValue="240 - Reparatur Abschleppfzg./Servicemobil"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[241 - Werkstatt Nacharbeiten]" displayValue="241 - Werkstatt Nacharbeiten"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[242 - Meistervertretung]" displayValue="242 - Meistervertretung"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[243 - Servicemobil]" displayValue="243 - Servicemobil"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[331 - Fortbildung intern]" displayValue="331 - Fortbildung intern"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[109 - Azubi 1.Lehrjahr~344630]" displayValue="109 - Azubi 1.Lehrjahr"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[110 - Arbeitszeit Verwaltungs- und sonstige Mitarbeiter~344631]" displayValue="110 - Arbeitszeit Verwaltungs- und sonstige Mitarbeiter"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[112 - Werkstatt Leerlauf]" displayValue="112 - Werkstatt Leerlauf"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[210 - Homeoffice Verwaltungs- und sonstige Mitarbeiter~344633]" displayValue="210 - Homeoffice Verwaltungs- und sonstige Mitarbeiter"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[212 - Arbeiten für RR]" displayValue="212 - Arbeiten für RR"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[300 - Fehlzeit ungenehmigt]" displayValue="300 - Fehlzeit ungenehmigt"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[319 - Krankheit]" displayValue="319 - Krankheit"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[350 - Urlaub bezahlt in Std]" displayValue="350 - Urlaub bezahlt in Std"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[351 - Urlaub unbezahlt in Std]" displayValue="351 - Urlaub unbezahlt in Std"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[352 - Sonderurlaub in Std]" displayValue="352 - Sonderurlaub in Std"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[353 - Erziehungsurlaub in Std]" displayValue="353 - Erziehungsurlaub in Std"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[354 - Berufsschule in Std]" displayValue="354 - Berufsschule in Std"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[355 - Fortbildung in Std]" displayValue="355 - Fortbildung in Std"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[356 - Dienstreise in Std]" displayValue="356 - Dienstreise in Std"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[357 - Prüfung in Std]" displayValue="357 - Prüfung in Std"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[370 - Krank in Std]" displayValue="370 - Krank in Std"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[371 - Krank o. Arb.unf.Besch. in Std]" displayValue="371 - Krank o. Arb.unf.Besch. in Std"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[372 - Krank ohne LFZ in Std]" displayValue="372 - Krank ohne LFZ in Std"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[375 - Unfall in Std]" displayValue="375 - Unfall in Std"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[377 - Fehltag unbezahlt in Std]" displayValue="377 - Fehltag unbezahlt in Std"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[378 - Freizeit aus Ü-Std. in St]" displayValue="378 - Freizeit aus Ü-Std. in St"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[379 - Wehrdienst in Std]" displayValue="379 - Wehrdienst in Std"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[400 - Heiligabend in Std]" displayValue="400 - Heiligabend in Std"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[401 - Sylvester in Std]" displayValue="401 - Sylvester in Std"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[450 - Feiertag in Std]" displayValue="450 - Feiertag in Std"/>
+                                            <selectOption refDataItem="Activity_Codes_Group2" useValue="[Z_Monteure].[Stempel-Gruppe].[Stempel-Gruppe].[Activity_Codes_Group2]-&gt;:[PC].[@MEMBER].[304 - Kurzarbeit genehmigt]" displayValue="304 - Kurzarbeit genehmigt"/>
+                                        </selectOptions>
+                                    </selectValue>
+                                </td>
+                                <td style="text-align:right;" specname="tableCell"/>
+                                <td style="vertical-align:top;text-align:left;" specname="tableCell"/>
+                                <td style="text-align:right;" specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                            </tr>
+                            <tr specname="tableRow">
+                                <td specname="tableCell">
+                                    <span tabIndex="0" style="width:20px;height:30px;display:inline-table;border-collapse:separate;border-spacing:0px;" specname="textItem"></span>
+                                </td>
+                                <td style="padding-top:10px;padding-bottom:10px;" specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td style="width:13%;" specname="tableCell"/>
+                                <td style="width:17%;" specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                            </tr>
+                            <tr specname="tableRow">
+                                <td specname="tableCell"/>
+                                <td style="font-weight:bold;color:#FFFFFF;background-color:#FFFFFF;padding-left:10px;padding-top:10px;padding-bottom:10px;height:50px;vertical-align:middle;text-align:left;" specname="tableCell">
+                                    <span tabIndex="0" style="font-weight:bold;color:#FFFFFF;vertical-align:top;" specname="textItem">Monteur/Azubi:</span>
+                                </td>
+                                <td style="padding-left:10px;vertical-align:top;" specname="tableCell"/>
+                                <td style="font-weight:bold;color:#FFFFFF;background-color:#FFFFFF;padding-left:10px;padding-top:10px;padding-bottom:10px;vertical-align:middle;text-align:left;" specname="tableCell">
+                                    <span tabIndex="0" style="font-weight:bold;color:#FFFFFF;vertical-align:top;" specname="textItem">Mechanic/Trainee:</span>
+                                </td>
+                                <td specname="tableCell"/>
+                                <td style="font-weight:bold;color:#FFFFFF;padding-left:10px;padding-top:10px;padding-bottom:10px;vertical-align:middle;text-align:left;" specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td style="font-weight:bold;color:#FFFFFF;padding-left:10px;padding-top:10px;padding-bottom:10px;vertical-align:middle;text-align:left;" specname="tableCell"/>
+                                <td style="font-weight:bold;color:#FFFFFF;background-color:#FFFFFF;padding-left:10px;padding-top:10px;padding-bottom:10px;vertical-align:middle;text-align:left;" specname="tableCell"/>
+                                <td style="font-weight:bold;color:#FFFFFF;background-color:#FFFFFF;padding-left:10px;padding-top:10px;padding-bottom:10px;vertical-align:middle;text-align:left;" specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                            </tr>
+                            <tr specname="tableRow">
+                                <td specname="tableCell"/>
+                                <td style="border-style:none;vertical-align:top;" specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td style="vertical-align:top;" specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td style="vertical-align:top;" specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell" colspan="3"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                            </tr>
+                            <tr specname="tableRow">
+                                <td specname="tableCell">
+                                    <span tabIndex="0" style="width:20px;height:30px;display:inline-table;border-collapse:separate;border-spacing:0px;" specname="textItem"></span>
+                                </td>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td style="width:13%;" specname="tableCell"/>
+                                <td style="width:17%;" specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                            </tr>
+                            <tr specname="tableRow">
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td style="width:13%;" specname="tableCell"/>
+                                <td style="width:17%;" specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                            </tr>
+                            <tr specname="tableRow">
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td style="width:13%;" specname="tableCell"/>
+                                <td style="width:17%;" specname="tableCell"/>
+                                <td specname="tableCell"/>
+                                <td specname="tableCell"/>
+                            </tr>
+                        </table>
+                    </div>
+                </td>
+            </tr>
+            <tr>
+                <td style="background-color:#C3CCD4;padding-top:10px;padding-bottom:10px;" specname="pageFooter">
+                    <promptButton specname="promptButton" type="cancel" class="bp"/>
+                    <promptButton specname="promptButton" type="finish" class="bp"/>
+                </td>
+            </tr>
+        </table>
+    </body>
+</html>

+ 268 - 0
cognos11/examples/Z.05_request.xml

@@ -0,0 +1,268 @@
+<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:bus='http://developer.cognos.com/schemas/bibus/3/' xmlns:rns1='http://developer.cognos.com/schemas/reportService/1'>
+    <SOAP-ENV:Header>
+        <bus:biBusHeader xsi:type="bus:biBusHeader">
+            <bus:CAM xsi:type="bus:CAM">
+                <authenticityToken xsi:type="xsd:base64Binary">VjEyWe7O7VVMefwDzH0SoGLnO3CcfRp/xTpWIDlO73eLDg==</authenticityToken>
+            </bus:CAM>
+            <bus:CAF xsi:type="bus:CAF">
+                <contextID xsi:type="xsd:string">CAFW000000a0Q0FGQTYwMDAwMDAwMDlBaFFBQUFCZzkqVmxJZm1FT0VEKlpwWnZSUXBPOGUqOVd3Y0FBQUJUU0VFdE1qVTJJQUFBQUlPdWhLd1hzVkZTOS1Nd2h3KlRNckt0MmJBcVFobmxSRnhmbjZ3bWpzQzY0NzIwODl8cnM_</contextID>
+            </bus:CAF>
+            <bus:hdrSession xsi:type="bus:hdrSession">
+                <bus:formFieldVars SOAP-ENC:arrayType="bus:formFieldVar[]" xsi:type="SOAP-ENC:Array">
+                    <item xsi:type="bus:formFieldVar">
+                        <name xsi:type="xsd:string">_ContextBlockSize</name>
+                        <value xsi:type="xsd:string">1000000</value>
+                    </item>
+                    <item xsi:type="bus:formFieldVar">
+                        <name xsi:type="xsd:string">ignoreXHTMLStrict</name>
+                        <value xsi:type="xsd:string">true</value>
+                    </item>
+                </bus:formFieldVars>
+            </bus:hdrSession>
+            <bus:userPreferenceVars SOAP-ENC:arrayType="bus:userPreferenceVar[]" xsi:type="SOAP-ENC:Array">
+                <item>
+                    <bus:name xsi:type="xsd:string">productLocale</bus:name>
+                    <bus:value xsi:type="xsd:string">de</bus:value>
+                </item>
+                <item>
+                    <bus:name xsi:type="xsd:string">contentLocale</bus:name>
+                    <bus:value xsi:type="xsd:string">de</bus:value>
+                </item>
+            </bus:userPreferenceVars>
+            <bus:dispatcherTransportVars xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:dispatcherTransportVar[]">
+                <item xsi:type="bus:dispatcherTransportVar">
+                    <name xsi:type="xsd:string">rs</name>
+                    <value xsi:type="xsd:string">true</value>
+                </item>
+            </bus:dispatcherTransportVars>
+            <bus:tracking xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="bus:tracking">
+                <bus:conversationContext xsi:type="bus:conversationContext">
+                    <bus:affinityStrength xsi:type="xs:int">5000</bus:affinityStrength>
+                    <bus:id xsi:type="xs:string">l2jhyGG4h4ChhCC8shMlMyssG2CqGhGvdj84C4dj</bus:id>
+                    <bus:nodeID xsi:type="xs:string">21</bus:nodeID>
+                    <bus:processID xsi:type="xs:int">8056</bus:processID>
+                    <bus:status xsi:type="xs:string">complete</bus:status>
+                </bus:conversationContext>
+                <bus:hopCount xsi:type="xs:integer">0</bus:hopCount>
+                <bus:providers xsi:type="SOAP-ENC:Array" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENC:arrayType="bus:provider[0]"/>
+                <bus:requestContext xsi:type="xs:string">l2jhyGG4h4ChhCC8shMlMyssG2CqGhGvdj84C4dj</bus:requestContext>
+                <bus:sessionContext xsi:type="xs:string">f:0:D7B5896CE9FAC64AF4DE2971DC619D3985D459603DE5C59C8C92C833AC70DD10</bus:sessionContext>
+            </bus:tracking>
+        </bus:biBusHeader>
+    </SOAP-ENV:Header>
+    <SOAP-ENV:Body>
+        <rns1:forward>
+            <bus:conversation xsi:type="bus:asynchRequest">
+                <bus:name xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">run</bus:name>
+                <bus:objectPath xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="bus:searchPathSingleObject">storeID("i9CFFDE3047E2411EA111767A2C4E910D")</bus:objectPath>
+                <bus:options xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="SOAP-ENC:Array" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENC:arrayType="bus:option[15]">
+                    <item xsi:type="bus:asynchOptionInt">
+                        <bus:name xsi:type="bus:asynchOptionEnum">primaryWaitThreshold</bus:name>
+                        <bus:value xsi:type="xs:int">5</bus:value>
+                    </item>
+                    <item xsi:type="bus:asynchOptionInt">
+                        <bus:name xsi:type="bus:asynchOptionEnum">secondaryWaitThreshold</bus:name>
+                        <bus:value xsi:type="xs:int">30</bus:value>
+                    </item>
+                    <item xsi:type="bus:runOptionStringArray">
+                        <bus:name xsi:type="bus:runOptionEnum">outputFormat</bus:name>
+                        <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xs:string[1]">
+                            <item xsi:type="xs:string">XHTML</item>
+                        </bus:value>
+                    </item>
+                    <item xsi:type="bus:asynchOptionEncoding">
+                        <bus:name xsi:type="bus:asynchOptionEnum">attachmentEncoding</bus:name>
+                        <bus:value xsi:type="bus:encodingEnum">MIME</bus:value>
+                    </item>
+                    <item xsi:type="bus:runOptionAnyURI">
+                        <bus:name xsi:type="bus:runOptionEnum">xslURL</bus:name>
+                        <bus:value xsi:type="xs:string">V5html_viewer.xsl</bus:value>
+                    </item>
+                    <item xsi:type="bus:runOptionString">
+                        <bus:name xsi:type="bus:runOptionEnum">promptFormat</bus:name>
+                        <bus:value xsi:type="xs:string">XHTMLFRGMT</bus:value>
+                    </item>
+                    <item xsi:type="bus:runOptionAnyURI">
+                        <bus:name xsi:type="bus:runOptionEnum">outputLocation</bus:name>
+                        <bus:value xsi:type="xs:string">http://developer.cognos.com/ceba/constants/temporaryObjectLocationEnum#serverFileSystem</bus:value>
+                    </item>
+                    <item xsi:type="bus:runOptionData">
+                        <bus:name xsi:type="bus:runOptionEnum">data</bus:name>
+                        <bus:value xsi:type="bus:dataEnum">runWithAllData</bus:value>
+                    </item>
+                    <item xsi:type="bus:genericOptionBoolean">
+                        <bus:name xsi:type="xs:string">http://developer.cognos.com/ceba/constants/systemOptionEnum#accessibilityFeatures</bus:name>
+                        <bus:value xsi:type="xs:boolean">false</bus:value>
+                    </item>
+                    <item xsi:type="bus:genericOptionBoolean">
+                        <bus:name xsi:type="xs:string">http://developer.cognos.com/ceba/constants/biDirectionalOptionEnum#biDirectionalFeaturesEnabled</bus:name>
+                        <bus:value xsi:type="xs:boolean">false</bus:value>
+                    </item>
+                    <item xsi:type="bus:runOptionBoolean">
+                        <bus:name xsi:type="bus:runOptionEnum">returnOutputWhenAvailable</bus:name>
+                        <bus:value xsi:type="xs:boolean">true</bus:value>
+                    </item>
+                    <item xsi:type="bus:runOptionNameValueArray">
+                        <bus:name xsi:type="bus:runOptionEnum">xslParameters</bus:name>
+                        <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:nameValue[3]">
+                            <item xsi:type="bus:nameValue">
+                                <bus:name xsi:type="xs:string">CVGateway</bus:name>
+                                <bus:value xsi:type="xs:string">../v1/disp</bus:value>
+                            </item>
+                            <item xsi:type="bus:nameValue">
+                                <bus:name xsi:type="xs:string">renderIntermediateXML</bus:name>
+                                <bus:value xsi:type="xs:string">false</bus:value>
+                            </item>
+                            <item xsi:type="bus:nameValue">
+                                <bus:name xsi:type="xs:string">renderEnvironment</bus:name>
+                                <bus:value xsi:type="xs:string">false</bus:value>
+                            </item>
+                        </bus:value>
+                    </item>
+                    <item xsi:type="bus:genericOptionBoolean">
+                        <bus:name xsi:type="xs:string">http://developer.cognos.com/ceba/constants/runOptionEnum#interactive</bus:name>
+                        <bus:value xsi:type="xs:boolean">true</bus:value>
+                    </item>
+                    <item xsi:type="bus:genericOptionAnyURI">
+                        <bus:name xsi:type="xs:string">http://developer.cognos.com/ceba/constants/runOptionEnum#promptXslUrl</bus:name>
+                        <bus:value xsi:type="xs:string">V5html_viewer.xsl</bus:value>
+                    </item>
+                    <item xsi:type="bus:runOptionLanguageArray">
+                        <bus:name xsi:type="bus:runOptionEnum">outputLocale</bus:name>
+                        <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xs:string[1]">
+                            <item xsi:type="xs:string">de</item>
+                        </bus:value>
+                    </item>
+                </bus:options>
+                <bus:parameters xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="SOAP-ENC:Array" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENC:arrayType="bus:parameterValue[10]">
+                    <item xsi:type="bus:parameterValue">
+                        <bus:name xsi:type="xs:string">p_Stempelcode</bus:name>
+                        <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[0]"/>
+                    </item>
+                    <item xsi:type="bus:parameterValue">
+                        <bus:name xsi:type="xs:string">p_Mandant</bus:name>
+                        <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[0]"/>
+                    </item>
+                    <item xsi:type="bus:parameterValue">
+                        <bus:name xsi:type="xs:string">p_Stempelgruppen</bus:name>
+                        <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[0]"/>
+                    </item>
+                    <item xsi:type="bus:parameterValue">
+                        <bus:name xsi:type="xs:string">p_Monteure</bus:name>
+                        <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[0]"/>
+                    </item>
+                    <item xsi:type="bus:parameterValue">
+                        <bus:name xsi:type="xs:string">p_Stempelgruppen2</bus:name>
+                        <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[0]"/>
+                    </item>
+                    <item xsi:type="bus:parameterValue">
+                        <bus:name xsi:type="xs:string">p_Zeitraum</bus:name>
+                        <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[1]">
+                            <item xsi:type="bus:simpleParmValueItem">
+                                <bus:inclusive xsi:type="xs:boolean">true</bus:inclusive>
+                                <bus:display xsi:type="xs:string">Aktueller Monat</bus:display>
+                                <bus:use xsi:type="xs:string">Aktueller Monat</bus:use>
+                            </item>
+                        </bus:value>
+                    </item>
+                    <item xsi:type="bus:parameterValue">
+                        <bus:name xsi:type="xs:string">p_Kennzahl</bus:name>
+                        <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[1]">
+                            <item xsi:type="bus:simpleParmValueItem">
+                                <bus:inclusive xsi:type="xs:boolean">true</bus:inclusive>
+                                <bus:display xsi:type="xs:string">fakt. Std.</bus:display>
+                                <bus:use xsi:type="xs:string">[Z_Monteure].[Kennzahlen].[fakt. Std.]</bus:use>
+                            </item>
+                        </bus:value>
+                    </item>
+                    <item xsi:type="bus:parameterValue">
+                        <bus:name xsi:type="xs:string">p_AH</bus:name>
+                        <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[0]"/>
+                    </item>
+                    <item xsi:type="bus:parameterValue">
+                        <bus:name xsi:type="xs:string">p_Auswahl_Monate</bus:name>
+                        <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[1]">
+                            <item xsi:type="bus:simpleParmValueItem">
+                                <bus:inclusive xsi:type="xs:boolean">true</bus:inclusive>
+                                <bus:display xsi:type="xs:string">letzte 13 Monate</bus:display>
+                                <bus:use xsi:type="xs:string">letzte 13 Monate</bus:use>
+                            </item>
+                        </bus:value>
+                    </item>
+                    <item xsi:type="bus:parameterValue">
+                        <bus:name xsi:type="xs:string">p_Monteurgruppe</bus:name>
+                        <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[0]"/>
+                    </item>
+                </bus:parameters>
+                <bus:specification xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="SOAP-ENC:Array" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENC:arrayType="bus:asynchSpecification[0]"/>
+                <bus:stateData xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="bus:xmlEncodedXML">&lt;stateData&gt;H4sIAAAAAAAA/3VR0W7bMAz8lTzNT21EOYljFgNWNO42rGmDuHvpEBSKzDhaZcmTZLXZ1w92kgHbsBfhwCOPx5MEwHW5crZpw7J2EeaohQ9rMhU5qu7EwXahZBg5/4M4TqxETSWfYaFMLbYkut3OuopcZ2rvSQWCXtCdZtbUWjfMbHcoIcVjoSQXlaTIU2xtIBOU0CvhREOB3L1oyDcMY4Y+WEefFz5NUeU3t7eLImWTrOATgOIaALJZds1vJkUObIESONJbcOLO1rUydcxRVJ+sXImw78/JsbEV6V6+hJTjWFrT7x7vrK7IfftgREPvk483yeav0krIF1GTTzbj9gjPzNPzshfpHCWb8SB/Zjjj/ALggs0fgb2TVltzlWYnMM0up1n+lGwiMLTb7yRD79IDsP/ZOgb30IW2C/8YbKwRQSu5f2aQbMZu6P3t8ZJNR4UJr0q+6M7Uoy9kzE+x12SSDUoO2DrVCHdY04+OfDjHBylqWz8M7h4PLfnZ6fcizAamJSeCsmYgMyzeSHaBUE7Q+dhGzrCineh0KEmT7Dt9SUExjABYOaX113ZhX82SYZwjvZF8VA15mCDM8nzKU2DpFUDWh2REVPWwzQNHGMEI5v3LRnGOvjduJClAlMDQi0jHpGKGUphSRNqGmJ/xtd8GxF8ULi4oCAMAAA==&lt;/stateData&gt;</bus:stateData>
+            </bus:conversation>
+            <bus:parameterValues xmlns:bus='http://developer.cognos.com/schemas/bibus/3/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/' SOAP-ENC:arrayType="bus:parameterValue[]" xsi:type="SOAP-ENC:Array">
+                <item xsi:type="bus:parameterValue">
+                    <bus:name xsi:type="xsd:string">p_Auswahl_Monate</bus:name>
+                    <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[1]">
+                        <item xsi:type="bus:simpleParmValueItem">
+                            <bus:inclusive xsi:type="xsd:boolean">true</bus:inclusive>
+                            <bus:use xsi:type="xsd:string">letzte 13 Monate</bus:use>
+                            <bus:display xsi:type="xsd:string">letzte 13 Monate</bus:display>
+                        </item>
+                    </bus:value>
+                </item>
+                <item xsi:type="bus:parameterValue">
+                    <bus:name xsi:type="xsd:string">p_Von</bus:name>
+                    <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[1]">
+                        <item xsi:type="bus:simpleParmValueItem">
+                            <bus:inclusive xsi:type="xsd:boolean">true</bus:inclusive>
+                            <bus:use xsi:type="xsd:string">2023-11-09</bus:use>
+                            <bus:display xsi:type="xsd:string">09.11.2023</bus:display>
+                        </item>
+                    </bus:value>
+                </item>
+                <item xsi:type="bus:parameterValue">
+                    <bus:name xsi:type="xsd:string">p_Bis</bus:name>
+                    <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[1]">
+                        <item xsi:type="bus:simpleParmValueItem">
+                            <bus:inclusive xsi:type="xsd:boolean">true</bus:inclusive>
+                            <bus:use xsi:type="xsd:string">2023-11-09</bus:use>
+                            <bus:display xsi:type="xsd:string">09.11.2023</bus:display>
+                        </item>
+                    </bus:value>
+                </item>
+                <item xsi:type="bus:parameterValue">
+                    <bus:name xsi:type="xsd:string">p_Mandant</bus:name>
+                    <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[0]"></bus:value>
+                </item>
+                <item xsi:type="bus:parameterValue">
+                    <bus:name xsi:type="xsd:string">p_AH</bus:name>
+                    <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[0]"></bus:value>
+                </item>
+                <item xsi:type="bus:parameterValue">
+                    <bus:name xsi:type="xsd:string">p_Monteurgruppe</bus:name>
+                    <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[0]"></bus:value>
+                </item>
+                <item xsi:type="bus:parameterValue">
+                    <bus:name xsi:type="xsd:string">p_Monteure</bus:name>
+                    <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[0]"></bus:value>
+                </item>
+                <item xsi:type="bus:parameterValue">
+                    <bus:name xsi:type="xsd:string">p_Stempelcode</bus:name>
+                    <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[0]"></bus:value>
+                </item>
+                <item xsi:type="bus:parameterValue">
+                    <bus:name xsi:type="xsd:string">p_Stempelgruppen</bus:name>
+                    <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[0]"></bus:value>
+                </item>
+                <item xsi:type="bus:parameterValue">
+                    <bus:name xsi:type="xsd:string">p_Stempelgruppen2</bus:name>
+                    <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[0]"></bus:value>
+                </item>
+            </bus:parameterValues>
+            <bus:options SOAP-ENC:arrayType="bus:option[]" xsi:type="SOAP-ENC:Array">
+                <item xsi:type="bus:runOptionBoolean">
+                    <bus:name xsi:type="bus:runOptionEnum">prompt</bus:name>
+                    <bus:value xsi:type="xsd:boolean">false</bus:value>
+                </item>
+            </bus:options>
+        </rns1:forward>
+    </SOAP-ENV:Body>
+</SOAP-ENV:Envelope>

+ 4 - 4
database/database.py

@@ -1,14 +1,14 @@
 def conn_string(dsn):
     if dsn["driver"] == "mssql":
-        return f"mssql+pyodbc://{dsn['user']}:{dsn['pass']}@{dsn['server']}/{dsn['database']}?driver=SQL+Server+Native+Client+11.0"
+        return f"mssql+pyodbc://{dsn['user']}:{dsn['password']}@{dsn['server']}/{dsn['database']}?driver=SQL+Server+Native+Client+11.0"
     if dsn["driver"] == "mysql":
-        return f"mysql+pymysql://{dsn['user']}:{dsn['pass']}@{dsn['server']}/{dsn['database']}?charset=utf8mb4"
+        return f"mysql+pymysql://{dsn['user']}:{dsn['password']}@{dsn['server']}/{dsn['database']}?charset=utf8mb4"
     return f"pyodbc://{dsn['user']}:{dsn['pass']}@{dsn['server']}/{dsn['database']}?driver={dsn['driver']}"
 
 
 def bcp_conn_params(dsn):
-    return f"-S {dsn['server']} -d {dsn['database']} -U {dsn['user']} -P {dsn['pass']}"
+    return f"-S {dsn['server']} -d {dsn['database']} -U {dsn['user']} -P {dsn['password']}"
 
 
 def mysql_conn_params(dsn):
-    return f"-h {dsn['server']} -D {dsn['database']} -u {dsn['user']} -p {dsn['pass']}"
+    return f"-h {dsn['server']} -D {dsn['database']} -u {dsn['user']} -p {dsn['password']}"

+ 90 - 0
database/db_to_parquet.py

@@ -0,0 +1,90 @@
+from database import conn_string
+import pandas as pd
+import numpy as np
+import fastparquet
+from sqlalchemy import create_engine, inspect, schema, Table
+
+# Copied from pandas with modifications
+
+
+def __get_dtype(column, sqltype):
+    import sqlalchemy.dialects as sqld
+    from sqlalchemy.types import Integer, Float, Boolean, DateTime, Date, TIMESTAMP
+
+    if isinstance(sqltype, Float):
+        return float
+    elif isinstance(sqltype, Integer):
+        # Since DataFrame cannot handle nullable int, convert nullable ints to floats
+        if column.nullable:
+            return float
+        # TODO: Refine integer size.
+        return np.dtype("int64")
+    elif isinstance(sqltype, TIMESTAMP):
+        # we have a timezone capable type
+        if not sqltype.timezone:
+            return np.dtype("datetime64[ns]")
+        return pd.DatetimeTZDtype
+    elif isinstance(sqltype, DateTime):
+        # Caution: np.datetime64 is also a subclass of np.number.
+        return np.dtype("datetime64[ns]")
+    elif isinstance(sqltype, Date):
+        return np.date
+    elif isinstance(sqltype, Boolean):
+        return bool
+    elif isinstance(sqltype, sqld.mssql.base.BIT):
+        # Handling database provider specific types
+        return np.dtype("u1")
+    # Catch all type - handle provider specific types in another elif block
+    return object
+
+
+def __write_parquet(output_path: str, batch_array, column_dict, write_index: bool, compression: str, append: bool):
+    # Create the DataFrame to hold the batch array contents
+    b_df = pd.DataFrame(batch_array, columns=column_dict)
+    # Cast the DataFrame columns to the sqlalchemy column analogues
+    b_df = b_df.astype(dtype=column_dict)
+    # Write to the parquet file (first write needs append=False)
+    fastparquet.write(output_path, b_df, write_index=write_index, compression=compression, append=append)
+
+
+def table_to_parquet(
+    output_path: str, table_name: str, con, batch_size: int = 10000, write_index: bool = True, compression: str = None
+):
+    # Get database schema using sqlalchemy reflection
+    db_engine = create_engine(con)
+    db_inspect = inspect(db_engine)
+    db_tables = db_inspect.get_table_names(schema="import")
+
+    # Get the columns for the parquet file
+    column_dict = dict()
+    for column in db_inspect.get_columns(table_name, "import"):
+        dtype = __get_dtype(column, column.type)
+        column_dict[column.name] = dtype
+
+    # Query the table
+    with db_engine.connect() as conn:
+        # print(db_table.select())
+        result = conn.execute("SELECT * FROM import.journal_accountings")
+        row_batch = result.fetchmany(size=batch_size)
+        append = False
+
+        while len(row_batch) > 0:
+            __write_parquet(output_path, row_batch, column_dict, write_index, compression, append)
+            append = True
+
+            row_batch = result.fetchmany(size=batch_size)
+
+
+if __name__ == "__main__":
+    dsn = {
+        "user": "sa",
+        "password": "Mffu3011#",
+        "server": "localhost\\GLOBALCUBE",
+        "database": "LOCOSOFT",
+        "driver": "mssql",
+        "schema": "import",
+    }
+    conn_str = conn_string(dsn)
+
+    table_to_parquet("temp", "journal_accountings", conn_str)
+    # print(timeit.timeit(s))

BIN
dist/gctools.exe


+ 8 - 3
pdf/pdf_test.py

@@ -1,5 +1,6 @@
 import os
 import pdfplumber
+from pdfminer.pdfparser import PDFSyntaxError
 import re
 import json
 from pathlib import Path
@@ -39,9 +40,13 @@ def missing_data(base_dir: str):
 
     errors = []
     for f in Path(base_dir).glob("*.pdf"):
-        with pdfplumber.open(str(f)) as pdf:
-            pages = len(pdf.pages)
-            text = pdf.pages[0].extract_text()
+        try:
+            with pdfplumber.open(str(f)) as pdf:
+                pages = len(pdf.pages)
+                text = pdf.pages[0].extract_text()
+        except PDFSyntaxError:
+            pages = 0
+            text = ""
 
         # print(text)
         if pages < 2 and any(