|
Bem Vindo, Visitante
|
Todos os Fórums
ADVPL
|
Imprimir
Enviar Para um Amigo Precisa estar Logado
|
|
|
Assunto: |
Descrição da Marca na DA1 |
|
Versão: |
12.1.25 |
|
Plataforma: |
Microsoft |
Complemento: |
Windows 10 |
|
DB: |
. |
Complemento: |
|
|
|
|
|
Mensagem do
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
|
|