× Linguagem de Programação ADVPL

Perguntas URGENTE - Botão na mbrowse

Mais
11 anos 11 meses atrás #10871 por Gama
Pessoal, preciso de uma ajudinha ai, por favor!

Criei uma rotina via Mbrowse que comunica com uma balança que pesa a entrada e saída de veículos aqui na empresa. Consigo comunicar normal com ela pressionando F3 no campo pra puxar o peso. No entando preciso amarrar essa informação, deixando o campo apenas virtual e coloquei um botão na mbrowse, mas ele não joga o peso que puxa no campo especifico.

Alguém ai já teve algum caso parecido? Fico no aguardo.

Att,
Gamaliel

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 11 meses atrás #10872 por kanaamlrr
Respondido por kanaamlrr no tópico URGENTE - Botão na mbrowse
Coloca a função que você desenvolveu ai para podermos analisar.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 11 meses atrás #10878 por Gama
Respondido por Gama no tópico URGENTE - Botão na mbrowse
Segue Kanaãm,

#INCLUDE "rwmake.ch"
#INCLUDE "protheus.ch"
#INCLUDE "TOPCONN.CH"
#INCLUDE "COLORS.CH"
#INCLUDE "MSSERIAL.CH"
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Funcao ³ JPPORT03 ³ Autor ³Gamaliel ³ Data ³ 30/08/11 ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri‡…o ³ Comunicacao balanca Jundiai ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Uso ³ Generico ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
USER FUNCTION JPPORT03() //U_JPPORT03()

Local aCores := {}

aCores := {{'EMPTY(ZBL_DATA2) .OR. EMPTY(ZBL_HORAS) .OR. EMPTY(ZBL_PESO02)' , 'BR_VERDE'},; // Apenas primeiro peso
{'!EMPTY(ZBL_DATA) .AND. !EMPTY(ZBL_PLACA) .AND. !EMPTY(ZBL_HORAE) .AND. !EMPTY(ZBL_PESO01)' , 'BR_VERMELHO'}} // Peso completo

Private cCadastro := "CADASTRO DE DADOS DA BALANçA"
Private Pesobal := 0
Private aRotina := {{ "Pesquisar", "AxPesqui",0,1} ,; //"Pesquisar"
{ "Visualizar", "AxVisual",0,2} ,; //"Visualizar"
{ "Incluir", "U_Inclui",0,3} ,; //"Incluir"
{ "Alterar", "U_Altera",0,4} ,; //"Alterar"
{ "Excluir", "U_Exclui",0,5} ,; //"Deletar"
{ "Legenda", "U_Lege050",0,6} ,; //"Legenda"
{ "Imprimir", "U_Jpportr03",0,7} } //"Imprimir"

mBrowse(6,1,22,75,"ZBL",,,,,,aCores)

Return(.T.)


User Function Inclui()
Local nOpca := 0
Local aParam := {}
Local oSay1
Static oDlg
Local aButtons := {}
Private nTipo1 := '1'
Private Retorno := .F.

//adiciona botoes na Enchoice
aAdd(aButtons, {"FORM", {||U_JPPORT3A()}, "Peso 1", "Peso 1"})//Funcao do Carlos

dbSelectArea("ZBL")
nOpca := AxInclui("ZBL",,3,,,,,.F.,,aButtons,aParam,,,.T.,,,,,)

Return nOpca

User Function Altera()
Local nOpca := 0
Local aParam := {}
Local oSay1
Local := {}
Static oDlg
Local nReg := recno()
Private aButtons := {}
Private nTipo1 := '2'
Private Retorno := .F.

//adiciona botoes na Enchoice
aAdd(aButtons, {"FORM", {||U_JPPORT3A()}, "Peso 2", "Peso 2"})

dbSelectArea("ZBL")
nOpca := AxAltera("ZBL",nreg,4,,,,.F.,,,,aButtons)

IF Retorno
Return (.T.)
Endif

IF !EMPTY(ZBL_DATA2) .AND. !EMPTY(ZBL_HORAS) .AND. !EMPTY(ZBL_PESO02)
MsgAlert('Registro já finalizado. Não pode ser alterado!')
Return (.T.)
Endif

If nopca == 1
If APMSGYESNO('Desejar Imprimir?')
U_Jpportr03()
Endif
Endif

Return nOpca

User Function Exclui()
Local nOpca := 0
Local aParam := {}
Local nReg := recno()
Private aButtons := {}
Private Retorno := .F.

IF Retorno
Return (.T.)
Endif

IF !EMPTY(ZBL_PESO01) .AND. !EMPTY(ZBL_PLACA) .AND. !EMPTY(ZBL_PESO02) .AND. !EMPTY(ZBL_HORAE) .AND. !EMPTY(ZBL_HORAS) .AND. !EMPTY(ZBL_DATA) .AND. !EMPTY(ZBL_DATA2)
Alert('Registro já finalizado. Não pode ser excluído!')
Return (.T.)
Endif

dbSelectArea("ZBL")
nOpca := AxDeleta("ZBL",nreg,5)
Return nOpca

User Function zeroesq2() // U_zeroesq2()//Completa para nove digitos com zero a esquerda no campo DOCNF
M->ZBL_DOCNF := StrZero (Val(M->ZBL_DOCNF),9)
Return(.T.)

User Function zeroesq4() // U_zeroesq4()//Completa para nove digitos com zero a esquerda no campo CNFISCAL - Compras/Pre Nota Entrada
M->CNFISCAL := StrZero (Val(M->CNFISCAL),9)
Return(.T.)

User Function zeroesq3() // U_zeroesq3()//Completa para nove digitos com zero a esquerda no campo TICKET
M->Z6_TICKET := StrZero (Val(M->Z6_TICKET),6)
Return(.T.)

User Function VerHoraZBL(cHora)//Aceita somente o formato de hora normal (00:00 a 23:59)
cRet:=.T.
IF Val(Left(cHora,2))<0 .or. Val(Left(cHora,2))>23
cRet:=.F.
Endif
IF Val(Right(cHora,2))<0 .or. Val(Right(cHora,2))>59
cRet:=.F.
Endif
Return(cRet)

User Function LEGE050()
BrwLegenda(cCadastro,"Legenda",{{"BR_VERMELHO","Peso completo"},; //"Peso completo"
{"BR_VERDE","Apenas primeiro peso" }} ) //"Apenas o primeiro peso foi informado"
Return .T.

USER FUNCTION JPPORT3A() //U_JPPORT3A()
Pesobal := 0
Processa( {|| U_JPPORT3B()},"Balança", "Aguarde, buscando peso...")
_cRet := pesobal

RETURN(_cRET)

USER FUNCTION JPPORT3B()

Local cPorta := GetMv("MV_CONFBAL") //**Retorna o conteudo do parametro especificado: "com1:9600,e,8,2,n"
Local nHdll := 0
Local nCont := 0
Local nIndice
Local _cRet := 0

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//³Lendo Peso Balança³
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
//MSOpenPort(nHdll,"COM1:9600,N,8,2") // paridade NENHUMA
MsOpenPort(nHdll, cPorta)
cPesoAux := space(100)

While (Empty(cPesoAux) .AND. nCont < 500)
MsRead(nHdll, @cPesoAux)
nCont++
EndDo

MsClosePort(nHdll)

_cRet := RET_VAL(cPesoAux)

Pesobal := _cRet

RETURN(_cRET)

STATIC FUNCTION RET_VAL(cCaracter)
Local nI := 0
Local cRet := ""

FOR nI := 1 TO LEN(cCaracter)
//IF(ASC(SUBSTR(cCaracter, nI, 1)) >= 48 .AND. ASC(SUBSTR(cCaracter, nI, 1)) <= 57)
IF(SUBSTR(cCaracter, nI, 1) $ "0123456789")
cRet += SUBSTR(cCaracter, nI, 1)
ENDIF
NEXT nI
RETURN val(cRet)

USER FUNCTION JPPORT04 //U_JPPORT04()

M->Z6_TICKET := STRZERO(VAL(M->Z6_TICKET),6)
RETURN(.T.)

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 11 meses atrás #10881 por kanaamlrr
Respondido por kanaamlrr no tópico URGENTE - Botão na mbrowse
Então cara, pelo que eu entendi, acontece o seguinte.
Você está chamando a função e ela está preenchendo a sua variável "pesobal".

Essa variável não está sendo atribuida em lugar nenhum após a chamada da função.

Você pode tentar mudar a chamada do seu botão da seguinte forma:

#INCLUDE "rwmake.ch"
#INCLUDE "protheus.ch"
#INCLUDE "TOPCONN.CH"
#INCLUDE "COLORS.CH"
#INCLUDE "MSSERIAL.CH"
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Funcao ³ JPPORT03 ³ Autor ³Gamaliel ³ Data ³ 30/08/11 ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri‡…o ³ Comunicacao balanca Jundiai ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³ Uso ³ Generico ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
USER FUNCTION JPPORT03() //U_JPPORT03()

Local aCores := {}

aCores := {{'EMPTY(ZBL_DATA2) .OR. EMPTY(ZBL_HORAS) .OR. EMPTY(ZBL_PESO02)' , 'BR_VERDE'},; // Apenas primeiro peso
{'!EMPTY(ZBL_DATA) .AND. !EMPTY(ZBL_PLACA) .AND. !EMPTY(ZBL_HORAE) .AND. !EMPTY(ZBL_PESO01)' , 'BR_VERMELHO'}} // Peso completo

Private cCadastro := "CADASTRO DE DADOS DA BALANçA"
Private Pesobal := 0
Private aRotina := {{ "Pesquisar", "AxPesqui",0,1} ,; //"Pesquisar"
{ "Visualizar", "AxVisual",0,2} ,; //"Visualizar"
{ "Incluir", "U_Inclui",0,3} ,; //"Incluir"
{ "Alterar", "U_Altera",0,4} ,; //"Alterar"
{ "Excluir", "U_Exclui",0,5} ,; //"Deletar"
{ "Legenda", "U_Lege050",0,6} ,; //"Legenda"
{ "Imprimir", "U_Jpportr03",0,7} } //"Imprimir"

mBrowse(6,1,22,75,"ZBL",,,,,,aCores)

Return(.T.)


User Function Inclui()
Local nOpca := 0
Local aParam := {}
Local oSay1
Static oDlg
Local aButtons := {}
Private nTipo1 := '1'
Private Retorno := .F.

//adiciona botoes na Enchoice
aAdd(aButtons, {"FORM", {||M->ZBL_SEUCAMPO := U_JPPORT3A()}, "Peso 1", "Peso 1"})//Funcao do Carlos

dbSelectArea("ZBL")
nOpca := AxInclui("ZBL",,3,,,,,.F.,,aButtons,aParam,,,.T.,,,,,)

Return nOpca

User Function Altera()
Local nOpca := 0
Local aParam := {}
Local oSay1
Local := {}
Static oDlg
Local nReg := recno()
Private aButtons := {}
Private nTipo1 := '2'
Private Retorno := .F.

//adiciona botoes na Enchoice
aAdd(aButtons, {"FORM", {||M->ZBL_SEUCAMPO := U_JPPORT3A()}, "Peso 2", "Peso 2"})

dbSelectArea("ZBL")
nOpca := AxAltera("ZBL",nreg,4,,,,.F.,,,,aButtons)

IF Retorno
Return (.T.)
Endif

IF !EMPTY(ZBL_DATA2) .AND. !EMPTY(ZBL_HORAS) .AND. !EMPTY(ZBL_PESO02)
MsgAlert('Registro já finalizado. Não pode ser alterado!')
Return (.T.)
Endif

If nopca == 1
If APMSGYESNO('Desejar Imprimir?')
U_Jpportr03()
Endif
Endif

Return nOpca

teste ai e diz pra gente se funcionou.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 11 meses atrás #10888 por Gama
Respondido por Gama no tópico URGENTE - Botão na mbrowse
Você é o cara Kanaãm rsrsr

Funcionou beleza.

Valeu cara pela ajuda.

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 11 meses atrás #10890 por kanaamlrr
Respondido por kanaamlrr no tópico URGENTE - Botão na mbrowse
Valeu!
Depois coloca uma foto sua ai pra galera te conhecer melhor e divulga o fórum pros seus amigos!
Precisando de ajuda posta ai.

Por favor Acessar ou Registrar para participar da conversa.

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