Nota de Aplicação - schneider-electric.com · Schneider Electric Suporte Técnico - Heleno Amorim...
Transcript of Nota de Aplicação - schneider-electric.com · Schneider Electric Suporte Técnico - Heleno Amorim...
Nota de Aplicação
Suporte Técnico Brasil
Versão:
Relatório em HTML no Vijeo Citect
1.0
Hardware:
Software: Versão:
Especificações técnicas
Suporte Técnico Brasil
Vijeo Citect 7.40 SP 2
SQL Server 2012
Schneider Electric 3 Suporte Técnico - Heleno Amorim Linhares Júnior – 23/12/2015
1. Arquitetura utilizada
Pin
Schneider Electric 4 Suporte Técnico - Heleno Amorim Linhares Júnior – 23/12/2015
2. String de conexão com o banco A String de conexão pode ser obtida através de um arquivo UDL da seguinte forma:
•Crie um novo arquivo com o bloco de notas e altere a extensão do arquivo para .udl;
•Clique com o botão direito do mouse e escolha “Propriedades”;
•Vá em “Provedor” e selecione um (Figura 1);
•Vá em “Conexão” e preencha os campos de acordo com os dados do seu banco;
•Clique em “Testar Conexão” e a mensagem “Teste de conexão bem sucedido” deve
aparecer;
•Clique em “Ok” (Figura 2);
1 2
Schneider Electric 5 Suporte Técnico - Heleno Amorim Linhares Júnior – 23/12/2015
2. String de conexão com o banco •Altere a extensão do arquivo para .txt e abra com o bloco de notas;
•A String de conexão está na terceira linha da imagem abaixo;
Schneider Electric 6 Suporte Técnico - Heleno Amorim Linhares Júnior – 23/12/2015
3. Criação do DSN •Vá até o diretório C:\Windows\SysWOW64 e execute o odbccad32.exe;
•Em “User DSN” clique em ADD e siga os passos conforme as figuras abaixo;
1
2
3
4
Schneider Electric 7 Suporte Técnico - Heleno Amorim Linhares Júnior – 23/12/2015
4. Cicode •Abra o Vijeo Citect Explorer e crie um novo projeto em File>> New Project;
•No campo “Cicode Files”, clique em “Create a new Cicode file” e se baseie no
Cicode abaixo;
//------------------------------------------------------------------------------------------------
//Variável GLOBAL para conexão com o banco
//------------------------------------------------------------------------------------------------
GLOBAL INT hSQL1;
//------------------------------------------------------------------------------------------------
//Função: ConectaBD
//Descrição: Realiza a conexão com o Banco de Dados
//
//OBS: DSN = nome do Data Source ODBC
//------------------------------------------------------------------------------------------------
FUNCTION ConectarBD1()
hSQL1 = SQLConnect("DSN=SQLTest"); !String de conexão com o banco
IF hSQL1 <> -1 THEN
TraceMsg("Conexao com banco de dados efetuada com sucesso");
ELSE
TraceMsg("Erro! Não foi possível conectar com o banco de dados");
END
END
Schneider Electric 8 Suporte Técnico - Heleno Amorim Linhares Júnior – 23/12/2015
4. Cicode- Continuação //------------------------------------------------------------------------------------------------
//Função: Export_FileHTML_Table1_
//Descrição: Faz a consulta no banco e mostra os valores retornados em um arquivo HTML
//
//OBS: sARQUIVO = Nome do arquivo a ser gerado
// Inicial = Data inicial do select
// Final = Data final do Select
//------------------------------------------------------------------------------------------------
FUNCTION Export_FileHTML_TABLE1_(STRING sARQUIVO, STRING INICIAL, STRING FINAL)
INT hFile,hSQL1,resultado;
STRING sLine, sFile = "C:\" + sARQUIVO+ ".HTML";
STRING consulta, caminho, DATA_INICIAL, DATA_FINAL;
STRING var_relat1, var_relat2, var_relat3, var_relat4, var_relat5, var_relat6,
var_relat7, var_relat8;
OBJECT Obj;
//Conexão com o Banco de Dados
hSQL1 = SQLConnect("DSN=SQLTest");
hFile = FileOpen(sFile,"w");
sline = "<html>";
//Comandos em HTML para formatação da página
//Utilize os conhecimentos em html para customizar sua página
FileWriteLn(hFile,sLine);
sline = "<head>";
Schneider Electric 9 Suporte Técnico - Heleno Amorim Linhares Júnior – 23/12/2015
4. Cicode- Continuação FileWriteLn(hFile,sLine);
sline = "<title>Relatório</title>“;
FileWriteLn(hFile,sLine);
sline = "<style type="+"'text/css'"+">“;
FileWriteLn(hFile,sLine);
sline = "</style>“;
FileWriteLn(hFile,sLine);
sline = "</head>“;
FileWriteLn(hFile,sLine);
sline = "<body bgcolor='#F8F8FF'>“;
FileWriteLn(hFile,sLine);
sline = "<table width="+"'100"+"%'";
FileWriteLn(hFile,sLine);
sline="border="+"'0'";
FileWriteLn(hFile,sLine);
sline="cellspacing="+"'0'";
FileWriteLn(hFile,sLine);
sline="cellpadding="+"'0'"+">“;
FileWriteLn(hFile,sLine);
sline = "<tr>";
FileWriteLn(hFile,sLine);
sline =" <td width="+"'12"+"%'"+"></img></td>";
FileWriteLn(hFile,sLine);
sline=" <td width="+"'75"+"%'"+"><div align="+"'center'"+" class="+"'style1'>";
FileWriteLn(hFile,sLine);
sline="<h4>Relatório no Vijeo Citect</h4>";
FileWriteLn(hFile,sLine);
sline="<h6> EXEMPLO DE RELATÓRIO EM HTML </h6>";
FileWriteLn(hFile,sLine);
Schneider Electric 10 Suporte Técnico - Heleno Amorim Linhares Júnior – 23/12/2015
4. Cicode- Continuação sline="</div></td>";
FileWriteLn(hFile,sLine);
sline=" </tr>";
FileWriteLn(hFile,sLine);
sline="</table>";
FileWriteLn(hFile,sLine);
sline="<table width="+"'100"+"%'";
FileWriteLn(hFile,sLine);
sline=" border='1'";
FileWriteLn(hFile,sLine);
sline="cellspacing='0'";
FileWriteLn(hFile,sLine);
sline ="cellpadding='0'";
FileWriteLn(hFile,sLine);
sline=">";
FileWriteLn(hFile,sLine);
sline="<tr>";
FileWriteLn(hFile,sLine);
//Cabeçalho da tabela
sline="<td width="+"'10"+"%'"+" class="+"'style1'"+">Produto</td>";
FileWriteLn(hFile,sLine);
sline = "<td width="+"'12"+"%'"+" class="+"'style1'"+">Ingrediente 1 em Kg</td>";
FileWriteLn(hFile,sLine);
sline="<td width="+"'12"+"%'" +"class="+"'style1'"+">Ingrediente 2 em Ton</td>";
FileWriteLn(hFile,sLine);
sline ="<td width="+"'12"+"%'" +"class="+"'style1'"+">Ingrediente 3 em m³</td>";
FileWriteLn(hFile,sLine);
sline ="<td width="+"'12"+"%'"+" class="+"'style1'"+">Temperatura Ambiente em ºC</td>";
FileWriteLn(hFile,sLine);
sline="<td width="+"'12"+"%'"+" class="+"'style1'"+">Temperatura Interna em ºC</td>";
FileWriteLn(hFile,sLine);
Schneider Electric 11 Suporte Técnico - Heleno Amorim Linhares Júnior – 23/12/2015
4. Projeto Vijeo Citect - Continuação
sline ="<td width="+"'12"+"%'"+" class="+"'style1'"+">Pressão Atmosférica em atm</td>";
FileWriteLn(hFile,sLine);
sline="<td width="+"'12"+"%'"+" class="+"'style1'"+">Data</td>";
FileWriteLn(hFile,sLine);
sline= "</tr>";
FileWriteLn(hFile,sLine);
sline= "<tr>";
FileWriteLn(hFile,sLine);
sline="<td class="+"'style1'"+"> </td>";
FileWriteLn(hFile,sLine);
sline="<td class="+"'style1'"+"> </td>";
FileWriteLn(hFile,sLine);
sline="<td class="+"'style1'"+"> </td>";
FileWriteLn(hFile,sLine);
sline ="<td class="+"'style1'"+"> </td>";
FileWriteLn(hFile,sLine);
sline="<td class="+"'style1'"+"> </td>";
FileWriteLn(hFile,sLine);
sline="<td class="+"'style1'"+"> </td>";
FileWriteLn(hFile,sLine);
sline="<td class="+"'style1'"+"> </td>";
FileWriteLn(hFile,sLine);
sline ="<td class="+"'style1'"+"> </td>";
FileWriteLn(hFile,sLine);
sline= "</tr>";
FileWriteLn(hFile,sLine);
Schneider Electric 12 Suporte Técnico - Heleno Amorim Linhares Júnior – 23/12/2015
4. Projeto Vijeo Citect - Continuação //Verifica conexao com a fonte de dados
IF hSQL1 <> -1 THEN
consulta = "SELECT * FROM Example"
resultado = SQLExec(hSQL1, consulta);
//Executa o comando SQL
TraceMsg("Função BuscarDados - Consulta SQL:" + SQLErrMsg());
IF resultado = 0 THEN
TraceMsg("Função BuscarDados - Stored Procedure executada com sucesso");
resultado = SQLNext(hSQL1);
//Posiciona o ponteiro no primeiro registro da tabela
WHILE resultado = 0 DO
var_relat1 = SQLGetField(hSQL1, "Tag_name");
var_relat2 = SQLGetField(hSQL1, "Value1");
var_relat3 = SQLGetField(hSQL1, "Value2");
var_relat4 = SQLGetField(hSQL1, "Value3");
var_relat5 = SQLGetField(hSQL1, "Value4");
var_relat6 = SQLGetField(hSQL1, "Value5");
var_relat7 = SQLGetField(hSQL1, "Value6");
var_relat8 = SQLGetField(hSQL1, "TimeTag");
sLine = "<tr><td valign="+"top"+"><p>"+var_relat1+"</p></td> <td valign="+"top"+" ><p>
"+var_relat2+"</p></td><td valign="+"top"+"><p>"+var_relat3+"</p></td><td valign="+"top"+"><p>
"+var_relat4+"</p></td>";
FileWriteLn(hFile,sLine);
sLine = "<td valign="+"top"+"><p>"+var_relat5+"</p></td><td valign="+"top"+"><p>
"+var_relat6+"</p></td><td valign="+"top"+"><p>"+var_relat7+"</p></td><td valign="+"top"+"><p>
"+var_relat8+"</p></td></tr>";
FileWriteLn(hFile,sLine);
Schneider Electric 13 Suporte Técnico - Heleno Amorim Linhares Júnior – 23/12/2015
4. Cicode- Continuação resultado = SQLNext(hSQL1);
END
SQLEnd(hSQL1);
sline= "</tbody></table>"
FileWriteLn(hFile,sLine);
END
END
FileClose(hFile);
SQLDisconnect(hSQL1);
END
Schneider Electric 14 Suporte Técnico - Heleno Amorim Linhares Júnior – 23/12/2015
5. Projeto Vijeo Citect •Salve o arquivo .ci na pasta do seu projeto;
Utilize um botão para realizar chamar a função que gera o relatório em .hmtl.
Schneider Electric 15 Suporte Técnico - Heleno Amorim Linhares Júnior – 23/12/2015
6. Página em HTML Vá até o diretório em que foi salvo o arquivo e execute-o. No exemplo o diretório selecionado é "C:\rela.HTML";
Schneider Electric 16 Suporte Técnico - Heleno Amorim Linhares Júnior – 23/12/2015
Avisos Importantes
• Equipamentos elétricos devem ser instalados, operados e manuseados apenas por
pessoas qualificadas.
• Uma pessoa qualificada é aquela que tem habilidades e conhecimentos relacionados
com a construção, instalação e operação de equipamentos elétricos e recebeu
treinamento adequado para reconhecer e evitar os perigos envolvidos.
• Nenhuma responsabilidade é assumida pela Schneider Electric por qualquer
conseqüências decorrentes da utilização deste material.
•Todas as informações contidas neste documento estão corretas de acordo com o
conhecimento do autor. Esta abordagem foi projetada e testada em condições de
laboratório. O ambiente pode influenciar o comportamento de dispositivos eletrônicos e,
portanto, o usuário assume toda a responsabilidade para aplicar as soluções
apresentadas.
• Este documento está disponível no site http://www.schneider-electric.com