Я пытаюсь разработать пользовательское создание отчетов для моего приложения, в котором пользователь будет динамически вводить модель и связанную с ней модель. И будет выбирать связанные столбцы, для которых требуется отчет, и будет иметь условные операторы для «И» и «ИЛИ» условия.
Такую же функциональность выполняют vtiger, Zoho CRM и отдел продаж.
Я сомневаюсь, что это эффективный способ сделать это.
1. Либо путем создания таблиц для каждого модуля и определения его столбца в базе данных
2. Или предоставив файл конфигурации для всех настроек
3. Или путем создания класса модели для всех отчетов и определения связанных с ним атрибутов модели и привязки данных с использованием методов получения и установки (методы доступа и мутаторы).
4. Или предложите мне любой другой предпочтительный метод или любые пакеты с минимальными функциональными возможностями, связанными с этим
Я знаю, это сложно, но, пожалуйста, предложите мне несколько советов с вашей точки зрения.
Вы можете использовать Querybuilder для генерации запросов самими пользователями.
затем используйте что-то похожее на JSReport, чтобы позволить пользователям создавать отчеты.
Есть очень хорошие дизайнеры веб-отчетов, но большинство из них по цене. если вы все еще хотите сделать свой собственный, обратитесь к ним;
Печать отчетов
JSReports для справки, что вы ищете, реально 😉
использовать JQueryQueryBuilder и настроить в соответствии с вашими потребностями.
используйте Laravel Boilerplate или что-то для начала.
используйте Handlebars.js / Mustache.js или Blade в качестве движка шаблонов.
будь креативным…
ура !!!
По аналогичному требованию я наткнулся Reportico
Хотя я еще не начал реализовывать это, но это кажется действительно хорошим.
У них также есть модуль Laravel, поддерживающий Laravel 5.1
Кажется, команда постоянно обновляет информацию.
Хотя их пользовательский интерфейс не очень хороший, у них также есть построитель отчетов.
Их ссылка на Github: https://github.com/reportico-web/
Хотя это и не полное решение, я думаю, что это может помочь вам на пути к созданию собственного:
Вы можете получить все свои таблицы из вашей БД динамически:
DB::select('SHOW TABLES');
Вы также можете получить имена столбцов для таблиц:
Schema::getColumnListing('users');
Попробуйте найти способ получить связанные таблицы к той, которую выбирают пользователи.
получить заданный запрос из формы пользователя. (с условиями и стоимостью)
прибыль.