Пример создания пользовательской формы

Рассмотрим пример создания пользовательской формы для оперативного просмотра остатков на складе (пользовательское меню Склад). Форма склада будет вложена в главную страницу системы main.html при помощи только что рассмотренной конструкции File. На этой форме пользователь может искать товар по нескольким параметрам, по умолчанию – по штрих–коду:

Файл формы Склада в директории templates – store.html, а его код представлен на следующем рисунке.

Форма состоит, в частности, из элемента html <form> – форма, которая вызывает сама себя (см. action="index.php?db={_global_.z}&a=store") и передает введенные параметры: Штрих-код (FR_CODE), Марка (FR_FIRM) и другие. Эти параметры будут использованы в отчете, как описано в разделе Вызов отчета с произвольными параметрами.

Блок Main является служебным блоком MVP.CARE, в который заключены все html–тексты, из которых строятся страницы. MVP.CARE заполнит его сам по своим внутренним отчетам.

А вот блок Store не является служебным, поэтому MVP.CARE попытается найти соответствующий отчет в справочнике отчетов, выполнить его, а из его колонок заполнить точки вставки в блоке Store: {DATE}, {FIRM} и остальные. Сколько строк вернет отчет Store, столько раз повторится на странице кусок html–кода между тегами <!-- Begin: Store --> и <!-- End: Store -->, а значения из отчета попадут в соответствующие точки вставки.

По умолчанию при открытии этой формы фокус попадет в поле штрих–код (оно помечено «autofocus»), и если при этом пользователь введет код и нажмет Enter или отсканирует код сканером, то форма вызовет сама себя с параметром FR_CODE, который применится в виде фильтра по полю CODE в отчете Store (см. выделенное красными прямоугольниками на рисунке).

На приведенном выше рисунке меню Склад был отсканирован код 8697923495536, для которого отчет вернул одну запись, и эта запись была в итоге отражена в таблице на форме Склада.

Несколько моментов, на которые нужно обратить внимание:

  • блоки, обозначенные зеленым цветом в html–коде, являются вложенными: info содержит Store, который, в свою очередь, содержит блок MyBar;
  • из блока MyBar мы можем обратиться к вышестоящему блоку и запросить у него данные – идентификатор товара GOOD_ID, для чего используем {_parent_.GOOD_ID};
  • при отправке формы на сервер MVP.CARE следует использовать адрес index.php?db={_global_.z}&a=store, где a – имя вызываемой формы (в данном случае store);
  • {_global_.z} – внутренняя глобальная константа MVP.CARE, содержащая имя базы;
  • блок MyBar – это гиперссылка не некое действие (продажа товара из этой конкретной строки), это действие создает объект «продажа», для чего содержит команду do=new_object;
  • вы можете сообщить MVP.CARE, какую форму открыть после того, как он выполнит заданное вами действие (например, создание «продажи», запущенное из блока MyBar);
  • создавая произвольные формы (рабочие места) и направляя пользователя от одной из них к другой, вы можете моделировать бизнес–процессы любой сложности.

Блоки данных и правила их заполнения дополняют MVP.CARE до законченного средства разработки: с помощью этих трех инструментов (редактор типов, построитель отчетов и пользовательские формы) вы можете собрать приложение, ничем не ограниченное по функционалу и сложности модели данных.

Здесь можно сделать всё, что доступно в любом языке программирования.

Если вы внимательно прочитали всё до этого момента, то вы уже можете программировать в MVP.CAREе всё, что угодно. Не бойтесь, начните с малого и увидите, как быстро втянетесь!

Если возникнут вопросы, то мы вам обязательно поможем, обращайтесь: support@mvp.care.