Alguma maneira de adicionar vários dados de linha em uma tabela de repetição do Infopath?

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

  •  05-07-2019
  •  | 
  •  

Pergunta

Meus usuários usam o Excel para criar algumas listas ad-hoc de edifícios que possuímos. Estou construindo um formulário de Infopath para gerenciar contratos nesses edifícios. Estou procurando uma maneira de permitir que meus usuários especifiquem os edifícios de que precisam no Excel e colar essa lista na forma de repete do Infopath.

A tabela possui vários campos; Os usuários selecionariam a coluna de identificação de construção em sua planilha, colaria -a no campo de identificação de construção na mesa repetida e, em seguida, o formulário de infopato procuraria as informações restantes do edifício da fonte de dados ligadas ao controle, usando o ID da construção como o ID como o chave.

A peça de pesquisa de tabela repetida está funcionando no momento: o usuário pode entrar (digitando ou colando do Excel) um único ID de construção, guia de pressionamento e a tabela procura o restante das informações. Em seguida, eles podem inserir uma nova linha e entrar no segundo ID do edifício, ensaboar, enxaguar, repetir. Isso é bom para um punhado de edifícios - mas não por dezenas ou centenas. Então, estou procurando uma maneira de deixá -los colar em uma lista e preencher a mesa a partir daí.

Se eles não conseguirem colar diretamente em uma tabela repetida, eu poderia colá -los colar em um controle de texto multilina e analisar isso com uma expressão XPath? Como seria esse XPath? Uma limitação final: nenhum código-behind C# ou VB-decidimos por um momento que a logística de implantar formulários com código-behinds é demais para o projeto atual.

Qualquer ajuda apreciada ...

Foi útil?

Solução

A única questão que vejo surgindo (principalmente devido ao fato de que essa solução não pode envolver o CodeBehind) é o fato de que não há regras de infopath que você possa usar para adicionar dinamicamente nós adicionais a um grupo repetido (que é o que a tabela de repetição é ligação a.)

A única maneira de criar registros adicionais em uma tabela repetida é o usuário pressionar manualmente a guia "Insira a linha adicional" na parte inferior da tabela.

Eu recomendo fortemente o uso do CodeBehind, para que um usuário possa colar seus dados do Excel delimitados da Tab da área de transferência em uma caixa; faça com que ele analisou o servidor; e use esses dados junto com uma rotina para acessar o MaindataSource do formulário e adicione as linhas adicionais dessa maneira.

Outras dicas

Se você extrair os arquivos de origem do Infopath, um dos documentos será o arquivo modelo.xml. Isso reterá os dados para o seu formulário de Infopath. Use uma macro do Excel para abrir o modelo como um documento XML e adicione os dados da planilha do Excel. Você pode permitir que o usuário abra o arquivo ou o abra para eles. Apenas uma maneira de se locomover não ter CodeBehind.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top