Beruflich Dokumente
Kultur Dokumente
Neste projeto final, você vai aprender a desenvolver um site de relatórios ordem / inventário para
Ferramentas Intuit mecânicos. Este projeto envolverá movendo relatórios resumidos consolidados
para o servidor Web corporativo. Um arquivo de três meses dos relatórios HTML será mantida no
servidor Web corporativo. Além disso, cópias das versões do Microsoft Word destes relatórios
estará disponível para download.
Este projecto irá abranger o desenvolvimento de todo o Web site. páginas HTML do site irá
incluir VBScripts embutidos que controlam a exibição e apresentação de dados, bem como o
armazenamento e recuperação de configurações personalizadas. Para completar este projeto,
você também vai precisar para criar uma série de VBScripts executada-WSH. Estes scripts:
◆ Criar uma página HTML composta de links para cada HTML disponível
página de relatório
◆ gerenciar remotamente um arquivo de relatório de três meses no servidor Web Os VBScripts que
você vai incorporar dentro de páginas HTML do site da Web vai precisar para realizar uma série de tarefas,
incluindo:
◆ Usando a detecção de navegador para validar que os visitantes estão usando um SUP-
Intuit mecânicos. Tem sido um número de meses desde Molly completou seu trabalho no desenvolvimento do
projeto de consolidação relatório de síntese. As coisas têm corrido muito bem, e Molly passou a trabalhar no
desenvolvimento de outros projetos. Enquanto isso, vários membros da equipe de gestão de operações ter sido
perguntando equipe de TI da empresa para melhorar mais uma vez o processo de relatórios ordem / inventário,
fornecendo relatórios baseados em browser. Desta forma, qualquer pessoa dentro da empresa quem tem
acesso à Intranet corporativa será capaz de acessar os relatórios de síntese consolidadas diretamente de um
desktop.
Dois novos programadores foram recentemente contratados a Intuit. Eles são Alexander Banks e
William Carter. Ambos têm um fundo de programação Visual Basic e alguma experiência com HTML.
gerenciamento de TI pensa que atribuí-las a trabalhar neste projeto vai ajudar os dois para entender
melhor o sistema de pedidos / inventário e ao mesmo tempo fazê-los alguma exposição e interação
com a equipe de operações.
Como você trabalha o seu caminho através deste projeto, você vai aprender a criar páginas HTML interativas,
incorporando VBScripts que aproveitam o poder de modelos de objeto do Internet Explorer. Você também vai
aprender como usar VBScript eo WSH para criar arquivos HTML e fornecer conteúdo dinâmico. Além disso,
você vai aprender como automatizar uma série de outras tarefas, incluindo:
em computadores cliente
◆ Como melhorar páginas da Web usando VBScript para criar efeitos gráficos
muitas pessoas dentro da empresa, mas também irá descarregar a responsabilidade agora atribuído a
equipe de operações de coleta e distribuição de ordem / inventário relatórios resumidos consolidada.
que ela fez em seus dois projetos de reportagem ordem / inventário anteriores. Uma vez que eles se sentiram como se
tivessem um bom entendimento de como as coisas funcionavam, eles foram para falar com o mestre Web da empresa,
Michael Barns, para discutir a melhor forma de ir sobre o desenvolvimento do Web site do projeto. Depois de descrever
sua missão e falar sobre isso com Michael, foi acordado que um novo diretório será criada no servidor 2000 Web empresa
do Windows chamado d: \ Intuit \ OrderInventory \ Reporting e que Alexander e William seria concedido controle total sobre a
pasta e seu conteúdo. Além disso, Michael instruiu-os para nomear sua página HTML principal default.html para que ele
pudesse configurá-los com seu próprio URL, que ele disse a eles seria http://Intuit.com/OrdInv/ Default.html. Usando esse
modelo, Alexander e William pode então criar qualquer arquivo ea estrutura da pasta que desejar dentro do d: \ Intuit \
OrderInventory \ Reporting diretório a fim de apoiar o armazenamento do HTML e arquivos de relatórios que irão compor o
Relatório site ordem / inventário. Uma vez que eles entenderam a infra-estrutura de comunicação existente, bem como a
forma como eles iriam organizar os arquivos HTML e arquivos de relatório no servidor Web da empresa, de Alexander e
William próximo passo é sentar-se com a gestão de operações para recolher requisitos detalhados do projeto. Durante
esta reunião, eles aprendem que o departamento de operações está satisfeito com o atual formato do relatório de síntese
consolidada e nenhum conteúdo adicional é necessária. Além disso, as operações quer continuar a receber notificações
de rede quando os relatórios de síntese consolidadas são criados na estação de trabalho do Windows 2000 Professional.
Portanto, nenhuma alteração é necessária para os scripts que foram escritos por Molly. O que a equipe de operações quer
é ser capaz de acessar o relatório de síntese consolidada diariamente via Internet Explorer. Depois de falar por um tempo,
a gestão de operações acrescentou outra exigência. Eles querem ser capazes de acessar uma história de valor de até 90
dias de arquivos de relatório resumo consolidadas. Operações também quer saber se os dados do relatório poderia ser
apresentado em um formato de planilha de tabela em vez de como um arquivo de texto. Eles pensaram que tal formato
faria o relatório mais fácil de rever e analisar. Operações também quer saber se os dados do relatório poderia ser
apresentado em um formato de planilha de tabela em vez de como um arquivo de texto. Eles pensaram que tal formato
faria o relatório mais fácil de rever e analisar. Operações também quer saber se os dados do relatório poderia ser
apresentado em um formato de planilha de tabela em vez de como um arquivo de texto. Eles pensaram que tal formato
Finalmente, Alexander e William perguntado se seria possível para armazenar as versões do Microsoft Word
dos relatórios de arquivamento consolidadas e torná-los disponíveis para download. Desta forma, as pessoas
que ainda precisam de uma cópia impressa do relatório original poderia baixá-lo em vez de ter que solicitar um
de operações.
FIGURA 26.1 VBScript eo WSH será usado nos bastidores para criar páginas HTML que mostram os relatórios de
síntese consolidadas
A seguir coleção de scripts será criado e executado na estação de trabalho do Windows 2000
Professional:
Professional.
◆ Implantação relatório. Este script irá criar uma conexão de rede para o
d: \ Intuit \ OrderInventory \ Reporting pasta no servidor Web da empresa e copiar o
código HTML e arquivos de relatório do Word.
◆ Conversão HTML. Este script irá criar uma página HTML que dis-
desempenha relatório de síntese consolidada do dia atual em formato de tabela.
◆ Arquivo Manutenção Fazer a ligação. Este script irá criar uma página HTML que
lista links para cada relatório de síntese consolidada armazenados no arquivo relatório de síntese
Além da lista anterior de roteiros, VBScripts será incorporado dentro das páginas HTML que
compõem o Relatório site ordem / inventário. Estes
622 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
VBScripts embutidos vai controlar a navegação de quadros e validação de formulário e irá fornecer efeitos visuais
aprimorados, como sobreposições de ligação e a exibição de mensagens na barra de status do Internet Explorer.
VBScript também será usado para criar e gerenciar os cookies que serão usados para armazenar as
configurações personalizadas para usuários que visitam o site.
Alexander e William plano sobre o uso de frames de HTML para apresentar arquivos relatório de síntese
consolidadas e usar VBScript para controlar o carregamento dos relatórios de síntese consolidadas HTML ea
página de gestão de arquivo. Eles planejam a criação de uma página a partir do qual os visitantes podem
navegar até três páginas de nível inferior, como mostrado na Figura 26.2. A primeira página irá exibir relatório do
dia atual, a segunda página irá exibir uma coleção de links para relatórios arquivados, ea terceira página irá
permitir que os visitantes para especificar as configurações personalizadas.
FIGURA 26.2 VBScripts incorporados nas páginas HTML será utilizado para controlar a navegação e apresentação de
informações
Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB Capítulo 26 623
NOTA
A análise detalhada das páginas HTML que serão criadas em apoio a este projeto ea localização e
papéis dos VBScripts incorporados precisa é fornecida no Capítulo 27, “Projetando o Web Site.”
Alexander e William decidir que a melhor maneira de concluir este projeto é dividir o trabalho para cima,
de modo que cada pessoa será responsável por completar tarefas específicas. Tabela 26.1 descreve as
atribuições de tarefas que eles divididos entre si.
Web site design William Determine o design geral do site, incluindo as ligações
entre as páginas HTML, o conteúdo de cada página
HTML, e os elementos de design a serem utilizados em
cada página HTML.
Desenvolver uma home page William Criar uma home page usando quadros HTML. VBScripts
subordinados.
( continuou)
624 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
pasta de arquivo.
NOTA
Ao modificar o script programador existente, Alexander irá remover um número de obstáculos de segurança.
Molly já criou a execução deste script para ser executado usando o
ScriptSchlr conta, que fornece-lo com privilégios de nível administrativo. Alexander já solicitou que Michael
Barns, mestre Web da empresa, fornecer esta conta com acesso total ao d: \ Intuit \ OrderInventory \
Reporting pasta no servidor Web da empresa.
Ford
Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB Capítulo 26 625
'Criado: 04/25/03
'Descrição: Este script é executado scripts associados com o fim / inventário' sistema de comunicação
'************************************************* ************************
'Seção de inicialização
Option Explicit
intRcChk = 0
“SalesAnalyzer.vbs”) RUNSCRIPT (
“ReturnsAnalyzer.vbs”) RUNSCRIPT (
“ProductionAnalyzer.vbs”)
'Três novos conjuntos de declarações adicionado para suportar web baseada relatando intRcChk =
Então
0 Então
End If End
If
execução ()
'Secção Procedimento
End Function
Sub WriteToEventLog ()
End Sub
astrNotifyArray Dim
strNtkNotifiyList = _
The IT Dept.’Next
End Sub
Sub TerminateScript ()
WScript.Quit ()
End Sub
Alexander planeja adicionar lógica para cada uma das VBScripts executada-WSH que ele é responsável pelo
desenvolvimento, a fim de retornar um código de erro indicando se ou não executado com êxito. Ao fazer
isso, ele fornece o script de agendamento com a capacidade de determinar se ocorreu um problema.
NOTA
VBScript pode retornar um código de retorno para uma instrução de chamada usando o WScript objeto de
Sair() método, conforme explicado no Capítulo 30, “Conversão de relatórios para HMTL documentos.”
Alexander escolhe o momento não modificar a maneira pela qual as chamadas de execução existentes do
script programador são feitas. Em vez disso, ele vai explicar a Molly que ele tem feito e sugerir que ela
equipar seus VBScripts para apoiar a mesma funcionalidade. No entanto, ele coloca o código de script
retorno verificação no local para os scripts que ele está em desenvolvimento. Ele faz isso através da definição
de uma variável chamada intRcChk e usá-lo para armazenar o valor retornado pelo RunScript função. Se um
valor maior que zero é retornado, em seguida, ocorreu um erro no script chamado, eo NotifyOperationsStaff () sub-rotina
é chamada e passou o nome do script que falhou. Para acomodar esta nova funcionalidade, Alexander tem
para modificar o RunScript () procedimento mudando-à partir de uma sub-rotina para uma função. Ele também
modifica o procedimento para retornar o código de retorno fornecida por cada script que ele execute.
o script de agendamento. Finalmente, acrescenta o NotifyOperationsStaff () sub-rotina para o script, que ele copia
e cola para fora do VBScript que cria o relatório de síntese consolidada (do Capítulo 24, “Processamento e
Consolidando dados Report”). Usando este sub-rotina, o script de agendamento pode notificar a equipe de
operações de todos os erros que ocorrem durante o processamento de seus scripts. Isso dará a equipe de
programação de TI uma chance de consertar as coisas antes de todo mundo vem para trabalhar procurando a
cópia online dos relatórios resumidos consolidadas. Em vez de desenvolver um script para criar uma chave do
Registro e valores para este novo roteiro, Alexander decide que desde que ele só precisa criar sete novos
valores de registo, que seria mais rápido para criá-las manualmente usando o regedt32 utilidade. Alexander cria
uma nova subchave de registo sob HKLM \ Intuit \ VBScript chamado WebRpting para armazenar cada valor para
NOTA
Para mais informações sobre o registro do Windows e como ele funciona, consulte o Capítulo
22, “Desenvolvimento de uma configuração Script.”
◆ Criando uma página de Links (painel esquerdo). Para criar uma página Web que define
◆ formulários HTML
◆ a capacidade do VBScript para interagir com os visitantes usando caixas de diálogo pop-up
Alexander quer desenvolver o VBScript que cria uma versão HTML do relatório de síntese
consolidada com base no conteúdo da versão texto do relatório. Para isso, ele terá de usar
um número de FileSystemObject métodos objecto, incluindo:
◆ O arquivo existe(). Usado para evitar erros por primeira validação de que um arquivo existe
◆ WriteLine (). Oferece a capacidade de escrever uma linha de texto para o especificado
Arquivo
Além desses métodos, Alexander terá uma sólida compreensão da sintaxe HTML e terá de usar
esse conhecimento para inserir tags de formatação HTML dentro do arquivo HTML gerado por este
script. Alexander também precisará usar o WshShell objeto de RegRead () método para recuperar as
definições de configuração do script do registro do Windows.
Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB Capítulo 26 631
Além desses novos objetos, propriedades e métodos, Alexander terá que usar o seguinte FileSystemObject
métodos, a fim de gerar a página Archive link Gerenciamento de HTML:
◆ OpenTextFile ()
◆ Fechar()
◆ WriteLine ()
◆ WriteBlankLines ()
◆ MapNetworkDrive ()
◆ RemoveNetworkDrive ()
632 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
Especificamente, Alexander precisará copiar as páginas HTML e arquivos do Word criados na estação de
trabalho do Windows 2000 Professional para as pastas listados abaixo no servidor Web.
a execução do processo de gestão de arquivos, Alexander terá que usar o seguinte FileSystemObject métodos
de objeto:
◆ O arquivo existe()
◆ DeleteFile ()
resumo
Este capítulo apresentou o estudo de caso final neste livro. Uma visão geral do projeto atribuído a
Alexander e William foi fornecido. Isto incluiu o desenvolvimento de uma lista de requisitos do projeto. Além
disso, um projeto de alto nível foi apresentado que delineou o plano global para fornecer uma solução de
relatórios baseada na Web. Isto incluiu a identificação de cada script que está a ser desenvolvido, bem
como as principais construções de linguagem VBScript que serão utilizados para criar cada um desses
scripts. Nos seis capítulos que se seguem, você terá a oportunidade de ver como Alexander e William
enfrentar cada uma das tarefas envolvidas na realização deste projeto.
Capítulo 27
Projetando o Web
Site
Eu n Neste capítulo, William irá fornecer um design de baixo nível para Reporting site Order /
inventário com base no design de alto nível descrito no capítulo anterior. Isto irá incluir a
identificação e colocação de todos os elementos da interface e conteúdo de dados. Ele também irá
incluir a identificação e colocação de links que irão apoiar a navegação entre as páginas que
compõem o site. Além disso, William vai determinar qual funcionalidade ele quer adicionar a cada
página no site usando VBScript e descrever o que cada VBScript irá proporcionar.
◆ A página Relatórios Arquivo. Exibe uma lista de links para páginas HTML tantes
ressentindo relatórios resumidos consolidadas anteriores e fornece acesso a download
cópias de versões do Microsoft Word destes relatórios
VBScripts WSH todas as manhãs com base nas informações encontradas nos relatórios resumidos
consolidadas.
NOTA
Este capítulo e aquele que segue assume um conhecimento básico de HTML por parte do leitor. Portanto,
somente uma breve explicação do HTML envolvido na criação de páginas HTML é apresentado neste livro. Se
você sentir que você precisar de informações adicionais sobre HTML e como trabalhar com ele, ler Saiba HTML
em um fim de semana, 3rd Edition por Steve Callihan (Premier Press, 2000).
FIGURA 27.1 Os dados apresentados no Relatório site Order / Inventory vai usar quadros
636 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
O quadro esquerdo será chamado left_frame e será usado para exibir links HTML para cada uma das
três páginas HTML que podem ser acessados diretamente a partir da página principal. O quadro direito
será chamado right_frame e será usado para exibir o conteúdo fornecido pelo Web site, incluindo links
para o relatórios, arquivos, eo Registro e página definições de configuração.
FIGURA 27.2 A página de Links fornece links de navegação para as outras páginas HTML
Cada uma dessas ligações será justificado à esquerda. A fim de melhorar a aparência desses links,
William planeja incorporar um número de VBScripts na página de links, que vai fornecer a funcionalidade
descrito abaixo.
◆ Fazer a ligação capotamentos. Muda a cor de um destino como o rato se move sobre e
off da ligação
Barra
William irá adicionar efeitos de sobreposição que irá transformar a cor de cada link para vermelho quando o
mouse é movido sobre ele e azul quando o mouse é movido para fora do link. Ao implementar efeitos de
sobreposição dessa maneira, William vai tornar mais fácil para os visitantes a identificar quais ligação
atualmente tem o foco (que link será aberta se o botão esquerdo do mouse é clicado). Além disso, William irá
exibir uma mensagem na barra de status do navegador descrever a página HTML para que cada link aponta
sempre que o visitante move o ponteiro sobre ele, proporcionando assim o visitante com informações
adicionais sem encher a área de exibição principal.
Além do texto mostrado nesta página HTML aparentemente simples, William planeja adicionar uma grande
quantidade de behind-the-scenes funcionalidade na forma de VBScripts embutidos, conforme descrito na lista
a seguir.
FIGURA 27,3 A página Bem-vindo servirá como a página padrão e irá receber os visitantes pelo nome e fornecer
informações gerais sobre o site
NOTA
UMA biscoito representa uma pequena quantidade de dados que podem ser armazenados nos computadores dos visitantes quando
eles visitam seu Web site. O uso de cookies, você pode armazenar a informação recolhida a partir do usuário e reutilizar essas
informações na próxima vez que o visitante retorna ao seu Web site, a fim de proporcionar uma experiência personalizada.
Cada vez que uma pessoa visita o site Relatório de Encomenda / Inventory, a página Bem-vindo irá verificar
se o seu computador tem um cookie do Web site. Se um cookie for encontrado, ele é recuperado e os dados
que ele contém serão utilizados para:
e página de definições de configuração. Uma vez que o visitante tenha fornecido as informações necessárias
nessa página, um cookie é criado e gravado no computador do visitante. Cada visitante terá a opção de
voltar para o Registro e página de definições de configuração, a fim de fazer modificações a qualquer
momento que desejar. Os visitantes serão obrigados a utilizar o Internet Explorer 5 ou superior para usar o
Relatório de site Order / Inventário. A página Bem-vindo irá verificar automaticamente o navegador que está
sendo utilizado por cada visitante para garantir que ele atenda a esse requisito. Se o navegador não cumprir
este requisito, o navegador do visitante será redirecionado para uma página HTML que lhe aconselha a
exigência de usar o navegador apropriado.
FIGURA 27.4 A home page para o sistema Order Relatórios / Inventário servirá como página padrão do site da Web
640 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
Tudo o que William precisa fazer para integrar esta página HTML no site da Ordem / Inventory é
certificar-se de que ele fornece um link estático para ele na página de links.
FIGURA 27,5 A versão HTML do relatório de síntese consolidada irá fornecer uma Spreadsheet- como vista
O Arquivo de Relatórios
Como a página do Relatório Resumo Diário Consolidado, a página Relatórios Arquivo (mostrado na Figura
27.6) é criado por um VBScript gerido pela WSH na estação de trabalho do Windows 2000 Professional. Ele
fornece acesso a um arquivo de três meses
ELABORAÇÃO DO SITE WEB Capítulo 27 641
de versões em HTML dos relatórios resumidos consolidadas. Estes relatórios serão organizados
por mês e será acessível clicando em seus links.
FIGURA 27.6 A página Relatórios Arquivo fornece links para a pena de relatórios resumidos solidated con- três meses
anteriores
Além da versão HTML nos relatórios de síntese consolidadas, a página Relatórios Arquivo fornece um
link para versões do Word dos relatórios. Tudo o que um visitante terá que fazer o download de uma das
versões do Word do relatório é clicar no seu link e, em seguida, clique em Sim quando solicitado para
confirmar o download.
O Registro ea página de definições de configuração, esboçado na Figura 27.7, será criado como um
formulário HTML e irá incluir uma série de elementos de formulário, incluindo:
de
◆ Botões. Para iniciar ações sobre a forma como a validação de formulário ou o
execução de VBScripts
FIGURA 27.7 A página de registo e definições de configuração coleta de nomes pessoais e preferências de cada visitante
campo de texto do formulário será usado para coletar o nome do visitante. A coleção de botões de rádio irá
fornecer cada visitante com a capacidade de especificar uma página padrão para o Web site. A lista drop-down
irá fornecer o visitante com a possibilidade de escolher entre um de uma série de esquemas de cores
predefinidos que controlam a cor da página de Links fundo. Finalmente, os botões serão usados para iniciar
uma série de tarefas de script, como descrito abaixo.
◆ caixa de diálogo pop-up de ajuda baseado. Fornece ajuda baseado em texto que explica
resumo
Neste capítulo, você observado como William descreveu o conteúdo e formato de cada uma das
páginas HTML que compõem o Relatório site Order / Inventário. Isto incluiu a definição das
relações e ligações entre as páginas HTML, bem como a identificação e colocação de VBScripts
dentro de cada uma dessas páginas HTML. O capítulo também explica como essas VBScripts irá
melhorar a apresentação geral do Web site.
Esta página foi intencionalmente esquerda em branco
Capítulo 28
Edifício Principal da Web
do site Página
Eu n Neste capítulo, William começa a trabalhar na criação de Reporting site Order / Inventário
criando página principal ou padrão do site. A página irá utilizar um conjunto de quadros HTML composto
por dois quadros, a fim de exibir um menu de links no lado esquerdo da janela do navegador eo conteúdo
do link selecionado na frame.William do lado direito também irá incorporar um VBScript em a página
HTML para adicionar uma série de efeitos gráficos para o site. Este script irá executar tarefas como
transformar links do menu links capotamento, recuperando definições de configuração do cache do lado
do cliente, e gerenciar o conteúdo que é carregado no quadro à direita.
<HTML>
<HEAD>
<TITLE> Script 28.1 - Definir um conjunto de quadros para a página de web site principal </ TITLE> </ HEAD>
noresize>
FRAMESET>
</ HTML>
CONSTRUÇÃO DO WEB SITE DA PÁGINA PRINCIPAL Capítulo 28 647
Os quadros são criados usando o HTML < FRAMESET> e < QUADRO> Tag. o
<FRAMESET> etiquetas de substituir o < BODY> tags que são normalmente utilizados para definir uma página HTML. O
primeiro quadro é configurado para ser 175 pixels de largura, eo resto do espaço disponível é deixado para o quadro à
direita.
<HTML>
<HEAD>
<TITLE> Script 28.2 - Esta página fornece links para páginas HTML subordinados </ TITLE> </ HEAD>
<BODY>
<BR>
Resumo <A NAME="Archive"> Relatório Consolidado de Arquivo </A> <P> <A NAME="Config"> definições de
configuração <BR> Pessoais e Registro </A> <P> </ DIV> </ BODY> </ HTML>
Como você vai ver, o VBScript que é adicionado a esta página HTML será composto de uma coleção de
sub-rotinas. Cada uma destas sub-rotinas fornece uma característica distinta para a página HTML.
Esta declaração usa o navegador do carregando evento para disparar a execução do sub-rotina, o qual é
mostrado abaixo.
Sub setBackgroundColor ()
astrCookieArray (2)
CONSTRUÇÃO DO WEB SITE DA PÁGINA PRINCIPAL Capítulo 28 649
End Sub
NOTA
o documento objeto é exposto pelos modelos de objeto do navegador Internet Explorer. Para saber mais sobre o documento
objeto e seus métodos e propriedades, ou qualquer um dos outros objetos baseados em navegador, métodos e
propriedades abordados neste capítulo, leia o Capítulo 8, “VBScript e Internet Explorer.”
O cookie criado pelo site do Reporting Order / Inventário consiste em três partes: armazenar o
nome do visitante, página padrão preferido, e esquema de cores preferido. Cada uma destas
peças é carregado para o astrCookieArray matriz. O valor armazenado na astrCookieArray (2) representa
um valor regime.A cor preferida do visitante armazenados em astrCookieArray (2) é então atribuído
ao documento objeto de bgcolor propriedade, alterando assim a cor do fundo
links.html página. No entanto, se um cookie do Relatório site Order / Inventory não for encontrado
no computador do visitante, cor de fundo padrão da página de amarelo é usado.
NOTA
No capítulo 29, “Construir o registro e definições de configuração Page,” você vai ver que o config.html página
recolhe as definições de configuração visitante e as armazena em cache do lado do cliente usando um cookie.
650 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
sub DailyRpt_onMouseOver
sub DailyRpt_onMouseOut
sub Archive_onMouseOver
sub Archive_onMouseOut
sub Config_onMouseOver
sub Config_onMouseOut
O primeiro sub-rotina em cada par é chamado, anexando o nome do link com o qual a sub-rotina
está associada ao evento navegador que irá acionar a sub-rotina executada. Neste caso, a
primeira sub-rotina em cada par é a onMouseOver
event.Whenever o visitante move o cursor sobre o link associado com o sub-rotina, a rotina muda a
cor do texto que representa o link para vermelho. A segunda sub-rotina em cada par altera a cor da
ligação de volta para a sua cor azul inicial quando o visitante move o ponteiro para fora da sua
ligação associado. O resultado da animação adicionado por esses seis sub-rotinas é que os links
na
links.html página alterar dinamicamente cores para ajudar o visitante a identificar o link atualmente selecionado.
CONSTRUÇÃO DO WEB SITE DA PÁGINA PRINCIPAL Capítulo 28 651
sub-rotinas que os controlam, adicionando lógica que mensagens e limpa mensagens na barra de status do Internet
Explorer sempre que os visitantes mover o ponteiro sobre um dos links.html ligações página. Este truque é realizado
através da modificação do
janela objeto de estado propriedade. Por exemplo, o seguinte par de sub-rotinas mostra como
William modificou as sub-rotinas que respondem à onMouseOver
e onMouseOut eventos para o DailyRpt ligação.
sub DailyRpt_onMouseOver
DailyRpt.style.color =”red”
sub DailyRpt_onMouseOut
= ‘’ End Sub
Como você pode ver, o texto descritivo é exibido quando o onMouseOver evento é acionado para o DailyRpt
ligação. De forma similar, o valor de window.status é definido igual a branco quando o link de onMouseOut
evento é acionado.
strFileNameString Dim
Em seguida, ele cria a DailyRpt_onClick () sub-rotina, como mostrado abaixo. A lógica para essa
sub-rotina foi emprestado de VBScripts executada-WSH anteriores
652 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
e deve parecer familiar até agora. Primeiro William usa o Encontro() funcionar para recolher a data
atual do sistema, e em seguida, ele usa o Substituir() função para substituir todas as ocorrências do
caractere de barra invertida (/) com o traço (-) personagem. A corda ConsolRpt.html é então anexado
ao fim de strFileNameString.
Finalmente, a sub-rotina carrega versão HTML do relatório de síntese do dia atual para o right_frame
Frame, atribuindo o valor do strFileNameString variável para top.right_frame.location. No
contexto desta página HTML, topo é usado para fazer referência a quadros pai definido em
Default.HTML, e right_frame identifica o quadro onde a versão HTML do relatório de síntese consolidada é
para ser carregado, conforme especificado pelo quadro de objeto de localização propriedade.
sub DailyRpt_onClick
Sub
NOTA
Observe o uso de .. \ RPTs para especificar a localização do RPTs pasta. Quando traduzida,
. . \ diz o script que a localização do RPTs pasta pode ser encontrado por meio de backup para a pasta principal
da pasta de corrente (a partir de D: \ Intuit \ OrderInventory \ Reporting \ HTML para D: \ Intuit \ OrderInventory \
Reporting) e em seguida, olhando para o
As próximas duas sub-rotinas são muito mais simples do que a sub-rotina anterior. o Archive_onClick
() sub-rotina, ilustrada a seguir, utiliza o localização propriedade para carregar o archive.html página,
que contém uma lista de links para o arquivo de relatório HTML no servidor Web corporativo.
sub Archive_onClick
Da mesma forma, o Config_onClick () sub-rotina, ilustrada a seguir, carrega o config.html página, permitindo que os
visitantes para especificar as suas preferências de configuração pessoais.
CONSTRUÇÃO DO WEB SITE DA PÁGINA PRINCIPAL Capítulo 28 653
sub Config_onClick
Figura 28.1 mostra como o links.html página parece se carregado diretamente no navegador (quando não estiver
carregado pelo Default.html).
FIGURA 28.1 o links.html página fornece acesso às outras páginas no site do Reporting Order / Inventário
<HTML>
<HEAD>
<TITLE> Script 28.2 - Esta página fornece links para páginas HTML subordinados </ TITLE>
declarações do VBScript
654 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
strFileNameString Dim
Sub setBackgroundColor ()
End Sub
sub DailyRpt_onMouseOver
DailyRpt.style.color =”red”
sub DailyRpt_onMouseOut
= ‘’ End Sub
sub DailyRpt_onClick
Sub
sub Archive_onMouseOver
Archive.style.color =”red”
sub Archive_onMouseOut
= ‘’ End Sub
sub Archive_onClick
sub Config_onMouseOver
Config.style.color =”red”
sub Config_onMouseOut
Config.style.color =”blue”
sub Config_onClick
HEAD>
<BR>
Relatório Resumido <A NAME="DailyRpt"> consolidado Hoje </A> <P> Resumo <BR> <A NAME="Archive">
Relatório Consolidado de Arquivo </A> <P> <BR> <A NAME =” config”> Configurações pessoais e Registro </A>
◆ Detecção do tipo e versão do navegador que está sendo usado para visitar o Web
local
656 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
◆ Redirecionamento para os visitantes com navegadores que não sejam o Internet Explorer 5.0
ou acima
página de configurações
<HTML>
<HEAD>
<TITLE> Script 28.1 - Encomenda / inventário principal Bem-vindo Page </ TITLE> </ HEAD>
<BODY>
<HR>
<UL>
vendo todos os dias às 6:00. </ li> <P> <LI> Você também pode rever uma
não está disponível neste site, por favor entre em contato Operações do computador e pedir
que eles lhe fornecer uma cópia impressa. </ li> <P>
</ UL>
<HR>
<B> <pre>
BODY>
CONSTRUÇÃO DO WEB SITE DA PÁGINA PRINCIPAL Capítulo 28 657
</ HTML>
Figura 28.2 mostra como o welcome.html página olha quando carregado diretamente no Internet Explorer.
FIGURA 28.2 o welcome.html página recebe os visitantes pelo nome e fornece informações sobre o conteúdo disponível
no site do Reporting Order / Inventário
William está desenvolvendo Reporting site Order / Inventário com base no pressuposto de que todos os
usuários estarão usando o Internet Explorer versão 5.0 ou superior. No entanto, para se proteger contra a
possibilidade de que um ou mais funcionários da Intuit ainda pode estar usando uma versão antiga do Internet
Explorer, William adicionou uma sub-rotina chamada BrowserCheck () ao welcome.html página. Esta sub-rotina
automaticamente redireciona os navegadores mais antigos para uma página HTML chamada Browser.html,
658 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
onde é exibida uma mensagem que informa visitantes para atualizar para o Internet Explorer
6.0 antes de acessar o Relatório de site Order / Inventário. O primeiro passo na criação da BrowserCheck
() sub-rotina é definir o seguinte VBScript na seção do corpo da página HTML. Este script irá
página é carregada.
declarações do VBScript
BrowserCheck ()
O próximo passo é definir um segundo VBScript carregado na seção de cabeçalho da página HTML e
adicionar o seguinte sub-rotina para o script:
NOTA
O VBScript incorporado no welcome.html página também poderia ter sido incorporado na secção do corpo da página.
No entanto, definindo-a na seção de cabeçalho, você é capaz de garantir que todos os procedimentos são carregados
e disponíveis antes de serem referenciadas por declarações ou eventos localizados na seção do corpo.
Sub BrowserCheck ()
browserName = navigator.appName
'Use a propriedade navegador appVersion para coletar informações sobre' navegador de Internet do
visitante
browserVersion = navigator.appVersion
'A função Instr () procura uma string para um determinado conjunto de caracteres findString = Instr (1,
browserVersion, ‘MSIE’)
CONSTRUÇÃO DO WEB SITE DA PÁGINA PRINCIPAL Capítulo 28 659
findString = + 5 findString
End Sub
o BrowserCheck () sub-rotina começa com a coleta o nome do navegador que está sendo usado para
acessar a página, atribuindo o valor de navigator.appName para uma variável chamada browserName. Em
seguida uma E se declaração é usado para determinar se o browserName é igual a Microsoft Internet
Explorer. Se não for, então o right_frame quadro do default.html página é redirecionada para o Browser.html
página usando o janelas objeto de localização propriedade. Se o visitante está usando um navegador
de Internet Explorer a sub-rotina próximos verifica para ver qual versão está sendo usado, atribuindo
o valor de navigator.appVersion para uma variável chamada browserVersion. Por exemplo, a seqüência
atribuída a
browserVersion pareceria 4.0 (compatível; MSIE 6.0; Windows NT 5.1; Q312461) se o visitante
estava usando uma versão do navegador Internet Explorer 6.0.
Em seguida, o VBScript Instr () função é usada para determinar a localização da string MSIE dentro browserVersion.
Uma vez que a posição de caractere começando desta cadeia é determinado, um valor de 5 é adicionado
a ele, a fim de calcular a posição do número de versão do navegador dentro do string. Em seguida, o MID
() função é usada para analisar o número de versão principal estiver em uso. Em seguida, um E se declaração
é usado para determinar se o número de versão principal é inferior a 5 (isto é, Internet Explorer versão
5.x). Se for inferior a 5, o right_frame quadro do
default.html página é redirecionada para adicionar o Browser.html. Caso contrário, nenhuma ação de redirecionamento é
tomada.
A Figura 28.3 mostra como o site do Reporting Order / Inventory vai olhar quando acessado por um visitante
com um navegador Internet Explorer 5.0 ou superior.
660 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
FIGURA 28.3 Por padrão, todos os visitantes do site do Reporting Order / Inventory vai ver o
links.html e welcome.html Páginas
Este processo será implementado como uma sub-rotina chamada Cookie_Check (). O primeiro passo na criação deste
processo é o de modificar o VBScript localizado na secção do corpo da página através da inserção de uma chamada
declarações do VBScript
CONSTRUÇÃO DO WEB SITE DA PÁGINA PRINCIPAL Capítulo 28 661
BrowserCheck ()
Cookie_Check ()
Uma vez feito isso, você pode adicionar o código para o Cookie_Check () sub-rotina para a VBScript definido
na welcome.html seção de cabeçalho da página.
Cookie_Check ()
document.write ( “<H3> Order / Inventário Relatórios do Site </ H3> <P>”) document.write
“_ConsolSumRpt.txt”
Function
Os sete primeiros caracteres do cookie de especificar o seu nome e o sinal de igual. Para extrair o nome
do visitante do cookie, o Mediana () função atribui todos os caracteres começando na posição de
caracteres de 8 do primeiro elemento da matriz a uma variável chamada strUserName. Próxima página
padrão preferido do visitante é extraído, atribuindo o valor de astrCookieArray (1) para strDefaultView. Em
seguida, esquema de cores preferido do visitante é extraído e atribuído a strColorScheme.
Uma série de três E se declarações depois executes.The primeiro E se declaração verifica se strDefaultView
é igual a Arquivo. Se for, então o right_frame
no quadro default.html página é redirecionada para .. \ Relatórios \ Archive.html. Do ponto de
vista do visitante, ele vai olhar como se o
Archive.html página foi carregada automaticamente (a welcome.html página não é exibida). O
Bem vinda. Se for, em seguida, uma mensagem de cabeçalho é escrito para o topo da
welcome.html página seguido por uma mensagem que saúda o usuário pelo nome usando o valor
armazenado na strUserName variável. Uma vez feito isso, o resto do conteúdo a ser exibido na welcome.html
página será escrita como especificado dentro de suas tags HTML. Finalmente, a última E se declaração
verifica se strDefaultView é igual a Diariamente. Se for, então o config.html página é automaticamente
carregada no
Browser.html página, onde o visitante é aconselhado a versão do Internet Explorer para usar ao
visualizar o conteúdo fornecido pelo Web site.
<HTML>
<HEAD>
<TITLE> Script 28.1 - Encomenda / inventário principal Bem-vindo Page </ TITLE>
declarações do VBScript
strFileNameString Dim
'Definir uma função para verificar se o cookie e usá-lo no' mensagem de boas vindas, se for
document.write ( “<H3> Order / Inventário Relatórios do Site </ H3> <P>”) document.write
strFileNameString = Replace (Date (), “/”, “-”) strConSolRptName = strConsolFolder & “\” &
strFileNameString & _
“_ConsolSumRpt.txt”
window.location = “config.html”
664 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
End If End
Function
Sub BrowserCheck ()
browserName = navigator.appName
'Use a propriedade navegador appVersion para coletar informações sobre' navegador de Internet do
visitante
browserVersion = navigator.appVersion
'O Instr () função procura uma string para um determinado conjunto de ca-
ters
findString = + 5 findString
End Sub
HEAD> <BODY>
declarações do VBScript
CONSTRUÇÃO DO WEB SITE DA PÁGINA PRINCIPAL Capítulo 28 665
BrowserCheck ()
Cookie_Check ()
<HR>
<UL>
vendo todos os dias às 6:00. </ li> <P> <LI> Você também pode rever uma
não está disponível neste site, por favor entre em contato Operações do computador e pedir
que eles lhe fornecer uma cópia impressa. </ LI> <P> </ UL> <HR>
<B> <pre>
HTML>
<HTML>
<HEAD>
<TITLE> Esta página é visto pelos visitantes que não estão usando o IE 5.0 ou superior </ TITLE>
</ HEAD>
<BODY>
<BR>
você deve usar Internet Explorer versão 5 ou superior </ H3> </ div>
<BR>
Por favor, atualize para o Internet Explorer 6.0 ou acessar este site de um computador diferente. </
Div>
</ BODY>
</ HTML>
Figura 28.4 mostra como o browser.html página é exibida quando vistos por uma versão anterior do
Internet Explorer.
CONSTRUÇÃO DO WEB SITE DA PÁGINA PRINCIPAL Capítulo 28 667
FIGURA 28.4 o Browser.html página aconselha os visitantes a utilizar o Internet Explorer versão 5.0 ou superior
resumo
Neste capítulo, você observado como William começou a trabalhar no Relatório site Order / Inventário.
Especificamente, ele desenvolveu o site da default.html página usando um conjunto de quadros
composto de dois quadros para exibir um menu de links e o conteúdo do link selecionado. Além do
HTML necessário para criar as páginas HTML, William incorporado uma série de VBScripts para
adicionar efeitos gráficos para o site. VBScripts também foram utilizados para recuperar as
configurações visitante e para gerenciar o carregamento de páginas HTML para os quadros.
Esta página foi intencionalmente esquerda em branco
Capítulo 29
A construção do
Registro e
configurações
Página
Eu n Neste capítulo, William precisa desenvolver uma página HTML para o site relatando que recolhe
informações sobre os visitantes e as suas preferências de configuração. Para realizar essa tarefa, William vai
definir um formulário HTML e usar um VBScript incorporado para validar o seu conteúdo. Em última análise, a
página irá guardar o nome e configuração preferências de cada visitante em um cookie armazenado localmente
nos computadores dos visitantes.
Basics bolinho
Usando variáveis globais, você pode armazenar e referência valores durante a vida de um script. No entanto, estes
valores são perdidos quando o script termina, e eles devem ser recriados na próxima vez que ele é executado. A fim de
construir um site interativo e para fornecer um mecanismo que permite que os visitantes para especificar as configurações
personalizadas, você precisa encontrar uma maneira para armazenar dados que vai sobreviver a vida útil de seus scripts
ou sessão de um visitante em seu Web site. Uma maneira de prever armazenamento persistente ( a capacidade para
referenciar dados fornecidos pelos visitantes quando eles retornam para o seu site) é a utilização de cookies. UMA biscoito
é uma cadeia de texto que seu Web site pode armazenar nos computadores dos visitantes. Os cookies existem desde os
primórdios da Internet e foram projetados para fornecer uma maneira de armazenar pequenas quantidades de dados
sobre computers.Today dos visitantes, servidores Web poderosas com bancos de dados de back-end são capazes de
armazenar e recuperar grandes quantidades de informações sobre visitantes, suas preferências, e suas ações. Para um
Web site como o site Reporting, onde a informação está disponível para visualização, mas nenhuma coleta de dados reais
ou processamento é realizado, utilizando um banco de dados back-end para armazenar alguns pedaços de informações
sobre os visitantes e suas preferências é um exagero. Uma solução muito mais simples é usar cookies. Cookies fornecem
um meio eficiente de armazenar todos os tipos de informação. Por exemplo, o uso de cookies, você pode:
Um cookie é uma cadeia de texto que você pode armazenar na memória do navegador. Por padrão, cookies
expiram quando o visitante fecha o browser. No entanto, definindo uma data de expiração quando você cria um
cookie, você pode instruir o navegador para manter o seu cookie. Browsers atender o pedido salvando uma
cópia do texto do cookie no disco rígido local do seu computador.
NOTA
Navegadores modernos fornecer aos usuários a capacidade de bloquear cookies. No entanto, a maioria dos usuários acham que
é inconveniente ou impraticável fazê-lo. É importante entender que seus scripts não pode realmente armazenar um cookie nos
discos rígidos das pessoas que visitam seu Web site. Em vez disso, você armazenar o cookie na memória do navegador e o
navegador decide se deve ou não armazenar o cookie no disco rígido do seu computador, com base nas definições de
o armazenamento de cookies
A maneira que os cookies são armazenados em computadores cliente depende do tipo e versão do navegador
usado para armazenar o cookie, assim como o sistema operacional que está sendo usado para executar o
browser. Por exemplo, Netscape Communicator armazena seus cookies como cadeias de texto em um arquivo de
texto grande localizado por padrão no C: \ Arquivos de Programas \ Netscape \ Users \ Nome de usuário \ cookies.txt. Internet
Explorer, por outro lado, armazena cookies como arquivos de texto individuais. Em computadores com o Windows
95, 98 ou Me, Internet Explorer armazena arquivos de cookies por padrão no
C: \ Windows \ Cookies. Em computadores com o Windows 2000 ou XP, Internet Explorer armazena
arquivos de texto do bolinho por padrão no C: \ Documents and Settings \ Nome de usuário \ Biscoitos.
NOTA
Uma discussão verdadeiramente detalhado de cookies está além do escopo deste livro. Se você estiver interessado em
aprender mais do que o básico apresentado neste capítulo, visita
http://www.cookiecentral.com.
672 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
Internet Explorer é o navegador utilizado por funcionários da Intuit. Este navegador armazena todos os seus cookies como
FIGURA 29.1 Internet Explorer armazena cookies como arquivos de texto individuais e associa-los com indivíduos cas espe-
Como você pode ver na Figura 29.1, Internet Explorer associa nome de usuário do visitante com cada cookie ao
guardá-la. Ele faz isso para acomodar a possibilidade de que vários usuários podem compartilhar o mesmo
computador. No entanto, os nomes de usuário nunca são devolvidos ao site que criou o cookie; somente os
dados reais armazenados no cookie é devolvido (menos a data de validade).
Os cookies podem ser de até 4 KB de tamanho. Todos os principais navegadores suportam cookies, incluindo o
Netscape Communicator e Internet Explorer. Ambos os navegadores limitar o número de cookies que podem ser
armazenados em um computador para 300. O número máximo de cookies que um site da Web pode armazenar no
computador de um visitante é 20. No caso em que qualquer um destes dois limites for excedido, o browser para apagar
os cookies existentes para fazer o quarto como novos chegar. Como resultado dessas limitações, os cookies são
Cookies e Segurança
Por padrão, os cookies só pode ser acessado a partir do site que os criou. Isto significa que outros sites
não será capaz de ler os cookies fora de um computador que tenha sido utilizado para visitar o seu Web
site. Da mesma forma, você só vai ser capaz de recuperar cookies que seu site foi responsável pela
criação. Portanto, os cookies pode ser visto como sendo um pouco seguro. No entanto, porque os cookies
são armazenados como arquivos de texto simples em computadores clientes, eles são livremente visíveis
para qualquer pessoa com acesso local para eles. Isso faz com que os cookies inadequados para o
armazenamento de peças e informações sensíveis, tais como cartão de crédito e números de segurança
social. Outra limitação de cookies é que eles são armazenados localmente no computador. Se o visitante
retorna mais tarde para o site usando outro computador, não há nenhuma maneira de associar novamente
os dados previamente fornecidos pelo visitante.
cookie de Sintaxe
Seus VBScripts pode criar e recuperar cookies usando o documento objeto de
biscoito propriedade. Bolinhos consistem de um ou mais parâmetros, cada um dos quais é separada por um ponto
name = valor [; expira = Data de validade] [; domain = Domname] [; path = Nome_de_caminho] [; seguro]
Nome especifica o nome do cookie. Valor identifica a série de dados a serem armazenados pelo cookie. Data de
validade especifica uma data que determina quanto tempo o cookie permanece válido. domname especifica um
nome de host alternativa a partir da qual o biscoito pode ser acedido. Caminho especifica a pasta de nível
superior no servidor Web a partir do qual os cookies criados pelo servidor Web pode ser recuperada. Seguro é
um valor booleano que, quando definido como igual a Verdade requer uma HTTPS conexão, a fim de criar o
cookie. De todos estes parâmetros, única nome e valor são necessárias ao criar um cookie.
Uma vez criado, o cookie pode ser recuperada, como mostrado abaixo.
strVisitorName = Document
674 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
Se o computador do visitante não tem o cookie, uma seqüência vazia é retornada. No exemplo anterior, a
cadeia que compõe o cookie é atribuído a uma variável chamada strVisitorName. Uma vez que o cookie é
recuperado, você pode usar qualquer uma das funções de manipulação de seqüência de VBScript para
analisar os dados armazenados no cookie.
visitantes fechar seus navegadores. Para fazer um cookie persistente, defina sua data de expiração para um valor que
irá durar mais tempo do que a sessão atual do navegador. O exemplo a seguir demonstra como criar um cookie que
& MonthName (PartData ( “m”, Date (), 1)) & “-” _ & PartData ( “aaaa”,
A primeira declaração cria uma variável chamada dtmExpDate recuperando a data atual usando o Encontro()
função. Em seguida, ele usa o PartData () função para extrair um valor numérico que representa o dia
da semana. Este valor é então alimentada para o WeekdayName () função, a fim de determinar o nome
do dia da semana corrente (neste exemplo, o dia atual da semana é sexta-feira). UMA “,“ string é
então acrescentado ao nome do dia da semana.
A próxima instrução recupera um valor numérico que representa o mês atual usando o Encontro() e PartData
() funções. o Len () função é então usado para determinar se este valor é um ou dois dígitos. Se é
apenas um dígito de comprimento (o mês é entre janeiro e setembro), um zero é anexado para a
frente do que para criar um valor de dois dígitos.
CONSTRUÇÃO DO REGISTRO E Página de configuração Capítulo 29 675
Em seguida, o valor do dtmExpDate é modificada anexando o valor do mês de dois dígitos a ele
seguido pelo “-” corda e, em seguida, o nome do mês atual ( Monthname (PartData ( “m”, Data (),
1))). Então outro “-” corda e um valor numérico que representa o próximo ano (adicionando 1
para o ano em curso) é anexado, seguido pelo “00:00:00 GMT” string.
O resultado final é uma string cookie que expira um ano a partir do dia em que ele é criado. Por exemplo, se
hoje é 02 de maio de 2003, a seqüência de cookie iria resolver a:
NOTA
A data de expiração não é devolvido quando você mais tarde recuperar o conteúdo do cookie.
O parâmetro de domínio fornece a capacidade de especificar o anfitrião nomes em seu site ter acesso ao
seu cookie. Por padrão, o nome do host do servidor Web que cria os cookies são atribuídos
automaticamente. usando o domínio parâmetro, você pode permitir que outros domínios que pertencem a
você acessar seu cookie. Por exemplo, se você criou um cookie em um servidor em http://www.intuitmechanical.com,
seria, por padrão, só podem ser acessíveis a partir desse site. No entanto, se a empresa teve um segundo
local, como http://sales.intuitmechanical.com, o cookie não seria acessível a partir deste site. usando o domínio
parâmetro, você pode fazer o cookie disponível em ambos os sites, como demonstrado abaixo. Note-se
que o ponto inicial (em
. intuitmechanical.com) É necessário.
NOTA
Porque Intuit tem apenas um servidor Web, William não precisa incluir esse parâmetro ao criar cookies
do site da Ordem Relatórios / Inventário.
676 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
mesma pasta como a página que criou o navegador cookie.The também permite que o cookie para ser
acessado por qualquer página que reside em subpastas da pasta. No entanto, o acesso de outras pastas no
servidor Web é automaticamente bloqueado. Por exemplo, suponha a seguinte estrutura pasta estava no local
Se você tivesse uma página HTML localizado no \ Intuit \ OrderInventory \ Reporting \ Rpts pasta que
criou um cookie, esse cookie seria acessível por outras páginas HTML localizadas nessa pasta,
bem como por páginas HTML localizadas em suas duas subpastas. No entanto, o cookie não
seria acessível a partir da
\ Intuit \ OrderInventory \ Reporting \ HTML pasta. usando o caminho parâmetro, você pode especificar uma
pasta de nível superior a partir do qual o cookie deve ser acessível. Por exemplo, a seguinte instrução cria
um cookie que pode ser acessado a partir de qualquer página HTML localizado em qualquer pasta no site
document.cookie = “string =” & strCookieString & “; expira =” & dtmExpDate & “; path = /”
document.cookie = “string =” & strCookieString & “; expira =” & dtmExpDate & “; Verdade"
CONSTRUÇÃO DO REGISTRO E Página de configuração Capítulo 29 677
Apagar cookies
A exclusão de um cookie é um processo de duas etapas. Primeiro, você deve criar uma nova seqüência de cookie e
defina seu valor como nulo. Em seguida, antes de salvar o cookie, você deve atribuir uma data de expiração que
está no passado. Se você pular a primeira etapa e simplesmente salvar novamente um cookie existente usando uma
data de validade expirado, o cookie acabará por ser eliminado (quando o visitante fecha o navegador). No entanto,
se o visitante deixa seu site e retorna mais tarde sem ter fechado seu navegador, entretanto, o cookie será ainda
existem. Definindo-o igual a nulo e, em seguida, salvá-lo, você garante que se o visitante retorna sem antes ter
fechado seu navegador, quando você recupera o cookie novamente, ele aparecerá como se ele foi excluído (que
O primeiro passo na criação de um cookie para este projeto é determinar quais informações você deseja
armazenar nele. No caso da Intuit, William decidiu criar um formulário HTML para coletar informações de
visitantes do Web site. Uma vez que os visitantes
678 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
FIGURA 29.2 Usando um formulário para coletar nome e pessoais preferências de cada visitante
atribuído um explícita Nome valor, a fim de tornar mais fácil para o VBScript para acessar e validar o conteúdo dos
<HTML>
<HEAD>
<TITLE> Script 27.1 - A página de pedido / Configurações Configuração do Inventário </ TITLE> </ HEAD>
<BODY>
CONSTRUÇÃO DO REGISTRO E Página de configuração Capítulo 29 679
<BR>
<B> Por favor, diga-nos o seu nome: </ B> <INPUT NAME =”username” TYPE =”text” size =”25” MAXLENGTH =” 40” > <P>
<BR>
<INPUT NAME =”siteRadio” TYPE =”radio” VALUE =”Welcome”> Bem-vindo Page <P> <INPUT NAME =”siteRadio”
TYPE =”radio” VALUE =”Arquivo”> Relatório Arquivo de <P> <INPUT NAME =”siteRadio” TYPE =”radio” VALUE
VALUE =” rosa”> Pink and White </ SELECT> </ P> <BR>
O último elemento formulário na página HTML define uma lista drop-down. A Figura 29.3 mostra como os
conteúdos fornecidos por esta lista irá aparecer quando os visitantes acessá-los.
680 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
FIGURA 29.3 Usando uma lista drop-down para fornecer uma lista de opções sem congestionar a área de exibição
Este script irá executar duas tarefas principais. A primeira tarefa é para validar que o formulário foi corretamente
O formulário contém um botão na parte inferior da página HTML chamado SaveButton. Quando clicado,
o botão deve iniciar uma sub-rotina chamada ProcessSettings (), como mostrado abaixo.
o ProcessSettings () sub-rotina vai examinar cada elemento de formulário para garantir que o visitante tenha
fornecido as informações necessárias.
CONSTRUÇÃO DO REGISTRO E Página de configuração Capítulo 29 681
validação de formulário
Para preparar a página HTML para o seu VBScript, William primeiro incorpora a abertura e fechamento < SCRIPT>
e </ SCRIPT> Tag na seção de cabeçalho da página. Em seguida, ele define as seguintes variáveis e
constantes:
Option Explicit
Uma vez que os passos acima foram concluídos, William cria a ProcessSettings () função, como
mostrado abaixo.
ProcessSettings () função
MsgBox “Você deve fornecer seu nome para continuar.”, CTitleBarMsg Exit Function End If
strRadioSelected = “false”
End If Next
MsgBox “Você deve especificar a sua página padrão preferido.”, CTitleBarMsg Exit Function End If
BakeTheCookie (strConfigSettings)
top.left_frame.document.bgcolor = siteForm.siteList.value
682 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
cTitleBarMsg
End Function
A função começa por determinar se ou não o visitante entrou em seu nome no campo de texto do
formulário ( document.siteForm.userName.value). Se o nome não foi fornecido, a mensagem pop-up
mostrado na Figura 29.4 é exibida e o
Função Exit declaração é usada para terminar a execução da função.
FIGURA 29.4 Usando caixas de diálogo pop-up para interagir com os visitantes para garantir que eles tenham informações provid- ed necessário
Se o visitante tenha fornecido o seu nome, a função próximos verifica para ver se uma das três opções
de visualização foi selecionada examinando o valor de siteForm.siteRadio (intCounter) .value. Se um dos
botões de rádio foi selecionado, o seu valor é então atribuído a uma variável chamada strRadioSelection. Caso
contrário, a caixa de diálogo pop-up mostrado na Figura 29.5 é exibida e a função pára a execução.
FIGURA 29.5 Se um botão de opção não for selecionada, uma caixa de diálogo
Finalmente, uma string é criado que contém os valores especificados por cada um dos elementos do formulário. Essa
Assar um biscoito
o BakeTheCookie () função formata a string de teste que faz com que o cookie e, em seguida, utiliza o documento
objeto de biscoito propriedade para salvar o cookie.
& FormatDate (PartData ( “d”, Data ())) & “-” _ & MonthName (PartData
( “m”, Data (), 1) + 1) & “-” _ & PartData ( “aaaa”, Data ()) _ & “00:00:00
GMT”
strCookie = “string =” & strCookieString & “; expira =” & dtmExpDate document.cookie = strCookie
End Function
684 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
Function
Sub CancelButton_onClick ()
history.back () End
Sub
O nome deste função foi criada anexando onClick ao nome atribuído ao botão Cancelar. Ao
nomear a sub-rotina desta forma, William associa automaticamente com o CancelButton botão,
facilitando assim a sua execução automática quando o botão onClick evento ocorre. Uma vez
executado, o sub-rotina usa a história objeto de de volta() Método para recarregar a URL exibida
anteriormente de volta para o right_frame no quadro default.html página.
Exibindo Ajuda
A fim de ajudar a tornar o registro ea página de definições de configuração mais fácil trabalhar com, William
tem escolhido para proporcionar aos visitantes uma opção de ajuda. A idéia é proporcionar aos visitantes com
instruções sobre como preencher corretamente o formulário quando eles clique no botão Ajuda. A fim de
fornecer esse recurso, William planeja usar o VBScript MsgBox () função. Mas, primeiro, ele deve modificar o < INPUT>
tag associado ao botão, como mostrado abaixo.
CONSTRUÇÃO DO REGISTRO E Página de configuração Capítulo 29 685
modificação de William faz com que a tag do onClick evento para acionar a execução do DisplayHelpDialog
() sub-rotina, o qual é mostrado abaixo.
Sub DisplayHelpDialog ()
MsgBox “Todas as informações recolhidas por este formulário é necessário.” & VbCrLf & _
vbCrLf & vbCrLf & vbTab & “* Por favor, diga-nos o seu nome:“& _ ‘- Introduza o seu nome e sobrenome.’
& vbCrLf & vbCrLf & _ vbTab & “* Padrão Ver: - Selecione a página que você quer carregado“& _ “por
padrão quando você visita este site.” & vbCrLf & vbCrLf & _ vbTab & “* Escolha um esquema de cor: -
Escolha o seu fundo e“& _ & vbCrLf & vbCrLf & _ vbTab & “‘preferências de cor de primeiro plano.’ * salve
- Clique neste botão para salvar sua configuração”& _‘configurações’& vbCrLf & vbCrLf & vbTab & _.
“* Cancelar - Clique neste botão para voltar à página anterior“& _ & vbCrLf & vbCrLf & _ vbTab & ‘sem
End Sub
FIGURA 29.7 Usando o VBScript MsgBox () função para fornecer os visitantes com instruções sobre como preencher corretamente o
formulário
686 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
Encomenda / Inventory com a capacidade de definir as configurações pessoais para o site. Usando um
VBScript incorporado, a página irá determinar se o formulário foi corretamente preenchido e, se for o
caso, irá armazenar as definições de configuração do visitante em um cookie.
<HTML>
<HEAD>
<TITLE> Script 27.1 - A página de pedido / Configurações Configuração do Inventário </ TITLE>
declarações do VBScript
Option Explicit
ProcessSettings () função
MsgBox “Você deve fornecer seu nome para continuar.”, CTitleBarMsg Exit Function End If
strRadioSelected = “false”
End If Next
CONSTRUÇÃO DO REGISTRO E Página de configuração Capítulo 29 687
MsgBox “Você deve especificar a sua página padrão preferido.”, CTitleBarMsg Exit Function End If
BakeTheCookie (strConfigSettings)
top.left_frame.document.bgcolor = siteForm.siteList.value
cTitleBarMsg
End Function
Sub DisplayHelpDialog ()
vbTab & “* Por favor, diga-nos o seu nome: - Introduza o seu primeiro e“& _ & vbCrLf & vbCrLf
“* Padrão Ver: - Selecione a página que você quer carregar por“& _ & vbCrLf & vbCrLf & _ vbTab
& “* Escolha um esquema de cores: - Selecione o plano de fundo“‘default quando você visita este
site.’ & _ “ e preferências de cor de primeiro plano “& vbCrLf & vbCrLf vbTab & _“* Save -.. Clique
neste botão para salvar sua configuração “& _‘configurações’& vbCrLf & vbCrLf & vbTab & _
“* Cancelar - Clique neste botão para voltar ao anterior“& _ & vbCrLf & _ vbCrLf & vbTab & _
End Sub
688 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
Sub CancelButton_onClick ()
history.back () End
Sub
& FormatDate (PartData ( “d”, Data ())) & “-” _ & MonthName (PartData
( “m”, Data (), 1) + 1) & “-” _ & PartData ( “aaaa”, Data ()) _ & “00:00:00
GMT”
strCookie = “string =” & strCookieString & “; expira =” & dtmExpDate document.cookie = strCookie
End Function
Function
</ HEAD>
<BODY>
<BR>
<B> Por favor, diga-nos o seu nome: </ B> <INPUT NAME = TYPE”username” =”text”
CONSTRUÇÃO DO REGISTRO E Página de configuração Capítulo 29 689
<INPUT NAME =”siteRadio” TYPE =”radio” VALUE =”Welcome”> Bem-vindo Page <P> <INPUT NAME
=”siteRadio” TYPE =”radio” VALUE =”Arquivo”> Relatório Arquivo de <P> <INPUT NAME =”siteRadio” TYPE
VALUE =” rosa”> Pink and White </ SELECT> </ P> <BR>
resumo
Neste capítulo, você aprendeu a coletar dados de visitantes ao seu site através de um formulário HTML. Você também
aprendeu a trabalhar com vários elementos de formulário, bem como utilizar VBScript para validar conteúdo do formulário
e garantir que os visitantes fornecer todos os dados necessários. Depois que os dados válidos são coletados, você pode
guardá-lo para futuras biscoitos de referência usando. Você pode fazer isso através da construção de uma cadeia de
dados que inclui uma data de expiração e, em seguida, armazenar essa seqüência no computador do visitante.
Esta página foi intencionalmente esquerda em branco
Capítulo 30
Convertendo relatórios
em páginas HTML
Eu n Neste capítulo, Alexander vai começar a desenvolver o primeiro dos VBScripts WSH para o projeto
de relatórios Web Order / Inventário. O objetivo deste VBScript é criar uma página HTML com base no
conteúdo do relatório de síntese consolidada do dia atual. Ele irá realizar esta tarefa, abrindo a versão
baseada em texto do arquivo de relatório, lê-lo, e usar o seu conteúdo para criar um arquivo de saída que
inclui tags HTML incorporadas. O arquivo de saída será então salva como um arquivo HTML.
Dim FsoObj
<HEAD>”) strReportFile.WriteLine (“
strReportFile.WriteLine ( “<BODY>”)
strReportFile.Close ()
Quando executado, este exemplo cria um arquivo HTML chamado test.html que tem o seguinte
conteúdo:
<HTML>
<HEAD>
CONVERSÃO relatórios a HTML PÁGINAS Capítulo 30 693
A fim de criar a versão HTML do relatório de síntese consolidada, o VBScript terá que fazer uso
substancial de funções de análise, a fim de identificar e extrair elementos de relatório individuais.
Nos capítulos anteriores, esta foi realizada utilizando funções VBScript. No entanto, como você vai
ver, os requisitos de análise mais complexas exigidas por este script também exigem o uso do RegExp
objecto e as suas propriedades.
NOTA
O último elemento de script para ser usado em script deste capítulo é o VBScript
Ubound () objeto. Esta função recupera o elemento limite superior para a matriz especificada e será
utilizado em conjunto com o RegExp objeto para processar uma parte do relatório de síntese
consolidada do dia atual.
NOTA
A seção de inicialização
Do script Inicialização Seção, mostrado abaixo, começa por exigindo interpretação variável rigorosa. Em
seguida, ele define todas as variáveis usadas globalmente pelo script. Ele também define variáveis que
serão usadas para representar o WshShell
e FileSystemObject objectos, bem como uma matriz chamada astrErrors que será usado para armazenar o
conteúdo de cada linha do relatório. Em seguida um conjunto de constantes é definida. Finalmente, uma
variável chamada intReturnCode é definido igual a zero. Esta variável representa o valor de código de
retorno que o script vai passar de volta para o script que executa-lo (o script de agendamento). Definir a
variável igual a zero no Seção de inicialização garante que a menos que o valor da variável é alterado
explicitamente durante a execução do script, um código de retorno zero será retornado.
Option Explicit
FsoObj Dim
CreateObject ( “Scripting.FileSystemObject”)
cForWriting = 2 const
cForAppending = 8
intReturnCode = 0
GetRegistrySettings () ()
AssembleFileNames
Em seguida, o arquivo de relatório de síntese consolidada atual está aberto para leitura e um arquivo HTML é criado,
O próximo conjunto de declarações escreve uma mensagem no log de eventos do aplicativo do Windows se o registo de
Da mesma forma, as próximas várias declarações executar apenas se o script está sendo executado manualmente no
modo de depuração.
As próximas três instruções configurar um A seguir loop que salta através das diferentes posições do
relatório sumário consolidada diária, tal como representado pela strSourceFile.
Para i = 0 a 8
strSourceFile.SkipLine Seguinte
As próximas várias declarações chamar sub-rotinas que escrever coleções de tags HTML para o arquivo.
WriteHeader ()
BeginTableDefinition ()
WriteTableHeader ( “Erros:”)
WriteErrorsColHeadings ()
696 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
Em seguida, uma Fazer ... Até laço é utilizado, como mostrado abaixo, a iteração através da versão de
texto do relatório até que a primeira linha em branco é encontrado (a fim da erros: seção do relatório é
atingido). Após a cada iteração do loop, uma linha do relatório é lido e atribuído a uma variável chamada strSourceLine.
O comprimento da corda atribuído a strSourceLine é então verificado para ver se é zero (em branco). Se
for, o ciclo termina; caso contrário, os conteúdos da cadeia são carregados em uma matriz usando o Dividido()
e a função WriteErrorsData () sub-rotina é chamada. Esta sub-rotina usa o conteúdo da matriz para
escrever uma linha de dados para a página de HTML.
Do Until strSourceFile.AtEndOfStream
(strSourceLine) = 0 Then
Sair fazer
qualquer outra
If loop
NOTA
Observe o uso do Dividido() função no conjunto anterior de declarações. Ele especifica um terceiro parâmetro
com um valor de 5. Este parâmetro limita o tamanho da matriz criada pelo Dividido() função de cinco elementos.
Se você comparar esta declaração para a saída exibida na página HTML criado por este script, você vai achar
que isso corresponda contra as cinco colunas de dados exibidos no relatório, com a quinta coluna que exibe
uma string representando todos os dados restantes de um linha do relatório após a quinta palavra (ou seja, a
descrição).
EndTableDefinition ()
O restante das declarações no Seção de Processamento Principal escrever as seções restantes do arquivo
HTML, repetindo a mesma série básica de passos que você viu até agora, fazendo os ajustes
necessários para especificar marcadores apropriados de fim de seção e para imprimir os títulos de
relatório adequados.
CONVERSÃO relatórios a HTML PÁGINAS Capítulo 30 697
BeginTableDefinition ()
WriteTableSubHeader ( “Governo”)
WriteSalesAndReturnsColHeadings ()
Para i = 0 a 7
strSourceFile.SkipLine Seguinte
Do Until strSourceFile.AtEndOfStream
Saia Do
End If
WriteSalesAndReturnsColHeadings ()
Para i = 0 a 2
strSourceFile.SkipLine Seguinte
Do Until strSourceFile.AtEndOfStream
Saia Do
End If
EndTableDefinition ()
BeginTableDefinition ()
WriteTableSubHeader ( “Governo”)
WriteSalesAndReturnsColHeadings ()
Para i = 0 a 6
strSourceFile.SkipLine Seguinte
Do Until strSourceFile.AtEndOfStream
Saia Do
End If
WriteSalesAndReturnsColHeadings ()
Para i = 0 a 2
strSourceFile.SkipLine Seguinte
Do Until strSourceFile.AtEndOfStream
Saia Do
End If
WriteSalesAndReturnsData () End If
loop
EndTableDefinition ()
BeginTableDefinition ()
WriteProductionColHeadings ()
Para i = 0 a 4
strSourceFile.SkipLine Seguinte
A última seção do relatório diário resumo consolidado a ser processada pelo script é o Resumo
produção diária seção. Como antes, uma linha de dados de cada linha dentro desta seção é lido
em strSourceLine. No entanto, ao invés de usar o Dividido() função para analisar o conteúdo da
linha de relatório, o
ParseProductionData () sub-rotina é executada. A razão para esta mudança é que a informação
descritiva dentro desta última seção do relatório está localizado no meio de cada linha e não tem um
comprimento previsível. Portanto, ele não pode simplesmente ser dividida em uma matriz e ser
escrita para a página HTML de lá. lógica de análise mais complicada é necessária. Alexander
desenvolveu o
ParseProductionData () sub-rotina para analisar os dados localizados em cada linha desta seção do
relatório usando o RegExp objecto e as suas propriedades e métodos.
Do Until strSourceFile.AtEndOfStream
strSourceLine = strSourceFile.ReadLine ()
loop
strSourceFile.Close ()
WriteFooter ()
TerminateScript (intReturnCode)
Os GetRegistrySettings () subrotina
Como você viu em scripts anteriores, o GetRegistrySettings () sub-rotina, mostrado abaixo, é responsável por
recuperar as definições de configuração do script de valores armazenados no registro do Windows. No caso em
que ocorre um erro na recuperação de qualquer uma das definições de configuração do script, uma mensagem é
enviada para o log de eventos do aplicativo Windows e um valor de 4 ( representando um código de retorno) é
passado para o
TerminateScript () sub-rotina.
GetRegistrySettings sub ()
strEventLog = _
WshShl.RegRead ( “HKLM \ Software \ Intuit \ VBScripts \ WebRpting \ EventLogging”) Se Err <> 0 Then
“Para strEventLog. RC = 4” )
“Para strDebug. RC = 4” )
strOutputFile = _
WshShl.RegRead ( “HKLM \ Software \ Intuit \ VBScripts \ WebRpting \ HTMLFolder”) Se Err <> 0 Then
“Para strOutputFile. RC = 4” )
strConsolTxtRpt = _
WshShl.RegRead ( “HKLM \ Software \ Intuit \ VBScripts \ WebRpting \ ConSolRptLoc”) Se Err <> 0 Then
“Para strConsolTxtRpt. RC = 4” )
“StrEventLog” & vbTab & “=” & vbTab & strEventLog & vbCrLf & _ “strDebug” & vbTab & vbTab & “=”
& vbTab & strDebug & vbCrLf & _ “strOutputFile” & vbTab & “=” & vbTab & strOutputFile & vbCrLf & _
“strConsolTxtRpt” & vbTab & “=” & vbTab & strConsolTxtRpt & _ vbCrLf, cTitleBarMsg End If
End Sub
702 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
Os AssembleFileNames () subrotina
o AssembleFileNames () sub-rotina, mostrado abaixo, é responsável por determinar o nome do
relatório de síntese consolidada do dia atual, bem como para nomear a nova versão HTML do
relatório.
AssembleFileNames sub ()
“_ConsolSumRpt.txt”
“_ConsolSumRpt.html”
End Sub
O WriteHeader () subrotina
o WriteHeader () sub-rotina, mostrado abaixo, é responsável por escrever um conjunto de tags HTML
no início da página HTML. Estas tags HTML definir elementos básicos da página e especificar o tipo
de fonte e tamanho, bem como a maneira pela qual a fronteira de cada tabela no script deve ser
formatado.
Sub WriteHeader ()
strReportFile.WriteLine ( “<html>”)
strReportFile.WriteLine ( “<head>”)
strReportFile.WriteLine ( “ <Style>”)
O BeginTableDefinition () subrotina
o BeginTableDefinition () sub-rotina, mostrada abaixo, é composto de uma única instrução. Quando chamado,
ele escreve uma abertura < TABELA> tag para a página HTML.
Sub BeginTableDefinition ()
O WriteTableHeader () subrotina
o WriteTableHeader () sub-rotina, mostrado abaixo, é responsável por tags HTML escrita que
especificam o formato de uma tabela na página HTML.
strReportFile.WriteLine ( “ <Tr>”)
“Color: amarelo;">”)
End Sub
O WriteTableSubHeader () subrotina
o WriteTableSubHeader () sub-rotina, mostrado na página seguinte, escreve uma seqüência de texto que
representa um cabeçalho seção no relatório. O texto que está escrito é passado para a sub-rotina como um
argumento.
704 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
strReportFile.WriteLine ( “ <Tr>”)
End Sub
Os WriteErrorsColHeadings () subrotina
o WriteErrorsColHeadings () sub-rotina, mostrado abaixo, escreve os cabeçalhos das colunas
para a erros: seção do relatório.
WriteErrorsColHeadings sub ()
strReportFile.WriteLine ( “ <Tr>”)
End Sub
O WriteErrorsData () subrotina
o WriteErrorsData () sub-rotina, mostrado abaixo, é responsável por escrever uma linha de dados
para o erros: seção da página HTML. Ele realiza esta tarefa referenciando os elementos
armazenados no astrErrors arrays e gravá-los no arquivo HTML.
Sub WriteErrorsData ()
strReportFile.WriteLine ( “ <Tr>”)
End Sub
CONVERSÃO relatórios a HTML PÁGINAS Capítulo 30 705
Os WriteSalesAndReturnsColHeadings () subrotina
o WriteSalesAndReturnsColHeadings () sub-rotina, mostrado abaixo, é chamado para escrever os títulos
das colunas, tanto para o resumo de vendas e devoluções seções do relatório.
WriteSalesAndReturnsColHeadings sub ()
strReportFile.WriteLine ( “ <Tr>”)
End Sub
Os WriteProductionColHeadings () subrotina
o WriteProductionColHeadings () sub-rotina, mostrado abaixo, é chamado para escrever os cabeçalhos
das colunas para a seção Produção do relatório.
WriteProductionColHeadings sub ()
strReportFile.WriteLine ( “ <Tr>”)
End Sub
O WriteSalesAndReturnsData () subrotina
o WriteSalesAndReturnsData () sub-rotina, mostrado abaixo, escreve uma linha de dados para ambas as
vendas e devoluções seções do relatório.
Sub WriteSalesAndReturnsData ()
strReportFile.WriteLine ( “ <Tr>”)
End Sub
706 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
O WriteProductionData () subrotina
o WriteProductionData () sub-rotina, mostrado abaixo, escreve uma linha de dados na seção de
Produção do relatório.
Sub WriteProductionData ()
strReportFile.WriteLine ( “ <Tr>”)
End Sub
O EndTableDefinition () subrotina
o EndTableDefinition () sub-rotina, mostrada abaixo, é composto de uma única statement.When chamada, ele
grava o fechamento </ TABELA> etiquetas para a página HTML.
Sub EndTableDefinition ()
End Sub
O WriteFooter () subrotina
o WriteFooter () sub-rotina, mostrado abaixo, escreve o fechamento </ BODY> e
</ HTML> etiquetas para o final da página HTML.
Sub WriteFooter ()
O ParseProductionData () subrotina
o ParseProductionData () sub-rotina, mostrado na página seguinte, substitui o Dividido() função usada para
analisar o resto dos dados do relatório. Esta sub-rotina foi desenvolvido porque os dados armazenados
na seção de Produção do relatório não prestar-se bem às funções de análise embutidos VBScript. Em
vez disso, Alexander criou esta sub-rotina como um wrapper para um procedimento que utiliza as
propriedades associadas com o RegExp objeto.
CONVERSÃO relatórios a HTML PÁGINAS Capítulo 30 707
A sub-rotina começa definindo as variáveis locais para seu próprio uso. Em seguida ele instancia uma instância da RegExp
objeto. Em seguida, ele define o RegExp objeto de padronizar
propriedade, atribuindo-lhe um valor de “+”, que, traduzido aproximadamente, diz para olhar para todas as
instâncias de um ou mais espaços consecutivos. Em seguida, o valor do RexExp objeto de Global propriedade é
definida igual a Verdade, que faz com que a busca padrão para aplicar a todas as ocorrências correspondentes na
cadeia de procura. o Substituir() método é então usado para substituir quaisquer casos de um ou mais espaços no
interior da cadeia transmitida à sub-rotina com um único espaço. Uma vez que todos os espaços em excesso
foram removidos, o Dividido() função é usada para carregar o conteúdo da cadeia numa matriz denominada astrErrors.
UMA Para cada laço é então usado para fazer uma iteração embora a matriz. Em sua primeira iteração, ele
ignora todo o processamento porque o valor de astrErrors não é maior do que um (isto é igual a 0) e astrErrors
(0) representa a primeira coluna de dados na seção de Produção. Da mesma forma, a segunda iteração do
laço não resulta em qualquer processamento. A partir do terceiro para o segundo-a-última iteração, o loop
cria uma única seqüência e atribui-lo a uma variável chamada string2. Essa seqüência representa a
informação descritiva para cada linha nesta seção do relatório. O valor de
string2 é então atribuído a astrErrors (2), e o valor do último elemento do array ( astrErrors
(UBound (astrErrors))) é atribuído a astrErrors (3).
Quando esta sub-rotina termina, o astrErrors matriz é completamente carregado e pronto para ser escrito para a página
Dim regExpObj, strStrippedString, intCounter, strString2, intArrayCounter Set regExpObj = New RegExp
intCounter = 0
Se intCounter> 1 Em seguida,
End Sub
O WriteToEventLog () subrotina
o WriteToEventLog () sub-rotina, mostrado abaixo, escreve uma mensagem informativa passado para ele como um
argumento para o log de eventos do aplicativo do Windows usando o WshShell objeto de RegistrarEvento () método.
WshShl.LogEvent 4, strMessage
End Sub
O TerminateScript () subrotina
o TerminateScript () sub-rotina, mostrado abaixo, é uma versão modificada do sub-rotina que
você já viu em scripts recentes. Esta sub-rotina usa a WScript
objeto de Sair() método para terminar a execução do script e para passar um valor numérico de volta para
o script que o chamou, indicando se ou não o script de conversão HTML executado com êxito.
WScript.Quit (intRC)
End Sub
'Descrição: Este script converte a versão texto do diário' relatório de síntese consolidada para um
arquivo HTML
'************************************************* ************************
'Seção de inicialização
Option Explicit
FsoObj Dim
CreateObject ( “Scripting.FileSystemObject”)
cForWriting = 2 const
cForAppending = 8
710 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
intReturnCode = 0
GetRegistrySettings ()
AssembleFileNames ()
Para i = 0 a 8
strSourceFile.SkipLine Seguinte
WriteHeader ()
BeginTableDefinition ()
WriteTableHeader ( “Erros:”)
WriteErrorsColHeadings ()
Do Until strSourceFile.AtEndOfStream
(strSourceLine) = 0 Then
Sair Do
CONVERSÃO relatórios a HTML PÁGINAS Capítulo 30 711
Outro
If loop
EndTableDefinition ()
BeginTableDefinition ()
WriteTableSubHeader ( “Governo”)
WriteSalesAndReturnsColHeadings ()
Para i = 0 a 7
strSourceFile.SkipLine Seguinte
Do Until strSourceFile.AtEndOfStream
Saia Do
End If
WriteSalesAndReturnsColHeadings ()
Para i = 0 a 2
strSourceFile.SkipLine Seguinte
Do Until strSourceFile.AtEndOfStream
strSourceLine = strSourceFile.ReadLine ()
712 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
Saia Do
End If
EndTableDefinition ()
BeginTableDefinition ()
WriteTableSubHeader ( “Governo”)
WriteSalesAndReturnsColHeadings ()
Para i = 0 a 6
strSourceFile.SkipLine Seguinte
Do Until strSourceFile.AtEndOfStream
Saia Do
End If
WriteSalesAndReturnsColHeadings ()
Para i = 0 a 2
strSourceFile.SkipLine Seguinte
CONVERSÃO relatórios a HTML PÁGINAS Capítulo 30 713
Do Until strSourceFile.AtEndOfStream
Saia Do
End If
EndTableDefinition ()
BeginTableDefinition ()
WriteProductionColHeadings ()
Para i = 0 a 4
strSourceFile.SkipLine Seguinte
Do Until strSourceFile.AtEndOfStream
strSourceLine = strSourceFile.ReadLine ()
loop
strSourceFile.Close ()
WriteFooter ()
TerminateScript (intReturnCode)
'Secção Procedimento
GetRegistrySettings sub ()
strEventLog = _
WshShl.RegRead ( “HKLM \ Software \ Intuit \ VBScripts \ WebRpting \ EventLogging”) Se Err <> 0 Then
“Para strEventLog. RC = 4” )
strDebug = WshShl.RegRead ( “HKLM \ Software \ Intuit \ VBScripts \ WebRpting \ Debug”) Se Err <> 0 Then
“Para strDebug. RC = 4” )
strOutputFile = _
WshShl.RegRead ( “HKLM \ Software \ Intuit \ VBScripts \ WebRpting \ HTMLFolder”) Se Err <> 0 Then
“Para strOutputFile. RC = 4” )
TerminateScript (4)
CONVERSÃO relatórios a HTML PÁGINAS Capítulo 30 715
End If
End If
strConsolTxtRpt = _
WshShl.RegRead ( “HKLM \ Software \ Intuit \ VBScripts \ WebRpting \ ConSolRptLoc”) Se Err <> 0 Then
“Para strConsolTxtRpt. RC = 4” )
“StrEventLog” & vbTab & “=” & vbTab & strEventLog & vbCrLf & _ “strDebug” & vbTab & vbTab & “=”
& vbTab & strDebug & vbCrLf & _ “strOutputFile” & vbTab & “=” & vbTab & strOutputFile & vbCrLf & _
“strConsolTxtRpt” & vbTab & “=” & vbTab & strConsolTxtRpt & _ vbCrLf, cTitleBarMsg End If
End Sub
AssembleFileNames sub ()
“_ConsolSumRpt.txt”
“_ConsolSumRpt.html”
716 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
End Sub
Sub WriteHeader ()
strReportFile.WriteLine ( “<html>”)
strReportFile.WriteLine ( “<head>”)
strReportFile.WriteLine ( “ <Style>”)
Sub BeginTableDefinition ()
strReportFile.WriteLine ( “ <Tr>”)
End Sub
strReportFile.WriteLine ( “ <Tr>”)
CONVERSÃO relatórios a HTML PÁGINAS Capítulo 30 717
End Sub
WriteErrorsColHeadings sub ()
strReportFile.WriteLine ( “ <Tr>”)
End Sub
Sub WriteErrorsData ()
strReportFile.WriteLine ( “ <Tr>”)
End Sub
WriteSalesAndReturnsColHeadings sub ()
strReportFile.WriteLine ( “ <Tr>”)
End Sub
WriteProductionColHeadings sub ()
strReportFile.WriteLine ( “ <Tr>”)
End Sub
Sub WriteSalesAndReturnsData ()
strReportFile.WriteLine ( “ <Tr>”)
End Sub
Sub WriteProductionData ()
strReportFile.WriteLine ( “ <Tr>”)
End Sub
Sub EndTableDefinition ()
End Sub
Sub WriteFooter ()
Dim regExpObj, strStrippedString, intCounter, strString2, intArrayCounter Set regExpObj = New RegExp
intCounter = 0
Se intCounter> 1 Em seguida,
End Sub
WshShl.LogEvent 4, strMessage
End Sub
WScript.Quit (intRC)
End Sub
720 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
Quando executado, o script de conversão HTML lê e processa relatório de síntese consolidada do dia
atual e cria um arquivo HTML correspondente. O seguinte arquivo HTML mostra a saída de um tal
arquivo criado pela execução de um dia típico de deste script.
<Html>
<Head>
11pt;
<body>
<Tr>
<Td colspan = '5' style = "background: roxo; Cor: Amarelo; "> <center> <b> Erros: </
<b> </ td> <td> <b> Svr <b> </ td> <td> <b>
<Td> Não é possível acessar leitor de cartão no dispositivo wkstn442 </ td> </ tr> <tr>
<Td> No inventário para parte # 58694 - incapaz de preencher ordem 39312 </ td> </ tr> <tr>
<Td> Não é possível imprimir rpt resumo sobre mestre impressor (sem papel) </ td> </ tr> <tr>
<Td> Não é possível acessar leitor de cartão no dispositivo wkstn442 </ td> </ tr> <tr>
<Td> No inventário para parte # 58694 - incapaz de preencher ordem 39312 </ td> </ tr> <tr>
<Td> Não é possível imprimir rpt resumo sobre mestre impressor (sem papel) </ td> </ tr> </ table> <p>
722 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
<Tr>
<Td colspan = '5' style = "background: roxo; Cor: Amarelo; "> <center> <b> Resumo
de Vendas: </ b> </ center> </ td> </ tr> <tr>
<Td> <b> Part # </ b> </ td> <td> <b> Qtde
</ b> </ td> <td> <b> Descrição </ b> </ td>
19 </ td>
<tr>
<tr>
15 </ td>
35 </ td>
</ Tr>
<tr>
<tr>
<Td> <b> Part # </ b> </ td> <td> <b> Qtde
</ b> </ td> <td> <b> Descrição </ b> </ td>
19 </ td>
<tr>
<tr>
15 </ td>
35 </ td>
table> <p>
<Tr>
724 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
<Td colspan = '5' style = "background: roxo; Cor: Amarelo; "> <center> <b> Retorna
Sumário: </ b> </ center> </ td> </ tr> <tr>
<Td> <b> Part # </ b> </ td> <td> <b> Qtde
</ b> </ td> <td> <b> Descrição </ b> </ td>
<tr>
<tr>
<tr>
CONVERSÃO relatórios a HTML PÁGINAS Capítulo 30 725
<tr>
<Td> <b> Part # </ b> </ td> <td> <b> Qtde
</ b> </ td> <td> <b> Descrição </ b> </ td>
<tr>
<tr>
table> <p>
<Tr>
<Td colspan = '5' style = "background: roxo; Cor: Amarelo; "> <center> <b> Resumo
</ Tr>
<tr>
<Td> <b> Part # </ b> </ td> <td> <b> Qtde
</ b> </ td> <td> <b> Descrição </ b> </ td>
<td> < b> Em armazém </ b> </ td> </ tr> <tr>
20 </ td>
4 </ td>
10 </ td>
40 </ td>
1 </ td>
3 </ td>
3 </ td>
A Figura 30.1 mostra como o relatório de síntese consolidada diária vai olhar quando visto como
uma página HTML exibida no Relatório site Order / Inventário.
728 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
resumo
Neste capítulo, você observado como Alexander criou um script de conversão relatório text-to-HTML.
Ao criar esse script, você aprendeu como inserir tags HTML dentro de arquivos de saída VBScript
gerados, a fim de automatizar a apresentação dos dados do pedido / inventário no site Order /
Inventário. Este capítulo também apresenta-lhe a oportunidade de trabalhar com o RegExp objecto e as
suas propriedades e métodos.
Capítulo 31
Construir a página de
relatório Arquivo
Eu n Neste capítulo, Alexander vai criar um VBScript executados-WSH que cria uma página HTML
composta de links para todos os relatórios de síntese consolidadas localizadas em uma pasta de arquivo
relatório no servidor Web Intuit. Os links de relatório serão organizados e exibidos por mês. Esta página
também exibirá um segundo conjunto de links que fornecem os visitantes com a capacidade de ver e baixar
cópias das versões do Microsoft Word nos relatórios de síntese consolidadas.
ObjectReference é a variável que representa um exemplo do Objeto FileSystem. Nome da pasta especifica
o nome da pasta alvo.
NOTA
Se a pasta especificada não existe, o GetFolder () método retornará um erro. Considere o uso do FolderExists
() método para ver primeiro se existe a pasta antes de tentar usar o GetFolder () método.
A referência definido pela GetFolder () método estabelece um Pasta objeto. Uma vez estabelecido, o
script pode acessar todas as propriedades pertencentes à
Pasta objeto. Por exemplo, as seguintes declarações do VBScript demonstrar como
Construir a página RELATÓRIO DE ARQUIVO Capítulo 31 731
para usar o GetFolder () método para estabelecer uma referência para o C: \ Temp pasta no computador
local.
FsoObj.GetFolder ( “c: \ Temp”) MsgBox “Pasta“e strTargetFile & “foi acessado pela última vez
em“& _
strTargetFile.DateLastAccessed
FIGURA 31.1 usando o Pasta propriedades do objeto para acessar informações sobre uma pasta
Uma vez o Pasta objeto tenha sido estabelecida, você pode usar o seu arquivos propriedade para recuperar um Coleção
arquivos. Essa coleção será composta de todos os arquivos que residem dentro da pasta especificada. Por
exemplo, as seguintes declarações do VBScript demonstrar como a lista de todos os arquivos localizados dentro
da C: \ Temp pasta encontrado no computador local.
strTargetFolder.Files
MsgBox strDisplayList
o Coleção arquivos ( representado por strFileList) é estabelecida, atribuindo o valor armazenado no Pasta
objeto de arquivos alojamento (representado por
strTargetFolder.Files) a uma variável. Uma vez estabelecida, a For Each ... Next loop é configurado para
percorrer a coleção de arquivos e construir uma seqüência de exibição. Figura 31.2 demonstra a
saída produzido por este exemplo.
732 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
FIGURA 31.2 Por looping através do Arquivos de Coleta, você pode programaticamente processar todos os arquivos armazenados dentro de uma
pasta especificada
Alexander planeja usar o GetFolder () método para criar uma referência para a pasta no servidor Web onde
as versões em HTML dos relatórios resumidos consolidados residem. Ele, então, usar o Pasta objeto de arquivos
propriedade para estabelecer uma Coleção arquivos para a pasta. Uma vez que a coleção é criada, ele pode
criar um loop e usá-lo para processar cada um dos arquivos na pasta (adicionando um link para a página do
Relatório de Arquivo para cada arquivo na coleção).
de Arquivo. Tal como acontece com o seu script anterior, ele pretende seguir o modelo organizativo desenvolvido por
Molly. Isso irá incluir o fornecimento de suporte para um modo de depuração e para gravar mensagens no log de
eventos do aplicativo Windows. Alexander também irá adicionar a lógica que fornece um código de script retorno.
A seção de inicialização
Do script Inicialização Seção, mostrado abaixo, através da aplicação começa a interpretação restritiva
da nomenclatura variável. Em seguida, ele define todas as variáveis usadas globalmente em todo o
script eo Seção de Processamento principal, incluindo variáveis que representam configuração
configurações-que irá ser extraída a partir do registo e a variáveis que representam FileSystemObject,
WshNetwork,
e WshShell objetos.
Option Explicit
cForWriting = 2 const
cForAppending = 8
( “WScript.Shell”)
intReturnCode = 0 = 0
intMonthStore
HTML.
funcionar e irá identificar quando as principais atividades estão ocorrendo se o script é executado no modo de
depuração. Da mesma forma, se o registro de eventos está ativada, mensagens informativas serão registradas no log
GetRegistrySettings ()
cForWriting, “True”)
WriteHeader ()
WriteH3Heading ()
= int1stDash - 1
(strWordList.Name, intYearLoc - 4, 4)
MonthName (intMonth)
strArchiveFile.WriteLine ( “<B> <P>” & strMonth & ““& dtmYear & ‘</ B> <P>’) End If
Construir a página RELATÓRIO DE ARQUIVO Capítulo 31 735
“>” & StrWordList.Name & “</A>” & “-“& “<A HREF=../" & "\Rpts\" & _ strWordFileName & "> (Baixar
Próximo
DisconnectNetworkDrive ( “V:”)
WriteFooter ()
TerminateScript (intReturnCode)
Neste ponto, escrevendo a nova página HTML pode começar. Primeiro, o WriteHeader ()
sub-rotina é chamada. Esta sub-rotina escreve set de abertura da página HTML de tags HTML. Então o WriteH3Heading
() sub-rotina é chamado para escrever cabeçalho principal da página. UMA For Each ... Next loop é então
usado para processar os arquivos que residem na criado anteriormente Coleção arquivos.
O ciclo começa, filtrando quaisquer arquivos que têm uma. doutor extensão de arquivo, deixando apenas os arquivos
mês com o qual o arquivo está associado. As demonstrações encontrar o local da primeira ocorrência
do caractere traço dentro do nome do arquivo, subtrair 1, e depois usar o Esquerda() função para
definir intMonth igual ao valor de um ou de dois caracteres mês. O valor desta variável é então
comparado com o valor de intMonthStore ( que é definido igual a zero quando o script inicia sua
primeira execução). Se os valores forem diferentes, o nome do mês e ano em que o mês ocorre são
escritos (em negrito) para a página de HTML como um título de seção. Além disso, o valor de intMonth é
definido igual ao valor de intMonthStore, garantindo assim que um novo cabeçalho mês-ano será
escrito se o loop depois processa um arquivo HTML que foi criado em um mês diferente. Em seguida,
o Substituir() função é usada para atribuir o nome do correspondente arquivo de relatório Palavra da
página HTML eo WriteLine () método é usado para escrever uma string. A primeira parte desta cadeia
representa um link para o arquivo HTML com o qual o link está associado. A sua localização é
especificado em relação à localização do script. A segunda parte da cadeia representa um link para a
versão do Word associado do relatório arquivado. o Seção de Processamento Principal termina-se por
chamar a DisconnectNetworkDrive () sub-rotina, que quebra a conexão de unidade mapeada que o
script criado para recuperar a Coleção arquivos. Em seguida, o WriteFooter () sub-rotina é chamada, a
fim de gravar as marcas de fechamento HTML da página HTML, e em seguida o TerminateScript () procedimento
é executado.
Os GetRegistrySettings () subrotina
Tal como acontece com script anterior de Alexandre, o GetRegistrySettings () sub-rotina, mostrado abaixo,
recupera as definições de configuração do script do registro do Windows.
GetRegistrySettings sub ()
strEventLog = _
WshShl.RegRead ( “HKLM \ Software \ Intuit \ VBScripts \ WebRpting \ EventLogging”) Se Err <> 0 Then
4’)
Construir a página RELATÓRIO DE ARQUIVO Capítulo 31 737
End If
strDebug = WshShl.RegRead ( “HKLM \ Software \ Intuit \ VBScripts \ WebRpting \ Debug”) Se Err <> 0 Then
“Para strDebug. RC = 4” )
strHTMLFolder = _
WshShl.RegRead ( “HKLM \ Software \ Intuit \ VBScripts \ WebRpting \ HTMLFolder”) Se Err <> 0 Then
“Para strHTMLFolder. RC = 4” )
strSharedRptFolder = _
WshShl.RegRead ( “HKLM \ Software \ Intuit \ VBScripts \ WebRpting \ Share_Rpts”) Se Err <> 0 Then
“Para strSharedRptFolder. RC = 4” )
strWebSvrName = _
WshShl.RegRead ( “HKLM \ Software \ Intuit \ VBScripts \ WebRpting \ WebServer”) Se Err <> 0 Then
“Para strWebSvrName. RC = 4” )
“StrEventLog” & vbTab & “=” & vbTab & strEventLog & vbCrLf & _ “strDebug” & vbTab & vbTab & “=”
& vbTab & strDebug & vbCrLf & _ “strHTMLFolder” & vbTab & “=” & vbTab & strHTMLFolder & vbCrLf
& _ “strSharedRptFolder” & vbTab & “=” & vbTab & strSharedRptFolder & _ vbCrLf &
“strWebSvrName” & vbTab & “=” & vbTab & strWebSvrName & _ vbCrLf, cTitleBarMsg End If
End Sub
O WriteHeader () subrotina
o WriteHeader () sub-rotina, mostrado abaixo, é responsável por escrever tags HTML abertas da página
HTML e para especificar uma abertura < FONT> tag, que especifica o tipo de letra Correio. Esta fonte foi
escolhido porque ele imprime cada personagem usando um tamanho de caráter consistente, o que vai
ajudar a prever uma apresentação consistente de dados do relatório.
Sub WriteHeader ()
strArchiveFile.WriteLine ( “<HTML>”)
strArchiveFile.WriteLine ( “<HEAD>”)
strArchiveFile.WriteLine ( “<BODY>”)
End Sub
O WriteH3Heading () subrotina
o WriteH3Heading () sub-rotina, mostrado na página seguinte, escreve um
<H3> nível de HTML de ir para a página HTML, o que representa o título da página.
Construir a página RELATÓRIO DE ARQUIVO Capítulo 31 739
Sub WriteH3Heading ()
strArchiveFile.WriteLine ( “<H3> Order / Inventário Relatórios Arquivo </ H3> <P>”) End Sub
O WriteFooter () subrotina
o WriteFooter () sub-rotina, mostrado abaixo, escreve tags de fechamento HTML da página HTML, incluindo
um fechamento </ FONT> tag.
Sub WriteFooter ()
O MapNetworkDrive () Função
o MapNetworkDrive () função, mostrada abaixo, é responsável por estabelecer uma conexão de rede para a
pasta compartilhada no servidor Web corporativo, onde as cópias arquivadas das versões HTML dos
relatórios resumidos consolidadas são armazenados.
Fim se
WshNtk.RemoveNetworkDrive strLetter
Fim se
Outro
WriteToEventLog “roteiro Relatório Resumido Collection - Não é possível mapear“& _ “para a rede drive“e
strDrive End If
End Function
A letra da unidade a ser usado para configurar a conexão de rede e o caminho para a pasta remota são
passados para a função como argumentos. o FileSystemObject
objeto de DriveExists () método é usado para determinar se ou não a unidade remota estiver disponível. Se
não estiver disponível, o TerminateScript () sub-rotina é chamada e passou um valor de 4, o que representa
código de retorno do script. Se a unidade de rede está acessível, a função próxima verificações para
certificar-se de que a letra da unidade especificada não estiver em uso. Se for, a sua ligação é desligada
utilizando o
RemoveNetworkDrive () método e a conexão à pasta compartilhada no servidor Web é criado
usando o MapNetworkDrive () método.
O DisconnectNetworkDrive () subrotina
o DisconnectNetworkDrive () sub-rotina, mostrado na página seguinte, desconecta uma conexão
unidade de rede usando o WshNetwork objeto de RemoveNetworkDrive () método. A ligação a ser
terminada é especificada por uma variável chamada strDriveLetter, que é passado para a sub-rotina
como um argumento.
Construir a página RELATÓRIO DE ARQUIVO Capítulo 31 741
Then
cTitleBarMsg End
If End If
End Sub
O WriteToEventLog () subrotina
o WriteToEventLog () sub-rotina, mostrado abaixo, escreve uma mensagem que é passada para ele como um
argumento para o log de eventos do aplicativo Windows.
WshShl.LogEvent 4, strMessage
End Sub
O TerminateScript () subrotina
o TerminateScript () sub-rotina, mostrado na página seguinte, utiliza o
WScript objeto de Sair() método para parar a execução do script. Além disso, ele passa um código de script de retorno
(que indica se ou não o script foi executado com êxito) de volta ao seu script de chamada. Este código de retorno é
WScript.Quit (intRC)
End Sub
corporativo a fim de recolher uma lista dos arquivos de relatório de síntese consolidadas disponíveis atualmente HTML.
Ele então constrói uma página HTML através da criação de um link para cada arquivo que se encontra. Um segundo
conjunto de ligações é adicionado para as versões do Word dos relatórios, permitindo aos visitantes visualizar e
'Descrição: Este script cria uma página HTML que fornece uma lista de' links para relatórios consolidados
'************************************************* ************************
'Seção de inicialização
Option Explicit
cForWriting = 2 const
cForAppending = 8
( “WScript.Shell”)
intReturnCode = 0 = 0
intMonthStore
GetRegistrySettings ()
cForWriting, “True”)
WriteHeader ()
744 projeto 4 Comunicação de dados APLICAÇÃO RESUMO ATRAVÉS DA WEB
WriteH3Heading ()
= int1stDash - 1
(strWordList.Name, intYearLoc - 4, 4)
MonthName (intMonth)
strArchiveFile.WriteLine ( “<B> <P>” & strMonth & ““& dtmYear & ‘</ B> <P>’) End If
“>” & StrWordList.Name & “</A>” & “-“& “<A HREF=../" & "\Rpts\" & _ strWordFileName & "> (Baixar
Próximo
DisconnectNetworkDrive ( “V:”)
WriteFooter ()
Fim se
TerminateScript (intReturnCode)
'Secção Procedimento
GetRegistrySettings sub ()
strEventLog = _
WshShl.RegRead ( “HKLM \ Software \ Intuit \ VBScripts \ WebRpting \ EventLogging”) Se Err <> 0 Then
“Para strEventLog. RC = 4” )
strDebug = WshShl.RegRead ( “HKLM \ Software \ Intuit \ VBScripts \ WebRpting \ Debug”) Se Err <> 0 Then
“Para strDebug. RC = 4” )
strHTMLFolder = _
WshShl.RegRead ( “HKLM \ Software \ Intuit \ VBScripts \ WebRpting \ HTMLFolder”) Se Err <> 0 Then
“Para strHTMLFolder. RC = 4” )
Fim se
strSharedRptFolder = _
WshShl.RegRead ( “HKLM \ Software \ Intuit \ VBScripts \ WebRpting \ Share_Rpts”) Se Err <> 0 Then
“Para strSharedRptFolder. RC = 4” )
strWebSvrName = _
WshShl.RegRead ( “HKLM \ Software \ Intuit \ VBScripts \ WebRpting \ WebServer”) Se Err <> 0 Then
“Para strWebSvrName. RC = 4” )
“StrEventLog” & vbTab & “=” & vbTab & strEventLog & vbCrLf & _ “strDebug” & vbTab & vbTab & “=”
& vbTab & strDebug & vbCrLf & _ “strHTMLFolder” & vbTab & “=” & vbTab & strHTMLFolder & vbCrLf
& _ “strSharedRptFolder” & vbTab & “=” & vbTab & strSharedRptFolder & _ vbCrLf &
“strWebSvrName” & vbTab & “=” & vbTab & strWebSvrName & _ vbCrLf, cTitleBarMsg End If
End Sub
Sub WriteHeader ()
strArchiveFile.WriteLine ( “<HTML>”)
strArchiveFile.WriteLine ( “<HEAD>”)