Sobre parâmetros

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Sobre parâmetros

Mensagem por Netavin »

Boa tarde a todos!
Estou lendo sobre o tema e tenho a seguinte questão para esclarecer:
Tenho uma função "fCPF" e "fCPF_II". A primeira fiz para criticar a entrada do cpf na rotina de inclusão. A segunda para checar o cpf na alteração. Os colegas já me disseram que não há necessidade de duas funções. Que posso usar apenas uma usando Parâmetros.
Na rotina de entrada está assim (resumidamente):
... get ncpf valid(fCPF).
Na rotina de alteração:
... get cpf valid(fCPF_II) (editando a variável diretamente).
Percebam que as variáveis são diferentes. Então como eu faria para usar apenas a primeira função e eliminar a segunda?

Obrigadoooo!!

Netavin
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Faça uma só função e passe a variável como parâmetro da função. Exemplo:

Código: Selecionar todos

...GET cCPF VALID ValidCPF(cCPF)
Mas se quiser emitir um alerta, o ideal é manter essa função apenas para checagem e usar uma função (talvez estática) de alerta no VALID. Assim,...

Código: Selecionar todos

...GET cCPF VALID CheckCPF(cCPF)

function CheckCPF(c)
local lRet := ValidCPF(c)
if !lRet
   // alerte o infeliz
end
return lRet
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Mensagem por Netavin »

Bom dia !
Valeu malígno. Eliminei uma função com a ajuda de parâmetros.
Não só essa mas muitas outras que eu havia feito em outros procedimentos.
Porém confesso que ainda não está claro para mim essa técnica de passar parâmetros.

Um abraço!

Netavin.
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Mensagem por gvc »

Vamos ver se eu consigo ajudar.

Código: Selecionar todos

a := 1
b := 2
c := a + b // c := 3

a := 10
b := 55
c := a + b // c := 65

///

c := somar(1, 2) // c := 3
c := somar(10, 55) // c := 65

function somar(par_1, par_2)
local x

x := par_1 + par_2

return(x)
Quaisquer dois valor que vc passar como parâmetro na função somar, serão somados e o resultado é o que a função retorna.

Imagine que vc criou uma função para retornar o nome do cliente, passando o nº do CPF.

Código: Selecionar todos

? ver_nome(xCPF) // xCPF é uma variável que vc já carregou/entrou com o valor pelo sistema.

...

function ver_nome(qual_cpf)

cadcli->(dbsetorder(3)) // ordem por cpf
if !cadcli->(dbseek(qual_cpf))
   return('CPF não cadastrado!!!')
end
return(cadcli->(nome))
Não importa aonde, dentro do sistema, vc chame a função. Vc informa o CPF desejado e a função procura e retorna se não encontrou ou o nome do cliente.
Veja se ainda tem dúvidas. Se tiver, avise.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Mensagem por Netavin »

...
Valeu gvc.
Vou dominar este animal.

Obrigado demais!!

Netavin
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Responder