Nao pode existir Macro em Code Block??

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
juniorcamilo
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 10 Nov 2006 09:12
Localização: Pará

Nao pode existir Macro em Code Block??

Mensagem por juniorcamilo »

Amigos isso nao pode existir??
Tem outra forma??

Setkey(a,{|| Retorno := &FUNCAO.})
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Junior, só não entendo o por quê dessa MACRO ? Qual seria a finalidade ? Você utiliza essa forma de alguma outra maneira ?
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Não sei se é exatamente isto que você queria:

Código: Selecionar todos

CLS
XIS:=" "
VFUN:="MUDAVAR()"
SETKEY( 65, { || XIS:=(&VFUN) } )
@ 12,00 GET XIS
READ
@ 14,00 SAY XIS

FUNCTION MUDAVAR
// KEYBOARD CHR(13)
RETURN "S"
Mas que pelo jeito tem como interpretar a MACRO.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
juniorcamilo
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 10 Nov 2006 09:12
Localização: Pará

Mensagem por juniorcamilo »

é eu não espliquei direito.. fiz um 'recurso tecnico, rsrsr'

....
Funcao := "PESQPRODUTO()"
....

function ABCDARIO(FUNCAO)
for a = 65 to 122
Setkey(a,{|| Retorno := &FUNCAO.})
next
return .t.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Continuo sem entender...
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
juniorcamilo
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 10 Nov 2006 09:12
Localização: Pará

a

Mensagem por juniorcamilo »

c for teclado qualquer letro no get ele abre uma determinada consulta, ou seja, pesquisar produto ou pesquisar cliente ou pesquisar etc...
Entendeu?
Pablo César escreveu:Continuo sem entender...
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Desculpe questionar... talvez eu desconheça a razão. Mas não seria mais seguro e conveniente assignar cada tecla previamente definida conforme a função a qual esteja predisposta a fazer tais pesquisas ?. Isto é:

SETKEY( 65, { || PESQ_A() } )
SETKEY( 66, { || PESQ_B() } )
SETKEY( 67, { || PESQ_C() } )

A exemplificação que eu dei na minha segunda mensagem deste post, não responde a sua questão ?. Percebeu que a macro está dentro de parêntese ?
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
juniorcamilo
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 10 Nov 2006 09:12
Localização: Pará

Mensagem por juniorcamilo »

Amigo Pablo César, por falta de ATENÇÂO MINHA, não vi que vc já tinha resolvido o problema, ("A exemplificação que eu dei na minha segunda mensagem deste post, não responde a sua questão ?. Percebeu que a macro está dentro de parêntese ?"), puts eita nois, deve ser o Sol Afetando meus neuronios,,, Obrigado mesmo...
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

hihihi... isso acontece e para pior alí no Pará faz calor mesmo, não é ? Eu por pouco não conhecí Belém, é facinante o nosso Brasil de lindo !.

Mas fico feliz ter ajudado.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Junior, me permita fazer mais uma sugestão. Há tempos aconselhei ao colega Eder fazer apena uma função com chamado com apenas uma tecla qualquer (neste caso F2, por exemplo). Lá você poderá saber qual é a variável em que foi chamada e daí você seleciona a função para cada variável. Isto irá economizar um bocado e deixar seu código mais comprensível e prático. Dê uma olhada neste tópico:

https://pctoledo.org/forum/viewto ... 2&start=15

Então a idéia é acostumar ao usuário que determina tecla serve para pesquisa de arquivo. Isto é padronizar seu chamados.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
juniorcamilo
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 10 Nov 2006 09:12
Localização: Pará

Mensagem por juniorcamilo »

Pablo César escreveu:Junior, me permita fazer mais uma sugestão. Há tempos aconselhei ao colega Eder fazer apena uma função com chamado com apenas uma tecla qualquer (neste caso F2, por exemplo). Lá você poderá saber qual é a variável em que foi chamada e daí você seleciona a função para cada variável. Isto irá economizar um bocado e deixar seu código mais comprensível e prático. Dê uma olhada neste tópico:

https://pctoledo.org/forum/viewto ... 2&start=15

Então a idéia é acostumar ao usuário que determina tecla serve para pesquisa de arquivo. Isto é padronizar seu chamados.
Concordo com vc mas veja por outro lado,, no meu caso o F10 chama a consulta de produto, mas o get no ccodpro pode tambem simplesmente passar o codigo de barras, ou digitar o codigo tipo (01-0001) ou 011 o prog reconhece normalmete mas eu resolvi tipo qualquer letra digitada ele abreria a funcao F10 entendeu em vez de ter q digitar o F10 para chamr a funcao pesqproduto()?
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Ahhh sim, quando digitar um número é sinal que o usuário precisar digitar manualmente o código d ebarras, aí concordo fazer isso. Eu também tenho como prática esse procedimento de ativar funções com HOT-KEY. Isto é, se é numérico aceita digitação do código produto se é alfa chama função pre-determinada (isso acostumo insirir nos meus TBROWSEs). Mas você está certo, o importante é agilizar, deixar o seu programa inteligente. Isso aí, valeu !
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
juniorcamilo
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 10 Nov 2006 09:12
Localização: Pará

Mensagem por juniorcamilo »

deu certo oq eu queria fazer mas foi uma GAMBIARRRAAAAA,,,rsdrsrsrrsrs
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Mostre o que você fez, quem sabe podemos melhor algo, não acha ?
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
juniorcamilo
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 10 Nov 2006 09:12
Localização: Pará

ai vai

Mensagem por juniorcamilo »

veja ai....

Function ABCDARIO(VERFAL,FUNCAO,VAR,VARAUX,VLRAUX)
Local Retorno := ""
if VERFAL == .t.
if (VERFAL == nil .or. FUNCAO == nil .or. Retorno == nil) .and. VERFAL == .t.; return .f.; endif
for a = 65 to 122
Setkey(a,{|| ABCDARIOAUX(FUNCAO,VAR,VARAUX,VLRAUX)})
next
else
for a = 65 to 122
Setkey(a,)
next
endif
if Lastkey() # 13; Retorno := VAR; endif
Return Retorno
*******************************************************************************
Function ABCDARIOAUX(FUNCAO,VAR,VARAUX,VLRAUX)
if VARAUX # nil
&VARAUX. := VLRAUX
endif
&Var. := &FUNCAO.
return

obs: varaux e vlraux é quando uso matriz
Responder