Histórico da Página
Button | ||||
---|---|---|---|---|
|
API de Integração com Excel Web (001)
Nome Físico: utp/utapi029.p
Nome do Include com Parâmetros:
Versão de Integração: 001
Objetivo:
A API de Integração com excel tem como função gerar código javascript para gerar planilhas e gráficos no excel em programas estilo pai x filho.
Pré-requisitos:
É necessário ter o MS-EXCEL com uma versão compatível com o produto. Para mais detalhes consulte a documentação localizada em: Integração OfficeMétodos Internos
Utilização
Para que a integração com excel seja possível é necessário que algumas propriedades do internet explore sejam alteradas:
Acessar no menu ferramentas/opções da internet no folder segurança escolher o tópico intranet e clicar no botão nível personalizado, irá abrir a janela configurações de segurança procurar a opção Plugins e controles ActiveX, Na flag Inicializar e executar scripts de controle ActiveX não marcados como seguros escolher a opção confirmar, para que o mesmo pergunte ao usuário se o mesmo quer executar o ActiveX.
O Desenvolvedor pode utilizar a API de duas formas:
- O Desenvolvedor deve definir no programa uma variável do tipo handle com o nome de h-excel.
Ex.:
Bloco de código | ||
---|---|---|
| ||
Define var h-excel as handle no-undo. |
- Na procedure generateHeaderSon do programa filho deve ser definido um botão utilizando a técnica de botões customizados para que o mesmo execute a função geraexcel criada pela API.
Ex.:
Bloco de código | ||
---|---|---|
| ||
def var auxFunction as char no-undo.
assign auxFunction = "geraexcel()".
{web/winclude/wi-sonbut.i "Excel" "btn_excel" auxFunction}
|
- Na procedure process-web-request deve-se rodar a API de modo persistent utilizando a include{utp/utapi029.i2} passando como parâmetro a variável handle definida.
Ex.:
Bloco de código | ||
---|---|---|
| ||
{utp/utapi029.i2 h-excel} |
- Deve-se informar a API a versão da bo que será utilizada.
Obs: Se for bo 1.1 deve-se passar o parâmetro como branco.
Ex.:
Bloco de código | ||
---|---|---|
| ||
RUN setboversion IN h-excel("2.0"). |
- Deve se usar a include “method/dbotterr.i” no programa que chama a api.
- Passar o handle da bo utilizada para API.
Ex.:
Bloco de código | ||
---|---|---|
| ||
RUN sethandle IN h-excel({&hDBOSon}). |
- Informar a API sobre a configuração do arquivo que será gerado pela mesma.
Ex.:
Bloco de código | ||
---|---|---|
| ||
RUN configuraarquivo IN h-excel(1,"anderson.xls",2,NO,YES,NO,1). |
- Informar a API sobre a configuração da planilha.
Ex.:
Bloco de código | ||
---|---|---|
| ||
RUN configuraplanilha IN h-excel(1,1,"ordens do repres",NO,12.5,YES). |
- Setar a célula inicial da planilha para indicar em qual ponto serão inseridos os dados gerados pela API.
Ex.:
Bloco de código | ||
---|---|---|
| ||
RUN setfaixaini IN h-excel(1,3). /*(coluna/linha)*/ |
- Informar a API quais os campos da tabela que serão utilizados para geração da planilha.
Ex.:
language | ruby |
---|
- serão utilizados para geração da planilha.
Ex.:
Bloco de código | ||
---|---|---|
| ||
RUN setcampo IN h-excel (1,1,"order-num","order-num","I",3,"Times New Roman",12,NO,NO,57,"","").
RUN setcampo IN h-excel (1,1,"cust-num","cust-num","I",3,"Times New Roman",12,NO,NO,57,"","").
RUN setcampo IN h-excel (1,1,"data-ordem","order-date","D",3,"Times New Roman",12,NO,NO,57,"","").
RUN setcampo IN h-excel (1,1,"repres","sales-rep","C",3,"Times New Roman",12,NO,NO,57,"",""). |
- Após informar os campos que serão utilizados pela API deve-se executar a procedure incluivalores para que a mesma efetive os dados que serão lançados na planilha.
Ex.:
Bloco de código | ||
---|---|---|
| ||
RUN incluivalores IN h-excel. |
- Para gerar o gráfico da planilha criada deverá ser executado o método configuragrafico após executar o método incluivalores, e em seguida o método geraintegração.
Ex.:
Bloco de código | ||
---|---|---|
| ||
RUN configuragrafico IN h-excel(1,2,"Grafico cliente","Limite do cliente",2,2,YES,NO,NO,NO). |
OBS.: Para verificar os parâmetros o desenvolvedor deve consultar o tópico métodos internos na procedure configuragrafico.
- Após executar a procedure configuragrafico deverá ser gerado o código javascript para fazer a integração com o Excel. Neste método é verificado se existem erros nas informações passadas pelo desenvolvedor. Este método recebe dois parâmetros:
Como input-output table a tabela rowErrors;
Como input um valor char para verificar se a mesma gerará código javascript a cada execução ou se será gerado o código javascript somente quando se clicar no botão.
Se for passado como parâmetro "botao" a API gerará código javascript a cada execução.
Ex.:
Bloco de código | ||
---|---|---|
| ||
RUN geraintegracao IN h-excel(INPUT-OUTPUT TABLE RowErrors, INPUT "botao"). |
Se for passado como parâmetro “ ” a API irá gerará o código javascript somente quando o botão for acionado.
Ex.:
Bloco de código | ||
---|---|---|
| ||
RUN geraintegracao IN h-excel(INPUT-OUTPUT TABLE RowErrors, INPUT ""). |
- Após rodar a procedure geraintegracao deve-se fazer a chamada da include utapi029.i3 passando para a mesma a variável handle definida pelo desenvolvedor, que é responsável pela verificação de erros durante a geração do código javascript e pela consistência dos dados passados a API, se houver erros a mesma não gerará o código para criar a planilha e apresentará os possíveis erros através da include wi-erapi.i. Este metódo também é responsável por deletar o handle da api.
Ex.:
Bloco de código | ||
---|---|---|
| ||
{ utp/utapi029.i3 h-excel} |
- O Desenvolvedor deve definir no programa uma variável do tipo handle com o nome de h-excel.
Ex.:
Bloco de código | ||
---|---|---|
| ||
Define var h-excel as handle no-undo. |
- Na procedure generateHeaderSon do programa filho deve ser definido um botão utilizando a técnica de botões customizados para que o mesmo execute a função geraexcel criada pela API.
Ex.:
Bloco de código | ||
---|---|---|
| ||
def var auxFunction as char no-undo .
assign auxFunction = "geraexcel()".{web/winclude/wi-sonbut.i "Excel" "btn_excel" auxFunction} |
- Na procedure outputHeader inserir o seguinte código:
Este código fará com que a página seja atualizada passando na url o parâmetro excel=yes para que seja gerado o código javascript.
Ex.:
Bloco de código | ||
---|---|---|
| ||
IF get-value("param") <> "" THEN DO: {&out} '<script language="javascript">' SKIP SKIP 'function geraexcel()~{' SKIP SKIP 'location = location + "&excel=yes"~;' SKIP SKIP '~}' SKIP SKIP '</script>'. END. ELSE DO: {&out} '<script language="javascript">' SKIP SKIP 'function geraexcel()~{' SKIP SKIP 'location = location + "?excel=yes"~;' SKIP SKIP '~}' SKIP SKIP '</script>'. END. |
- Na procedure process-web-request deve-se executar a API de modo persistente utilizando a variável h-excel, testando o parâmetro excel, se o mesmo for =yes deve-se rodar a API e seus métodos internos para se gerar o código javascript.
Outros recursos da API do excel
Foram criados alguns métodos para permitir ao desenvolvedor uma maior interação com a geração da planilha.
Propriedades do Excel
Referência Tipo Alinhamento Horizontal
01 - Centralizado
02 - Distribuído
03 - Justificado
04 - Esquerda
05 - Direita
Referência Tipo Alinhamento Vertical
01 - Abaixo
02 - Centralizado
03 - Distribuído
04 - Justificado
05 - Acima
Referência Tipo Borda
01 - Continua
02 - Tracejada
03 - Ponto-Traço
04 - Ponto-Ponto-Traço
05 - Pontilhada
06 - Dupla
07 - Nenhum
Referência Tipo Plotagem Dados
01 - Por Linhas
02 - Por Colunas
Referência Tipo Sublinhado
01 - Duplo
02 - Contábil Duplo
03 - Nenhum
04 - Simples
05 - Contábil Simples
Paleta de Cores
57 -Automática
58 -Nenhuma
Referência Tipo Gráfico
01 - Colunas Agrupadas
02 - Colunas Agrupadas 3D
03 - Colunas Sobrepostas
04 - Colunas Sobrepostas 3D
05 - Colunas 100% Sobrepostas
06 - Colunas 100% Sobrepostas 3D
07 - Colunas 3D
08 - Barras Agrupadas
09 - Barras Agrupadas 3D
10 - Barras Sobrepostas
11 - Barras Sobrepostas 3D
12 - Barras 100% Sobrepostas
13 - Barras 100% Sobrepostas 3D
14 - Linhas
15 - Linhas com Marcadores
16 - Linhas Sobrepostas
17 - Linhas Sobrepostas com Marcadores
18 - Linhas 100% Sobrepostas
19 - Linhas 100% Sobrepostas com Marcadores
20 - Linhas 3D
21 - Pizza
22 - Pizza Explodida
23 - Pizza 3D
24 - Pizza Explodida 3D
25 - Pizza de Pizza
26 - Barras de Pizza
27 - Dispersão XY
28 - Dispersão com Linhas Ajustadas
29 - Dispersão com Linhas Ajustadas sem Marcadores de Dados
30 - Dispersão com Linhas
31 - Dispersão com Linhas e sem Marcadores de Dados
34 - Área
35 - Área 3D
36 - Áreas Sobrepostas
37 - Áreas Sobrepostas 3D
38 - Áreas 100% Sobrepostas
39 - Áreas 100% Sobrepostas 3D
40 - Rosca
41 - Rosca Explodida
42 - Radar
43 - Radar com Marcadores de Dados
44 - Radar Preenchido
53 - Colunas Cilíndricas Agrupadas
54 - Barras Cilíndricas Agrupadas
55 - Colunas Cilíndricas Sobrepostas
56 - Barras Cilíndricas Sobrepostas
57 - Colunas Cilíndricas 100% Sobrepostas
58 - Barras Cilíndricas 100% Sobrepostas
59 - Colunas Cilíndricas 3D
60 - Colunas Cônicas Agrupadas
61 - Barras Cônicas Agrupadas
62 - Colunas Cônicas Sobrepostas
63 - Barras Cônicas Sobrepostas
64 - Colunas Cônicas 100% Sobrepostas
65 - Barras Cônicas 100% Sobrepostas
66 - Colunas Cônicas 3D
67 - Colunas Piramidais Agrupadas
68 - Barras Piramidais Agrupadas
69 - Colunas Piramidais Sobrepostas
70 - Barras Piramidais Sobrepostas
71 - Colunas Piramidais 100% Sobrepostas
72 - Barras Piramidais 100% Sobrepostas
73 - Colunas Piramidais 3D