×
Linguagem de Programação ADVPL
Perguntas Dúvida com array
- eusouoneto
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 70
- Obrigados Recebidos: 0
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?
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.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
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
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.
- eusouoneto
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 70
- Obrigados Recebidos: 0
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.
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.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
11 anos 5 meses atrás #14354
por kanaamlrr
Respondido por kanaamlrr no tópico Dúvida com array
tenta assim:
Você tem que garantir que o valor de SD1->D1_COD seja o que você espera.
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.
- eusouoneto
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 70
- Obrigados Recebidos: 0
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