Criação de campo Memo virtual usando SYP
CRIACAO DE CAMPO MEMO VIRTUAL UTILIZANDO O ARQUIVO SYP.
Para criacao de um campo memo virtual, e necessario que sejam criados dois campos, um de codigo e o outro com tipo memo virtual. Esses dados sao gravados no arquivo SYP.
EXEMPLO PARA UM NOVO CAMPO NO CADASTRO DE CLIENTES:
--------------------------------------------------
Campo Codigo:
Nome Tipo Tamanho Contexto
A1_CODTST C 6 Real
Campo Memo:
Nome Tipo Tamanho Contexto
A1_TESTE M 80 Virtual
Obs. O tamanho do campo YP_TEXTO e 80.
Inicializador Padrão:
IIF(!INCLUI,MSMM(SA1->A1_CODTST),"")
Para gravação do campo memo, incluir a função MSMM no programa (nesse caso, estaremos utilizando pontos de entrada do programa MATA030).
No caso de inclusão, estamos utilizando o ponto de entrada M030INC:
_cTeste := M->A1_TESTE
_nTam := TamSX3("A1_TESTE")
_nTam1 := _nTam[1]
MSMM(,_nTam1,,_cTeste,1,,,"SA1","A1_CODTST")
Caso seja alteracao, estamos utilizando o ponto de entrada MALTCLI:
_cTeste := M->A1_TESTE
_nTam := TamSX3("A1_TESTE")
_nTam1 := _nTam[1]
MSMM(SA1->A1_CODTST,_nTam1,,_cTeste,1,,,"SA1","A1_CODTST")
Caso seja exclusao, estamos utilizando o ponto de entrada M030EXC:
_cAlias := Alias()
_nRegto := Recno()
dbSelectArea("SYP")
dbSeek(xFilial("SYP")+SA1->A1_CODTST)
If found()
While SYP->YP_CHAVE==SA1->A1_CODTST
Reclock("SYP",.F.)
dbDelete
MsUnlock()
dbSkip()
Enddo
Endif
dbSelectArea(_cAlias)