×
Linguagem de Programação ADVPL
Perguntas MarkBrow
- Jafreal
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 137
- Obrigados Recebidos: 0
10 anos 2 meses atrás #24989
por Jafreal
Sras e Srs
Criei uma função com MarkBrow para ler um arquivo SZ4. Até ai tudo bem ele é filtrado por parametro de data. O programa traz tudo certo até ai tudo bem, mas o meu usuário quer que apareça no rodape desse MarkBrow a soma de uma deteminada coluna que contem o valor em reais.
Pergunta: Tem como imprimir na tela,no rodadpé esse valor?
Criei uma função com MarkBrow para ler um arquivo SZ4. Até ai tudo bem ele é filtrado por parametro de data. O programa traz tudo certo até ai tudo bem, mas o meu usuário quer que apareça no rodape desse MarkBrow a soma de uma deteminada coluna que contem o valor em reais.
Pergunta: Tem como imprimir na tela,no rodadpé esse valor?
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 216
- Obrigados Recebidos: 0
10 anos 2 meses atrás #24997
por admin
Te Aconselho a usuar o listbox ao invez do markbrow.
segue um exemplo:
#INCLUDE "PROTHEUS.CH"
#INCLUDE "rwmake.ch"
#INCLUDE "TopConn.ch"
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ ChkEndereco ºAutor ³Luiz Albertoº Data ³ 03/09/14 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Efetua Busca de Enderecos de Entrega º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Funcao Principal º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDATA ³ ANALISTA ³ MOTIVO º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±º ³ ³ º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function ChkEnd(cCodCli,cLojCli,cIdEnd)
Local aArea := GetArea()
Local oEnderec5
Local lRet := .t.
Private oTTC
Private oEnds := {}
Private aEnds := {}
Private oOk := LoadBitmap(GetResources(),"LBTIK")
Private oNo := LoadBitmap(GetResources(),"LBNO")
cQuery := " SELECT R_E_C_N_O_ REG "
cQuery += " FROM " + RetSqlName("SZQ") + " SZQ (NOLOCK) "
cQuery += " WHERE "
cQuery += " ZQ_FILIAL = '" + xFilial("SZQ") + "' "
cQuery += " AND SZQ.D_E_L_E_T_ = '' "
cQuery += " AND SZQ.ZQ_CLIENTE+SZQ.ZQ_LOJA = '" + cCodCli + cLojCli + "' "
cQuery += " AND SZQ.ZQ_ATIVO <> 'N' "
cQuery += " ORDER BY ZQ_SEQ " //
TCQUERY cQuery NEW ALIAS "CHK1"
Count To nReg
dbSelectArea("CHK1")
dbGoTop()
ProcRegua(nReg)
cSel := ''
While CHK1->(!Eof())
IncProc("Localizando Endereços Entrega...")
SZQ->(dbGoto(CHK1->REG))
cSel := '2'
AAdd(aEnds,{oNo,;
cSel,;
SZQ->ZQ_ENDENT,;
SZQ->ZQ_COMPL,;
SZQ->ZQ_BAIRROE,;
SZQ->ZQ_MUNE,;
SZQ->ZQ_ESTE,;
SZQ->ZQ_CEPE,;
SZQ->ZQ_HORENT,;
SZQ->(Recno())})
CHK1->(dbSkip(1))
Enddo
CHK1->(dbCloseArea())
RestArea(aArea)
If Empty(Len(aEnds))
M->C5_IDEND := ''
RestArea(aArea)
Return lRet
Endif
lOk:=.f.
DEFINE MSDIALOG oEnderec5 TITLE "Seleção Endereços de Entrega" FROM 000, 000 TO 250, 820 COLORS 0, 16777215 PIXEL Style DS_MODALFRAME
oEnderec5:lEscClose := .F. //Não permite sair ao usuario se precionar o ESC
@ 010, 005 LISTBOX oEnds Fields HEADER '',"Endereço","Complemento","Bairro",'Cidade',"UF",'CEP','Horario Entreg' SIZE 400, 080 OF oEnderec5 PIXEL ColSizes 50,50
oEnds:SetArray(aEnds)
oEnds:bLine := {|| { Iif(aEnds[oEnds:nAt,2]=="1",oOk,oNo),;
aEnds[oEnds:nAt,3],;
aEnds[oEnds:nAt,4],;
aEnds[oEnds:nAt,5],;
aEnds[oEnds:nAt,6],;
aEnds[oEnds:nAt,7],;
aEnds[oEnds:nAt,8],;
aEnds[oEnds:nAt,9]}}
// Só Habilita a Marcacao se For Pagamento, se For Estorno já trará os Chques Marcados
oEnds:bLDblClick := {||Processa({||dblCChkDsc(oEnds:nAt)})}
@ 100, 005 BUTTON oBotaoCnf PROMPT "&Confirma" ACTION (lOk:=.t.,Close(oEnderec5)) SIZE 080, 010 OF oEnderec5 PIXEL
@ 100, 105 BUTTON oBotaoSai PROMPT "&Voltar" ACTION (lOk:=.f.,Close(oEnderec5)) SIZE 080, 010 OF oEnderec5 PIXEL
ACTIVATE MSDIALOG oEnderec5 CENTERED //ON INIT EnchoiceBar(oRcp,{||If(oGet:Tud_oOk(),_nOpca:=1,_nOpca:=0)},{||oRcp:End()})
If lOk
For nEnder := 1 To Len(aEnds)
If aEnds[nEnder,2] == '1'
SZQ->(dbGoTo(aEnds[nEnder,10]))
M->C5_IDEND := SZQ->ZQ_IDEND
Exit
Endif
Next
If !Empty(M->C5_IDEND)
lRet := .t.
Else
lRet := .f.
Endif
Else
If Empty(M->C5_IDEND)
lRet := .f.
Else
lRet := .t.
Endif
Endif
RestArea(aArea)
Return lRet
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Funcao ³ DblClick³ Autor ³ Luiz Alberto ³ Data ³ 06/12/11 ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descricao ³ Funcao Responsavel pelo Double Click Tela Rotas ³±±
±±³ | ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function dblCChkDsc(nPos)
Local aArea := GetArea()
If aEnds[nPos,2]=="1"
aEnds[nPos,2]:="2"
Else
aEnds[nPos,2]:="1"
Endif
oEnds:SetArray(aEnds)
oEnds:bLine := {|| { Iif(aEnds[oEnds:nAt,2]=="1",oOk,oNo),;
aEnds[oEnds:nAt,3],;
aEnds[oEnds:nAt,4],;
aEnds[oEnds:nAt,5],;
aEnds[oEnds:nAt,6],;
aEnds[oEnds:nAt,7],;
aEnds[oEnds:nAt,8],;
aEnds[oEnds:nAt,9]}}
oEnds:Refresh()
Return .t.
segue um exemplo:
#INCLUDE "PROTHEUS.CH"
#INCLUDE "rwmake.ch"
#INCLUDE "TopConn.ch"
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ ChkEndereco ºAutor ³Luiz Albertoº Data ³ 03/09/14 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Efetua Busca de Enderecos de Entrega º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ Funcao Principal º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDATA ³ ANALISTA ³ MOTIVO º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±º ³ ³ º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function ChkEnd(cCodCli,cLojCli,cIdEnd)
Local aArea := GetArea()
Local oEnderec5
Local lRet := .t.
Private oTTC
Private oEnds := {}
Private aEnds := {}
Private oOk := LoadBitmap(GetResources(),"LBTIK")
Private oNo := LoadBitmap(GetResources(),"LBNO")
cQuery := " SELECT R_E_C_N_O_ REG "
cQuery += " FROM " + RetSqlName("SZQ") + " SZQ (NOLOCK) "
cQuery += " WHERE "
cQuery += " ZQ_FILIAL = '" + xFilial("SZQ") + "' "
cQuery += " AND SZQ.D_E_L_E_T_ = '' "
cQuery += " AND SZQ.ZQ_CLIENTE+SZQ.ZQ_LOJA = '" + cCodCli + cLojCli + "' "
cQuery += " AND SZQ.ZQ_ATIVO <> 'N' "
cQuery += " ORDER BY ZQ_SEQ " //
TCQUERY cQuery NEW ALIAS "CHK1"
Count To nReg
dbSelectArea("CHK1")
dbGoTop()
ProcRegua(nReg)
cSel := ''
While CHK1->(!Eof())
IncProc("Localizando Endereços Entrega...")
SZQ->(dbGoto(CHK1->REG))
cSel := '2'
AAdd(aEnds,{oNo,;
cSel,;
SZQ->ZQ_ENDENT,;
SZQ->ZQ_COMPL,;
SZQ->ZQ_BAIRROE,;
SZQ->ZQ_MUNE,;
SZQ->ZQ_ESTE,;
SZQ->ZQ_CEPE,;
SZQ->ZQ_HORENT,;
SZQ->(Recno())})
CHK1->(dbSkip(1))
Enddo
CHK1->(dbCloseArea())
RestArea(aArea)
If Empty(Len(aEnds))
M->C5_IDEND := ''
RestArea(aArea)
Return lRet
Endif
lOk:=.f.
DEFINE MSDIALOG oEnderec5 TITLE "Seleção Endereços de Entrega" FROM 000, 000 TO 250, 820 COLORS 0, 16777215 PIXEL Style DS_MODALFRAME
oEnderec5:lEscClose := .F. //Não permite sair ao usuario se precionar o ESC
@ 010, 005 LISTBOX oEnds Fields HEADER '',"Endereço","Complemento","Bairro",'Cidade',"UF",'CEP','Horario Entreg' SIZE 400, 080 OF oEnderec5 PIXEL ColSizes 50,50
oEnds:SetArray(aEnds)
oEnds:bLine := {|| { Iif(aEnds[oEnds:nAt,2]=="1",oOk,oNo),;
aEnds[oEnds:nAt,3],;
aEnds[oEnds:nAt,4],;
aEnds[oEnds:nAt,5],;
aEnds[oEnds:nAt,6],;
aEnds[oEnds:nAt,7],;
aEnds[oEnds:nAt,8],;
aEnds[oEnds:nAt,9]}}
// Só Habilita a Marcacao se For Pagamento, se For Estorno já trará os Chques Marcados
oEnds:bLDblClick := {||Processa({||dblCChkDsc(oEnds:nAt)})}
@ 100, 005 BUTTON oBotaoCnf PROMPT "&Confirma" ACTION (lOk:=.t.,Close(oEnderec5)) SIZE 080, 010 OF oEnderec5 PIXEL
@ 100, 105 BUTTON oBotaoSai PROMPT "&Voltar" ACTION (lOk:=.f.,Close(oEnderec5)) SIZE 080, 010 OF oEnderec5 PIXEL
ACTIVATE MSDIALOG oEnderec5 CENTERED //ON INIT EnchoiceBar(oRcp,{||If(oGet:Tud_oOk(),_nOpca:=1,_nOpca:=0)},{||oRcp:End()})
If lOk
For nEnder := 1 To Len(aEnds)
If aEnds[nEnder,2] == '1'
SZQ->(dbGoTo(aEnds[nEnder,10]))
M->C5_IDEND := SZQ->ZQ_IDEND
Exit
Endif
Next
If !Empty(M->C5_IDEND)
lRet := .t.
Else
lRet := .f.
Endif
Else
If Empty(M->C5_IDEND)
lRet := .f.
Else
lRet := .t.
Endif
Endif
RestArea(aArea)
Return lRet
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Funcao ³ DblClick³ Autor ³ Luiz Alberto ³ Data ³ 06/12/11 ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descricao ³ Funcao Responsavel pelo Double Click Tela Rotas ³±±
±±³ | ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
Static Function dblCChkDsc(nPos)
Local aArea := GetArea()
If aEnds[nPos,2]=="1"
aEnds[nPos,2]:="2"
Else
aEnds[nPos,2]:="1"
Endif
oEnds:SetArray(aEnds)
oEnds:bLine := {|| { Iif(aEnds[oEnds:nAt,2]=="1",oOk,oNo),;
aEnds[oEnds:nAt,3],;
aEnds[oEnds:nAt,4],;
aEnds[oEnds:nAt,5],;
aEnds[oEnds:nAt,6],;
aEnds[oEnds:nAt,7],;
aEnds[oEnds:nAt,8],;
aEnds[oEnds:nAt,9]}}
oEnds:Refresh()
Return .t.
Por favor Acessar ou Registrar para participar da conversa.
Tempo para a criação da página:0.110 segundos