Re: elaborar um help pratico?
Enviado: 07 Ago 2008 11:05
Rochinha!
A GAS Informática resolveu esse problema, colocando o helpo de campo direto no getsys.
O conteudo do help foi colocado noma array bidirecional ...
Informações da tabela:
Informações dos campos:
... é criado a array systema, que guarda informações da tabela, dos campos e fórmulas;
- 002 é o arquivo que vai receber essas características;
- O_CAMPO é para informar que essas informações é para um campo;
- em CMD especial, usa-se a função VDBF() para que possamos, em um campos que tenha relacionamento com outro arquivo, teclar F8 para que esse arquivo seja mostrado numa consulta e possamos escoler um registro a relacionar;
- default, pode ser colocado um valor default;
- pré-validação é u mesmo que WHEN;
- e em help é colocado a mensagem a ser mostrado ao usuário, para esse campo a GAS colocou alt+F1 para acionar ou não os helps.
Fórmulas para os campos:
Aqui podemos definir formulas a serem mostradas a cada campo.
Nessa acima, o sistema vai usar a função PTAB() para se relacionar com a tabela TVE e se estiver tido OK, será mostrado o campo título na posição 12,22.
Bom, por hora to tentando usar o xharbour com a wvwtools, e como a getsys desta lib é bastante complexa, to ralando muito para conseguir isso com o xharbour + wvwtools.
Grato pela atenção.
A GAS Informática resolveu esse problema, colocando o helpo de campo direto no getsys.
O conteudo do help foi colocado noma array bidirecional ...
Informações da tabela:
Código: Selecionar todos
sistema[002]={;
"3.Informa‡äes das empresas (SEFIP)",; // opcao do menu
"INFORMAیES DAS EMPRESAS (SEFIP)",; // titulo do sistema
{"tipreg"},; // chaves do arquivo
{"Acesso"},; // titulo dos indices para consulta
{"01"},; // ordem campos chaves
{"EMP_SEF",drvdbf,drvntx},; // nome do DBF
{"EMP_SEF1"},; // nomes dos NTX
{},; // nome dos dbf's relacionados
{},; // campos de relacionamento
{1,1,5,3,23,77},; // num telas/tela atual/coordenadas
{1,.t.,.f.},; // nivel acesso/tp chave/pede dir
{},; // campos do arquivo
{}; // formula mostradas
}Código: Selecionar todos
AADD(sistema[002,O_CAMPO],{; // PAR
/* mascara */ "@R 99.99-9/99",;
/* titulo */ "Atividade c¢digo",;
/* cmd especial */ "VDBF(6,3,20,77,'CNAE',{'codigo','descricao'},,'codigo',[])",;
/* default */ "'7511600'",;
/* pre-validacao */ "",;
/* validacao */ "ptab(par_cnae,'cnae',1)~C¢DIGO n„o existe na tabela",;
/* help do campo */ "C¢digo do CNAE 2.0.|[F8] vˆ tabela.";
};
)
- 002 é o arquivo que vai receber essas características;
- O_CAMPO é para informar que essas informações é para um campo;
- em CMD especial, usa-se a função VDBF() para que possamos, em um campos que tenha relacionamento com outro arquivo, teclar F8 para que esse arquivo seja mostrado numa consulta e possamos escoler um registro a relacionar;
- default, pode ser colocado um valor default;
- pré-validação é u mesmo que WHEN;
- e em help é colocado a mensagem a ser mostrado ao usuário, para esse campo a GAS colocou alt+F1 para acionar ou não os helps.
Fórmulas para os campos:
Código: Selecionar todos
AADD(sistema[002,O_FORMULA],{; // PAR - Saldo (-)
/* form mostrar */ "LEFT(TRAN(if(PTAB(par_sarre0,'TVE',1),subs(TVE->ver_titulo,1,20),'C¢digo inexistente'),[]),19)",;
/* lin da formula*/ 12,;
/* col da formula*/ 22;
};
)
Nessa acima, o sistema vai usar a função PTAB() para se relacionar com a tabela TVE e se estiver tido OK, será mostrado o campo título na posição 12,22.
Código: Selecionar todos
/*
Comandos criados para auxiliar o comando GET para receber mais outros
parametro e armazenar na variavel de instancia "CARGO". Este artificio
e' usado para guardar o texto de ajuda e o comando a executrar quando
a techa F8 for pressionada, o valor inicial e as formulas que serao
mostrada apos a digitacao do campo
*/
#command AJUDA <var> => STORECARGO(<var>,ATAIL(getlist),1)
#command CMDF8 <var> => STORECARGO(<var>,ATAIL(getlist),2)
#command DEFAULT <var> => STORECARGO(<var>,ATAIL(getlist),3)
#command MOSTRA <var> => STORECARGO(<var>,ATAIL(getlist),4)
#command DEFINICAO <cp> => STOREALL(<cp>,ATail(GetList))
Grato pela atenção.