- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Numero Requisicao Armazem alimentar pedido venda
×
Linguagem de Programação ADVPL
Perguntas Numero Requisicao Armazem alimentar pedido venda
- michelp
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 115
- Obrigados Recebidos: 0
11 anos 10 meses atrás #9797
por michelp
Numero Requisicao Armazem alimentar pedido venda foi criado por michelp
Preciso que o campo C5_ZZRA ao ser preenchido no pedido de venda com o numero da requisição ao Armazem alimente no pedido de venda C6 os: produtos, itens, descrição, mais não estou conseguindo fazer esse programa funcionar.
Alguém teria um exemplo para me dar ou me falar com seria isso em ADVPL
Att. Michel
Alguém teria um exemplo para me dar ou me falar com seria isso em ADVPL
Att. Michel
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 10 meses atrás - 11 anos 10 meses atrás #9798
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 Re: Numero Requisicao Armazem alimentar pedido venda
Na Validação do Campo C5_ZZRA coloque
Iif(!Empty(M->C5_ZZRA),U_Fata01(),.t.)
User Function Fata01()
Local nInd := 0
Local cOrdFab := ""
Local aArea := GetArea()
Local nPosItem := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_ITEM" } )
Local nPosProd := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_PRODUTO" } )
Local nPosDesc := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_DESCRI" } )
Local nPosUM := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_UM" } )
Local nPosQtde := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_QTDVEN" } )
Local nPosPrUn := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_PRCVEN" } )
Local nPosSeUM := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_SEGUM" } )
Local nPosValo := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_VALOR" } )
Local nPosTES := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_TES" } )
Local nPosCFis := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_CLASFIS" } )
Local nPosCFOP := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_CF" } )
Local nPosLoca := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_LOCAL" } )
Local nPosEntr := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_ENTREG" } )
Local nPosAlWT := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_ALI_WT" } )
Local nPosReWT := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_REC_WT" } )
Local nPosIdB6 := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_IDENTB6" } )
Local nPosPUni := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_PRUNIT" } )
If SCP->(dbSetOrder(1), dbSeek(xFilial("SCP")+M->C5_ZZRA))
While SCP->(!Eof()) .And. SCP->CP_FILIAL == xFilial("SCP") .And. SCP->CP_NUM == M->C5_ZZRA
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Montagem do aCols ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
AADD(aCols,Array(Len(aHeader)+1))
nInd := Len(aCols)
For nCntFor := 1 To Len(aHeader)
If !aHeader[nCntFor,2] $ "C6_ALI_WT/C6_REC_WT"
aCols[nInd][nCntFor] := CriaVar(aHeader[nCntFor][2])
If ( AllTrim(aHeader[nCntFor][2]) == "C6_ITEM" )
aCols[nInd][nCntFor] := StrZero(nInd,2)
EndIf
EndIf
Next nCntFor
aCOLS[nInd][Len(aHeader)+1] := .F.
nInd := Len(aCols)
SB1->(dbSetOrder(1), dbSeek(xFilial("SB1")+SD1->D1_COD))
SF4->(dbSetOrder(1), dbSeek(xFilial("SF4")+SB1->B1_TS))
aCols[nInd,nPosProd] := SCP->CP_PRODUTO
aCols[nInd,nPosDesc] := SB1->B1_DESC
aCols[nInd,nPosCCli] := SB1->B1_CODCLI
aCols[nInd,nPosUM] := SB1->B1_UM
aCols[nInd,nPosQtde] := SCP->CP_QUANT
aCols[nInd,nPosPrUn] := 0.00
aCols[nInd,nPosValo] := 0.00
aCols[nInd,nPosTES] := SB1->B1_TS
aCols[nInd,nPosLoca] := SCP->CP_LOCAL
aCols[nInd,nPosCFOP] := Iif(SA1->A1_EST=="SP","5","6") + Substr(SF4->F4_CF,2,4)
aCols[nInd,nPosEntr] := dDataBase + 1
aCols[nInd,nPosCFis] := Subs(SB1->B1_ORIGEM,1,1)+SF4->F4_SITTRIB
If nPosAlWT <> 0
aCols[nInd,nPosAlWT] := ""
EndIf
If nPosReWT <> 0
aCols[nInd,nPosReWT] := 0
EndIf
SCP->(dbSkip(1))
Enddo
n := 1
Else
MsgAlert(OemToAnsi("Atenção Solicitação ao Armazen Não Localizada!"))
RestArea(aArea)
Return .f.
Endif
lRefreshAll := .T.
Return(.T.)
Iif(!Empty(M->C5_ZZRA),U_Fata01(),.t.)
User Function Fata01()
Local nInd := 0
Local cOrdFab := ""
Local aArea := GetArea()
Local nPosItem := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_ITEM" } )
Local nPosProd := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_PRODUTO" } )
Local nPosDesc := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_DESCRI" } )
Local nPosUM := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_UM" } )
Local nPosQtde := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_QTDVEN" } )
Local nPosPrUn := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_PRCVEN" } )
Local nPosSeUM := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_SEGUM" } )
Local nPosValo := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_VALOR" } )
Local nPosTES := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_TES" } )
Local nPosCFis := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_CLASFIS" } )
Local nPosCFOP := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_CF" } )
Local nPosLoca := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_LOCAL" } )
Local nPosEntr := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_ENTREG" } )
Local nPosAlWT := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_ALI_WT" } )
Local nPosReWT := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_REC_WT" } )
Local nPosIdB6 := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_IDENTB6" } )
Local nPosPUni := Ascan( aHeader, { |x| Alltrim(x[2]) == "C6_PRUNIT" } )
If SCP->(dbSetOrder(1), dbSeek(xFilial("SCP")+M->C5_ZZRA))
While SCP->(!Eof()) .And. SCP->CP_FILIAL == xFilial("SCP") .And. SCP->CP_NUM == M->C5_ZZRA
//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Montagem do aCols ³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
AADD(aCols,Array(Len(aHeader)+1))
nInd := Len(aCols)
For nCntFor := 1 To Len(aHeader)
If !aHeader[nCntFor,2] $ "C6_ALI_WT/C6_REC_WT"
aCols[nInd][nCntFor] := CriaVar(aHeader[nCntFor][2])
If ( AllTrim(aHeader[nCntFor][2]) == "C6_ITEM" )
aCols[nInd][nCntFor] := StrZero(nInd,2)
EndIf
EndIf
Next nCntFor
aCOLS[nInd][Len(aHeader)+1] := .F.
nInd := Len(aCols)
SB1->(dbSetOrder(1), dbSeek(xFilial("SB1")+SD1->D1_COD))
SF4->(dbSetOrder(1), dbSeek(xFilial("SF4")+SB1->B1_TS))
aCols[nInd,nPosProd] := SCP->CP_PRODUTO
aCols[nInd,nPosDesc] := SB1->B1_DESC
aCols[nInd,nPosCCli] := SB1->B1_CODCLI
aCols[nInd,nPosUM] := SB1->B1_UM
aCols[nInd,nPosQtde] := SCP->CP_QUANT
aCols[nInd,nPosPrUn] := 0.00
aCols[nInd,nPosValo] := 0.00
aCols[nInd,nPosTES] := SB1->B1_TS
aCols[nInd,nPosLoca] := SCP->CP_LOCAL
aCols[nInd,nPosCFOP] := Iif(SA1->A1_EST=="SP","5","6") + Substr(SF4->F4_CF,2,4)
aCols[nInd,nPosEntr] := dDataBase + 1
aCols[nInd,nPosCFis] := Subs(SB1->B1_ORIGEM,1,1)+SF4->F4_SITTRIB
If nPosAlWT <> 0
aCols[nInd,nPosAlWT] := ""
EndIf
If nPosReWT <> 0
aCols[nInd,nPosReWT] := 0
EndIf
SCP->(dbSkip(1))
Enddo
n := 1
Else
MsgAlert(OemToAnsi("Atenção Solicitação ao Armazen Não Localizada!"))
RestArea(aArea)
Return .f.
Endif
lRefreshAll := .T.
Return(.T.)
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Ultima edição: 11 anos 10 meses atrás por lalberto.
Por favor Acessar ou Registrar para participar da conversa.
- michelp
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 115
- Obrigados Recebidos: 0
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 10 meses atrás #9807
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 Re: Numero Requisicao Armazem alimentar pedido venda
Blz Precisando estou por aqui.
Abraços.
Abraços.
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.
- michelp
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 115
- Obrigados Recebidos: 0
11 anos 9 meses atrás #10121
por michelp
Respondido por michelp no tópico Re: Numero Requisicao Armazem alimentar pedido venda
Luiz,
Tentei aplicar mais deu o erro abaixo
THREAD ERROR (administrador, SERVER2) 27/01/2013 21:00:43
variable does not exist NPOSCCLI on U_FATA01(FATA01.PRW) 27/01/2013 20:22:46 line : 51
Se puder me dar um help
Att. Michel
Tentei aplicar mais deu o erro abaixo
THREAD ERROR (administrador, SERVER2) 27/01/2013 21:00:43
variable does not exist NPOSCCLI on U_FATA01(FATA01.PRW) 27/01/2013 20:22:46 line : 51
Se puder me dar um help
Att. Michel
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 9 meses atrás #10128
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 Re: Numero Requisicao Armazem alimentar pedido venda
Elimina esta linha:
aCols[nInd,nPosCCli] := SB1->B1_CODCLI
aCols[nInd,nPosCCli] := SB1->B1_CODCLI
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.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Numero Requisicao Armazem alimentar pedido venda
Tempo para a criação da página:0.117 segundos