Criação de subformulários repetitivos e de várias páginas

É possível colocar um subformulário em qualquer local de uma página; no entanto, quando uma grande quantidade de dados é unida ao formulário, o subformulário pode se expandir para além da extremidade inferior da página renderizada. Para lidar com esse problema, é possível selecionar a opção Permitir a quebra de páginas dentro do conteúdo para fazer com que o servidor divida o subformulário ao meio. Se preferir, cancele essa opção para forçar o subformulário inteiro até a parte superior da página seguinte renderizada. Forçar um subformulário até a página seguinte garante que todos os subformulários aninhados sejam exibidos juntos na mesma página. Se a opção Permitir a quebra de páginas dentro do conteúdo não for selecionada, provavelmente serão criados um subformulário de sobrefluxo anterior e um subformulário de sobrefluxo posterior. (Consulte Sobre sobrefluxos anteriores e posteriores.)

Quando os dados são unidos, o servidor posiciona o conteúdo de um subformulário apenas nos limites das áreas de conteúdo. Nos casos em que uma grande quantidade de dados precisa ser unida a outros objetos em um subformulário, este pode se expandir por diversas páginas do formulário. Quando uma página do formulário for preenchida, o servidor renderizará automaticamente outra página idêntica e continuará a posicionar o subformulário na nova página, a menos que o fluxo seja explicitamente direcionado para outra área de conteúdo ou página mestre. Quando há mais de uma área de conteúdo ou página mestra no mesmo formulário, é possível especificar se um subformulário será posicionado em uma área de conteúdo em particular ou de acordo com a página mestra especificada.

Criação de um subformulário repetitivo

  1. Na paleta Hierarquia, selecione o subformulário pai daquele que você deseja repetir. (Consulte Sobre subformulários.)

  2. Na paleta Objeto, clique na guia Subformulário e selecione Continuado na lista Conteúdo.

  3. Selecione o subformulário para repetir.

  4. Na paleta Objeto, clique na guia Subformulário e selecione Posicionado ou Continuado na lista Conteúdo.

  5. Clique na guia Vínculo e selecione Repetir subformulário para cada item de dados.

  6. Para especificar o número mínimo de repetições, selecione Contagem mín. e insira o número na caixa associada. Se esta opção estiver configurada como 0 e nenhum dado for fornecido para os objetos no subformulário no momento da incorporação de dados, o subformulário não é disposto quando o formulário é renderizado.

  7. Para especificar o número máximo de repetições do subformulário, selecione Máx. e insira o número na caixa associada. Se você não especificar um valor na caixa Máx., o número de repetições do subformulário será ilimitado.

  8. Para especificar um número definido de repetições de subformulários, independentemente da quantidade de dados, selecione Contagem inicial e digite o número na caixa correspondente. Se você selecionar essa opção e nenhum dado estiver disponível ou se houver uma quantidade inferior de dados em comparação ao valor especificado em Contagem inicial, as instâncias vazias do subformulários ainda serão posicionadas.

    Nota: O valor na caixa Contagem inicial deve estar entre os valores de Contagem mín. e máx. Se o valor de Contagem mín. não for especificado ou for 0, o valor de Contagem inicial assumirá 0 como padrão.

Especificação de um subformulário para expandi-lo em várias páginas

Subformulários podem ser colocados em qualquer local de um design de formulário. Entretanto, quando uma grande quantidade de dados é unida, o subformulário pode se expandir para além da extremidade inferior da página renderizada.

Para lidar com esse problema, é possível permitir uma quebra de página no meio do subformulário ou forçar a renderização do subformulário inteiro, começando no início da próxima página renderizada. Forçar um subformulário até a página seguinte garante que todos os subformulários aninhados sejam exibidos juntos na mesma página.

Quando os dados são unidos, o conteúdo de um subformulário é posicionado apenas dentro dos limites da área de conteúdo. Em casos em que uma quantidade relativamente grande de dados precisa ser incorporada com outros objetos em um subformulário, este pode expandir-se para páginas de formulário múltiplas.

Quando uma página de formulário é preenchida, uma página idêntica adicional é renderizada automaticamente. O subformulário continua a ser posicionado na página seguinte, a menos que você o direcione o fluxo explicitamente a uma página mestra ou área de conteúdo diferente. Quando há mais de uma área de conteúdo ou página mestra no mesmo formulário, é possível especificar se um subformulário será posicionado em uma área de conteúdo em particular ou de acordo com a página mestra especificada.

Como ativar um subformulário para expandi-lo em várias páginas

 Na paleta Objeto, clique na guia Subformulário e selecione Permitir a quebra de páginas dentro do conteúdo.

Quando esta opção não está selecionada, os objetos no subformulário são mantidos juntos na mesma página.

Sobre sobrefluxos anteriores e posteriores

Como o comprimento de um formulário com layout flexível varia dependendo da quantidade de dados à qual ele é unido, esse tipo de formulário costuma incluir mais de uma página. O uso de subformulários de sobrefluxo anterior e posterior são um modo eficaz de iniciar e finalizar subformulários que se repetem por várias páginas. É possível usar qualquer subformulário configurado para posicionar conteúdo como um sobrefluxo anterior ou posterior. Por exemplo, na amostra de formulário de Pedido de compra, o subformulário detail está configurado para posicionar conteúdo e se repetir para cada item de dados. Quando o formulário é unido aos dados, se a primeira página tiver espaço insuficiente para exibir todas as ocorrências do subformulário detail, uma nova página será adicionada, e os dados continuarão na área de conteúdo seguinte.

Quando os dados continuam dessa forma por várias páginas, talvez seja necessário exibir em cada nova página um texto como “Continuação da página anterior” ou elementos de formatação específicos, como uma linha de cabeçalho de coluna que inclua os rótulos descritivos para cada coluna de dados. O uso de linhas de cabeçalho de coluna em cada página subsequente torna a compreensão do formulário resultante muito mais fácil para os usuários. Para isso, é possível criar um subformulário de sobrefluxo anterior que atuará como a linha de cabeçalho de coluna para cada página adicional. Por exemplo, na amostra de formulário de Pedido de Compra, o subformulário detalhecabeçalho está selecionado como um sobrefluxo anterior. Como resultado, uma cópia do subformulário detailHeader é renderizada na parte superior de cada nova página antes da primeira ocorrência do subformulário detail.

De forma semelhante, é possível incluir informações após a última ocorrência do subformulário repetitivo, na parte inferior de todas as páginas, com exceção da última. Por exemplo, inclua um texto como “Continuação na próxima página” na parte inferior dessas páginas intermediárias. Para fazer isso, crie um subformulário de sobrefluxo posterior para o subformulário repetitivo seguindo o mesmo método de criação de um subformulário de sobrefluxo anterior.

Quando ocorre sobrefluxo de um subformulário para a nova página, o servidor realiza estas operações:

  • Dispõe o sobrefluxo posterior na página atual.

  • Dispõe o sobrefluxo anterior na página seguinte.

  • Continua na nova página o subformulário ampliável e o restante de seus objetos repetitivos.

Um sobrefluxo anterior é um tipo especial de subformulário posicionado, exibido na parte superior da página seguinte sempre que ocorre um sobrefluxo de página.

Sobrefluxos anteriores são semelhantes à linha de cabeçalho em uma tabela padrão. A linha de cabeçalho aparece na parte superior da tabela e contém um rótulo descritivo de cada coluna na tabela. É possível formatar a tabela para que, quando ela for expandida para além de uma página, a linha de cabeçalho seja repetida na parte superior da nova página. Isto torna as informações na tabela mais fáceis de serem compreendidas à medida que o leitor se move de uma página a outra.

Um subformulário líder de sobrefluxo comporta-se de modo semelhante. Ao especificar que um determinado subformulário será o líder de sobrefluxo para um subformulário que se repete, o subformulário líder de sobrefluxo aparecerá uma vez antes do subformulário repetido na parte superior da página atual e cada página subsequente.

O subformulário repetitivo será adicionado quantas vezes forem necessárias ao ser unido a dados. Quando não há mais espaço na primeira página, uma nova página é adicionada e os dados continuam a fluir para a próxima página até que todos os dados sejam consumidos. O subformulário de sobrefluxo anterior aparecerá uma vez na parte superior de cada página.

É possível ver um exemplo de como um subformulário de sobrefluxo anterior é usado no design de formulário de amostra do qual o layout é ajustado para acomodar os dados incluídos com o Designer. A amostra, Purchase Order.xdp, está na pasta Amostras na qual o Designer está instalado no seu sistema. Nesse exemplo, o subformulário chamado detailHeader age como o sobrefluxo anterior para o subformulário repetitivo chamado detail.

Suportes anteriores são subformulários que aparecem antes de um subformulário repetitivo. Se um subformulário irmão for definido logo acima de um subformulário repetitivo e, em seguida, for especificado como um sobrefluxo anterior, significa que ele foi designado como um suporte anterior e como um sobrefluxo anterior.

Um sobrefluxo posterior será exibido na parte inferior da página seguinte sempre que ocorrer um sobrefluxo de página. Use um sobrefluxo posterior para incluir informações que aparecem apenas uma vez depois que todos os dados sejam dispostos.

Suportes posteriores são subformulários que aparecem logo após um subformulário repetitivo. Se um subformulário for definido logo abaixo de um subformulário repetitivo e, em seguida, for especificado como um sobrefluxo posterior, significa que ele foi designado como um suporte posterior e como um sobrefluxo posterior.

Criação e atribuição de sobrefluxos anteriores e posteriores

Um sobrefluxo anterior ou posterior é um subformulário posicionado que pode ser atribuído a qualquer subformulário repetitivo. Normalmente, é possível criar o subformulário que se tornará o sobrefluxo anterior ou posterior primeiro. Depois, o atribui a um subformulário repetido e determina as propriedades de sobrefluxo.

Se o sobrefluxo anterior também for tratado como um suporte anterior, ele será colocado na paleta Hierarquia, logo acima do subformulário. Além disso, se o sobrefluxo posterior também for tratado como um suporte posterior, ele será colocado na paleta Hierarquia, logo abaixo do subformulário.

Para criar um subformulário de sobrefluxo anterior ou posterior

  1. Crie um design de formulário com todos os subformulários necessários.

  2. No design de formulário, localize o subformulário que deseja usar como um sobrefluxo anterior ou posterior, selecione o subformulário e proceda do seguinte modo:

    • Olhe a guia Subformulário na paleta Objeto. Certifique-se de que a lista Conteúdo exiba Posicionado. Na paleta Objeto, clique na guia Subformulário e, na lista Conteúdo, certifique-se de que Posicionado esteja selecionado.

    • Observe a guia Vínculo, na paleta Objeto. Na paleta Objeto, clique na guia Vínculo e selecione Repetir o subformulário para cada item de dados para que os posteriores e os anteriores apareçam para mais de um sobrefluxo. Suportes anteriores e posteriores não são levados em consideração nessa contagem.

Para aplicar um subformulário de sobrefluxo anterior ou posterior

  1. Selecione o(s) subformulário(s) a ser(em) repetido(s).

  2. Na paleta Objeto, clique na guia Vínculo e selecione Repetir subformulário para cada item de dados para definir o subformulário a ser repetido.

  3. Na paleta Objeto, clique na guia Paginação e, na caixa Sobrefluxo, especifique uma área de conteúdo ou página na qual o formulário deve posicionar subformulários de sobrefluxo.”]

  4. Se desejar especificar um sobrefluxo anterior, na lista Sobrefluxo anterior, selecione o subformulário a ser usado como subformulário de sobrefluxo anterior para o subformulário repetitivo atual. Como alternativa, selecione Novo na lista Sobrefluxo Anterior para criar e atribuir um novo subformulário de sobrefluxo anterior.

  5. Se desejar especificar um sobrefluxo posterior, na lista Sobrefluxo posterior, selecione o subformulário a ser usado como subformulário de sobrefluxo posterior para o subformulário repetitivo atual. Como alternativa, selecione Novo na lista Sobrefluxo posterior para criar e atribuir um novo subformulário de sobrefluxo posterior.

    Nota: Não é necessário ter um líder e um trailer de sobrefluxo. Ter um dos dois, ambos ou nenhum, é totalmente determinado pelos requisitos de seu formulário.