× Linguagem de Programação ADVPL

Perguntas URGENTE - Botão na mbrowse

Mais
11 anos 9 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 9 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 9 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 9 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 9 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 9 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