динамические веб-формы

Я разрабатываю веб-приложение, которое позволяет отчетам быть записанными и просмотренными онлайн. Эти отчеты будут иметь структуру типичного табеля успеваемости или ежегодного оценочного заключения сотрудника. Я хотел бы, чтобы пользователь смог настроить структуру их отчета. Например, одна школа могла бы хотеть отчет в формате

Subject   Comment       Score
-----------------------------
English   He sucks      20% 
Maths     He rocks      88%
Science   About average 70%

тогда как другой мог бы хотеть

Subject   Grade
---------------
English     A
Maths       B
Science     C

То, что я ищу, является путем к каждой школе для определения формата их отчетов - возможно некоторая библиотека создания формы JavaScript. Такой библиотекой можно было пользоваться на странице, которая позволяет использованию создавать форму, которая использовалась бы в качестве шаблона для их отчетов.

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

Любые предложения о полезных технологиях для обработки таких "динамических" форм действительно ценились бы. XForms похож на него, могло бы быть релевантным, но я слишком глубоко еще не вырыл в него.

С наилучшими пожеланиями, Дон

7
задан Dónal 26 December 2009 в 15:08
поделиться

7 ответов

Прагматический подход предполагает использование функции электронной таблицы Google, называемой формами , (платными) услугами из wufoo или JotForm .

]
1
ответ дан 7 December 2019 в 14:33
поделиться

Должно быть легко встраиваться в Smalltalk с Seaside . У вас есть WATableReport с колонками WATableColumns. Просто создайте простой редактор, в котором каждая школа сможет определить эти колонки. Я не уверен, какое отношение к этому имеет javascript или XForms. Насколько я знаю, XForms в настоящее время мертва, если только вы не можете прописать браузер.

.
0
ответ дан 7 December 2019 в 14:33
поделиться

Я отвечаю за XSLTForms, и это кажется хорошим кандидатом на то, что вы хотите сделать.

Возможности XSLTForms превосходят возможности XForms 1. 1 спецификация: XSLT на стороне клиента, SVG и другие.

Динамические формы могут быть разработаны с помощью XForms, и в случае, если этого будет недостаточно для вашего приложения, XSLTForms могут интегрировать необходимые расширения.

.
0
ответ дан 7 December 2019 в 14:33
поделиться

A очень хороший конструктор форм на базе XForms, (LGPL) http://www.orbeon.com/

Демонстрацию их конструктора форм вы можете посмотреть здесь: http://www.orbeon.com/ops/fr/orbeon/builder/summary/

2
ответ дан 7 December 2019 в 14:33
поделиться

Предлагаю использовать:

  • вики-движок или конвертер простого текста в HTML, такой как Markdown, чтобы позволить вашим пользователям настроить шаблоны, которые вы предоставляете
  • библиотеку HTML шаблонов для вставки данных, используя определенный шаблон

Для HTML-конвертера вы можете использовать MarkDown Джона Грубера (на perl) на стороне сервера, или порт на Javascript Джона Фрейзера, Showdown.

Для шаблонирования HTML доступно множество Javascript библиотек, в зависимости от выбранного вами фреймворка:

0
ответ дан 7 December 2019 в 14:33
поделиться

Я согласен с комментариями Джеффа Бека, а также заметил следующее.

Вы сказали, что ваша целевая аудитория не является технической, и все вышеперечисленные решения будут включать в себя изучение HTML и сложный язык шаблонов, возможно, нестандартный для вашей аудитории.

Вышеперечисленные решения также, похоже, требуют большей сложности, чем того требует ваша проблема. MooTools, Dojo и т.д. кажутся слишком сложными. XForms и XSLT еще больше. Да, они будут работать и дадут вам много дополнительной функциональности, но нужен ли вам уровень сложности и проблемы отладки/поддержки/обучения, которые сопутствуют этим дополнительным возможностям?

Ваш обычный учитель или бизнес-пользователь, вероятно, имеет базовые знания о том, как вводить и сохранять файлы в Excel. Если вы можете научить их сохранять в формате CSV и загружать форму, а еще лучше установить макрос, который сохранится в CSV и разместит его на вашем сайте, то, скорее всего, это единственное обучение, которое им понадобится. Для получения семантики Вы можете добавить немного больше обучения и иметь в первой строке отчета названия столбцов, а во второй строке - тип столбцов. Это не элегантно, но это легко для возможно технических пользователей, как отмечает Джефф.

На стороне сервера я бы рекомендовал следующий стек:

Web server => node.js (возможно, используя Chain - github. com/hassox/chain)

Data store => Redis (и node-redis)

Templating => Haml-js (github.com/creationix/haml-js)

CSV parsing => См. http://purbayubudi.wordpress.com/2008/11/09/csv-parser-using-javascript/. и убедитесь, что используете исправленную версию, которая находится в комментариях (для цитируемых запятых).

Ваши более опытные пользователи могут настроить HAML без ущерба для безопасности, и HAML довольно прост в использовании с небольшим обучением: этот HAML...

 %body
.profile
  .left.column
    #date= print_date()
    #address= current_user.address
  .right.column
    #email= current_user.email
    #bio= current_user.bio

производит...

<div class="profile">
  <div class="left column">
     <div id="date">Thursday, October 8, 2009</div>
     <div id="address">Richardson, TX</div>
  </div>
  <div class="right column">
     <div id="email">tim@creationix.com</div>
     <div id="bio">Experienced software professional...</div>
  </div>
</div>
1
ответ дан 7 December 2019 в 14:33
поделиться

я думаю, что если формы не слишком часто меняются, то вам не следует предоставлять систему для нетехнологичных пользователей, чтобы они могли испортить отчеты

, а скорее сделать систему ur простой для ВАС, чтобы Вы могли добавлять новые отчеты, в этом случае клиент присылает Вам pdf/excel, показывая нужный формат, и вы можете быстро придумать новый отчет

, который я сделал для нашей бухгалтерской системы, которая используется для нескольких клиник, мы также взимаем номинальную плату за каждое изменение отчета (чтобы пользователь не мог бездумно менять систему)

.
0
ответ дан 7 December 2019 в 14:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: