× Linguagem de Programação ADVPL

Perguntas Dúvida Orçamento Vendas

Mais
7 anos 6 meses atrás #31266 por JamesWesTRP
Bom dia!

Preciso atualizar um campo na tabela SCJ (cabeçalho do orçamento de vendas - SIGAFAT)
porém, o campo só atualiza quando eu clico em cima dele... ou seja, os valores estão sendo jogados corretamente pra la da tabela "Tmp1" porém o campo só atualiza quando eu "clico" em cima dele...

Como posso atualizar o campo do cabeçalho??

(no caso, seria uma getdados) porém esta é local no fonte padrão...

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 5 meses atrás #31281 por lalberto
Respondido por lalberto no tópico Dúvida Orçamento Vendas
Gustavo boa noite, poderia detalhar melhor, esse campo contem o que ?

Não entendi muito bem.

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
7 anos 5 meses atrás #31283 por JamesWesTRP
Respondido por JamesWesTRP no tópico Dúvida Orçamento Vendas
O Luiz bom dia tudo bom ?

Então no orçamento temos duas tabelas:

SCJ - Cabecalho
SCK - Item do orçamento

Eu tenho um campo de valor, na SCK e, estou acumulando o mesmo em um campo do cabecalho (SCJ).

Porém queria atualizar o campo da SCJ (cabecalho) em tempo real. Porém, não consigo.. os valores estão corretos no campo do cabecalho mas só da refresh no campo, se eu clicar nele... Queria forçar um refresh nele..

Como poderia fazer ?

São variáveis do tipo "M->"

Obrigado!

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 5 meses atrás #31284 por lalberto
Respondido por lalberto no tópico Dúvida Orçamento Vendas
Você está usando uma função para atualizar este campo ?

Coloca ela ai.

Ou Usa este exemplo de ponto de entrada:
#INCLUDE "TOTVS.CH"
User Function A415LIOK
Local _aAreaAtu	:= GetArea()
Local _aAreaTMP1:= TMP1->( GetArea() )
Local _aAreaSF4 := SF4->( GetArea() )
Local _lRet     := .T.
Local _nLimVend := POSICIONE("SA3",1,xFilial("SA3") + M->CJ_XVEND,"A3_XVLIMAM")
Local _nTotOrc  := 0

If SCJ->( FieldPos("CJ_XBRINDE") ) > 0 .AND. SCJ->( FieldPos("CJ_XVEND") ) > 0
	//Obtem o CFO da linha a partir do TES
	_cCFOrc	 := POSICIONE("SF4",1,xFilial("SF4") + TMP1->CK_TES,"F4_CF")
	RestArea( _aAreaSF4 )
	
	//Se a linha nao foi deletada e o produto foi preenchido
	If !TMP1->CK_FLAG .AND. !Empty( TMP1->CK_PRODUTO ) .AND. ( INCLUI .OR. ALTERA ) .AND. ( !Empty( Alltrim( _cCFOrc ) ) .AND. Alltrim( _cCFOrc ) <> "000" )
		
		Do Case
			//Existe limite e o CFOP esta incorreto, vendedor preenchido e eh brinde
			Case ( _nLimVend > 0 .AND. !Alltrim( _cCFOrc ) $ Alltrim( GetMv("DY_CFBRIND") ) .AND. !Empty( M->CJ_XVEND ) .AND. Alltrim( M->CJ_XBRINDE ) == "1" );
				.OR. ( _nLimVend > 0 .AND. Alltrim( _cCFOrc ) $ Alltrim( GetMv("DY_CFBRIND") ) .AND. !Empty( M->CJ_XVEND ) .AND.  ( Empty( M->CJ_XBRINDE ) .OR. Alltrim( M->CJ_XBRINDE ) == "2" )  );
				.OR. (  _nLimVend == 0 .AND. Alltrim( _cCFOrc ) $ Alltrim( GetMv("DY_CFBRIND") ) .AND. Empty( M->CJ_XVEND ) .AND.  ( Empty( M->CJ_XBRINDE ) .OR. Alltrim( M->CJ_XBRINDE ) == "2" ) )
				MsgStop("TES inválido não informado ou Tipo inválido para esta Operacao "+IIf( Alltrim( M->CJ_XBRINDE ) <> "1"," - Comum"," - Amostras / Brindes")+" : " + Alltrim( TMP1->CK_TES ) + Chr(13) + Chr(10) + "Favor verificar!","ATENÇÃO")
				_lRet := .F.
				RecLock("TMP1",.F.)
				TMP1->CK_TES := Replicate( "0",TamSx3("CK_TES")[1] )
				MsUnLock()
				
				//Existe limite e o CFOP esta correto, vendedor preenchido e eh brinde
			Case _nLimVend > 0 .AND. Alltrim( _cCFOrc ) $ Alltrim( GetMv("DY_CFBRIND") ) .AND. !Empty( M->CJ_XVEND ) .AND. Alltrim( M->CJ_XBRINDE ) == "1"
				//Estando OK, testa o limite do vendedor com o total do Orcamento
				_nTotOrc := 0
				dbSelectArea("TMP1")
				TMP1->( DbGotop() )
				Do While TMP1->( !Eof() )
					//Obtem o CFO da linha a partir do TES
					_cCFOrc	 := POSICIONE("SF4",1,xFilial("SF4") + TMP1->CK_TES,"F4_CF")
					RestArea( _aAreaSF4 )
					
					If !TMP1->CK_FLAG .AND. Alltrim( _cCFOrc ) $ Alltrim( GetMv("DY_CFBRIND") )
						_nTotOrc += TMP1->CK_VALOR
					EndIf
					TMP1->( DbSkip() )
				EndDo
				
				//Depois de obter o total volta para a linha atual
				RestArea( _aAreaTMP1 )
				
				If _nTotOrc > _nLimVend
					MsgStop("Seu limite máximo para a Operacao com Amostras / Brindes é de : " + Alltrim( TransForm(_nLimVend,"@E 999,999,999.99") ) + Chr(13) + Chr(10) + "Digitado no Orcamento: " + Alltrim( TransForm(_nTotOrc,"@e 999,999,999.99") ) + Chr(13) + Chr(10) + "Favor verificar!","ATENÇÃO")
					Return( _lRet := .F. )
				Else
					_lRet := .T.
				EndIf
				//Nao Existe limite e o CFOP esta correto, vendedor preenchido e eh brinde
			Case _nLimVend == 0 .AND. Alltrim( _cCFOrc ) $ Alltrim( GetMv("DY_CFBRIND") ) .AND. !Empty( M->CJ_XVEND ) .AND. Alltrim( M->CJ_XBRINDE ) == "1"
				MsgStop("Valor limite inexistente para esta Operacao "+IIf( Alltrim( M->CJ_XBRINDE ) <> "1"," - Comum"," - Amostras / Brindes")+" : " + Alltrim( TransForm(_nLimVend,"@e 999,999,999.99") ) + Chr(13) + Chr(10) + "Favor verificar!","ATENÇÃO")
				_lRet := .F.
				//Nao Existe limite e o CFOP correto, vendedor preenchido mas nao eh brinde
			Case _nLimVend == 0 .AND. Alltrim( _cCFOrc ) $ Alltrim( GetMv("DY_CFBRIND") ) .AND. !Empty( M->CJ_XVEND ) .AND. ( Empty( M->CJ_XBRINDE ) .OR. Alltrim( M->CJ_XBRINDE ) == "2" )
				MsgStop("Valor limite / TES invalidos para esta Operacao "+IIf( Alltrim( M->CJ_XBRINDE ) <> "1"," - Comum"," - Amostras / Brindes")+" : " + Alltrim( TransForm(_nLimVend,"@e 999,999,999.99") ) + "/" + Alltrim( TMP1->CK_TES ) + Chr(13) + Chr(10) + "Favor verificar!","ATENÇÃO")
				_lRet := .F.
				//Nao Existe limite e o CFOP correto, vendedor nao preenchido e eh brinde
			Case _nLimVend == 0 .AND. Alltrim( _cCFOrc ) $ Alltrim( GetMv("DY_CFBRIND") ) .AND. Empty( M->CJ_XVEND ) .AND.  Alltrim( M->CJ_XBRINDE ) == "1"
				MsgStop("Codigo de Vendedor nao informado para esta Operacao "+IIf( Alltrim( M->CJ_XBRINDE ) <> "1"," - Comum"," - Amostras / Brindes") + Chr(13) + Chr(10) + "Favor verificar!","ATENÇÃO")
				_lRet := .F.
		EndCase
	ElseIf	Empty( Alltrim( _cCFOrc ) ) .OR. TMP1->CK_FLAG
		_lRet := .T.
	EndIf
	
EndIf

RestArea( _aAreaAtu )
RestArea( _aAreaTMP1 )
[b][color=#ff0000]oGetDad:oBrowse:Refresh()[/color][/b]

Return .T.

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
7 anos 5 meses atrás #31286 por JamesWesTRP
Respondido por JamesWesTRP no tópico Dúvida Orçamento Vendas
Então...
tentei por esse p.e. tbem....
problema é que sempre o ultimo valor não aparece somente se eu clicar no campo...

Os valores estão indo certinhos pro campo, problema é o refresh...

Não sei se na Enchoice teria como fazer isso, tipo pegar o objeto, no caso o msget q eu atualizo e dar um "refresh" nele..

Por favor Acessar ou Registrar para participar da conversa.

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