Вы находитесь на странице: 1из 4

Pgina 1 de 4

02 Criaco de Variaveis
Reviso: 30/09/2002

Abrangncia Verso 5.07 Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

Na criao de uma varivel deve-se ter em mente alguns pontos fundamentais: A declarao O tipo de varivel A funo CRIAVAR() A inicializao Padronizao de variveis

A Declarao Deve ser feita sempre no incio da rotina que for utiliz-la, como no exemplo:
Function a910VerCod() Local cCod910 := 001 Return

O Tipo de Varivel O tipo de varivel serve para identificar a utilizao que a mesma ter no decorrer da rotina. Toda varivel deve estar tipada durante sua criao. Quando programamos nativamente em C, isto se torna obrigatrio. Devemos fazer o mesmo no AP5, pois isto demonstra que a varivel foi conscientemente declarada.
Tipos Existentes

PUBLIC: Esta varivel ser inicializada em um valor lgico falso (.F.) at que seja atribudo um valor especfico a ela. Esta varivel permanece definida por toda a durao da aplicao e pode ser vista (assim como usada, alterada e avaliada) por qualquer funo. Esta varivel gera um token (indicao) na tabela de smbolos, isto significa que o mdulo principal conter smbolos para esta classe de varivel, o que, por sua vez, ocupa mais espao de memria. Deve-se evitar a utilizao deste tipo, a no ser em casos extremos.

http://dem.microsiga.com.br/w_wEx011.apw?Cod=018273

24/8/2004

Pgina 2 de 4

PRIVATE: Esta varivel ser inicializada em valor nulo (NIL) e uma vez declarada, permanecer assim durante toda a durao do fluxo da funo, at que este volte ao procedimento inicial que a chamou. Em essncia, uma varivel de memria PRIVATE inicializada logo no incio do Protheus, agir como um varivel PUBLIC. Esta varivel pode ser vista por uma sub-rotina da funo e modificada de maneira correspondente. Esta varivel tambm gera um token na tabela de smbolos comentada acima. LOCAL: Esta varivel de memria ser inicializada com valor nulo (NIL) e s visvel dentro da funo que a inicializa, mesmo que esta ltima, contenha funes incorporadas a seu contedo. Este tipo de varivel o mais adequado a ser utilizado em funes, pois no gera smbolos na tabela de smbolos, por conseqncia ocupa pouco espao de memria e, o compilador avalia as variveis LOCAL e STATIC mais rapidamente que os outros tipos (PUBLIC e PRIVATE). Cuidado para no sucumbir teoria de que se pode obter economia de memria, mudando qualquer referncia PRIVATE para uma referncia LOCAL. Se voc fizer isso, as funes podem no funcionar corretamente, embora funcionassem na verso anterior s alteraes. STATIC: A varivel STATIC idntica classe de armazenamento LOCAL, com uma exceo. Uma varivel STATIC retida dentro de sua sub-rotina, mesmo depois que o fluxo da funo a tenha deixado. Isto particularmente til para funes independentes tipo caixa-preta, que contm seu prprio conjunto de variveis exclusivas e devem manter esses valores de interao em interao. Inicializao Quando no atribumos nenhum valor a uma varivel no momento de sua declarao, corremos o risco de utiliz-la com valor NIL e causar erros fatais. Por isso, a inicializao de uma varivel de extrema importncia. Padronizao de Variveis importante que ao lermos o nome de uma varivel, possamos saber se o seu tipo numrico, caracter, data ou lgico. O nome da varivel de get no deve coincidir com uma varivel de outro programa, pois toda varivel de get possui um help especfico. Exemplo: a varivel DBaixa (get da baixa no programa de Ttulos a Receber), j possui um texto help que indica seu conteudo e no dever ser criada outra varivel para outra finalidade com este mesmo nome. Para tanto, definimos a seguinte padronizao :
N L D C A O U -> -> -> -> -> -> -> Numricas Lgicas Data Caracter Array (matriz) Objeto Sem definio

Criando uma Varivel Utilizando a Funo CRIAVAR()

http://dem.microsiga.com.br/w_wEx011.apw?Cod=018273

24/8/2004

Pgina 3 de 4

Esta funo cria uma varivel, retornando o valor do campo, de acordo com o dicionrio de dados. Avalia o inicializador padro e retorna o contedo de acordo com o tipo de dado definido no dicionrio. Sintaxe
uRet := CriaVar(cCampo,lIniPad,cLado)

Onde :

Uret -> tipo de retorno de acordo com o dicionrio de dados, considerando inicializador padro.

cCampo -> Nome do campo LiniPad -> Indica se considera (.T.) ou no (.F.) o inicializador padrao (X3_RELACAO) Clado -> Lado para inicializao padro

Variveis de Relatrios Na criao de um relatrio algumas variveis e seus tipos so convencionados para a utilizao da biblioteca de funes de relatrio.

Varivel wnRel cbCont Cabec1 Cabec2 Cabec3 Tamanho cDesc1 cDesc2 cDesc3 Limite Titulo aReturn Nomeprog cString Li

Tipo Local Local Local Local Local Local Local Local Local Local Local Private Private Private Private

Contedo Nome default do relatrio em disco Contador 1 linha do cabealho do relatrio 2 linha do cabealho do relatrio 3 linha do cabealho do relatrio Tamanho do Relatrio (P = Pequeno 80 colunas, M = Mdio 132 colunas, G = Grande, 220 colunas) 1 linha da descrio do relatrio 2 linha da descrio do relatrio 3 linha da descrio do relatrio Quantidade de colunas no relatrio (80,132,220) Ttulo do Relatrio Matriz com as informaes para a tela de configurao de impresso Nome do programa do relatrio Alias do arquivo principal do relatrio para o uso de filtro Controle das linhas de impresso. Seu valor inicial a quantidade mxima de linhas por pgina utilizada no relatrio

http://dem.microsiga.com.br/w_wEx011.apw?Cod=018273

24/8/2004

Pgina 4 de 4

m_pag aOrd nLastKey cPerg aLinha

Private Private Private Private Private

Controle do nmero de pginas do relatrio Matriz contendo as ordens de layout para a impresso. Caso no existam vrias ordens esta matriz deve estar vazia. Ex.: aOrd := {"Cdigo", "Descrio", "Telefone"} -> O layout do relatrio vai depender da ordem selecionada na tela de configurao de impresso Utilizado para controlar o cancelamento da impresso do relatrio Nome da pergunta a ser exibida para o usurio Matriz que contem informaes para impresso de relatrios cadastrais

Grupos Relacionados Principal / Guias de Referncia / Como programar Advpl no ERP

Topo da Pgina

http://dem.microsiga.com.br/w_wEx011.apw?Cod=018273

24/8/2004

Вам также может понравиться