PERGUNTAS E RESPOSTAS
 
Bem Vindo, Visitante  Todos os Fórums
  ADVPL
Enviar para a impressoraImprimir  Enviar e-mail para um amigoEnviar Para um Amigo
Precisa estar Logado

Subject Assunto:
Descrição da Marca na DA1
Versão:
12.1.25
Plataforma:
Microsoft
Complemento:
Windows 10
DB:
.
Complemento:
LinkedIn
Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário LUCASLOTT LUCASLOTT em 29/05/2020, 16:00 h
Local: SP  Registro: 21/05/2020  Postagens: 49
Boa tarde,

Criei um campo virtual DA1_XMARCA, a principio tentei fazer com inicializador padrão dessa forma: IIF(INCLUI,"",POSICIONE("SB1",1,XFILIAL("SB1")+ACOLS[LEN(ACOLS),3],"B1_XDESCM")), funciona quando visualizo a tabela de preço completa com todos os produto, porém ao visualizar a tabela de preço apertando F12 e mudando a forma de visualização de Por tabela e colando por produto, para verificar um produto em todas as tabelas de preço, da erro no inicializador padrão, dizendo que não foi possível encontrar a Varialivel DA1_CODPRO.

Então criei a seguinte função em ADVPL:
User Function DA1MARCA(cCodProd)
Local nRet := 0
Local cAlias := GetNextAlias()

Default cCodProd := DA1->DA1_CODPRO

BeginSQL alias cAlias

SELECT
RTRIM(SB1.B1_XDESCM)MARCA
FROM DA1010 DA1(NOLOCK)
JOIN SB1010 SB1(NOLOCK)
ON SB1.B1_COD = DA1.DA1_CODPRO
AND SB1.D_E_L_E_T_ = ‘‘
WHERE
DA1.D_E_L_E_T_ = ‘‘
AND DA1.DA1_CODPRO = %Exp:cCodProd%

EndSQL

IF !(cAlias)->(EOF())
     nRet := (cAlias)->MARCA
EndIf

IF Select(cAlias)> 0
     (cAlias)->(dbCloseArea())
EndIF
Return nRet

Após criar essa função, coloquei o inicializador padrão do campo assim
IIF(INCLUI,"",U_DA1MARCA(DA1_CODPRO), dessa forma funcionou perfeitamente visualizando a tabela completa, porém ao visualizar ela com todos os produtos apresenta o mesmo erro que não encontrou a variável DA1_CODPRO, então troquei o inicializador padrão para U_DA1MARCA(DA1->DA1_CODPRO) visualizando por produto, funcionou perfeitamente, porém ao visualizar a tabela completa com todos os produtos, ela trouxe a primeira marca que encontrou para todos os produtos.

PS: Quando visualiza por por tabela, os campos DA1_CODPRO e DA1_DESC saem da grid e vão para o "cabeçalho", acredito que seja por isso que a marca não funciona e não consegue encontrar a variável.

Para postar no Fórum você precisa efetuar o seu login ou se registrar

 Mudar para Fórum

 

 

 
 
   
Pagina Principal Shopping PROTHEUS Tire suas duvidas Vagas Microsiga em todo Brasil Aprofunde seus conhecimentos Noticias Online Fale Conosco Pagina Principal