× Linguagem de Programação ADVPL

Perguntas Cadastrar produto em varias filiais de uma vez

Mais
10 anos 11 meses atrás #18462 por Rei da TI
Sobre o erro:


THREAD ERROR (Reinaldo.Mauricio, MMTNBKDTI60CTA) 12/11/2013 10:54:19
type mismatch on .AND. on INTEGRASFC(MATA010.PRX) 23/10/2012 21:28:50 line : 5472

[TOTVS build: 7.00.120420A-20120726]
Called from A010TUDOOK(MATA010.PRX) 23/10/2012 21:28:50 line : 3247


Era base desatualizada.... vou continuar o teste.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 11 meses atrás #18482 por Rei da TI
Então galera, estou fazendo da maneira que o Kanaãm falou, fui acompanhando e esta tudo certo so no final da um erro em uma customização que temos aqui...alguem sabe por que? será que estou fechando as tabelas no local errado?

Erro no gatilho : b1_subcat Sec.001

Work area not in use


abaixo segue o fonte que fiz.

#include "protheus.ch"
#include "topconn.ch"

User Function A010TOK

Local lRet := .T.
Local cMsg := "Deseja incluir este produto nas demais Filiais?"
Local cCaption := "Copiando..."


if inclui
//mostra pergunta do parametro cMsg
If ApMsgNoYes(cMsg, cCaption)
//tabela com as informaçoes das filiais
DbSelectArea("SM0")
While SM0->(!Eof())
//Filial da tabela é diferente da filial logada?
if SM0->M0_CODFIL <> cfilant

RecLock("SB1",.T.)
AvReplace("M","SB1")
//altero a filial do produto
SB1->B1_FILIAL = SM0->M0_CODFIL
//libero registro
SB1->(MsUnlock())
endif
//proximo registro
SM0->(DbSkip())
End Do
//libero registro
SM0->(dbCloseArea())
endif
endif

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 11 meses atrás #18486 por lalberto
Faz assim:

#include "protheus.ch"
#include "topconn.ch"

User Function A010TOK
Local aArea := GetArea()
Local lRet := .T.
Local cMsg := "Deseja incluir este produto nas demais Filiais?"
Local cCaption := "Copiando..."


if inclui
//mostra pergunta do parametro cMsg
If ApMsgNoYes(cMsg, cCaption)
//tabela com as informaçoes das filiais
DbSelectArea("SM0")
nRec := SM0->(Recno())
SM0->(dbGoTop())

While SM0->(!Eof())
//Filial da tabela é diferente da filial logada?
if SM0->M0_CODFIL <> cfilant

RecLock("SB1",.T.)
AvReplace("M","SB1")
//altero a filial do produto
SB1->B1_FILIAL = SM0->M0_CODFIL
//libero registro
SB1->(MsUnlock())
endif
//proximo registro
SM0->(DbSkip())
End Do
//libero registro
//SM0->(dbCloseArea()) COMENTA ESSA LINHA NÃO PODE FECHAR ESSA TABELA
SM0->(dbGoTo(nRec))

endif
endif
RestArea(aArea)
Return

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.

Mais
10 anos 11 meses atrás #18493 por Rei da TI
RESOLVIDOOOO

Galera...

Deu certo da forma que o Kanaãm informou e que o Luiz corrigiu,desta forma funciona direitinho...Obrigado a todos pela força.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 11 meses atrás #18497 por lalberto
Maravilha, se puder contribuir com a caixinha de natal ficamos imensamente gratos.

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.

Mais
10 anos 11 meses atrás #18500 por Rei da TI
Opa ...claro podemos ver, não de natal, mais podemos ver sim.

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.140 segundos
Joomla templates by a4joomla