×
Linguagem de Programação ADVPL
Perguntas Ajuda com ReckLock
- brunogfx4
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 79
- Obrigados Recebidos: 0
9 anos 10 meses atrás #26959
por brunogfx4
Respondido por brunogfx4 no tópico Ajuda com ReckLock
Kanaam sera que voce pode me ajudar por gentileza?
Eu consegui fazer o restante do código conforme mencionei, porem eu fiz um IF para que apareca uma mensagem caso o pedido ja tenha nota fiscal, mas como o SC6 corre linha a linha do pedido eu utilize um T e F para a mensagem nao aparecer conforme o tanto de itens que tem no pedido, porem nao estou Obtendo sucesso no código, sera que voce pode me ajudar por gentileza?
BeginSQL Alias cAlias
SELECT C6_NUM,C6_FILIAL,C6_ITEM,C6_PRODUTO,C6_QTDVEN,C6_ENTREG,C6_CLI,C6_LOJA,C6_NOTA FROM SC6020
WHERE C6_NUM BETWEEN %Exp:MV_PAR01% AND %Exp:MV_PAR02%
AND C6_CLI BETWEEN %Exp:MV_PAR03% AND %Exp:MV_PAR04%
and D_E_L_E_T_<>'*'
ORDER BY C6_NUM,C6_ITEM
EndSQL
While (cAlias)->(!EOF())
nPed :=(cAlias)->C6_NUM
nNota :=(cAlias)->C6_NOTA
nCli :=(cAlias)->C6_CLI
nloj :=(cAlias)->C6_LOJA
nItem :=(cAlias)->C6_ITEM
dEntrega :=(MV_PAR05)
//If nNota==" " //Se nao foi faturado ele prossegue
// bProces :=.T.
If nNota<>" " .AND. bMsg == .F. // Se o campo C6_NOTA estiver preenchido o mesmo ja foi faturado.
msginfo("Pedido"+(nPed)+"Nao pode ser mudada a data pois o mesmo ja foi faturado."+CHR(13)+CHR(10))
bMsg := .T.
bProces := .F.
ElseIf nNota==' '
bProces := .T.
If bProces == .T.
dbSelectArea("SC6")
dbSetOrder(1)
dbSeek(xFilial()+(cAlias)->C6_NUM+(cAlias)->C6_ITEM)
RecLock("SC6",.F.)
SC6->C6_ENTREG := dEntrega
SC6->(MsUnlock())
//////////////////////////////////////////////////////////////////////////////
//ALTERA A DATA DOS PEDIDOS SELECIONADO PREENCHENDO O CAMPO DATA DE ENTREGA//
////////////////////////////////////////////////////////////////////////////
//IF bProces ==.T.
EndIf
(cAlias)->(dbSkip())
EndIf
// (cAlias)->(dbSkip())
Enddo //No fim do While ele manda uma MSG informando que as datas dos pedidos foram alteradas.
msginfo("Pedido de numero "+(MV_PAR01)+"a"+(MV_PAR02)+" processados."+CHR(13)+CHR(10))
Return
Eu consegui fazer o restante do código conforme mencionei, porem eu fiz um IF para que apareca uma mensagem caso o pedido ja tenha nota fiscal, mas como o SC6 corre linha a linha do pedido eu utilize um T e F para a mensagem nao aparecer conforme o tanto de itens que tem no pedido, porem nao estou Obtendo sucesso no código, sera que voce pode me ajudar por gentileza?
BeginSQL Alias cAlias
SELECT C6_NUM,C6_FILIAL,C6_ITEM,C6_PRODUTO,C6_QTDVEN,C6_ENTREG,C6_CLI,C6_LOJA,C6_NOTA FROM SC6020
WHERE C6_NUM BETWEEN %Exp:MV_PAR01% AND %Exp:MV_PAR02%
AND C6_CLI BETWEEN %Exp:MV_PAR03% AND %Exp:MV_PAR04%
and D_E_L_E_T_<>'*'
ORDER BY C6_NUM,C6_ITEM
EndSQL
While (cAlias)->(!EOF())
nPed :=(cAlias)->C6_NUM
nNota :=(cAlias)->C6_NOTA
nCli :=(cAlias)->C6_CLI
nloj :=(cAlias)->C6_LOJA
nItem :=(cAlias)->C6_ITEM
dEntrega :=(MV_PAR05)
//If nNota==" " //Se nao foi faturado ele prossegue
// bProces :=.T.
If nNota<>" " .AND. bMsg == .F. // Se o campo C6_NOTA estiver preenchido o mesmo ja foi faturado.
msginfo("Pedido"+(nPed)+"Nao pode ser mudada a data pois o mesmo ja foi faturado."+CHR(13)+CHR(10))
bMsg := .T.
bProces := .F.
ElseIf nNota==' '
bProces := .T.
If bProces == .T.
dbSelectArea("SC6")
dbSetOrder(1)
dbSeek(xFilial()+(cAlias)->C6_NUM+(cAlias)->C6_ITEM)
RecLock("SC6",.F.)
SC6->C6_ENTREG := dEntrega
SC6->(MsUnlock())
//////////////////////////////////////////////////////////////////////////////
//ALTERA A DATA DOS PEDIDOS SELECIONADO PREENCHENDO O CAMPO DATA DE ENTREGA//
////////////////////////////////////////////////////////////////////////////
//IF bProces ==.T.
EndIf
(cAlias)->(dbSkip())
EndIf
// (cAlias)->(dbSkip())
Enddo //No fim do While ele manda uma MSG informando que as datas dos pedidos foram alteradas.
msginfo("Pedido de numero "+(MV_PAR01)+"a"+(MV_PAR02)+" processados."+CHR(13)+CHR(10))
Return
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
9 anos 9 meses atrás #26967
por kanaamlrr
Respondido por kanaamlrr no tópico Ajuda com ReckLock
Seria interessante você verificar se mudou a NF quando estiver fazendo o loop para alterar suas variáveis de controle para os valores iniciais.
Senão seu processamento vai funcionar apenas para a 1ª NF.
Senão seu processamento vai funcionar apenas para a 1ª NF.
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.068 segundos