## Descrição

Os modelos de relatório Open Document Text são arquivos ODT comuns que podem ser criados usando qualquer processador de texto ODT, como o Calligra Words ou o LibreOffice Writer. A técnica utilizada é usar variáveis ​​de campos de usuário para armazenar referências às informações que serão obtidas do projeto. As variáveis ​​são chamadas de Campos do usuário no Writer e podem ser encontradas em Inserir Campo Mais campos Variáveis Campos do usuário. No Words, elas são chamadas de Variáveis personalizadas e podem ser encontradas no Painel de edição de texto Variáveis Personalizadas.

A maneira mais fácil de criar um novo modelo de relatório é modificar um existente, pois todos os campos do usuário já estão definidos.

## Variáveis de campo do usuário

### Variáveis

As variáveis ​​são usadas para permitir que o gerador extraia dados do projeto.

Uma variável pode ser uma referência a um único campo de dados, uma referência a dados de tabela ou uma referência a dados de gráfico.

#### Campo de dados único

Uma variável de campo de dados único tem o seguinte formato:

`nome do grupo de dados`.`propriedade` = `identificador da propriedade`

onde:

- `nome do grupo de dados` pode ser tr, project ou schedule (veja abaixo).

- `propriedade` torna o nome do campo do usuário único.

- `identidade da propriedade` identifica a propriedade no grupo de dados.

#### Dados da tabela

Uma tabela em um modelo de relatório, consiste em uma variável para especificar a tabela de dados a ser usada.

O nome da variável deve começar com `table` (⪚, tableTasks) e o valor da variável deve ser o nome da tabela de dados (⪚, tasks).

Imediatamente após a variável, uma tabela deve ser inserida e as colunas preenchidas com variáveis ​​de campo do usuário que especificam quais propriedades buscar da tabela especificada acima. Essas variáveis ​​devem ter nomes que comecem com o nome da variável de tabela acima.

Essas variáveis ​​têm o seguinte formato:

tableTasks.`propriedade` = `identificador da propriedade`

onde:

- propriedade torna o nome do campo do usuário único.

- identificador da propriedade identifica a propriedade no grupo de dados.

#### Dados do gráfico

Um gráfico em um modelo de relatório consiste em uma variável para especificar os dados a serem usados ​​no gráfico.

O nome da variável deve começar com `chart` (⪚, chartBudgetCost) e o valor da variável especifica o grupo de dados e os valores a serem preenchidos no gráfico.

A variável tem o seguinte formato (observe os pontos e vírgulas):

`nome` = `grupo de dados`; valores=`lista de propriedades de dados separadas por vírgula`;

Onde:

- `nome` deve começar com chart (ex.: chartBudgetCost)

- `grupo de dados`

- lista de propriedades de dados separadas por vírgula identifica as propriedades no grupo de dados.

Ex.:

chartBudget = project; values=bcws cost, bcwp cost, acwp cost;

### Rótulos traduzidos

Os rótulos traduzidos permitem-nos produzir modelos de relatórios gerais que podem ser usados ​​em diferentes idiomas.

Nome da variável | Valor da variável
tr.project | Projeto
tr.manager | Gerente
tr.schedule | Agenda
tr.bcws | BCWS
tr.bcwp | BCWP
tr.acwp | ACWP
tr.spi | SPI
tr.cpi | CPI

### Valores do projeto

Exibe os valores do projeto principal.

Nome da variável | Valor da variável | Descrição
project.name | Nome | O nome do projeto
project.manager | Gerente | O nome do gerente de projeto
project.bcwscost | Custo BCWS | Custo baseado no custo orçado do trabalho agendado (BCWS, sigla em inglês)
project.bcwpcost | Custo BCWP | Custo baseado no custo orçado do trabalho efetuado (BCWP, sigla em inglês)
project.acwpcost | Custo ACWP | Custo baseado no custo atual do trabalho efetuado (ACWP, sigla em inglês)
project.spicost | Custo SPI | Custo baseado no índice de desempenho do agendamento (SPI, sigla em inglês)
project.cpicost | Custo CPI | Custo baseado no índice de desempenho do custo (CPI, sigla em inglês)
project.bcwseffort | Esforço BCWS | Esforço baseado no custo orçado do trabalho agendado
project.bcwpeffort | Esforço BCWP | Esforço baseado no custo orçado do trabalho efetuado
project.acwpeffort | Esforço ACWP | Esforço baseado no custo atual do trabalho efetuado
project.spieffort | Esforço SPI | Esforço baseado no índice de desempenho do agendamento
project.cpieffort | Esforço CPI | Esforço baseado no índice de desempenho do custo

### Valores da agenda

Exibe os valores da agenda atual.

Nome da variável | Valor da variável | Descrição
schedule.name | Nome | O nome da agenda
schedule.state | Estado | Estado do agendamento
schedule.direction | Direção | Direção do agendamento
schedule.overbooking | Sobrecarga | Sobrecarga
schedule.distribution | Distribuição | Distribuição
schedule.plannedstart | Início planejado | Início planejado
schedule.plannedfinish | Fim planejado | Fim planejado
schedule.scheduler | Agendador | Agendador
schedule.granularity | Granularidade | Granularidade
schedule.mode | Modo | Modo do agendamento (Automático ou Manual)

### Tabelas

Tipos de tabelas suportados:

- tarefas

- taskstatus

- agendamentos

- projetos

Para criar uma tabela, coloque uma variável logo antes da tabela em seu arquivo de modelo. O nome da variável identifica a tabela e deve começar com table, por exemplo, tableTaskStatus.

O valor da variável é usado para apontar para os dados a serem buscados e deve ser uma das tabelas suportadas listadas acima, por exemplo; taskstatus.

Em seguida, você insere variáveis ​​nas células da tabela com nome e valor da tabela abaixo.

Observe que a tabela de horários suporta os valores descritos em Valores de horário acima.

As tabelas de projetos, tarefas e status de tarefas suportam os seguintes valores:

Nome da variável | Valor da variável | Descrição
`nome da tabela`.name | Nome | O nome da tarefa ou projeto
`nome da tabela`.wbscode | Código WBS |
`nome da tabela`.type | Tipo | Tipo de tarefa
`nome da tabela`.responsible | Responsável |
`nome da tabela`.allocation | Alocação |
`nome da tabela`.estimatetype | Tipo de estimativa |
`nome da tabela`.calendar | Calendário |
`nome da tabela`.estimate | Estimativa | A estimativa mais provável
`nome da tabela`.optimistic | Otimista | Proporção otimista
`nome da tabela`.pessimistic | Pessimista | Proporção pessimista
`nome da tabela`.risk | Risco | Incerteza da estimativa
`nome da tabela`.constraint | Restrição | Tipo de restrição de tempo
`nome da tabela`.constraintstart | Início da restrição | Hora no início da restrição
`nome da tabela`.constraintend | Fim da restrição | Hora do fim da restrição
`nome da tabela`.runingaccount | Conta operacional | Conta para os custos operacionais
`nome da tabela`.startupaccount | Conta inicial | Conta para o custo inicial
`nome da tabela`.startupcost | Custo inicial | O custo decorrido do início da tarefa
`nome da tabela`.shutdownaccount | Conta de encerramento | Conta para o custo de encerramento
`nome da tabela`.shutdowncost | Custo de encerramento | O custo decorrido do fim da tarefa
`nome da tabela`.description | Descrição | Descrição da tarefa
`nome da tabela`.expected | Esperado | Estimativa mais provável calculada
`nome da tabela`.optimistic | Otimista | Estimativa otimista calculada
`nome da tabela`.pessimistic | Pessimista | Estimativa pessimista calculada
`nome da tabela`.starttime | Hora inicial | Hora inicial agendada
`nome da tabela`.endtime | Hora final | Hora final agendada
`nome da tabela`.duration | Duração | Duração agendada
`nome da tabela`.earlystart | Início mais cedo | Início mais cedo possível
`nome da tabela`.earlyfinish | Fim mais cedo | Fim mais cedo possível
`nome da tabela`.latestart | Início mais tarde | Início mais tarde possível
`nome da tabela`.latefinish | Fim mais tarde | Fim mais tarde possível
`nome da tabela`.positivefloat | Flutuação positiva |
`nome da tabela`.freefloat | Flutuação livre |
`nome da tabela`.negativefloat | Flutuação negativa |
`nome da tabela`.startfloat | Flutuação inicial |
`nome da tabela`.finishfloat | Flutuação final |
`nome da tabela`.assignaments | Atribuições | Atribuições de recursos
`nome da tabela`.varianceest | Variância (Est) | Variância da estimativa calculada
`nome da tabela`.variancedur | Variância (Dur) | Variância da duração calculada
`nome da tabela`.optimisticdur | Otimista (Dur) | Duração otimista calculada
`nome da tabela`.pessimisticdur | Pessimista (Dur) | Duração pessimista calculada
`nome da tabela`.status | Status | O status da tarefa é exibido na vista de status da tarefa
`nome da tabela`.completion | % Completado | Completamento de tarefa
`nome da tabela`.plannedeffort | Esforço planejado | Esforço planejado
`nome da tabela`.actualeffort | Esforço atual | Esforço atual
`nome da tabela`.remaningeffort | Esforço restante | Esforço restante
`nome da tabela`.plannedcost | Custo planejado | Custo planejado
`nome da tabela`.actualcost | Custo real | Custo real
`nome da tabela`.actualstart | Início atual | Início atual
`nome da tabela`.started | Iniciado |
`nome da tabela`.actualfinish | Fim real | Fim real
`nome da tabela`.finished | Concluído |
`nome da tabela`.schedulingstatus | Status do agendamento | Status do agendamento
`nome da tabela`.bcws | BCWS | Custo orçado do trabalho agendado (baseado em custo)
`nome da tabela`.bcwp | BCWP | Custo orçado do trabalho efetuado (baseado em custo)
`nome da tabela`.acwp | ACWP | Custo atual do trabalho efetuado (baseado em custo)
`nome da tabela`.spi | SPI | Índice de desempenho do agendamento
`nome da tabela`.critical | Crítica | Tarefa é crítica
`nome da tabela`.criticalpath | Caminho crítico | Tarefa está no caminho crítico
`nome da tabela`.notscheduled | Não agendado | Nada interessante
`nome da tabela`.assignmentmissing | Atribuição faltando | Nada interessante
`nome da tabela`.resourceoverbooked | Recurso sobrecarregado | Nada interessante
`nome da tabela`.resourceunavailable | Recurso indisponível | Nada interessante
`nome da tabela`.constrainterror | Erro de restrições | Nada interessante
`nome da tabela`.effortnotmet | Esforço não cumprido | Nada interessante
`nome da tabela`.schedulingerror | Erro de agendamento | Nada interessante
`nome da tabela`.level | Nível do nó, Nível | Nada interessante
`nome da tabela`.statusnote | Nota do status | Nota: Não implementado
`nome da tabela`.owner | Proprietário | Não devem ser usados ​​e não são muito interessantes
`nome da tabela`.status | Status | Não devem ser usados ​​e não são muito interessantes
`nome da tabela`.time | Hora | Não devem ser usados ​​e não são muito interessantes

## Gráfico

Utilize isso colocando uma variável com o nome chartX (X = algum texto para tornar o nome da variável único) com o valor project antes do gráfico que será usado.

Observe que o gráfico deve estar “ancorado como caractere”, caso contrário, o gerador de relatórios não poderá encontrá-lo.

A variável tem este formato:

Variável: `Nome: chartX (X=algum texto) Valor: projeto; valores=`dados`;`

onde `dados` é uma lista de valores separados por vírgulas a serem incluídos no gráfico.

Os valores possíveis de `dados` são:

- bcws effort Custo orçado do trabalho programado, baseado no esforço.

- bcwp effort Custo orçado do trabalho realizado, baseado no esforço.

- acwp effort Custo real do trabalho realizado, baseado no esforço.

- spi effort Índice de desempenho do cronograma, baseado no esforço.

- cpi effort Índice de desempenho de custo, baseado no esforço.

- bcws cost Custo orçado do trabalho programado, baseado em custos.

- bcwp cost Custo orçado do trabalho realizado, com base no custo.

- acwp cost Custo real do trabalho realizado, com base nos custos.

- spi cost Índice de desempenho do cronograma, baseado em custos.

- cpi cost Índice de desempenho de custos, baseado em custos.

Os gráficos que você criar em seu modelo devem ter o mesmo número (ou mais) de colunas que o número de valores que você especificar em sua variável.

Exemplo:

Nome da variável: `chart1` Valor: `projeto; valores=bcws cost,bcwp cost, acwp cost;`

Observe que não é possível misturar valores baseados em esforço e em custo. Se você quiser mostrar ambos, crie dois gráficos.

### Gantt

Não suportado.