- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Funções AdvPL
- Posicione tabela DA1
Perguntas Posicione tabela DA1
- flavianoan
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 58
- Obrigados Recebidos: 0
8 anos 9 meses atrás - 8 anos 9 meses atrás #30242
por flavianoan
Posicione tabela DA1 foi criado por flavianoan
Boa tarde a todos, estou precisando pegar o preço do produto na tabela DA1 de acordo com a faixa para isso fiz o seguinte:
Tabela DA1
produto xpto 10,00 faixa 5
produto xpto 5,00 faixa 10
DbSelectArea("DA1")
DbSetOrder(1)
nFaixaAux := DA1_QTDLOT
cFaixa := cValTochar(nFaixaAux)
nPrcTab := Posicione("DA1",1,xFilial("DA1")+cTabela+cProd+cFaixa,"DA1_PRCVEN")
porem o preço esta vindo zerado zerado, algum sabe o que esta de errado no posicione, pois preciso que ele peque o preço de venda na faixa que foi defino da tabela.
obrigado.
Tabela DA1
produto xpto 10,00 faixa 5
produto xpto 5,00 faixa 10
DbSelectArea("DA1")
DbSetOrder(1)
nFaixaAux := DA1_QTDLOT
cFaixa := cValTochar(nFaixaAux)
nPrcTab := Posicione("DA1",1,xFilial("DA1")+cTabela+cProd+cFaixa,"DA1_PRCVEN")
porem o preço esta vindo zerado zerado, algum sabe o que esta de errado no posicione, pois preciso que ele peque o preço de venda na faixa que foi defino da tabela.
obrigado.
Ultima edição: 8 anos 9 meses atrás por flavianoan.
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
8 anos 9 meses atrás #30245
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Posicione tabela DA1
Esta vindo zero provavelmente porque não está achando o registro.
Não entendi esta variavel cFaixa no indice ?
Não entendi esta variavel cFaixa no indice ?
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- flavianoan
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 58
- Obrigados Recebidos: 0
8 anos 9 meses atrás #30247
por flavianoan
Respondido por flavianoan no tópico Posicione tabela DA1
Luiz, este indice 1 que esta na tabela
DA1_FILIAL+DA1_CODTAB+DA1_CODPRO+DA1_INDLOT+DA1_ITEM
Cod. Tabela + Cod.Produto + Faixa + Item
eu vou postar o código que estou usando.
este código foi é uma adaptação do código que o colega, delweis de Assis Felipe, postou no fórum.
User function F0001()
Local nPrcTab,nPrMax,nPrVen,nPrDig,cProdu,cTabela,cYtabela,cC5_VEND1
Local nFaixaAux,cFaixa
LOCAL nArea := SELECT("SA3")
cProdu := aCols[n,GdFieldPos("C6_PRODUTO")]
nPrDig := M->C6_PRCVEN
cC5_VEND1 := M->C5_VEND1
dbSelectArea(nArea)
Posicione("SA3",1,xFilial("SA3")+cC5_VEND1,"A3_YTABELA")
cYtabela := A3_YTABELA
If cYtabela = "S"
Return (.t.)
Endif
dbCloseArea()
cTabela := M->C5_TABELA
DbSelectArea("DA1")
DbSetOrder(1)
nFaixaAux := DA1_QTDLOT
cFaixa := cValTochar(nFaixaAux)
nPrcTab := Posicione("DA1",1,xFilial("DA1")+cTabela+cProdu+cFaixa,"DA1_PRCVEN") // Busca Preço Minimo do Produto
If nPrDig < nPrcTab
M->C6_PRCVEN := nPrcTab
alert("Preço inválido. Preço Mínimo= "+Transform(nPrcTab,"@E 999,999.99"),"Preço inválido","stop")
Return (.t.)
Endif
If nPrDig = nPrcTab
M->C6_PRCVEN := nPrDig
Return (.t.)
Endif
return()
DA1_FILIAL+DA1_CODTAB+DA1_CODPRO+DA1_INDLOT+DA1_ITEM
Cod. Tabela + Cod.Produto + Faixa + Item
eu vou postar o código que estou usando.
este código foi é uma adaptação do código que o colega, delweis de Assis Felipe, postou no fórum.
User function F0001()
Local nPrcTab,nPrMax,nPrVen,nPrDig,cProdu,cTabela,cYtabela,cC5_VEND1
Local nFaixaAux,cFaixa
LOCAL nArea := SELECT("SA3")
cProdu := aCols[n,GdFieldPos("C6_PRODUTO")]
nPrDig := M->C6_PRCVEN
cC5_VEND1 := M->C5_VEND1
dbSelectArea(nArea)
Posicione("SA3",1,xFilial("SA3")+cC5_VEND1,"A3_YTABELA")
cYtabela := A3_YTABELA
If cYtabela = "S"
Return (.t.)
Endif
dbCloseArea()
cTabela := M->C5_TABELA
DbSelectArea("DA1")
DbSetOrder(1)
nFaixaAux := DA1_QTDLOT
cFaixa := cValTochar(nFaixaAux)
nPrcTab := Posicione("DA1",1,xFilial("DA1")+cTabela+cProdu+cFaixa,"DA1_PRCVEN") // Busca Preço Minimo do Produto
If nPrDig < nPrcTab
M->C6_PRCVEN := nPrcTab
alert("Preço inválido. Preço Mínimo= "+Transform(nPrcTab,"@E 999,999.99"),"Preço inválido","stop")
Return (.t.)
Endif
If nPrDig = nPrcTab
M->C6_PRCVEN := nPrDig
Return (.t.)
Endif
return()
Por favor Acessar ou Registrar para participar da conversa.
- flavianoan
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 58
- Obrigados Recebidos: 0
8 anos 9 meses atrás #30276
por flavianoan
Respondido por flavianoan no tópico Posicione tabela DA1
Resolvido, peguei o Preço de Lista na ao invés de pegar o preço direto na tabela.
If nPrDig < nPrelista
M->C6_PRCVEN := nPrelista
alert("Preço inválido. Preço Mínimo= "+Transform(nPrelista,"@E 999,999.99"),"Preço inválido","stop")
Return (.t.)
Endif
If nPrDig < nPrelista
M->C6_PRCVEN := nPrelista
alert("Preço inválido. Preço Mínimo= "+Transform(nPrelista,"@E 999,999.99"),"Preço inválido","stop")
Return (.t.)
Endif
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Funções AdvPL
- Posicione tabela DA1
Tempo para a criação da página:0.135 segundos