In de rapportontwerper kunnen gebruikers het rapport ontwerpen op basis van de vooraf ingevulde bron. De gebruiker had eigenlijk geen controle over de structuur van zijn bron. De bron is altijd gefilterd en gecontroleerd door Uniconta. De gebruiker moest het rapport ontwerpen op basis van de bron.
Maar nu met deze nieuwe functie van aangepaste bronrapportage kan de gebruiker niet alleen het rapport ontwerpen, maar ook de structuur van de gegevensbron maken. Deze functie is van toepassing op eenvoudige rapporten en speciale rapporten zoals Factuur, Orderbevestiging, Requisitie enzovoort.
De gebruiker kan het aangepaste bronrapport maken vanuit de applicatie met behulp van de standaardwizard of de gebruiker kan zijn eigen plug-ins programmeren om zowel de lay-out van het rapport als de structuur van de gegevensbron te maken en te ontwerpen.
- Rapport op maat maken
-
-
- Type: Tabeltype waarover gerapporteerd moet worden.
- Bronnaam: Gebruiker kan een naam geven aan de bron die wordt weergegeven in de veldenlijst.
- Rapport: Voor welk type rapport.
- Hier kan de gebruiker de beschikbare tabeltypen in Uniconta selecteren. Zowel tabellen als gebruikerstabellen van het bedrijf worden weergegeven.

- Nu selecteert de gebruiker het type rapport dat hij wil maken.

- Hier wordt het rapport geladen zonder opmaak en instellingen. De gebruiker kan alle openbare eigenschappen zien.

- Hier kan de gebruiker de beschikbare tabeltypen in Uniconta selecteren. Zowel tabellen als gebruikerstabellen van het bedrijf worden weergegeven.
- Als de gebruiker Plugins selecteert als bronleverancier, moet hij vier parameters opgeven om zijn bron te definiëren
- Gebruikersassemblage: geef de gebruikersassemblage op die door de gebruiker is gemaakt. Er wordt een lijst weergegeven van alle geladen assemblies
- Type: geef het type op dat is gedefinieerd in de gebruikersassemblage.
- Naam van de bron: Naam voor de bron.
- Rapporten: Type van het rapport dat moet worden aangemaakt.

- Hier wordt de lijst met beschikbare types in de plugin ingevuld. Dus als voorbeeld hebben we twee klassen gemaakt, namelijk DebtorExted en DebtOrder

- In de plugin DLL hebben we twee klassen DebtorExtended die erft van DebtorClient en de tweede is DebtOrder die DebtorOrderClient bevat.
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; }
-