× Linguagem de Programação ADVPL

Perguntas Dúvida com array

Mais
11 anos 5 meses atrás #14351 por eusouoneto
Dúvida com array foi criado por eusouoneto
Boa tarde!
Vou tentar explicar o que preciso com um pequeno exemplo fictício:
Eu preciso que execute a condição desde q o conteúdo do campo seja diferente do conteúdo do arrey.

aNome := {'jose','maria'}
if SA1->A1_NOME <> aNome
begin
...

Como faço isso?

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 5 meses atrás - 11 anos 5 meses atrás #14352 por kanaamlrr
Respondido por kanaamlrr no tópico Dúvida com array
faz o seguinte:


no caso de um array unidimensional como você demonstrou
If (aScan(aArray,SA1->A1_NOME))==0
...


no caso de um array bidimensional
If (aScan(aArray,{|x| x[1]==SA1->A1_NOME}))==0


O aScan retorna ZERO quando não encontra um elemento no array, ou a posição do elemento caso encontre
Ultima edição: 11 anos 5 meses atrás por kanaamlrr.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 5 meses atrás #14353 por eusouoneto
Respondido por eusouoneto no tópico Dúvida com array
Deu muito certo não. É que sou fraco mesmo... hehe
A parte do fonte é essa:

afornec := {'001363','000190'}
If M->PRV_NOVO < nValMrgMin .and. (aScan(afornec,SD1->D1_COD))==0
cMsg := "O preço sugerido ultrapassou a margem mínima, favor verificar." + CRLF
cMsg += "Preço sugerido INFORMADO não pode ser inferior a " + Transform(nValMrgMin,"@R 99,999.99") + CRLF
cMsg += "Preço sugerido CALCULADO é: " + Transform(aCols[oGet:nAT,nPosPrvNovo],"@R 99,999.99") + CRLF
Aviso("MARGEM MÍNIMA",cMsg,{"OK"},3)
lRet := .F.
EndIf

Eu preciso q o q está no array seja exceção.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 5 meses atrás #14354 por kanaamlrr
Respondido por kanaamlrr no tópico Dúvida com array
tenta assim:
afornec := {'001363','000190'}
nPos := aScan(afornec,AllTrim(SD1->D1_COD))
 If M->PRV_NOVO < nValMrgMin .and. nPos==0//não encontrou
 cMsg := "O preço sugerido ultrapassou a margem mínima, favor verificar." + CRLF
 cMsg += "Preço sugerido INFORMADO não pode ser inferior a " + Transform(nValMrgMin,"@R 99,999.99") + CRLF
 cMsg += "Preço sugerido CALCULADO é: " + Transform(aCols[oGet:nAT,nPosPrvNovo],"@R 99,999.99") + CRLF
 Aviso("MARGEM MÍNIMA",cMsg,{"OK"},3)
 lRet := .F.
 EndIf


Você tem que garantir que o valor de SD1->D1_COD seja o que você espera.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 5 meses atrás #14370 por eusouoneto
Respondido por eusouoneto no tópico Dúvida com array
Muito obrigado! Certim aqui... Só te passei errado, era D1_FORNECE, mas deu certo. Vlw mesmo.

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.135 segundos
Joomla templates by a4joomla