Pular para o conteúdo
Início » Advpl Modelo2

Advpl Modelo2

Modelo2

Tipo: Processamento

Exibe formulário para cadastro segundo o modelo 2 (como a rotina de Nota Fiscal).

Sintaxe

M o d e l o 2 (c T í t u l o ,a C a b e c ,a R o d a p é ,a G d ,n O p ,c L O k ,c T O k ,

[aGetsGD,bF4,cIniCpos,nMax,aCordw,lDelget])

Parâmetros

cTítulo – Título da janela

aCabec – Array com os campos do cabeçalho

aRodapé – Array com os campos do rodapé

aGd – Array com as posições para edição dos itens (GETDADOS)

nOp – Modo de operação (3 ou 4 altera e inclui itens, 6 altera mas não

inclui itens, qualquer outro número só visualiza os itens)

cLOk – Função para validação da linha

cTOk – Função para validação de todos os dados (na confirmação)

aGetsGD – Array Gets editáveis (GetDados)

Default = Todos.

bF4 – Codeblock a ser atribuído a tecla F4.

Default = Nenhum.

cIniCpos – String com o nome dos campos que devem ser inicializados ao teclar seta para baixo (GetDados).

nMAx – Limita o número de linhas (GetDados).

Default = 99.

aCordw – Array com quatro elementos numéricos, correspondendo às coor-denadas

linha superior, coluna esquerda, linha interior e coluna

direita, definindo a área de tela a ser usada.

Default = Área de Dados Livre.

lDelget – Determina se as linhas podem ser deletadas ou não (GetDados)

Default = .T.

Retorna

lRet – Retorna .T. se for confirmado

Exemplo

//**************************************************

// 3,4 Permitem alterar getdados e incluir linhas

// 6 So permite alterar getdados e nao incluir linhas

// Qualquer outro numero so visualiza

nOpcx:=3

dbSelectArea(“Sx3”)

dbSetOrder(1)

dbSeek(“SX5”)

nUsado:=0

aHeader:={}

While !Eof() .And. (x3_arquivo == “SX5”)

IF X3USO(x3_usado) .AND. cNivel >= x3_nivel

nUsado:=nUsado+1

AADD(aHeader,{ TRIM(x3_titulo),x3_campo,;

x3_picture,x3_tamanho,x3_decimal,;

”ExecBlock(‘Md2valid’,.f.,.f.)”,x3_usado,;

x3_tipo, x3_arquivo, x3_context } )

Endif

dbSkip()

End

aCols:=Array(1,nUsado+1)

dbSelectArea(“Sx3”)

dbSeek(“SX5”)

nUsado:=0

While !Eof() .And. (x3_arquivo == “SX5”)

IF X3USO(x3_usado) .AND. cNivel >= x3_nivel

nUsado:=nUsado+1

IF nOpcx == 3

IF x3_tipo == “C”

aCOLS[1][nUsado] := SPACE(x3_tamanho)

Elseif x3_tipo == “N”

aCOLS[1][nUsado] := 0

Elseif x3_tipo == “D”

aCOLS[1][nUsado] := dDataBase

Elseif x3_tipo == “M”

aCOLS[1][nUsado] := “”

Else

aCOLS[1][nUsado] := .F.

Endif

Endif

Endif

dbSkip()

End

aCOLS[1][nUsado+1] := .F.

cCliente:=Space(6)

cLoja :=Space(2)

dData :=Date()

nLinGetD:=0

cTitulo:=”TESTE DE MODELO2″

aC:={}

// aC[n,1] = Nome da Variavel Ex.:”cCliente”

// aC[n,2] = Array com coordenadas do Get [x,y], em

// Windows estao em PIXEL

// aC[n,3] = Titulo do Campo

// aC[n,4] = Picture

// aC[n,5] = Validacao

// aC[n,6] = F3

// aC[n,7] = Se campo e’ editavel .t. se nao .f.

#IFDEF WINDOWS

AADD(aC,{“cCliente” ,{15,10} ,”Cod. do Cliente”,”@!”,;

‘ExecBlock(“MD2VLCLI”,.F.,.F.)’,”SA1″,})

AADD(aC,{“cLoja” ,{15,200},”Loja”,”@!”,,,})

AADD(aC,{“dData” ,{27,10} ,”Data de Emissao”,,,,})

#ELSE

AADD(aC,{“cCliente” ,{6,5} ,”Cod. do Cliente”,”@!”,;

ExecBlock(“MD2VLCLI”,.F.,.F.)’,”SA1″,})

AADD(aC,{“cLoja” ,{6,40},”Loja”,”@!”,,,})

AADD(aC,{“dData” ,{7,5} ,”Data de Emissao”,,,,})

#ENDIF

aR:={}

// aR[n,1] = Nome da Variavel Ex.:”cCliente”

// aR[n,2] = Array com coordenadas do Get [x,y], em

// Windows estao em PIXEL

// aR[n,3] = Titulo do Campo

// aR[n,4] = Picture

// aR[n,5] = Validacao

// aR[n,6] = F3

// aR[n,7] = Se campo e’ editavel .t. se nao .f.

#IFDEF WINDOWS

AADD(aR,{“nLinGetD” ,{120,10},”Linha na GetDados”,;

“@E 999”,,,.F.})

#ELSE

AADD(aR,{“nLinGetD” ,{19,05},”Linha na GetDados”,;

“@E 999”,,,.F.})

#ENDIF

#IFDEF WINDOWS

aCGD:={44,5,118,315}

#ELSE

aCGD:={10,04,15,73}

#ENDIF

cLinhaOk := “ExecBlock(‘Md2LinOk’,.f.,.f.)”

cTudoOk := “ExecBlock(‘Md2TudOk’,.f.,.f.)”

// lRet = .t. se confirmou

// lRet = .f. se cancelou

lRet:=Modelo2(cTitulo,aC,aR,aCGD,nOpcx,cLinhaOk,cTudoOk)

// No Windows existe a funcao de apoio CallMOd2Obj() que

// retorna o objeto Getdados Corrente

Return

Estude para provas de certificações em TI com os simulados Bynem

Veja também: