Montando Help

<< Click to Display Table of Contents >>

Navigation:  Sistemas > Gestor >

Montando Help

Previous pageReturn to chapter overviewNext page

Pessoal o sistema de help do Gestor sofreu uma pequena alteração. Agora ao invés de ser um .chm local, o help será exatamente o mesmo que está on-line (html).

Este tópico vai lhe ensinar como ele funciona e mais importante: como fazer seus helps funcionar.

 

Preparando o help

 

Para funcionar corretamente você deve prestar atenção a uma regrinha muito simples. O nome do help deve ser o nome da classe do form.

Exemplo: para fazer o help da tela de receber você deve colocar o nome dele conforme aparece no object-inspector:

 

 

Com o nome da classe (neste exemplo TCadastroReceberForm) você deve editar seu help no Help & Manual:

Feito isto, ao gerar o help html, o nome do arquivo será tcadastroreceberform.htm

Este nome é usado pelo Gestor para encontrar o respectivo help.

 

Como funciona

 

O help local terá os mesmos arquivos gerados pelo Help & Manual para web, (html, js, jpeg, etc).

Para facilitar a manutenção e atualização dele, sempre estará no servidor como subpasta chamada help - pasta esta que será atualizada pelo próprio Gestor.

 

 

Caso o Gestor ainda não possuir a pasta Help, ela será criada de duas formas: ao pressionar F1 em qualquer tela, ou ao solicitar um atualização manual.

 

No Gestor

 

Ao pressionar F1 em uma tela, o sistema irá procurar na pasta Help/html no servidor o arquivo com mesmo nome da classe + ".htm".

Por exemplo, imagine que o usuário está editando bairros no cadastro, ele pressiona F1:

 

 

1. Ao pressionar F1, o sistema irá procurar no servidor o arquivo:

/servidor/pasta_do_gestor/help/html/tcadastrobairroform.htm

 

2. Se ele não achar este arquivo, irá procurar um arquivo de help compactado:

/servidor/pasta_do_gestor/help/help.zip

Se encontrar o arquivo compactado, irá descompactar em uma subpasta chamada html e voltará ao passo 1.

 

3. Caso não exista o help.zip o sistema irá perguntar ao usuário se quer baixar o help da página da Market:

 

 

Se usuário disser sim, o sistema irá conectar em

ftp.market.com.br, depois entrará em /www/help e baixará o arquivo help.zip

Voltará então para o passo 2.

 

Mesmo assim, se depois de baixar e atualizar o help o arquivo para o tópico solicitado não for encontrado, a mensagem é apresentada:

 

 

Se for encontrado, o help será exibido no navegador padrão.

 

Atualizando o help manualmente

 

Para atualizar o help manualmente você deve usar o menu:

 

Ajuda -> Ajuda -> Atualizar a ajuda local

 

Na tela apresentada o sistema irá pegar a versão do help on-line e versão do help local para exibir em tela:

 

 

Ao pressionar Atualizar o sistema irá baixar o arquivo help.zip de ftp.market.com.br/www/help e vai descompactar no pasta /servidor/pasta_gestor/help/html

Se a versão local e versão on-line forem a mesma, o sistema perguntará se realmente quer atualizar:

 

 

Local onde o sistema pega a versão local (arquivo texto):

/servidor/pasta_gestor/help/html/help.ver 

 

Local onde o sistema pega a versão on-line:

/www/help/help.ver

 

Criando âncoras para itens específicos

 

Algumas telas mais complexas com muitas abas, ou vários campos geram help muito grande. Neste caso ficaria muito complicado o usuário ter que ficar procurando onde está o subtópico que trata daquele campo específico. Um exemplo é a tela de parâmetros, ela possui uma série de abas e subabas.

Nestes casos você deve criar âncoras. Desta forma ao pressionar F1 sobre um campo específico, o help irá abrir a página correta e irá rolar até a âncora.

 

Como fazer isso?

Primeiro você deve no Delphi indicar o nome da âncora na propriedade Keyword:

 

 

Agora abra o Help & Manual, e na parte do help que tem informações a respeito daquele campo pressione CTRL+H ou use este botão:

 

Fazendo isso aparece uma âncora no fonte do help:

Ao pressionar F1 na tela, com o foco naquele componente, o help será aberto na posição onde está a âncora.

Isto equivale a chamar o help com um parâmetro:

 

file:///c:/Market/bin/Help/html/tcadastrocidadeform.htm#nomemunicipio

 

Chamando help manualmente para um html específico

 

Se você precisar criar um help específico e gostaria de abrir um arquivo html com nome diferente do form, pode fazer desta forma:

 

1. Crie o tópico no Help & Manual com qualquer nome (Topic ID)

2. No fonte em Delphi invoque o help desta forma:

 

uses 

  HelpHtmlGestorUnit;

 

procedure Form.ButtonClick(Sender: TObject);

begin

  THelpHtmlGestor.Exibir('topico_id''ancora_opcional'); 

end;

 

Atenção: a extensão deve ser .htm  (não html).

 

Gerando o help

 

Para gerar o help é necessário usar a opção "Publish" do Help & Manual, o help será gerado em:

i:\helps\gestor\

 

Após isso, use o utilitário GeradorHelp.exe (g:\sistemas\):

 

 

Este utilitário irá abrir todos os arquivos .htm para modificar um javascript que irá permitir o uso de âncoras.

Ele vai gerar o help.zip e também fará o upload para o ftp.market.combr/www/help

 

Observações

 

Por motivos óbvios, para poder atualizar o help é necessário que o usuário tenha acesso à Internet

Também certifique-se que o usuário conectado no Windows tenha permissão para gravar na pasta onde está o executável do Gestor (servidor)

Se suas âncoras não funcionam, provavelmente esqueceu de usar o GeradorHelp.exe para montar os html.

 

Créditos

 

O código javascript foi montado pelo Groselha

Toda idéia do help foi pensada pelo Sr. Bernardo

 

Avançado: alterações internas feitas no arquivo htm

 

<script type="text/javascript">

<!--

if (location.search.lastIndexOf("toc=0")<=0) {

  if (parent.frames.length==0) { parent.location.href="index.html?tcadastroprodutoform.htm"; }

  else { parent.quicksync('a1'); }

}

//-->

</script>

 

Troca por este:

<script type="text/javascript">

<!--

url = location.href;

posicao = url.lastIndexOf("#");

if (posicao > 0) {

   ancora = url.substring(posicao,url.length);

} else {

   ancora = "";   

}

if (location.search.lastIndexOf("toc=0")<=0) {

  if (parent.frames.length==0) { 

parent.location.href="index.html?tcadastrobairroform.htm"+ancora; }

  else { parent.quicksync('a2'); }

}

//-->

</script>