- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Atualizar tabela no PE
×
Linguagem de Programação ADVPL
Perguntas Atualizar tabela no PE
- alex.magno
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 68
- Obrigados Recebidos: 0
10 anos 5 meses atrás #23015
por alex.magno
Atualizar tabela no PE foi criado por alex.magno
Boa noite pessoal,
Sou novo em advpl e estou tentando fazer o seguinte:
Estou implementando um PE após a gravação do pedido de venda que verifica se algum item do pedido foi alterado, caso positivo eu tenho que atualizar a tabela SC9.
Estou fazendo um loop na tabela SC6 para verificar se algum item foi alterado, quando eu encontro algum registro alterado eu tenho que procurar na tabela SC9 se aquele item existe, se existir na SC9 eu preciso alterar um campo na tabela SC9.
O loop está funcionando fiz via query e uso o while !eof(), dentro do while faço um If no campo que quero verificar, se entrar no If tenho que alterar a tabela SC9 se existir o item nela. Como faço para alterar esse item na tabala SC9 sendo que estou em um loop na tabela SC6?
Sou novo em advpl e estou tentando fazer o seguinte:
Estou implementando um PE após a gravação do pedido de venda que verifica se algum item do pedido foi alterado, caso positivo eu tenho que atualizar a tabela SC9.
Estou fazendo um loop na tabela SC6 para verificar se algum item foi alterado, quando eu encontro algum registro alterado eu tenho que procurar na tabela SC9 se aquele item existe, se existir na SC9 eu preciso alterar um campo na tabela SC9.
O loop está funcionando fiz via query e uso o while !eof(), dentro do while faço um If no campo que quero verificar, se entrar no If tenho que alterar a tabela SC9 se existir o item nela. Como faço para alterar esse item na tabala SC9 sendo que estou em um loop na tabela SC6?
Por favor Acessar ou Registrar para participar da conversa.
- angeloprotti1
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 28
- Obrigados Recebidos: 0
10 anos 5 meses atrás - 10 anos 5 meses atrás #23042
por angeloprotti1
Respondido por angeloprotti1 no tópico Atualizar tabela no PE
Boa tarde Alex !
Não sei se entendi direito, mas se sim, você pode dar um update na tabela SC9 de acordo com os dados que tem no array, no where faça uma maneira que só tenha aquele arquivo que procura... (chave)
Segue um exemplo:
IF aviso("Atenção !!!","Este Frete contém apenas um item, não será gerada fatura e somente atualizará o Flag, deseja continuar ? ",{"Sim","Não"}) = 1
cUpdte := "UPDATE SZN010 SET "
cUpdte += "ZN_FLFIN = '1', "
cUpdte += "ZN_USFIN = '"+cCodUse+"', "
cUpdte += "ZN_TMFIN = '"+DTeHORA+"' "
cUpdte += "WHERE ZN_COD = '"+aTits[m, 4]+"' AND ZN_DTFECH = '"+DTOS(aTits[m, 6])+"' AND D_E_L_E_T_ <> '*' "
TcSQLExec(cUpdte)
RETURN()
ELSE
RETURN()
ENDIF
Um Abraço
Não sei se entendi direito, mas se sim, você pode dar um update na tabela SC9 de acordo com os dados que tem no array, no where faça uma maneira que só tenha aquele arquivo que procura... (chave)
Segue um exemplo:
IF aviso("Atenção !!!","Este Frete contém apenas um item, não será gerada fatura e somente atualizará o Flag, deseja continuar ? ",{"Sim","Não"}) = 1
cUpdte := "UPDATE SZN010 SET "
cUpdte += "ZN_FLFIN = '1', "
cUpdte += "ZN_USFIN = '"+cCodUse+"', "
cUpdte += "ZN_TMFIN = '"+DTeHORA+"' "
cUpdte += "WHERE ZN_COD = '"+aTits[m, 4]+"' AND ZN_DTFECH = '"+DTOS(aTits[m, 6])+"' AND D_E_L_E_T_ <> '*' "
TcSQLExec(cUpdte)
RETURN()
ELSE
RETURN()
ENDIF
Um Abraço
Ultima edição: 10 anos 5 meses atrás por angeloprotti1.
Por favor Acessar ou Registrar para participar da conversa.
- THALESCOTR
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 124
- Obrigados Recebidos: 0
10 anos 5 meses atrás #23055
por THALESCOTR
Respondido por THALESCOTR no tópico Atualizar tabela no PE
Bom dia Alex,
Utilize RecLock(), NÃO utilize UPDATE.
Segue um exemplo:
DbSelectArea("SC9")
DbSetOrder(1)
If DbSeek(valores correspondentes a: C9_FILIAL+C9_PEDIDO+C9_ITEM) //se retornar .T. encontrou
RecLock("SC9",.F.) //altera
SC9->C9_ITEM := "XX"
MsUnlock()
Else
RecLock("SC9",.T.) //inclui uma nova linha
SC9->C9_ITEM := "XX"
MsUnlock()
EndIf
Att
Thales
Utilize RecLock(), NÃO utilize UPDATE.
Segue um exemplo:
DbSelectArea("SC9")
DbSetOrder(1)
If DbSeek(valores correspondentes a: C9_FILIAL+C9_PEDIDO+C9_ITEM) //se retornar .T. encontrou
RecLock("SC9",.F.) //altera
SC9->C9_ITEM := "XX"
MsUnlock()
Else
RecLock("SC9",.T.) //inclui uma nova linha
SC9->C9_ITEM := "XX"
MsUnlock()
EndIf
Att
Thales
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Atualizar tabela no PE
Tempo para a criação da página:0.087 segundos