É possível aceder ao ecrã do Layoutdo ficheiro a produzir.
Este ecrã apresenta um diagrama do ficheiro a ser produzido em forma de árvore. Cada ramo da árvore é uma linha no ficheiro a produzir.
O ficheiro poderá ter tantas linhas quantas as necessárias para produzir a informação pedida pela AT — Autoridade Tributária.
Debaixo de cada ramo da árvore, irão existir diversos registos que correspondem às colunas das diversas linhas do ficheiro a produzir. As imagens que identificam estes registos serão várias, correspondentes aos diversos tipos de colunas que poderão integrar a estrutura.
Construção do diagrama
Para a construção do diagrama, existem várias opções:
Inserir: Este botão fica visível imediatamente quando selecionado o primeiro registo, que tem por título o nome do mapa que se está a definir. Nesta altura, ao clicar neste botão é criada uma nova linha. Também estará visível quando posicionado numa determinada linha e, neste caso, ao clicar no botão, será criada uma nova coluna para essa linha.
Duplicar: Este botão está visível quando posicionado num registo de linha ou de coluna, servindo para duplicar a linha e todas as suas colunas, ou para duplicar só a coluna onde se encontra posicionado.
Apagar: Este botão também estará visível na mesma situação do botão Duplicar e serve para apagar uma linha e todas as suas colunas, ou só uma coluna de uma determinada linha.
Ordenar: Este botão também estará visível nas mesmas condições dos botões Duplicar e Apagar e serve para ordenar as linhas ou as colunas de uma determinada linha, consoante o registo onde esteja posicionado ao clicar neste botão. Essa ordem será utilizada quando se criar o ficheiro e poderá ser identificada pela disposição que as linhas e suas colunas ocupam no diagrama representado neste ecrã.
O ecrã possibilita ainda as seguintes opções:
Importar um Layout em formato DBF: Este botão permite importar um novo layout que tenha sido previamente exportado de outra definição, em formato DBF. Ao escolher esta opção, será avisado de que todas as linhas e colunas do presente layout serão apagadas e substituídas pelas que estiverem incluídas no ficheiro a importar.
Exportar este Layout para formato DBF: Este botão permite exportar o atual layout para um ficheiro e diretório a definir, em formato DBF.
Imprimir o Layout: Através desta opção é possível imprimir um relatório predefinido na aplicação.
Páginas de configuração
Abaixo do diagrama, existe um conjunto de páginas que servem para descrever o conteúdo que será utilizado para a construção das colunas das diversas linhas do ficheiro a ser produzido.
Dados Principais
Dados principais: Identifica o tipo de coluna a ser criada.
Descrição: Serve para identificar o nome da linha ou da coluna. O conteúdo deste campo não será utilizado para produzir o ficheiro. Este campo está visível quando posicionado num registo do tipo linha ou coluna. Todos os outros campos desta página só estarão visíveis quando posicionado num registo do tipo coluna, exceto a opção Esta linha não entra para os contadores. Esta linha não entra para os contadores Esta opção, apenas visível quando posicionado num registo do tipo linha, indica quais as linhas a ignorar na contagem.
Tipo Valor: Identifica o tipo de dados da coluna, se são do tipo carácter ou numérico. Caso o formato do ficheiro produzido seja do tipo ASCII, os campos disponíveis na página Dados Principais são os seguintes:
Os numéricos são preenchidos com zeros à esquerda: Este campo, apenas visível se os dados da coluna forem do tipo numérico, especifica a formatação da coluna. Ex.: caso a coluna tivesse um comprimento de 5 e o seu valor fosse 3, se esta opção fosse ativada, o resultado seria: 00003; caso contrário, seria: ** 3** (quatro espaços e depois o valor; 4+1 = 5).
Para valores negativos, a formatação é a seguinte: Com a opção ativa: -0003 Sem a opção ativa: ** -3** (três espaços, o sinal e o valor; 3+1+1 = 5)
Os numéricos apresentam sinal quando são positivos — Este campo, apenas visível se os dados da coluna forem do tipo numérico, indica se os valores positivos também têm sinal (quando são negativos têm sempre sinal).
Fórmula
Esta página é utilizada quando se pretende que o resultado de determinada coluna seja o valor de uma fórmula do mapa de gestão em IDU.
Nesta página, os campos são os seguintes:
Número da Célula que contém a fórmula pretendida: Serve para indicar qual a célula do mapa de gestão em IDU que contém a fórmula desejada. Poderá escrever-se diretamente o número da célula ou escolher, através do botão situado à esquerda deste campo, uma célula da listagem de todas as fórmulas do mapa de gestão em IDU ligado a este.
Máscara: Permite especificar uma formatação a ser aplicada ao valor desta coluna.
Utilizar a Máscara da Fórmula caso o campo acima não esteja preenchido: Permite utilizar a formatação que foi especificada para a célula, na altura da sua criação, no Mapa de Gestão em IDU, caso o campo Máscara desta página não esteja preenchido.
Ficha da Empresa
Esta página é utilizada quando se pretende que o resultado de determinada coluna seja o valor de um campo da Ficha Completa da Empresa.
Nesta página, os campos disponíveis são os seguintes:
Campo: Este campo em lista, ordenado alfabeticamente, permite escolher qual o campo da Ficha Completa de Empresa que se pretende.
Máscara: Permite especificar uma formatação a ser aplicada ao valor desta coluna.
Utilizar a Máscara da Ficha da Empresa caso o campo acima não esteja preenchido: Permite utilizar a formatação que foi especificada para a célula, na altura da sua criação, no Mapa de Gestão em IDU, caso o campo Máscara desta página não esteja preenchido.
Expressão
Esta página é utilizada quando se pretende que o resultado de determinada coluna seja o valor de uma expressão definida. Essa expressão poderá ser em TSQL ou em XBASE, ou então utilizando um misto das duas, ou seja, definindo uma expressão em TSQL e utilizar o valor retornado por essa expressão na definição da expressão em XBASE.
Nesta página, os campos são os seguintes:
Expressão TSQL
Aqui define-se uma expressão utilizando apenas comandos TSQL. O valor aqui introduzido irá servir para executar uma Query ao servidor de dados SQL. O resultado dessa Query só poderá retornar um único valor, ou seja, uma tabela apenas com uma linha e uma coluna. Caso tal não aconteça, será gerado um aviso no momento da produção do ficheiro, e o mesmo será cancelado.
Além dos comandos em TSQL, também poderá utilizar mais dois tipos:
Campos da tabela da Ficha Completa da Empresa, utilizando para isso o botão.
Variáveis, utilizando o botão. A explicação destas variáveis é efetuada na página Variável.
Expressão XBASE
Aqui define-se uma expressão utilizando apenas comandos XBASE. Na construção desta expressão, poderá utilizar-se os seguintes tipos:
Valor de retorno da expressão TSQL: caso a expressão de TSQL esteja preenchida, poderá utilizar o valor retornado pela Query definida pela expressão TSQL efetuada ao servidor de SQL, na construção da expressão em XBASE. Para isso, utiliza-se o botão, o qual introduz a palavra m.mgvaltsql na expressão XBASE que se está a construir, sendo depois esta palavra substituída pelo valor retornado pela expressão TSQL quando o ficheiro for produzido.
Variáveis, utilizando o botão. A explicação destas variáveis é efetuada na página Variável.
Este campo indica se a expressão em XBASE é um programa ou não. Caso seja um programa, este será compilado na altura da produção do ficheiro, sendo o valor retornado por ele utilizado na coluna correspondente.
Esta hipótese existe porque poderá haver necessidade de construir uma expressão em diversas linhas distintas, com instruções de decisão do tipo IF em que se poderá correr o código de uma linha da expressão ou outra consoante determinada condição. Para que isto seja possível, é necessário que a expressão seja um programa.
Máscara
Permite especificar uma formatação a ser aplicada ao valor desta coluna.
Variável
Esta página é utilizada quando se pretende que o resultado de determinada coluna seja o valor de uma variável definida.
Existem casos em que os valores de determinada coluna são conhecidos apenas aquando da produção do ficheiro, por exemplo o Ano do Exercício. Assim, poderá definir uma coluna como sendo do tipo variável e, só quando o ficheiro for produzido, será apresentado um ecrã com todas as variáveis definidas no mapa a produzir. Nesta altura, deverão ser introduzidos os dados correspondentes.
Nesta página, os campos disponíveis são os seguintes:
Título: Aqui será introduzido o título do ecrã que solicita os valores das variáveis aquando da produção do ficheiro. O botão Copiar permite copiar a descrição dada à coluna na primeira página Dados Principais, para o título da variável.
Tipo Dados: Indica que tipo de dados a variável irá conter. Os tipos de dados possíveis são: Carácter; Numérico; Memo (Texto longo); Lógico; e Data.
Máscara: Permite especificar uma formatação a ser aplicada ao valor da variável e à sua coluna correspondente.
Identificador: Este campo só deverá ser preenchido se pretender utilizar a variável na página Expressão de outras colunas pertencentes ao layout do ficheiro. Quando se clica nos botões de variáveis existentes na página Expressão, a lista que aparece para escolher só irá conter as variáveis cujo campo Identificador esteja preenchido.
Exemplo
Muitas vezes, existem dados a incluir no documento que deverão ser solicitados, mas cujo formato não é facilmente perceptível. Imagine um elemento num documento XML que deverá ter o conteúdo 1 ou 2 (por exemplo, 1 = 1.ª Declaração do Ano, 2 = Outra Declaração).
Em vez de pedir uma variável numérica em que se necessita de saber o significado de 1 e 2, é bastante mais agradável pedir uma variável do tipo lógico com o título 1.ª Declaração do ano ? em que se escolhe apenas Sim ou Não.
Para permitir estas situações, poderá usar o resultado de uma variável dentro da expressão Xbase (ou TSQL) de outro elemento. Para isso, deverá criar um elemento do tipo variável lógica com a pergunta Sim/Não.
No entanto, se não pretender que essa variável lógica seja incluída no documento XML, deverá selecionar a opção Este elemento não conta para a construção do ficheiro.
Em seguida, cria-se o verdadeiro elemento do documento XML com o tipo de dados numérico e com o conteúdo do tipo Expressão. Na sua expressão, usa-se o conteúdo da variável anterior, pressionando o botão que se encontra à direita da expressão com a tooltip Inserir uma variável na expressão XBASE.
Poderá então construir uma expressão Xbase, por exemplo, que retorne o número 1 ou 2 em função da variável lógica solicitada. Para o efeito, terá de atribuir um identificador à variável lógica. Esse identificador é escolhido e digitado no campo Identificador da página de configuração da variável lógica. É esse identificador que poderá depois ser usado na expressão xbase.
No exemplo, se tiver atribuído o identificador lResposta à variável lógica com o título 1.ª Declaração do ano ?, poderá depois criar o elemento do tipo Expressão em que no Xbase colocará, por exemplo, a expressão: iif(m.lResposta,1,2) - que retorna o número 1 ou 2 em função da resposta lógica.
Contador
Esta página é utilizada quando se pretende que o resultado de determinada coluna seja uma contagem efetuada sobre as diversas colunas existentes no layout do ficheiro. O tipo de contagem aqui efetuado será o número de colunas existentes entre dois pontos distintos do layout.
Nesta página, os campos disponíveis são os seguintes:
Início da contagem: Define qual a coluna de determinada linha, ou a partir de que linha começa a contagem.
Fim da contagem: Define qual a coluna de determinada linha, ou em que linha termina a contagem.
Inclusive: Estes dois campos existentes do lado direito dos campos Início e Fim de contagem indicam, no caso dos intervalos definidos serem uma coluna, se os mesmos são incluídos na contagem ou não. No caso dos intervalos serem linhas, estas não serão incluídas automaticamente na contagem.
Máscara: Permite especificar uma formatação a ser aplicada ao valor desta coluna.
Não contar com as variáveis que não entram para a construção do ficheiro: Este campo indica se as colunas do tipo variável que estão dentro do intervalo especificado para a contagem, mas que não entram para a construção do ficheiro, são ou não incluídas nessa mesma contagem.
IVA
Esta página é utilizada quando se pretende que o resultado de determinada coluna seja o valor de uma fórmula de IVA.
Nesta página, os campos são os seguintes:
Fórmula de IVA pretendida: Serve para indicar qual a fórmula de IVA desejada. Poderá escrever-se diretamente o número da célula ou escolher, através do botão de lista situado à esquerda deste campo, uma fórmula da listagem de todas as fórmulas do mapa de gestão em IDU ligado a este.
Máscara: Permite especificar uma formatação a ser aplicada ao valor desta coluna.
Sistema
Esta página é utilizada quando se pretende que o resultado de determinada coluna seja o valor de um campo de sistema, ou seja, um campo do tipo data e hora do computador, nome ou iniciais do operador, etc.
No caso de mapas de gestão de declarações de IVA periódicas, são acrescentados a estes campos os campos referentes às datas iniciais e finais que foram utilizadas para calcular o período da declaração do IVA.
Nesta página, os campos disponíveis são os seguintes:
Campo: Este campo em lista, ordenado alfabeticamente, permite escolher qual o campo Sistema que se pretende.
Máscara: Permite especificar uma formatação a ser aplicada ao valor desta coluna.
Apenas mais elementos
Este tipo de elemento deverá ser usado sempre que o elemento em questão não contém qualquer valor próprio. Apenas irá conter dentro dele outros elementos filhos.
Outro Mapa
Um determinado documento XML poderá ser obrigado a conter dados provenientes de mais do que um Mapa de Gestão.
Para conseguir isso, é necessário definir o layout XML também separadamente como se fossem dois documentos XML independentes.
Depois de ter o layout XML do segundo Mapa totalmente desenhado (como se fosse um documento independente), deverá então incluir esse segundo mapa dentro do primeiro, no local em que pretender, usando para isso um elemento deste tipo Outro Mapa.
O Layout XML do segundo Mapa será produzido como um Fragmento de Documento de XML e será inserido por inteiro, durante o cálculo, no seu local dentro do XML original.
Exemplo de documento XML:
Poderá neste caso definir um documento XML para o sub-mapa criando apenas o seu layout com dois elementos:
Layout Mapa 2:
SubElemento1: Do tipo fórmula de mapa de gestão 2, por exemplo
SubElemento2: Do tipo fórmula de mapa de gestão 2, por exemplo
E definir o mapa principal com o seguinte layout:
Layout Mapa 1:
Elemento1: Do tipo fórmula de mapa de gestão 1, por exemplo
Elemento2: Do tipo Apenas mais elementos
SubMapa: Do tipo Outro Mapa e selecionando o Layout Mapa 2
Mapa recapitulativo
No caso específico da nova Declaração Anual IES, existem dois anexos (O e P) que se destinam a reportar os Mapas recapitulativos.
Neste caso, o documento XML deverá ser composto de uma lista de elementos correspondente à lista de Cliente e/ou Fornecedores calculados nos mapas recapitulativos.
Uma vez que se trata de um conjunto indefinido de elementos, a aplicação produz automaticamente estes elementos e permite adicioná-los ao documento Principal no local pretendido. Bastará para isso criar um Elemento correspondente ao Anexo O e outro elemento correspondente ao Anexo P e nestes elementos indicar que se tratam de um conteúdo do tipo Mapa Recapitulativo.
Em seguida, na página Recapitulativo, deverão ser configurados os pormenores do conteúdo respetivo:
Se o elemento deverá conter dados referentes ao mapa recapitulativo de Clientes ou Fornecedores;
Qual o valor mínimo usado no cálculo do mapa recapitulativo;
Os nomes dos elementos que serão criados para conter a lista.
Deverá ser consultado o Schema XML da DGCI para saber o nome destes elementos.
Na aplicação, o configurador de layouts XML permite desenhar o XML produzido de acordo com um Schema fornecido - no caso do IES, o schema é um conjunto de ficheiros fornecidos pela AT). No entanto, a aplicação não valida o ficheiro produzido contra este schema.
Pelo que deverá ser utilizada uma ferramenta externa à aplicação para validar o ficheiro produzido, antes de o importar para a aplicação da DGCI.