none
Leitura de texto e apresentação em HTA RRS feed

  • Pergunta

  • Ba galera bom dia tche.

    Estou criando um painel de monitoração em hta tche que vai ler um arquivo de log que é alimentado por uma outra aplicação tche. O arquivo tem esta estrutura;

    25/10/2014 | 08:41 | OUTUBRO | SABADO | MSILVA | MARCELO CORREIA DA SILVA | ADM. TI | DEPTO-034
    25/10/2014 | 09:41 | OUTUBRO | SABADO | JBRAGA | JULIANA LAURENTE BRAGA | VENDAS | DEPTO-086
    25/10/2014 | 10:41 | OUTUBRO | SABADO | CSILVA | CARLOS AUGUSTO DA SILVA | RH | DEPTO-021
    25/10/2014 | 11:41 | OUTUBRO | SABADO | MCORREIA | MARCOS ANTONIO LUIS CORREIA | DIRETORIA | DEPTO-012

    Neste HTA criei uma sub chamada Par01, que é iniciada quando o hta é executado tche, e nela coloquei um vbs que o nosso amigo do Fórum (Fábio Jr) me passou em uma outra questão tche, porem quando mando o resultado desta leitura para um InnerHTML para apresentado no html como um SPAN ID na tela do usuário tche.

    Porem quando executo o hta ele só mostra a última linha lida do arquivo, validei a pare da sub colocando um msgbox para validar se todas as linhas estão sendo lidas, e realmente estão sendo lida tche.

    Na parte do html tentei criar novas linhas para ver se o problema seria este mas o resultado foi pior tche, assim ele fica só com o valor fixo na parte html.

    Já tentei colocar o InnerHTML dentro do While no lugar do strLinha0, ficando desta forma strvar01.InnerHTML, mas mesmo assim somente a ultima leitura que é apresentada no HTA tche.

    Alguém saberia como posso fazer para apresentar na tela do HTA todas as linhas lidas pela sub vbs.

    Obrigado galera.

    Código hta.

    <META HTTP-EQUIV="MSThemeCompatible" CONTENT="YES">
    <HTML>
    <head>
    
    <HTA:APPLICATION
      VERSION="v2.0"
      BORDER="dialog"
      INNERBORDER="no"
      SYSMENU="yes"
      MAXIMIZEBUTTON="no"
      MINIMIZEBUTTON="no"
      SCROLL="yes"
      SCROLLFLAT="yes"
      CONTEXTMENU="no"
      ShowInTaskbar="yes"/>  
      
    <TITLE>HELPDESK - Painel de Monitoração</TITLE>
    
    <base target="_self" />
    </head>
    
    <script language="VBScript">
    
    Sub Par01()
    '#----------------------------------------------------------------------------------------------------------------------
    '#	SUB-ROTINAS....:	Par()
    '#	FINALIDADE.....:	Realiza leitura do arquivo de log.
    '#----------------------------------------------------------------------------------------------------------------------
    	Set oFSO = CreateObject("Scripting.FileSystemObject")
    		sFile = "C:\temp\arq.log"
    	
    	If oFSO.FileExists(sFile) Then
    		Set oFile = oFSO.OpenTextFile(sFile, 1)
    			Do While Not oFile.AtEndOfStream
    				arrLinha = split(oFile.ReadLine,"|")
    				strLinha0 = arrLinha(0)
    				strLinha1 = arrLinha(1)
    				strLinha2 = arrLinha(2)
    				strLinha3 = arrLinha(3)
    				strLinha4 = arrLinha(4)
    				strLinha5 = arrLinha(5)
    				strLinha6 = arrLinha(6)
    				strLinha7 = arrLinha(7)
    			Loop
    	End If
    
    	strvar01.InnerHTML = strLinha0
    	strvar02.InnerHTML = strLinha1
    	strvar03.InnerHTML = strLinha2
    	strvar04.InnerHTML = strLinha3
    	strvar05.InnerHTML = strLinha4
    	strvar06.InnerHTML = strLinha5
    	strvar07.InnerHTML = strLinha6
    	strvar08.InnerHTML = strLinha7
    
    End Sub
    
    '#----------------------------------------------------------------------------------------------------------------------
    Sub Window_OnLoad
    	Par01()
    End Sub
    
    </script>
    
    <!-- Area de apresentação WEB -->
    
    <body>
    
    <table frame="below">
    <tr>
      <td><center>DATA</center></td>
      <td><center> </center></td>
      <td><center> </center></td>
      <td><center>HORARIO</center></td>
      <td><center> </center></td>
      <td><center> </center></td>
      <td><center>MÊS</center></td>
      <td><center> </center></td>
      <td><center> </center></td>
      <td><center>REFERENCIA</center></td>
      <td><center> </center></td>
      <td><center> </center></td>
      <td><center>ID. SOLICITANTE</center></td>
      <td><center> </center></td>
      <td><center> </center></td>
      <td><center>NOME SOLICITANTE</center></td> 
      <td><center> </center></td>
      <td><center> </center></td>
      <td><center>DEPARTAMENTO</center></td>
      <td><center> </center></td>
      <td><center> </center></td>
      <td><center>ID. DEPARTAMENTO</center></td>
    </tr> 
    
    <tr>
      <td><center><SPAN ID="strvar01"</SPAN></center></td>
      <td><center> </center></td>
      <td><center> </center></td>
      <td><center><SPAN ID="strvar02"</SPAN></center></td>
      <td><center> </center></td>
      <td><center> </center></td>
      <td><center><SPAN ID="strvar03"</SPAN></center></td>
      <td><center> </center></td>
      <td><center> </center></td>
      <td><center><SPAN ID="strvar04"</SPAN></center></td>
      <td><center> </center></td>
      <td><center> </center></td>
      <td><center><SPAN ID="strvar05"</SPAN></center></td>
      <td><center> </center></td>
      <td><center> </center></td>
      <td><center><SPAN ID="strvar06"</SPAN></center></td>
      <td><center> </center></td>
      <td><center> </center></td>
      <td><center><SPAN ID="strvar07"</SPAN></center></td>
      <td><center> </center></td>
      <td><center> </center></td>
      <td><center><SPAN ID="strvar08"</SPAN></center></td>
    </tr> 
    
    </body>
    </html>
    
    <script language="Javascript">
    
    function video(){
        // Define o tamanho do HTA.
        var splashWindowWidth  = 1125;
        var splashWindowHeight = 650;
        // definir a localização do HTA .
        var splashWindowLeft   = 200;
        var splashWindowTop    = 100;
        // checa e resolução.
        if (window.screen)
        {
            // Calculo da centralização de acondo com o Monitor
            splashWindowLeft = (window.screen.availWidth - splashWindowWidth) / 2;
            splashWindowTop  = (window.screen.availHeight - splashWindowHeight) / 2;
        }
        // Centralizar a hta no moniotr.
        window.moveTo(splashWindowLeft, splashWindowTop);
        window.resizeTo(splashWindowWidth, splashWindowHeight);
    }
    
    video()
    </script>

    • Editado Marcelo TI sábado, 25 de outubro de 2014 13:00
    sábado, 25 de outubro de 2014 12:58

Respostas

  • Boa noite Marcelo,

    No caso o Array esta definido o número de colunas, e conforme passa pelo laço ele escreve as linhas preenchendo as colunas.

    se entendi a sua pergunta, você quer saber como fazer sem ter que definir as colunas..

    Bom peguei o mesmo exemplo, ao inves de usar um split para montar o array, usei o replace que utiliza o mesmo caracter de referencia, mas troca por tag de html...

    com um pouco de criatividade com css, dar para montar uma estrutura legal...

    nesse exemplo a primeira linha tem que ser o cabeçario, usando a mesma referencia que nesse caso é o "|"..

    DATA | HORARIO | MÊS |REFERENCIA | ID. SOLICITANTE | NOME DO SOLICITANTE | DEPARTAMENTO | ID. DEPARTAMENTO
    25/10/2014 | 08:41 | OUTUBRO | SABADO | MSILVA | MARCELO CORREIA DA SILVA | ADM. TI | DEPTO-034

    <META HTTP-EQUIV="MSThemeCompatible" CONTENT="YES">
    <HTML>
    <head>
    <HTA:APPLICATION
      VERSION="v2.0"
      BORDER="dialog"
      INNERBORDER="no"
      SYSMENU="yes"
      MAXIMIZEBUTTON="no"
      MINIMIZEBUTTON="no"
      SCROLL="yes"
      SCROLLFLAT="yes"
      CONTEXTMENU="no"
      ShowInTaskbar="yes"/>
    <TITLE>HELPDESK - Painel de Monitoração</TITLE>
    <base target="_self" />
    <script language="Javascript">
    
    function video(){
        // Define o tamanho do HTA.
        var splashWindowWidth  = 1125;
        var splashWindowHeight = 650;
        // definir a localização do HTA .
        var splashWindowLeft   = 200;
        var splashWindowTop    = 100;
        // checa e resolução.
        if (window.screen)
        {
            // Calculo da centralização de acondo com o Monitor
            splashWindowLeft = (window.screen.availWidth - splashWindowWidth) / 2;
            splashWindowTop  = (window.screen.availHeight - splashWindowHeight) / 2;
        }
        // Centralizar a hta no moniotr.
        window.moveTo(splashWindowLeft, splashWindowTop);
        window.resizeTo(splashWindowWidth, splashWindowHeight);
    }
    
    video()
    </script>
    </head>
    <style type="text/css">
    Table {border: 2px solid; border-color: #104E8B;WIDTH="100%";text-align: center;}
    tr {border: 1px solid #104E8B}
    td {border: 1px solid #104E8B;}
    </style>
    <script language="VBScript">
    Sub Par01()
    '#----------------------------------------------------------------------------------------------------------------------
    '#	SUB-ROTINAS....:	Par()
    '#	FINALIDADE.....:	Realiza leitura do arquivo de log.
    '#----------------------------------------------------------------------------------------------------------------------
    	Set oFSO = CreateObject("Scripting.FileSystemObject")
    		sFile = "D:\\arq.log"
    		strHTML = "<table frame=""below"">"
    
    		If oFSO.FileExists(sFile) Then
    		Set oFile = oFSO.OpenTextFile(sFile, 1)
    			Do While Not oFile.AtEndOfStream
    				sTest= replace(oFile.ReadLine,"|","</td><td>")
    				strHTML = strHTML & "<tr><td>"  & sTest & "</tr>"
    			Loop
    		End If
    	strHTML = strHTML & "</tr></table>"
    	strtab.InnerHTML = strHTML
    End Sub
    
    '#----------------------------------------------------------------------------------------------------------------------
    Sub Window_OnLoad
    	Par01()
    End Sub
    </script>
    
    <!-- Area de apresentação WEB -->
    <body>
    	<span ID="strtab"></span>
    </body>
    </html>
    

    espero que der para entender o que quis dizer rs


    att, Aparecido Deveza

    • Marcado como Resposta Marcelo TI terça-feira, 28 de outubro de 2014 10:48
    terça-feira, 28 de outubro de 2014 01:42

Todas as Respostas

  • Ola Marcelo,

    uma maneira, é fazer com que a tabela seja preenchida conforme passa pelo loop, nesse caso fiz com a criação da tabela seja feita pelo vbs.

    veja se te ajuda...

    <META HTTP-EQUIV="MSThemeCompatible" CONTENT="YES">
    <HTML>
    <head>
    <HTA:APPLICATION
      VERSION="v2.0"
      BORDER="dialog"
      INNERBORDER="no"
      SYSMENU="yes"
      MAXIMIZEBUTTON="no"
      MINIMIZEBUTTON="no"
      SCROLL="yes"
      SCROLLFLAT="yes"
      CONTEXTMENU="no"
      ShowInTaskbar="yes"/>
    <TITLE>HELPDESK - Painel de Monitoração</TITLE>
    <base target="_self" />
    <script language="Javascript">
    
    function video(){
        // Define o tamanho do HTA.
        var splashWindowWidth  = 1125;
        var splashWindowHeight = 650;
        // definir a localização do HTA .
        var splashWindowLeft   = 200;
        var splashWindowTop    = 100;
        // checa e resolução.
        if (window.screen)
        {
            // Calculo da centralização de acondo com o Monitor
            splashWindowLeft = (window.screen.availWidth - splashWindowWidth) / 2;
            splashWindowTop  = (window.screen.availHeight - splashWindowHeight) / 2;
        }
        // Centralizar a hta no moniotr.
        window.moveTo(splashWindowLeft, splashWindowTop);
        window.resizeTo(splashWindowWidth, splashWindowHeight);
    }
    
    video()
    </script>
    </head>
    <script language="VBScript">
    Sub Par01()
    '#----------------------------------------------------------------------------------------------------------------------
    '#	SUB-ROTINAS....:	Par()
    '#	FINALIDADE.....:	Realiza leitura do arquivo de log.
    '#----------------------------------------------------------------------------------------------------------------------
    	Set oFSO = CreateObject("Scripting.FileSystemObject")
    		sFile = "D:\\arq.log"
    		strHTML = "<table frame=""below""><tr>"&_
    				"<td><center>DATA</center></td><td><center></center></td><td><center></center></td>"&_
    				"<td><center>HORARIO</center></td><td><center></center></td><td><center></center></td>"&_
    				"<td><center>MÊS</center></td><td><center></center></td><td><center> </center></td>"&_
    				"<td><center>REFERENCIA</center></td><td><center></center></td><td><center></center></td>"&_
    				"<td><center>ID. SOLICITANTE</center></td><td><center></center></td><td><center></center></td>"&_
    				"<td><center>NOME SOLICITANTE</center></td><td><center></center></td><td><center> </center></td>"&_
    				"<td><center>DEPARTAMENTO</center></td><td><center></center></td><td><center> </center></td>"&_
    				"<td><center>ID. DEPARTAMENTO</center></td></tr>"
    
    	If oFSO.FileExists(sFile) Then
    		Set oFile = oFSO.OpenTextFile(sFile, 1)
    			Do While Not oFile.AtEndOfStream
    				arrLinha = split(oFile.ReadLine,"|")
    				strLinha0 = arrLinha(0)
    				strLinha1 = arrLinha(1)
    				strLinha2 = arrLinha(2)
    				strLinha3 = arrLinha(3)
    				strLinha4 = arrLinha(4)
    				strLinha5 = arrLinha(5)
    				strLinha6 = arrLinha(6)
    				strLinha7 = arrLinha(7)
    
    				strHTML = strHTML & "<tr><td><center>"  & strLinha0 & "</center></td><td><center> </center></td><td><center> </center></td>"&_
    										"<td><center>"  & strLinha1 & "</center></td><td><center> </center></td><td><center> </center></td>"&_
    										"<td><center>"  & strLinha2 & "</center></td><td><center> </center></td><td><center> </center></td>"&_
    										"<td><center>"  & strLinha3 & "</center></td><td><center> </center></td><td><center> </center></td>"&_
    										"<td><center>"  & strLinha4 & "</center></td><td><center> </center></td><td><center> </center></td>"&_
    										"<td><center>"  & strLinha5 & "</center></td><td><center> </center></td><td><center> </center></td>"&_
    										"<td><center>"  & strLinha6 & "</center></td><td><center> </center></td><td><center> </center></td>"&_
    										"<td><center>"  & strLinha7 & "</center></td></tr>"
    			Loop
    	End If
    	
    	strtab.InnerHTML = strHTML
    End Sub
    
    '#----------------------------------------------------------------------------------------------------------------------
    Sub Window_OnLoad
    	Par01()
    End Sub
    </script>
    
    <!-- Area de apresentação WEB -->
    <body>
    	<span ID="strtab"></span>
    </body>
    </html>
    
    
    


    att, Aparecido Deveza

    segunda-feira, 27 de outubro de 2014 02:52
  • Aparecido.

    Boa tarde tche.

    Show tree legal tche, mas me da mas uma ajuda, se compreendi bem esta saida, eu teria que ja saber quantas linhas tem no arquivo né, existe uma forma para fazer a criação desta tabela no vbs mesmo sem saber quantas linhas o arquivo que será lido terá tche ?

    obrigado.

    segunda-feira, 27 de outubro de 2014 15:40
  • Boa noite Marcelo,

    No caso o Array esta definido o número de colunas, e conforme passa pelo laço ele escreve as linhas preenchendo as colunas.

    se entendi a sua pergunta, você quer saber como fazer sem ter que definir as colunas..

    Bom peguei o mesmo exemplo, ao inves de usar um split para montar o array, usei o replace que utiliza o mesmo caracter de referencia, mas troca por tag de html...

    com um pouco de criatividade com css, dar para montar uma estrutura legal...

    nesse exemplo a primeira linha tem que ser o cabeçario, usando a mesma referencia que nesse caso é o "|"..

    DATA | HORARIO | MÊS |REFERENCIA | ID. SOLICITANTE | NOME DO SOLICITANTE | DEPARTAMENTO | ID. DEPARTAMENTO
    25/10/2014 | 08:41 | OUTUBRO | SABADO | MSILVA | MARCELO CORREIA DA SILVA | ADM. TI | DEPTO-034

    <META HTTP-EQUIV="MSThemeCompatible" CONTENT="YES">
    <HTML>
    <head>
    <HTA:APPLICATION
      VERSION="v2.0"
      BORDER="dialog"
      INNERBORDER="no"
      SYSMENU="yes"
      MAXIMIZEBUTTON="no"
      MINIMIZEBUTTON="no"
      SCROLL="yes"
      SCROLLFLAT="yes"
      CONTEXTMENU="no"
      ShowInTaskbar="yes"/>
    <TITLE>HELPDESK - Painel de Monitoração</TITLE>
    <base target="_self" />
    <script language="Javascript">
    
    function video(){
        // Define o tamanho do HTA.
        var splashWindowWidth  = 1125;
        var splashWindowHeight = 650;
        // definir a localização do HTA .
        var splashWindowLeft   = 200;
        var splashWindowTop    = 100;
        // checa e resolução.
        if (window.screen)
        {
            // Calculo da centralização de acondo com o Monitor
            splashWindowLeft = (window.screen.availWidth - splashWindowWidth) / 2;
            splashWindowTop  = (window.screen.availHeight - splashWindowHeight) / 2;
        }
        // Centralizar a hta no moniotr.
        window.moveTo(splashWindowLeft, splashWindowTop);
        window.resizeTo(splashWindowWidth, splashWindowHeight);
    }
    
    video()
    </script>
    </head>
    <style type="text/css">
    Table {border: 2px solid; border-color: #104E8B;WIDTH="100%";text-align: center;}
    tr {border: 1px solid #104E8B}
    td {border: 1px solid #104E8B;}
    </style>
    <script language="VBScript">
    Sub Par01()
    '#----------------------------------------------------------------------------------------------------------------------
    '#	SUB-ROTINAS....:	Par()
    '#	FINALIDADE.....:	Realiza leitura do arquivo de log.
    '#----------------------------------------------------------------------------------------------------------------------
    	Set oFSO = CreateObject("Scripting.FileSystemObject")
    		sFile = "D:\\arq.log"
    		strHTML = "<table frame=""below"">"
    
    		If oFSO.FileExists(sFile) Then
    		Set oFile = oFSO.OpenTextFile(sFile, 1)
    			Do While Not oFile.AtEndOfStream
    				sTest= replace(oFile.ReadLine,"|","</td><td>")
    				strHTML = strHTML & "<tr><td>"  & sTest & "</tr>"
    			Loop
    		End If
    	strHTML = strHTML & "</tr></table>"
    	strtab.InnerHTML = strHTML
    End Sub
    
    '#----------------------------------------------------------------------------------------------------------------------
    Sub Window_OnLoad
    	Par01()
    End Sub
    </script>
    
    <!-- Area de apresentação WEB -->
    <body>
    	<span ID="strtab"></span>
    </body>
    </html>
    

    espero que der para entender o que quis dizer rs


    att, Aparecido Deveza

    • Marcado como Resposta Marcelo TI terça-feira, 28 de outubro de 2014 10:48
    terça-feira, 28 de outubro de 2014 01:42
  • Ba tree legal tche, muito obrigado Aparecido.
    terça-feira, 28 de outubro de 2014 13:46