Função: RegToMemory - Variáveis de memória
Versões: Todas
Compatível Países: Todos
Sistemas Operacionais: Todos
Compatível às Bases de Dados: Todos
Nível de Acesso: Nível 1 (Acesso Clientes)
Idiomas: Espanhol , Inglês
Descrição:

Esta função inicializa as variáveis de memoria utilizadas pela interfaces modelo 3 ou que contenha o objeto Enchoice/MsSelect.

Programa Fonte:
MATXATU.PRX
Sintaxe:

RegToMemory - Variáveis de memória ( cAlias [ lInc ] [ lDic ] [ lInitPad ] [ cStack ] )

Retorno:
    ()
Exemplos
#include "rwmake.ch"        User Function RDMOD3()      Local _niaRotina := {{ "Pesquisa","AxPesqui", 0 , 1},;	      	{ "Visual","AxVisual", 0 , 2},;    	  	{ "Inclui","AxInclui", 0 , 3},;      		{ "Altera","AxAltera", 0 , 4, 20 },;		    { "Exclui","AxDeleta", 0 , 5, 21 }}//+--------------------------------------------------------------+//| Opcoes de acesso para a Modelo 3                             |//+--------------------------------------------------------------+cOpcao:="INCLUIR"Do Case	Case cOpcao=="INCLUIR"; nOpcE:=3 ; nOpcG:=3	Case cOpcao=="ALTERAR"; nOpcE:=3 ; nOpcG:=3	Case cOpcao=="VISUALIZAR"; nOpcE:=2 ; nOpcG:=2EndCaseDbSelectArea("SC5")DbSetOrder(1)DbGotop()//+--------------------------------------------------------------+//| Cria variaveis M->????? da Enchoice                          |//+--------------------------------------------------------------+RegToMemory("SC5",(cOpcao=="INCLUIR"))//+--------------------------------------------------------------+//| Cria aHeader e aCols da GetDados                             |//+--------------------------------------------------------------+nUsado:=0dbSelectArea("SX3")DbSetOrder(1)DbSeek("SC6")aHeader:={}While !Eof().And.(x3_arquivo=="SC6")	If Alltrim(x3_campo)=="C6_ITEM"		dbSkip()		Loop	Endif	If X3USO(x3_usado).And.cNivel>=x3_nivel    	nUsado:=nUsado+1        Aadd(aHeader,{ TRIM(x3_titulo), x3_campo, x3_picture,;	         x3_tamanho, x3_decimal,"AllwaysTrue()",;    	     x3_usado, x3_tipo, x3_arquivo, x3_context } )	Endif    dbSkip()EndIf cOpcao=="INCLUIR"	aCols:={Array(nUsado+1)}	aCols[1,nUsado+1]:=.F.	For _ni:=1 to nUsado		aCols[1,_ni]:=CriaVar(aHeader[_ni,2])	NextElse	aCols:={}	dbSelectArea("SC6")	dbSetOrder(1)	dbSeek(xFilial()+M->C5_NUM)	While !eof().and. SC6->C6_NUM == M->C5_NUM		AADD(aCols,Array(nUsado+1))		For _ni:=1 to nUsado			aCols[Len(aCols),_ni]:=FieldGet(FieldPos(aHeader[_ni,2]))		Next 		aCols[Len(aCols),nUsado+1]:=.F.		dbSkip()	EndEndifIf Len(aCols)>0	//+--------------------------------------------------------------+	//| Executa a Modelo 3                                           |	//+--------------------------------------------------------------+	cTitulo:="Teste de Modelo3()"	cAliasEnchoice:="SC5"	cAliasGetD:="SC6"	cLinOk:="AllwaysTrue()"	cTudOk:="AllwaysTrue()"	cFieldOk:="AllwaysTrue()"	_lRet:=Modelo3(cTitulo,cAliasEnchoice,cAliasGetD,,cLinOk,cTudOk,nOpcE,nOpcG,cFieldOk)	//+--------------------------------------------------------------+	//| Executar processamento                                       |	//+--------------------------------------------------------------+	If _lRet		Aviso("Modelo3()","Confirmada operacao!",{"Ok"})	EndifEndif                 Return
Parâmetros:
Nome Tipo Descrição Default Obrigatório Referência
cAlias Caracter Alias da tabela que terá suas variaveis inicializadas. X
lInc Lógico Indica se a inicialização será baseada numa operações de inclusão ( .T. ) ou manutenção ( .F. ). A diferença entre elas é que na operação de inclusão os valores são inicializados vazios e na manutenção com os dados do registro posicionado. .F.
lDic Lógico Indica se a inicialização das variaveis será baseada no dicionário de dados ou apenas nos dados da WorkArea aberta. A diferença entre elas são os campos virtuais que somente são inicializadados com a opção .T. - Dicionário de dados. .T.
lInitPad Lógico Indica se o inicializador padrão do dicionário de dados será executado. Este parametro somente será acionado se o parametro ExpL3 for configurado como .T. - Dicionário de Dados. .T.
cStack Qualquer Parâmetro reservado

  • Sem rótulos