Ich versuche, eine benutzerdefinierte Berichterstellung für meine Anwendung zu entwickeln, in der der Benutzer das Modell und das zugehörige Modell dynamisch eingibt. Außerdem wählt er die zugehörigen Spalten aus, für die der Bericht benötigt wird, und enthält bedingte Anweisungen für ' UND 'und' ODER 'Bedingungen.
Die gleiche Funktionalität wird auch von vtiger, Zoho CRM und Sales Force gemacht.
Mein Zweifel ist, welcher der effiziente Weg ist, dies zu tun.
1.Erstellen Sie entweder Tabellen für jedes Modul und definieren Sie seine Spalte in der Datenbank 2. Oder indem Sie eine Konfigurationsdatei für alle Einstellungen bereitstellen 3. Oder indem Sie eine Modellklasse für alle Berichte erstellen und die zugehörigen Modellattribute und Bindungsdaten mithilfe von Getter und Setter (Accessoren und Mutatoren) definieren. 4. Oder schlagen Sie mir irgendeine andere bevorzugte Methode vor oder irgendwelche Pakete mit minimalen Funktionalitäten, die dies in Beziehung setzen.
Ich weiß, ist komplex, aber bitte schlagen Sie mir einige Hinweise aus Ihrer Sicht.
Sie können einen Querybuilder verwenden, um Abfragen von Benutzern selbst zu generieren. Verwenden Sie dann etwas, das JSReport ähnlich ist, damit Benutzer Berichte entwerfen können. Es gibt sehr gute Web-Report-Designer da draußen, aber die meisten von ihnen sind zu einem Preis. Wenn Sie noch Ihre eigenen machen wollen, beziehen Sie sich auf diese; Siegelberichte JSReports als Referenz, was Sie suchen, ist real; -)
Verwenden Sie JQueryQueryBuilder und passen Sie sie entsprechend Ihren Anforderungen an. Verwenden Sie Laravel Boilerplate oder etwas, um damit anzufangen. Verwenden Sie Handlebars.js / Mustache.js oder Blade als Vorlage-Engine. sei kreativ ...
Prost !!!
Obwohl es keine vollständige Lösung ist, denke ich, dass dies Ihnen auf Ihrem Weg helfen kann, Ihre eigenen zu erstellen:
Sie können alle Ihre Tabellen dynamisch aus Ihrer Datenbank holen:
DB::select('SHOW TABLES');
Sie können auch Spaltennamen für Tabellen erhalten:
Schema::getColumnListing('users');
Versuchen Sie, einen Weg zu finden, verwandte Tabellen mit denen zu verknüpfen, die der Benutzer auswählt.
Erhalten beabsichtigte Abfrage von Benutzerformular. (mit Bedingungen und Wert)
Gewinn.
Für ähnliche Anforderungen bin ich auf Reportico
gestoßenObwohl ich noch nicht angefangen habe es zu implementieren, aber es scheint wirklich nett zu sein.
Sie haben auch Laravel-Modul und unterstützen Laravel 5.1
Scheint, das Team hält das Ding auf dem neuesten Stand.
Obwohl ihre Benutzeroberfläche nicht gut ist, haben sie auch einen Report Builder.
Ihr Github-Link: Ссылка
Tags und Links php report laravel reporting-services crm