É um serviço brasileiro de geração de relatórios e apresentação de gráficos através de uma API Rest, podendo gerar relatórios em PDF, XLSX (Excel) ou um retorno JSON.
O VMTECH REPORT é a Api mais simples do mercado. Basta enviar um JSON em uma requisição HTTPS com os nomes dos campos, os campos calculados e o banco de dados.
Veja um Exemplo:
é a ferramenta perfeita para comunicar informações visualmente, com a VMTECH.Report você tem uma API exclusiva para sua apresentação.
Veja os exemplos:
(Logo abaixo nos “Tópicos API” as estruturas)
{
“token”:”123456789″,
“type“:”xlsx/json“,
“fields“:[
],
“data”:[
],
}
“token” – É sua área em nosso servidor para a realização do relatório
“type” – O retorno que você está solicitando
“fields” – São os campos de sua tabela de dados, podendo ser
acrescentado os campos calculados
Exemplo:
“fields“:[
{
“name“:”DATE”
},
{
“name“:”CATEGORY”
},
{
“name“:”AMOUNT”
},
{
“name“:”T”, Campo calculado
“formula”:”(T+AMOUNT)”
},
{
“name“:”TOTAL”, Campo calculado
“formula”:”AMOUNT/(100-amount/100)”
},
]
“data” – Sua tabela de dados, onde irá trazer os dados contendo os campos definidos no “fields“, com EXCEÇÃO dos campos calculados.
Exemplo:
“data” : [
{
“DATE”:
“2017-10-11”,
“CATEGORY”:
“Communications”,
“AMOUNT”: 120
},
{
“DATE”: “2018-12-30
10:20:30″,
“CATEGORY”:
“Service”,
“AMOUNT”: 290
},
]
Para um retorno em PDF é necessário criar o layout na propriedade Report. (O painel da VMTECH.Report está sendo desenvolvido e será disponibilizado para todos os parceiros).
Layout do report =
O relatório pode ser PRÉ-DEFINIDO ou pode ser LIVRE;
LIVRE = Você pode criar o que for necessário
para seu relatório.
PRÉ-DEFINIDO = Teremos as propriedades:
ATENÇÃO: Você não pode utilizar o “detail” e o “content” do report juntos, pois um irá sobrescrever o outro.
Estrutura:
“report“:{
“orientation“: “P/L” Portrait/Landscape
“pagesize“: “A3/A4/A5/Letter/Legal”
“margins“: {
“left“: 0,
“top”:
5,
“right“: 0
}
“rowh”:12 Altura padrão da linha
“header”:{
“titles“: Texto do cabeçalho
“columns“: Título da coluna de dados
“bgcolor“:{ Cor de fundo da linha dos títulos das colunas
“red”:0,
“green”:0,
“blue”:0
}
“size”:9 Tamanho da fonte
“font”:”arial” arial/helvetica/symbol/zapfdingbats/courier
“style”:”BI” “/B/I/BI” Bold/Italic/BoldItalic
“align”:”L” “L/R/C/T/B/M” Left/Right/Center/Top/Bottom/Middle
“grid”: Largura de cada coluna, com máximo de tamanho 12
“line”:1 Altura da linha separadora do cabeçalho
}
“detail“:{ Detalhe do relatório
“columns“: Componentes como text, image, barcode e qrcode
“size”:10
“font“:”courier”,
“align“:”L”,
“grid”:
“zebracolor“:{ Cor do zebrado
“red”:200,
“green”:200,
“blue”:200
}
}
“groupheader“:{
“reset”: Variáveis para reiniciar após groupheader
“fields”: Campos para a quebra do grupo
“line”:1,
“newpage”:true/false Nova página antes de imprimir groupheader
“content”: Componentes como text, image, barcode e qrcode
},
“groupfooter“:{
“reset”: Variáveis para reiniciar após groupfooter
“fields”: Campos para a quebra do grupo
“line”:1 Altura da linha após groupfooter
“lineb”:3, Altura da linha antes groupfooter
“newpage“:true/false
“content”: Componentes
}
“footer“:{
“line”:1,
“content“: Componentes como text, image, barcode e qrcode
},
“formulas”: Fórmulas a serem utilizadas no report
“init”: Inicialização de variáveis
“content“:
Componentes como text, image, barcode e qrcode.
O Painel VMTECH.Report está em desenvolvimento, mas funcionará desta forma:
Cada TOKEN terá acesso ao Painel VMTECH.Report, neste painel você terá a Tela de entrada para grupos e uma Tela de entrada de campos e dados. Cada TOKEN terá uma senha que será o Administrador e o mesmo conseguirá criar usuários, assim separando o Adm (empresa autora das Templates, setor responsável pelas Templates) do usuário que poderá executá-las. Desta forma o Painel VMTECH.Report é perfeito para a organização de sua empresa e, trabalhando de forma whitelabel, perfeito para seus clientes.
Dentro do painel VMTECH.Report você terá uma área de grupos e descrição, está área será ideal para sua organização e acesso rápido de todas as Templates salvas. Para cada layout criado você poderá criar um grupo com uma descrição ou vincular a um grupo já existente, além disto você terá uma área específica com o histórico de relatórios gerados de cada template.
Você terá uma área para definir os campos de sua tabela, acrescentar seus campos calculados e subir o arquivo de dados de forma manual. Também é possível utilizar o primeiro registro como os nomes dos campos, precisando apenas acrescentar os campos calculados pelo painel.
Criação do relatório:
Para cada layout terá uma descrição e a que grupo ele pertence.
Na criação poderá:
1. Inclusão do “header” cabeçalho do relatório, local onde ele irá se localizar, quais a informações que irá contê-lo;
2. Os títulos das colunas do “detail“, qual é o campo que estará associado a coluna;
3. Poderá definir os agrupamentos de seu Report, “groupheader“, “groupfooter“;
4. Inclusão do “footer” rodapé do relatório;
Toda estrutura apresentada na propriedade “report“, explicada no título “Nome do título”, estará neste painel de forma simples e intuitiva.
Uma vez finalizado o seu layout, você terá uma Template, nele você poderá inserir um arquivo de dados contendo, por exemplo, 100 linhas do banco para renderizar e testar seu relatório.
No painel VMTECH.Report você sempre terá um botão, PREVIEW, para renderizar e ver como está ficando seu PDF.
Quando sua Template estiver finalizada você poderá salvar e executá-la.
Executando uma Template salva, a VMTECH.Report irá solicitar o banco de dados que será utilizado para gerar seu relatório.
Teremos também a possibilidade de um cadastro Webhook para puxar os danos ativamente. Webhook é uma URL de seu servidor/site, toda vez que este hook for executado terá o retorno de dados, sendo possível criar relatórios com dados dinâmicos.
{
“token”:””,
“title“:{
“text“:””,
“subtitle“:””,
“link”:””,
“target”:””,
“top”:””,
“bottom“:””,
“left“:””,
“right“:””
},
“legend“:{
“left“:””,
“top”:””,
“right“:””,
“bottom“:””
},
“xAxis“:[
{
“name“:””,
“data”:[
]
}
],
“yAxis“:[
{
“name“:””
}
],
“series”:[
{
“name“:””,
“data”:[
]
}
],
“label“:{
“show”:true/false,
“color”:””,
“position”:””
}
}
{
“token”:””,
“title“:{
“text“:””,
“subtitle“:””,
“link”:””,
“target”:””,
“top”:””,
“bottom“:””,
“left“:””,
“right“:””
},
“legend“:{
“left“:””,
“top”:””,
“right“:””,
“bottom“:””
},
“series”:{
“”:0,
},
“label“:{
“show”:true/false,
“color”:””,
“position”:””
}
}
{
“token”:””,
“title“:{
“text“:””,
“subtitle“:””,
“link”:””,
“target”:””,
“top”:””,
“bottom“:””,
“left“:””,
“right“:””
},
“legend“:{
“left“:””,
“top”:””,
“right“:””,
“bottom“:””
},
“xAxis“:[
{
“name“:””,
“data”:[
]
}
],
“yAxis“:[
{
“name“:””
}
],
“series”:[
{
“name“:””,
“data”:[
]
}
],
“label“:{
“show”:true/false,
“color”:””,
“position”:””
}
}
{
“token”:””,
“title“:{
“text“:””,
“subtitle“:””,
“link”:””,
“target”:””,
“top”:””,
“bottom“:””,
“left“:””,
“right“:””
},
“legend“:{
“left“:””,
“top”:””,
“right“:””,
“bottom“:””
},
“xAxis“:[
{
“name“:””,
“data”:[
]
}
],
“yAxis“:[
{
“name“:””
}
],
“series”:[
{
“name“:””,
“data”:[
]
}
],
“label“:{
“show”:true/false,
“color”:””,
“position”:””
}
}
{
“token”:””,
“title“:{
“text“:””,
“subtitle“:””,
“link”:””,
“target”:””,
“top”:””,
“bottom“:””,
“left“:””,
“right“:””,
“textStyle”:{“color”:””,”style”:””,”size”:0}
},
“legend“:{
“left“:””,
“top”:””,
“right“:””,
“bottom“:””,
“textStyle”:{“color”:””,”style”:””,”size”:0}
},
“series”:[
{
“name“:””,
“data”:[
],
“itemStyle”:{“color”:””,”borderColor”:””,”opacity”:0.0},
“lineStyle”:{“color”:””,”type”:””,”width”:1,”opacity”:0.0,”curveness”:0},
“areaStyle”:{“color”:””,”opacity”:0.0}
}
],
“backgroundColor“: “”
“with“:””,
“height“:””
}
{
“token”:””,
“title“:{
“text“:””,
“subtitle“:””,
“link”:””,
“target”:””,
“top”:””,
“bottom“:””,
“left“:””,
“right“:””,
“textStyle”:{“color”:””,”style”:””,”size”:0}
},
“legend“:{
“left“:””,
“top”:””,
“right“:””,
“bottom“:””,
“textStyle”:{“color”:””,”style”:””,”size”:0}
},
“visualMap”:{“calculable”:true,”max”:0,”range”:[],”inRange”:{“color”:[]}},
“xAxis“: {“data”:[]},
“yAxis“: {“data”:[]},
“grid”:
{“boxWidth”:100,”boxHeight”:100,”boxDepth”:100},
“series”:[
{
“name“:””,
“data”:[
]
}
],
“backgroundColor“: “”
“with“:””,
“height“:””
}