Exemplo: | Bloco de código |
---|
firstline | 1 |
---|
linenumbers | true |
---|
| #include "protheus.ch"
User Function MT161CPO()
Local aPropostas := PARAMIXB[1] // Array com os dados das propostas dos Fornecedores
Local aItens := PARAMIXB[2] // Array com os dados da grid "Produtos"
Local aCampos := {"C8_ | XTESTEPRECO"} // Array com os campos adicionados na grid "Item da Proposta"
Local aCposProd := {"C8_ | XVALORQTSEGUM","C8_SEGUM"} // Array com os campos adicionados na grid "Produtos"
Local aRetorno := {}
Local nX := 0
Local nY := 0
Local nZ := 0
Local nCount := 0
Local aAreaSC8 := SC8->(GetArea())
For nX := 1 To Len(aPropostas)
For nY := 1 To Len(aPropostas[nX])
For nZ := 1 To Len(aPropostas[nX][nY][2])
nCount++
//C8_FILIAL+C8_NUM+C8_FORNECE+C8_LOJA+C8_ITEM+C8_NUMPRO
If Len(aPropostas[nX][nY][1]) > 0
AADD(aPropostas[nX][nY][2][nZ],Posicione(" | TESTE "+Str(nCount,2))SC8",1,SC8->(C8_FILIAL+C8_NUM)+aPropostas[nX][nY][1][1]+aPropostas[nX][nY][1][2]+aPropostas[nX][nY][2][nZ][2]+aPropostas[nX][nY][2][nZ][12],"C8_PRECO"))
Else
AADD(aPropostas[nX][nY][2][nZ],0)
EndIf
next nZ
Next nY
Next nX
For nX := 1 To Len(aItens)
//C8_FILIAL+C8_NUM+C8_FORNECE+C8_LOJA+C8_ITEM+C8_NUMPRO
AADD(aItens[nX],Posicione("SC8",1,SC8->(C8_FILIAL+C8_NUM)+aItens[nX][10]+aItens[nX][11]+aItens[nX][12]+aItens[nX][13],"C8_QTSEGUM"))
AADD(aItens[nX],Posicione("SC8",1,SC8->(C8_FILIAL+C8_NUM)+aItens[nX][10]+aItens[nX][11]+aItens[nX][12]+aItens[nX][13],"C8_SEGUM"))
Next nX
AADD(aRetorno,aPropostas)
AADD(aRetorno,aCampos)
AADD(aRetorno,aItens)
AADD(aRetorno,aCposProd)
RestArea(aAreaSC8)
Return aRetorno |
Bloco de código |
---|
firstline | 1 |
---|
linenumbers | true |
---|
|
---
#include "protheus.ch"
User Function MT161CPO()
Local aPropostas := PARAMIXB[1] // Array com os dados das propostas dos Fornecedores
Local aItens := PARAMIXB[2] // Array com os dados da grid "Produtos"
Local aCampos := {"C8_PRECOXTESTE"} // Array com os campos adicionados na grid "Item da Proposta"
Local aCposProd := {"C8_QTSEGUM","C8_SEGUM"XVALOR"} // Array com os campos adicionados na grid "Produtos"
Local aRetorno := {}
Local nX := 0
Local nY := 0
Local nZ := 0
Local nCount := 0
Local aAreaSC8 := SC8->(GetArea())
For nX := 1 To Len(aPropostas)
For nY := 1 To Len(aPropostas[nX])
For nZ := 1 To Len(aPropostas[nX][nY][2])
nCount++
//C8_FILIAL+C8_NUM+C8_FORNECE+C8_LOJA+C8_ITEM+C8_NUMPRO
If Len(aPropostas[nX][nY][1]) > 0
AADD(aPropostas[nX][nY][2][nZ],Posicione("SC8",1,SC8->(C8_FILIAL+C8_NUM)+aPropostas[nX][nY][1][1]+aPropostas[nX][nY][1][2]+aPropostas[nX][nY][2][nZ][2]+aPropostas[nX][nY][2][nZ][12],"C8_PRECO"))
Else
AADD(aPropostas[nX][nY][2][nZ],0)
EndIf
TESTE "+Str(nCount,2))
next nZ
Next nY
Next nX
For nX := 1 To Len(aItens)
//C8_FILIAL+C8_NUM+C8_FORNECE+C8_LOJA+C8_ITEM+C8_NUMPRO
AADD(aItens[nX],Posicione("SC8",1,SC8->(C8_FILIAL+C8_NUM)+aItens[nX][10]+aItens[nX][11]+aItens[nX][12]+aItens[nX][13],"C8_QTSEGUM"))
AADD(aItens[nX],Posicione("SC8",1,SC8->(C8_FILIAL+C8_NUM)+aItens[nX][10]+aItens[nX][11]+aItens[nX][12]+aItens[nX][13],"C8_SEGUM"))
Next nX
AADD(aRetorno,aPropostas)
AADD(aRetorno,aCampos)
AADD(aRetorno,aItens)
AADD(aRetorno,aCposProd)
RestArea(aAreaSC8)
Return aRetorno |
|
Informações adicionais: | Os nomes dos campos devem ser incluídos nos arrays de retorno na mesma ordem em que foram incluídos nas informações dos produtos e das propostas. No array de produtos, todos os produtos devem ter os mesmos campos incluídos e no array de dados das propostas todas as propostas devem ter os mesmos campos incluídos. Este ponto de entrada não efetua gravação de campos na tabela SC8 e também não permite editar as informações dos campos customizados na tela, somente exibição das informações.
Estrutura do Array aPropostas //aItens[n,x]: Numero do item //aItens[n,1]: C8_PRODUTO //aItens[n,2]: C8_IDENT //aItens[n,3]: C8_QUANT //aItens[n,4]: C8_ UM //aItens[n,5]: C8_ DATPRF //aItens[n,6]: C8_ FILENT //aItens[n,7]: valor do produto por proposta escolhida //aItens[n,8]: Descrição do Produto //aItens[n,9]: Flag finalizado //aItens[n,10]: Fornecedor //aItens[n,11]: Loja //aItens[n,12]: Item //aItens[n,13]: Numero da proposta //aItens[n,14]: Item da solicitacao //aItens[n,15]: Preco Unitário //aItens[n,16]: B1_CODITE [Integração Gestão de Concessionárias - MV_VEICULO = S] //aItens[n,17]: B1_GRUPO [Integração Gestão de Concessionárias - MV_VEICULO = S] //CABEÇALHO //aPropostas[n] : Número da página //aPropostas[n,p] : Posição do pedido na página (1,2) //aPropostas[n,p,1,x] : Dados do cabeçalho da proposta //aPropostas[n,p,1,1 ] : Cod Fornecedor //aPropostas[n,p,1,2 ] : Loja //aPropostas[n,p,1,3 ] : Nome //aPropostas[n,p,1,4 ] : Proposta //aPropostas[n,p,1,5 ] : Cond pagto //aPropostas[n,p,1,6 ] : Frete //aPropostas[n,p,1,7 ] : Valor total (soma de nCusto dos itens) //ITENS DA PROPOSTA// //aPropostas[n,p,2,x] : Itens da proposta //aPropostas[n,p,2,x,1] : Flag vencendor (lWin) //aPropostas[n,p,2,x,2] : Item (SC8->C8_ITEM) //aPropostas[n,p,2,x,3] : Cod produto (SC8->C8_PRODUTO) //aPropostas[n,p,2,x,4] : Valor total (nCusto) //aPropostas[n,p,2,x,5] : Data de entrega ((DATE()+SC8->C8_PRAZO)) //aPropostas[n,p,2,x,6] : Observações (SC8->C8_OBS) //aPropostas[n,p,2,x,7] : Filial Entrega (SC8->C8_FILENT) //aPropostas[n,p,2,x,8] : Flag finalizado (lFim) //aPropostas[n,p,2,x,9] : Recno SC8 (SC8->(Recno())) //aPropostas[n,p,2,x,10] : Ident. (SC8->C8_IDENT) //aPropostas[n,p,2,x,11] : Total de Itens da Cotação (Len(aItens)) //aPropostas[n,p,2,x,12] : Nro. da Proposta (SC8->C8_NUMPRO) //aPropostas[n,p,2,x,13] : Preco Unitario (SC8->C8_PRECO) //aPropostas[n,p,2,x,14] : Flag vencendor (lWinAud) //aPropostas[n,p,2,x,15] : Motivo Vencedor (SC8->C8_MOTVENC)
|