Galera boa noite
acho que é bobeira minha, mas não está dando certo
tenho uma linha em meu PRG que é a seguinte:
@00,00 say "Convenio..:" Get cConvenio Pict "@!" Valid ValConvenio(cConvenio)
Obs.: A variavel cConvenio está assim:
Public cConvenio := Space (05)
Funcion ValConvenio(cConvenio)
Use CadCli Alias cadcli Shared New
Set Index To CadCli
Set Order To 1
cadcli->(DbGoTop())
cConvenio := Padl("1",5,"0")
Do While ! Eof()
If Empty(cConvenio)
Close cadcli
Return .F.
EndIf
Locate For cadcli->Codigo == cConvenio
If cadcli->(Eof())
MsgBox3d1("Convênio não cadastrado!","Atenção")
Close cadcli
Return .F.
EndIf
Close cadcli
EndDo
Return cConvenio
Quando retorna a variavel cConvenio na linha acima aparece o seguinte erro: Error BASE/1077 Argument error: .NOT.
Se coloco .T. no lugar de cConvenio ai funciona, mas preciso da função para verificar se cConvenio é cadastrada e formatar ela com zeros à esquerda
Alguém pode me ajudar?
OIbrigado
Piter Galdiano - Programador Clipper
Erro???????????????????
Moderador: Moderadores
-
PITERGALDIANO
- Usuário Nível 2

- Mensagens: 91
- Registrado em: 28 Nov 2003 08:48
Prezado Piter
Me desculpe, já havia postado uma solução, porém observei posteriormente que a msg era só para o colega Maligno, desta forma editei a mensagem e deixo a resposta para o colega Maligno. Quando precisar é só pedir.
Até logo.
Marcelo
Me desculpe, já havia postado uma solução, porém observei posteriormente que a msg era só para o colega Maligno, desta forma editei a mensagem e deixo a resposta para o colega Maligno. Quando precisar é só pedir.
Até logo.
Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Quando em edição, um campo GET não pode ser diretamente manipulado. Deverá ser utilizado um método da classe GET. Levando-se em conta que a lista GET padrão é a que está em uso, temos GetList como uma matriz privada (veja o PPO equivalente ao seu PRG), que contém tantos elementos quantos forem os campos, e na mesma ordem em que foram informados (observe que o PPO contém linhas do tipo AAdd(GetList,_GET_(...))). A classe GET dispõe de vários métodos que lhe permite manipular a lista de várias formas. Um desses métodos permite inserir um valor diretamente no buffer de um campo, da forma como você precisa. Veja um exemplo simples:
Observe que o foco da alteração é o elemento informado na matriz GetList. Usei o campo 1 apenas como exemplo. Informe o número do campo que sofrerá a alteração. E lembre-se que a função informada na cláusula VALID deverá sempre retornar um valor lógico.
Se ainda sobrar alguma dúvida, volte ao assunto.
[]'s
Maligno
http://www.buzinello.com/prg
PS: Agradeço a deferência por solicitar minha ajuda especificamente, mas esse fórum tem muitas pessoas capacitadas. Talvez você já tivesse obtido sua resposta há mais tempo se não a tivesse "endereçado". Uma hora alguém responderia da mesma forma que eu. Além do mais, não sou a pessoa mais indicada para resolver esse tipo de problema. Meu sub-sistema GET é totalmente modificado e falar sobre o GET padrão é bem mais difícil pra mim do que pra muitos outros colegas, mais capacitados nesse assunto. Tem coisas que nem me lembro mais. Precisei pesquisar para lhe dar a resposta acima.
Assim, meu amigo, no futuro não peça a ajuda de um ou de outro especificamente. Apenas poste a dúvida. Como sempre acontece, e você bem sabe, alguém o responderá rapidamente.
Código: Selecionar todos
function teste()
GetList[1]:VarPut("TESTE")
return .T.Se ainda sobrar alguma dúvida, volte ao assunto.
[]'s
Maligno
http://www.buzinello.com/prg
PS: Agradeço a deferência por solicitar minha ajuda especificamente, mas esse fórum tem muitas pessoas capacitadas. Talvez você já tivesse obtido sua resposta há mais tempo se não a tivesse "endereçado". Uma hora alguém responderia da mesma forma que eu. Além do mais, não sou a pessoa mais indicada para resolver esse tipo de problema. Meu sub-sistema GET é totalmente modificado e falar sobre o GET padrão é bem mais difícil pra mim do que pra muitos outros colegas, mais capacitados nesse assunto. Tem coisas que nem me lembro mais. Precisei pesquisar para lhe dar a resposta acima.
Assim, meu amigo, no futuro não peça a ajuda de um ou de outro especificamente. Apenas poste a dúvida. Como sempre acontece, e você bem sabe, alguém o responderá rapidamente.
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Piter Galdino,
Existe uma forma mais simples de se fazer isto.
Apesar do PICTURE do GET estar "@!", acho que será digitado apenas números neste campo, se for isto, faça o seguinte:
1 - Altere a linha abaixo da sua função:
cConvenio := Padl("1",5,"0") //aqui vc perde o que foi digitado no GET
e troque por:
M->cConvenio := STRZERO(VAL(M->cConvenio),5)
2 - No final da função, altere também o comando:
RETURN cConvenio
por:
RETURN .T.
3 - Dentro da sua função, troque qualquer outra referência da variável cConvenio para M->cConvenio.
Obs.: se no GET você vai digitar apenas números, troque a PICTURE por "99999".
Abraços,
Existe uma forma mais simples de se fazer isto.
Apesar do PICTURE do GET estar "@!", acho que será digitado apenas números neste campo, se for isto, faça o seguinte:
1 - Altere a linha abaixo da sua função:
cConvenio := Padl("1",5,"0") //aqui vc perde o que foi digitado no GET
e troque por:
M->cConvenio := STRZERO(VAL(M->cConvenio),5)
2 - No final da função, altere também o comando:
RETURN cConvenio
por:
RETURN .T.
3 - Dentro da sua função, troque qualquer outra referência da variável cConvenio para M->cConvenio.
Obs.: se no GET você vai digitar apenas números, troque a PICTURE por "99999".
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao

