×
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 #26925
por brunogfx4
Ajuda com ReckLock foi criado por brunogfx4
Bom dia pessoal alguem pode me ajudar no código abaixo?
Eu estou querendo que ele atualize o campo de data conforme o parametro selecionado, porem nao sei o motivo e a forma de fazer com que ele atualize somente o que eu peco no parametro de numero X a numero y no SC6.
BeginSQL Alias cAlias
SELECT C6_NUM,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_<>'*'
GROUP BY C6_NUM,C6_ENTREG,C6_CLI,C6_LOJA,C6_NOTA
ORDER BY C6_NUM
EndSQL
/*If nNota==' '
msginfo("Pedido:"+(nPed)+CHR(13)+CHR(10))
Else */
While (cAlias)->(!EOF())/*.AND.;
(cAlias)->C6_NUM */
nPed :=(cAlias)->C6_NUM
nNota :=(cAlias)->C6_NOTA
nCli :=(cAlias)->C6_CLI
nloj :=(cAlias)->C6_LOJA
dEntrega :=(MV_PAR05)
RecLock("SC6",.F.)
SC6->C6_ENTREG := dEntrega
MsUnLock()
dbSkip()
//EndIf
Enddo
Return
Eu estou querendo que ele atualize o campo de data conforme o parametro selecionado, porem nao sei o motivo e a forma de fazer com que ele atualize somente o que eu peco no parametro de numero X a numero y no SC6.
BeginSQL Alias cAlias
SELECT C6_NUM,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_<>'*'
GROUP BY C6_NUM,C6_ENTREG,C6_CLI,C6_LOJA,C6_NOTA
ORDER BY C6_NUM
EndSQL
/*If nNota==' '
msginfo("Pedido:"+(nPed)+CHR(13)+CHR(10))
Else */
While (cAlias)->(!EOF())/*.AND.;
(cAlias)->C6_NUM */
nPed :=(cAlias)->C6_NUM
nNota :=(cAlias)->C6_NOTA
nCli :=(cAlias)->C6_CLI
nloj :=(cAlias)->C6_LOJA
dEntrega :=(MV_PAR05)
RecLock("SC6",.F.)
SC6->C6_ENTREG := dEntrega
MsUnLock()
dbSkip()
//EndIf
Enddo
Return
Por favor Acessar ou Registrar para participar da conversa.
- brunogfx4
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 79
- Obrigados Recebidos: 0
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
9 anos 10 meses atrás #26929
por kanaamlrr
Respondido por kanaamlrr no tópico Ajuda com ReckLock
Bruno,
Como você está utilizando uma query para trazer os dados que você quer alterar, você vai precisar posicionar a tabela SC6 com base na sua query e ir alterando cada registro.
Basicamente seria um Loop na query com um dbSeek para cada registro e em seguida a alteração.
Tente dessa forma que deve funcionar
Outra forma seria fazer o Loop direto na SC6 dentro do intervalo desejado.
Abraço!
Como você está utilizando uma query para trazer os dados que você quer alterar, você vai precisar posicionar a tabela SC6 com base na sua query e ir alterando cada registro.
Basicamente seria um Loop na query com um dbSeek para cada registro e em seguida a alteração.
Tente dessa forma que deve funcionar
Outra forma seria fazer o Loop direto na SC6 dentro do intervalo desejado.
Abraço!
Por favor Acessar ou Registrar para participar da conversa.
- brunogfx4
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 79
- Obrigados Recebidos: 0
- brunogfx4
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 79
- Obrigados Recebidos: 0
9 anos 10 meses atrás #26932
por brunogfx4
Respondido por brunogfx4 no tópico Ajuda com ReckLock
Consegui resolver.Segue abaixo o código:
BeginSQL Alias cAlias
SELECT C6_FILIAL,C6_NUM,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_<>'*'
GROUP BY C6_FILIAL,C6_NUM,C6_ENTREG,C6_CLI,C6_LOJA,C6_NOTA
ORDER BY C6_NUM
EndSQL
If nNota==' '
msginfo("Pedido:"+(nPed)+CHR(13)+CHR(10))
Else
While (cAlias)->(!EOF())
nPed :=(cAlias)->C6_NUM
nNota :=(cAlias)->C6_NOTA
nCli :=(cAlias)->C6_CLI
nloj :=(cAlias)->C6_LOJA
dEntrega :=(MV_PAR05)
dbSelectArea("SC6")
dbSetOrder(1)
dbSeek(xFilial()+(cAlias)->C6_NUM)
RecLock("SC6",.F.)
SC6->C6_ENTREG := dEntrega
SC6->(MsUnlock())
(cAlias)->(dbSkip())
EndIf
Enddo
Return
BeginSQL Alias cAlias
SELECT C6_FILIAL,C6_NUM,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_<>'*'
GROUP BY C6_FILIAL,C6_NUM,C6_ENTREG,C6_CLI,C6_LOJA,C6_NOTA
ORDER BY C6_NUM
EndSQL
If nNota==' '
msginfo("Pedido:"+(nPed)+CHR(13)+CHR(10))
Else
While (cAlias)->(!EOF())
nPed :=(cAlias)->C6_NUM
nNota :=(cAlias)->C6_NOTA
nCli :=(cAlias)->C6_CLI
nloj :=(cAlias)->C6_LOJA
dEntrega :=(MV_PAR05)
dbSelectArea("SC6")
dbSetOrder(1)
dbSeek(xFilial()+(cAlias)->C6_NUM)
RecLock("SC6",.F.)
SC6->C6_ENTREG := dEntrega
SC6->(MsUnlock())
(cAlias)->(dbSkip())
EndIf
Enddo
Return
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
Tempo para a criação da página:0.085 segundos