2009-12-23 18 views
6

Estoy desarrollando una aplicación web que permite que los informes se escriban y se visualicen en línea. Estos informes tendrán la estructura de un informe escolar típico o un informe anual de evaluación de los empleados. Me gustaría que el usuario pueda personalizar la estructura de su informe. Por ejemplo, una escuela puede ser que desee un informe en el formatoformularios web dinámicos

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

mientras que otro podría querer

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

Lo que estoy buscando es una manera para que cada escuela para especificar el formato de sus informes - posiblemente algún tipo de biblioteca de creación de formularios de JavaScript. Dicha biblioteca podría usarse en una página que permita a los usuarios crear un formulario que se usaría como plantilla para sus informes.

Como tendré que procesar cada informe enviado por el lado del servidor, tendré que capturar algunas semánticas sobre cada campo. Por ejemplo, sería genial si el usuario pudiera especificar si la respuesta a cada pregunta en el informe debe ser texto simple, puntaje numérico, casilla de verificación, botones de opción, etc.

Cualquier sugerencia sobre tecnologías útiles para manejar tales " "formas dinámicas" serían realmente apreciadas. XForms parece que podría ser relevante, pero todavía no lo he profundizado.

Cheers, Don

+0

¿A qué tipo de usuarios finales se dirige? –

+0

Los usuarios finales serán personas normales, es decir, no un público técnico –

+0

¿Preferiría una solución alojada o un software que pueda personalizar e instalar en su propio servidor? – avernet

Respuesta

0

yo estoy a cargo de XSLTForms, y parece un buen candidato para lo que quiere hacer.

Las posibilidades de XSLTForms son superiores a las de la especificación XForms 1.1: XSLT en el lado del cliente, SVG y otros.

Los formularios dinámicos se pueden desarrollar con XForms y, en caso de que no fuera suficiente para su aplicación, XSLTForms podría integrar las extensiones necesarias.

+1

Alain esta respuesta está bien porque es una respuesta a una pregunta directa y usted divulgó su afiliación con XSLTForms. Sin embargo, no permitimos firmas, y desalentamos las publicaciones que son publicidades. –

0

sugeriría a utilizar:

  • un motor de wiki o un texto plano al convertidor HTML como de rebajas para permitir a sus usuarios personalizar las plantillas suministrados por
  • una biblioteca de plantillas HTML para insertar el datos utilizando la plantilla definida

Para el convertidor HTML, se pueden utilizar John Gruber's MarkDown (en perl) en el lado del servidor, o una Javascript port by John Fraser, Showdown.

Para la plantillas HTML, hay muchas librerías Javascript disponibles, dependiendo de su marco de elección:

0

debe ser fácil de construir en Smalltalk con Seaside. Tienes un WATableReport con WATableColumns. Simplemente construya un editor simple donde cada escuela pueda definir esas columnas. No estoy seguro de qué javascript o XForms tienen que ver con eso. Por lo que sé XForms está actualmente muerto a menos que pueda prescribir el navegador.

1

Estoy de acuerdo con los comentarios de Jeff Beck y también noté lo siguiente.

Dijiste que tu público objetivo no es técnico y que todas las soluciones anteriores implicarán el aprendizaje de HTML y un lenguaje complejo de plantillas, posiblemente un elemento no inicial para tu público.

Las soluciones anteriores también parecen necesitar más complejidad de la que su problema requiere. MooTools, Dojo, etc. parecen excesivos. XForms y XSLT aún más. Sí, funcionarán y le darán mucha funcionalidad adicional, pero ¿necesita el nivel de complejidad y los problemas de depuración/mantenimiento/capacitación que acompañan a esas características adicionales?

Su profesor habitual o usuario de negocios probablemente tenga una comprensión básica de cómo ingresar y guardar archivos en Excel. Si puede enseñarles cómo guardar en formato CSV y subir el formulario, o mejor aún instalar una macro que se guardará en CSV y lo publicará en su sitio web, es probable que sea la única capacitación que necesitarán. Para obtener la semántica puede agregar un poco más de capacitación y tener la primera fila del informe con los nombres de las columnas y la segunda fila con el tipo de columna. No es elegante, pero es fácil para los usuarios posiblemente con problemas tecnológicos adoptar, como señala Jeff.

En el lado del servidor me gustaría recomendar la pila siguiente:

servidor Web => Node.js (tal vez utilizando la cadena - github.com/hassox/chain)

almacén de datos => Redis (y el nodo-Redis)

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

CSV análisis => Ver http://purbayubudi.wordpress.com/2008/11/09/csv-parser-using-javascript/ y asegúrese de usar la versión fija que está en los comentarios (para las comillas cotizadas).

Los usuarios más conocedores de la tecnología pueden personalizar el HAML sin comprometer la seguridad, y HAML es bastante sencillo con un poco de entrenamiento: este HAML ...

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

produce ...

<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">[email protected]</div> 
    <div id="bio">Experienced software professional...</div> 
    </div> 
</div> 
+0

Perdón por los enlaces defectuosos de github, soy nuevo en contribuir aquí, así que no hay representantes. –

0

Creo que si las formas no cambian con demasiada frecuencia, no se debe proporcionar un sistema para que el usuario no tecnológico echar a perder con los informes

en lugar de hacer que su sistema sea fácil para USTED agregar nuevos informes, en este caso, el cliente le enviará un pdf/excel mostrando el formato que desea, y usted puede crear rápidamente un nuevo informe

tha Esto es lo que hice para nuestro sistema de contabilidad que se usa en varias clínicas, también cobramos una tarifa nominal por cada cambio de informe (para evitar que el usuario cambie el sistema sin pensar)

Cuestiones relacionadas