¿Alguna forma de agregar pegar datos de varias filas en una tabla de repetición de InfoPath?

StackOverflow https://stackoverflow.com/questions/1610373

  •  05-07-2019
  •  | 
  •  

Pregunta

Mis usuarios usan Excel para crear algunas listas ad-hoc de edificios que poseemos. Estoy creando un formulario de InfoPath para gestionar los contratos de esos edificios. Estoy buscando una manera de permitir a mis usuarios especificar los edificios que necesitan en Excel y pegar esa lista en el control de la Tabla de Repetición de InfoPath.

La tabla tiene varios campos; los usuarios seleccionarían la columna Id. de edificio en su hoja de cálculo, la pegarían en el campo Id. de edificio en la Tabla de repetición, y luego el formulario de InfoPath buscaría la información restante del edificio desde la fuente de datos vinculada al control, usando el Id. de edificio como llave.

La parte de búsqueda de la tabla de repetición está funcionando actualmente: el usuario puede ingresar (escribiendo o pegando desde Excel) una única ID de edificio, presionando Tab, y la tabla busca el resto de la información. Luego pueden insertar una nueva fila e ingresar la segunda identificación del edificio, formar espuma, enjuagar y repetir. Esto está bien para un puñado de edificios, pero no para docenas o cientos. Así que estoy buscando una manera de dejarlos pegar en una lista, y completar la tabla desde allí.

Si no pueden pegar directamente en una tabla de repetición, ¿puedo hacer que peguen en un control de texto multilínea y luego analizarlo con una expresión XPath? ¿Cómo sería ese XPath? Una limitación final: sin código C # o VB: hemos decidido por el momento que la logística de implementación de formularios con código detrás es demasiado para el proyecto actual.

Cualquier ayuda apreciada ...

¿Fue útil?

Solución

El único problema que veo surgir (principalmente debido al hecho de que esta solución no puede involucrar a Codebehind) es el hecho de que no hay reglas de Infopath que pueda usar para agregar dinámicamente nodos adicionales a un grupo repetitivo (que es lo que la tabla de repetición es vinculante para)

La única forma de crear registros adicionales en una tabla de repetición es que el usuario presione manualmente la tecla " Insertar fila adicional " pestaña en la parte inferior de la tabla.

Recomiendo encarecidamente usar codebehind, para que un usuario pueda pegar sus datos de Excel delimitados por tabuladores desde el portapapeles en una caja; tenerlo analizado en el servidor; y use esos datos junto con una rutina para acceder a MainDataSource del formulario, y agregue las filas adicionales de esa manera.

Otros consejos

Si extrae los archivos de origen de infopath, uno de los documentos será el archivo template.xml. Esto mantendrá los datos para su formulario de infopath. use una macro de excel para abrir la plantilla como un documento xml y agregue los datos de la hoja de cálculo de excel. luego puede permitir que el usuario abra el archivo por sí mismo o lo abra para ellos. Solo una forma de evitar el problema sin tener que codificar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top