Im Report-Designer können Benutzer den Bericht basierend auf der vorgegebenen Quelle entwerfen. Der Benutzer hatte keine Kontrolle über die Struktur seiner Quelle. Die Quelle wurde immer von Uniconta gefiltert und gesteuert. Der Benutzer musste den Bericht unter Bezugnahme auf die Quelle entwerfen.
Mit dieser neuen Funktion der benutzerdefinierten Quellenberichterstattung kann der Benutzer nicht nur den Bericht entwerfen, sondern auch die Struktur der Datenquelle erstellen. Diese Funktion gilt für einfache Berichte und spezielle Berichte wie Rechnungen, Auftragsbestätigungen, Anforderungen usw.
Der Benutzer kann den benutzerdefinierten Quellenbericht innerhalb der Anwendung mithilfe des Standardassistenten erstellen oder eigene Benutzer-Plugins programmieren, um sowohl das Layout des Berichts als auch die Struktur der Datenquelle zu erstellen und zu entwerfen.
- Benutzerdefinierten Quellenbericht erstellen
-
- Wenn der Benutzer die Anwendungsoption auswählt, muss er seine Quelle definieren. Drei Parameter sind erforderlich
-
-
- Art: Tabellenart, auf der der Bericht erstellt werden soll.
- Quellname: Der Benutzer kann der Quelle einen Namen geben, der in der Feldliste angezeigt wird.
-
Bericht: Für welche Berichtsart ist dies.
- Hier kann der Benutzer die verfügbaren Tabellenarten in Uniconta auswählen. Es werden sowohl Tabellen als auch Benutzertabellen des Unternehmens angezeigt.
- Jetzt wählt der Benutzer die Art des Berichts aus, den er erstellen möchte.
- Hier wird der Bericht ohne Layout und Einstellungen geladen. Der Benutzer kann alle öffentlichen Eigenschaften aufgelistet sehen.
- Hier kann der Benutzer die verfügbaren Tabellenarten in Uniconta auswählen. Es werden sowohl Tabellen als auch Benutzertabellen des Unternehmens angezeigt.
- Wenn der Benutzer die Option Plugins als Quellenanbieter auswählt, muss er zur Definition seiner Quelle vier Parameter angeben
- Benutzerassembly: Geben Sie die vom Benutzer erstellte Benutzerassembly an. Es werden alle geladenen Assemblys aufgelistet
- Art: Geben Sie die in der Benutzerassembly definierte Art an.
- Quellname: Name für die Quelle.
-
Berichte: Art des zu erstellenden Berichts.
- Hier wird die Liste der im Plugin verfügbaren Arten gefüllt. Als Beispiel haben wir zwei Klassen erstellt, nämlich DebtorExteded und DebtOrder
- Innerhalb der Plugin-DLL haben wir zwei Klassen DebtorExtended, die von DebtorClient erbt, und die zweite ist DebtOrder, die DebtorOrderClient enthält
switch (ActionType) { case "OrderDesigner": case "OrderPreview": try { var arrayDebtOrder = Array.CreateInstance(typeof(DebtorOrderClient), 1); arrayDebtOrder.SetValue(selectedItem, 0); if (ActionType == "OrderPreview") { string repParams = "Report=DebtOrderSampleRep;reportType=PackNote"; object[] src = new object[2] { arrayDebtOrder, repParams }; AddDockItem(TabControls.ReportsPreviewPage, src, "custom rep preview"); } else if (ActionType == "OrderDesigner") globalEvents.NotifyOpenExternalReport(typeof(DebtorOrderClient), arrayDebtOrder, "debtOrder"); } catch (Exception ex) { MessageBox.Show(string.Format("{0}n{1}", ex.Message, ex.StackTrace)); } break; case "xDesigner": case "xPreview": try { var DebtOrd = new CustomPageSample.DebtOrder(selectedItem); var debtOrdCollection = Array.CreateInstance(typeof(CustomPageSample.DebtOrder), 1); debtOrdCollection.SetValue(DebtOrd, 0); if (ActionType == "xPreview") { string repParams = "Report=customDebtOrderSampleRep;reportType=OrderConfirmation"; object[] src = new object[2] { debtOrdCollection, repParams }; AddDockItem(TabControls.ReportsPreviewPage, src, "custom rep preview"); } else if (ActionType == "xDesigner") globalEvents.NotifyOpenExternalReport(typeof(CustomPageSample.DebtOrder), debtOrdCollection, "debtOrder"); } catch(Exception ex) { MessageBox.Show(string.Format("{0}n{1}", ex.Message, ex.StackTrace)); } break; }switch (ActionType) { case "Designer": case "Preview": try { var debtEx = new CustomPageSample.DebtorExtended(); StreamingManager.Copy(selectedItem, debtEx); var arrayDebt = Array.CreateInstance(typeof(CustomPageSample.DebtorExtended), 1); arrayDebt.SetValue(debtEx, 0); if (ActionType == "Preview") { string repParams = "Report=customDebtSampleRep;reportType=Statement"; object[] src = new object[2] { arrayDebt, repParams }; AddDockItem(TabControls.ReportsPreviewPage, src, "custom rep preview"); } else if(ActionType== "Designer") globalEvents.NotifyOpenExternalReport(typeof(CustomPageSample.DebtorExtended), arrayDebt, "DebtExtended"); } catch(Exception ex) { MessageBox.Show(string.Format("{0}n{1}",ex.Message,ex.StackTrace)); } break; }
-