- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Documento de Entrada (Ped. Compra [F6])
×
Linguagem de Programação ADVPL
Perguntas Documento de Entrada (Ped. Compra [F6])
- Darkbeo
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 33
- Obrigados Recebidos: 0
10 anos 2 meses atrás - 10 anos 2 meses atrás #24839
por Darkbeo
Documento de Entrada (Ped. Compra [F6]) foi criado por Darkbeo
Prezados,
Alguém já fez ou tem alguma ideia de como travar a seleção do pedido de compra mais antigo (Data de Entrega) para o produto informado?
Exemplo: Estou dando entrada em um Documento de Entrada e quando for informar os Produtos desse documento travar para que o usuário só consiga escolher os Pedidos de Compra [F6] mais antigos (Data de Entrega) daquele Produto.
Isso é possível ?
Alguém já fez ou tem alguma ideia de como travar a seleção do pedido de compra mais antigo (Data de Entrega) para o produto informado?
Exemplo: Estou dando entrada em um Documento de Entrada e quando for informar os Produtos desse documento travar para que o usuário só consiga escolher os Pedidos de Compra [F6] mais antigos (Data de Entrega) daquele Produto.
Isso é possível ?
Ultima edição: 10 anos 2 meses atrás por Darkbeo. Razão: Correções
Por favor Acessar ou Registrar para participar da conversa.
- inocenciojr
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 114
- Obrigados Recebidos: 1
10 anos 2 meses atrás #24841
por inocenciojr
Respondido por inocenciojr no tópico Documento de Entrada (Ped. Compra [F6])
Roberto,
Não sei se existe um ponto de entrada exato pra isso, mas seria o caso um User Function que verificasse a SC7 em busca de todos os pedidos daquele produto e na hora de selecionar verificar se o numero bate com o mais antigo. Algo tipo assim.
Select * From RetSQLName("SC7") WHERE D2_PRODUTO = C7_PRODUTO ORDER BY C7_NUM
IF D2_PEDC > C7_NUM
MSGALERT("Favor escolher o pedido mais antigo para o produto", "Erro")
EndIf
Os campos nem sei se estão certos. É apenas uma idéia
Não sei se existe um ponto de entrada exato pra isso, mas seria o caso um User Function que verificasse a SC7 em busca de todos os pedidos daquele produto e na hora de selecionar verificar se o numero bate com o mais antigo. Algo tipo assim.
Select * From RetSQLName("SC7") WHERE D2_PRODUTO = C7_PRODUTO ORDER BY C7_NUM
IF D2_PEDC > C7_NUM
MSGALERT("Favor escolher o pedido mais antigo para o produto", "Erro")
EndIf
Os campos nem sei se estão certos. É apenas uma idéia
Por favor Acessar ou Registrar para participar da conversa.
- Darkbeo
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 33
- Obrigados Recebidos: 0
10 anos 2 meses atrás #24842
por Darkbeo
Respondido por Darkbeo no tópico Documento de Entrada (Ped. Compra [F6])
Inocencio, Boa Tarde!
Também pensei em fazer essa validação executando um SELECT e fazer essa verificação no P.E. MT100LOK o problema é que esse P.E. só é executado no final de tudo, depois que o usuário já terminou a digitação de todo o documento.
Queria tentar fazer isso no ato da digitação de cada produto... Linha a Linha (aCols)
Mesmo assim fico grato pela atenção.
Também pensei em fazer essa validação executando um SELECT e fazer essa verificação no P.E. MT100LOK o problema é que esse P.E. só é executado no final de tudo, depois que o usuário já terminou a digitação de todo o documento.
Queria tentar fazer isso no ato da digitação de cada produto... Linha a Linha (aCols)
Mesmo assim fico grato pela atenção.
Por favor Acessar ou Registrar para participar da conversa.
- inocenciojr
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 114
- Obrigados Recebidos: 1
10 anos 2 meses atrás #24843
por inocenciojr
Respondido por inocenciojr no tópico Documento de Entrada (Ped. Compra [F6])
Roberto,
E se você colocar essa função como gatilho no campo de seleção do pedido de compra?
E se você colocar essa função como gatilho no campo de seleção do pedido de compra?
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 216
- Obrigados Recebidos: 0
10 anos 2 meses atrás #24851
por admin
Respondido por admin no tópico Documento de Entrada (Ped. Compra [F6])
tdn.totvs.com/pages/releaseview.action?pageId=6085425
ou
tdn.totvs.com/pages/releaseview.action?pageId=6085390
User Function MT100C7L()
Local aArea := GetArea()
Local nFreeQt
Local nX
dbSelectArea('SC7')
dbSetOrder(3)
If dbSeek(xFilial() + cA100For + '02')
While !Eof .And. SC7->C7_FORNECE == cA100For .And. SC7->C7_LOJA == '02'
nFreeQt := SC7->C7_QUANT - SC7->C7_QUJE - SC7->C7_QTDACLA
If nFreeQt > 0
aAdd(aArrSldo, {nFreeQt, RecNo()})
Aadd(aArrayF4, Array(Len(aCampos)))
For nX := 1 To Len(aCampos)
If aCampos[nX][3] != 'V'
aArrayF4[Len(aArrayF4)][nX] := FieldGet(FieldPos(aCampos[nX][1]))
Else
aArrayF4[Len(aArrayF4)][nX] := CriaVar(aCampos[nX][1],.T.)
Endif
Next
Endif
dbSkip()
End
Endif
RestArea(aArea)
Return NIL
ou
tdn.totvs.com/pages/releaseview.action?pageId=6085390
User Function MT100C7L()
Local aArea := GetArea()
Local nFreeQt
Local nX
dbSelectArea('SC7')
dbSetOrder(3)
If dbSeek(xFilial() + cA100For + '02')
While !Eof .And. SC7->C7_FORNECE == cA100For .And. SC7->C7_LOJA == '02'
nFreeQt := SC7->C7_QUANT - SC7->C7_QUJE - SC7->C7_QTDACLA
If nFreeQt > 0
aAdd(aArrSldo, {nFreeQt, RecNo()})
Aadd(aArrayF4, Array(Len(aCampos)))
For nX := 1 To Len(aCampos)
If aCampos[nX][3] != 'V'
aArrayF4[Len(aArrayF4)][nX] := FieldGet(FieldPos(aCampos[nX][1]))
Else
aArrayF4[Len(aArrayF4)][nX] := CriaVar(aCampos[nX][1],.T.)
Endif
Next
Endif
dbSkip()
End
Endif
RestArea(aArea)
Return NIL
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 216
- Obrigados Recebidos: 0
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Documento de Entrada (Ped. Compra [F6])
Tempo para a criação da página:0.137 segundos