Perguntas Atualizar tela com MsNewGetDados

Mais
3 anos 1 mês atrás #33195 por JRTchula
Bom dia.
Como faço pra dar um refresh nessa tela que eu criei com MsNewGetDados e FWBrowse, preciso que ele atualize a quety toda vez que clikar no botão atualizar.

Desde já agradesço

Segue a query

#Include "Totvs.ch"

/*/{Protheus.doc} User Function zGrid
Visualizacao de Grupos de Produtos com FWBrowse e FWTemporaryTable
@type Function
@author Atilio
@since 14/06/2020
@version version
/*/

User Function xTelaFat()
Local aArea := GetArea()
//Fontes
Local cFontUti := "Tahoma"
Local oFontAno := TFont():New(cFontUti,,-38)
Local oFontSub := TFont():New(cFontUti,,-20)
Local oFontSubN := TFont():New(cFontUti,,-20,,.T.)
Local oFontBtn := TFont():New(cFontUti,,-14)
//Janela e componentes
Private oDlgGrp
Private oPanGrid
Private oGetGrid
Private aColunas := {}
Private cAliasTab := "TMPSBM"
//Tamanho da janela
Private aTamanho := MsAdvSize()
Private nJanLarg := aTamanho[5]
Private nJanAltu := aTamanho[6]

//Cria a temporária
oTempTable := FWTemporaryTable():New(cAliasTab)

//Adiciona no array das colunas as que serão incluidas (Nome do Campo, Tipo do Campo, Tamanho, Decimais)
aFields := {}
aAdd(aFields, {"XXPEDIDO", "C", TamSX3(‘C5_NUM‘)[01], 0})
aAdd(aFields, {"XXEMISSAO", "D", TamSX3(‘C5_EMISSAO‘)[01], 0})
aAdd(aFields, {"XXNREDUZ", "C", TamSX3(‘A3_NREDUZ‘)[01], 0})
aAdd(aFields, {"XXCLIENTE", "C", TamSX3(‘A1_NOME‘)[01], 0})
aAdd(aFields, {"XXMUNIC", "C", TamSX3(‘A1_MUN‘)[01], 0})
aAdd(aFields, {"XXESTADO", "C", TamSX3(‘A1_EST‘)[01], 0})
aAdd(aFields, {"XXPROGRAM", "D", TamSX3(‘C5_FECENT‘)[01], 0})
aAdd(aFields, {"XXTES", "C", TamSX3(‘C6_TES‘)[01], 0})




//Define as colunas usadas, adiciona indice e cria a temporaria no banco
oTempTable:SetFields( aFields )
oTempTable:AddIndex("1", {"XXPEDIDO"} )
oTempTable:Create()

//Monta o cabecalho
fMontaHead()

//Montando os dados, eles devem ser montados antes de ser criado o FWBrowse
FWMsgRun(, {|oSay| fMontDados(oSay) }, "Processando", "Buscando Pedidos a Faturar")

//Criando a janela
DEFINE MSDIALOG oDlgGrp TITLE "Pedidos a Faturar" FROM 000, 000 TO nJanAltu, nJanLarg COLORS 0, 16777215 PIXEL
//Labels gerais
@ 004, 003 SAY "FAT" SIZE 200, 030 FONT oFontAno OF oDlgGrp COLORS RGB(149,179,215) PIXEL
@ 004, 050 SAY "Listagem de" SIZE 200, 030 FONT oFontSub OF oDlgGrp COLORS RGB(031,073,125) PIXEL
@ 014, 050 SAY "Pedidos a Faturar" SIZE 200, 030 FONT oFontSubN OF oDlgGrp COLORS RGB(031,073,125) PIXEL

//Botões
@ 006, (nJanLarg/2-001)-(0052*01) BUTTON oBtnFech PROMPT "Fechar" SIZE 050, 018 OF oDlgGrp ACTION (oDlgGrp:End()) FONT oFontBtn PIXEL
@ 006, (nJanLarg/2-001)-(0052*02) BUTTON oBtnLege PROMPT "Atualizar" SIZE 050, 018 OF oDlgGrp ACTION (fGrupo()) PIXEL

//Dados
@ 024, 003 GROUP oGrpDad TO (nJanAltu/2-003), (nJanLarg/2-003) PROMPT "Listagem de pedido a faturar: " OF oDlgGrp COLOR 0, 16777215 PIXEL
oGrpDad:oFont := oFontBtn
oPanGrid := tPanel():New(033, 006, "", oDlgGrp, , , , RGB(000,000,000), RGB(254,254,254), (nJanLarg/2 - 13), (nJanAltu/2 - 45))
oGetGrid := FWBrowse():New()
oGetGrid:DisableFilter()
oGetGrid:DisableConfig()
oGetGrid:DisableReport()
oGetGrid:DisableSeek()
oGetGrid:DisableSaveConfig()
oGetGrid:SetFontBrowse(oFontBtn)
oGetGrid:SetAlias(cAliasTab)
oGetGrid:SetDataTable()
oGetGrid:SetInsert(.F.)
oGetGrid:SetDelete(.F., { || .F. })
oGetGrid:lHeaderClick := .F.
oGetGrid:AddLegend( cAliasTab + " ->XXTES == ‘501‘ .OR. " + cAliasTab + " ->XXTES == ‘502‘ ", "WHITE", "Fatura Normal")
oGetGrid:AddLegend( cAliasTab + " ->XXTES == ‘509‘ .OR. " + cAliasTab + " ->XXTES == ‘513‘ ", "BLUE", "Op.Triangular")
oGetGrid:AddLegend( cAliasTab + " ->XXTES == ‘586‘ .OR. " + cAliasTab + " ->XXTES == ‘585‘ .OR. " + cAliasTab + " ->XXTES == ‘584‘ .OR. " + cAliasTab + " ->XXTES == ‘580‘ ", "RED", "Cliente Suframa")
oGetGrid:SetColumns(aColunas)
oGetGrid:SetOwner(oPanGrid)
oGetGrid:Activate()
ACTIVATE MsDialog oDlgGrp CENTERED

//Deleta a temporaria
oTempTable:Delete()

RestArea(aArea)
Return

Static Function fMontaHead()
Local nAtual
Local aHeadAux := {}

//Adicionando colunas
//[1] - Campo da Temporaria
//[2] - Titulo
//[3] - Tipo
//[4] - Tamanho
//[5] - Decimais
//[6] - Máscara
aAdd(aHeadAux, {"XXPEDIDO", "Nº Pedido", "C", TamSX3(‘C5_NUM‘)[01], 0, ""})
aAdd(aHeadAux, {"XXEMISSAO", "Emissão", "D", TamSX3(‘C5_EMISSAO‘)[01], 0, ""})
aAdd(aHeadAux, {"XXNREDUZ", "Vendedor", "C", TamSX3(‘A3_NREDUZ‘)[01], 0, ""})
aAdd(aHeadAux, {"XXCLIENTE", "Cliente", "C", TamSX3(‘A1_NOME‘)[01], 0, ""})
aAdd(aHeadAux, {"XXMUNIC", "Cidade", "C", TamSX3(‘A1_MUN‘)[01], 0, ""})
aAdd(aHeadAux, {"XXESTADO", "Estado", "C", TamSX3(‘A1_EST‘)[01], 0, ""})
aAdd(aHeadAux, {"XXPROGRAM", "Programação", "D", TamSX3(‘C5_FECENT‘)[01], 0, ""})
aAdd(aHeadAux, {"XXTES", "Tes", "C", TamSX3(‘C6_TES‘)[01], 0, ""})


//Percorrendo e criando as colunas
For nAtual := 1 To Len(aHeadAux)
oColumn := FWBrwColumn():New()
oColumn:SetData(&("{|| " + cAliasTab + "->" + aHeadAux[nAtual][1] +"}"))
oColumn:SetTitle(aHeadAux[nAtual][2])
oColumn:SetType(aHeadAux[nAtual][3])
oColumn:SetSize(aHeadAux[nAtual][4])
oColumn:SetDecimal(aHeadAux[nAtual][5])
oColumn:SetPicture(aHeadAux[nAtual][6])
aAdd(aColunas, oColumn)
Next
Return

Static Function fMontDados(oSay)
Local aArea := GetArea()
Local cQry := ""
Local nAtual := 0
Local nTotal := 0

//Zera a grid
aColsGrid := {}

//Montando a query
oSay:SetText("Montando a consulta")
cQry := " SELECT DISTINCT " + CRLF
cQry += " SC5.C5_NUM " + CRLF
cQry += " ,SC5.C5_EMISSAO " + CRLF
cQry += " ,SA3.A3_NREDUZ" + CRLF
cQry += " ,SA1.A1_NOME " + CRLF
cQry += " ,SA1.A1_MUN " + CRLF
cQry += " ,SA1.A1_EST" + CRLF
cQry += " ,SC5.C5_FECENT " + CRLF
cQry += " ,SC6.C6_TES " + CRLF
cQry += " FROM " +RetSqlName("SC5")+ " SC5(NOLOCK)," + CRLF
cQry += " " +RetSqlName("SA1")+ " SA1(NOLOCK)," + CRLF
cQry += " " +RetSqlName("SC9")+ " SC9(NOLOCK)," + CRLF
cQry += " " +RetSqlName("SC6")+ " SC6(NOLOCK)," + CRLF
cQry += " " +RetSqlName("SA3")+ " SA3(NOLOCK) " + CRLF
cQry += " WHERE SC9.C9_XLIBOK = ‘XX‘ " + CRLF
cQry += " AND SC5.C5_NOTA = ‘‘ " + CRLF
cQry += " AND SA1.A1_COD = SC5.C5_CLIENTE " + CRLF
cQry += " AND SC9.C9_PEDIDO = SC5.C5_NUM " + CRLF
cQry += " AND SC6.C6_NUM = SC5.C5_NUM " + CRLF
cQry += " AND SA3.A3_COD = SC5.C5_VEND1 " + CRLF
cQry += " AND SC5.D_E_L_E_T_ = ‘‘ " + CRLF
cQry += " AND SC6.D_E_L_E_T_ = ‘‘ " + CRLF
cQry += " GROUP BY SC5.C5_NUM " + CRLF
cQry += " ,SA1.A1_NOME " + CRLF
cQry += " ,SA1.A1_EST " + CRLF
cQry += " ,SA1.A1_MUN " + CRLF
cQry += " ,SC5.C5_EMISSAO " + CRLF
cQry += " ,SA1.A1_SUFRAMA " + CRLF
cQry += " ,SC5.C5_FECENT " + CRLF
cQry += " ,SA1.A1_NREDUZ " + CRLF
cQry += " ,SA3.A3_NREDUZ " + CRLF
cQry += " ,SC5.C5_XCLITRG " + CRLF
cQry += " ,SC5.C5_TIPOCLI " + CRLF
cQry += " ,SC6.C6_TES" + CRLF
cQry += " ORDER BY SC5.C5_NUM " + CRLF

//Executando a query
oSay:SetText("Executando a consulta")
PLSQuery(cQry, "QRY")


//Se houve dados
If ! QRY->(EoF())
//Pegando o total de registros
DbSelectArea("QRY")
Count To nTotal
QRY->(DbGoTop())

//Enquanto houver dados
While ! QRY->(EoF())

//Muda a mensagem na regua
nAtual++
oSay:SetText("Adicionando registro " + cValToChar(nAtual) + " de " + cValToChar(nTotal) + "...")

RecLock(cAliasTab, .T.)
(cAliasTab)->XXPEDIDO := QRY->C5_NUM
(cAliasTab)->XXEMISSAO := QRY->C5_EMISSAO
(cAliasTab)->XXNREDUZ := QRY->A3_NREDUZ
(cAliasTab)->XXCLIENTE := QRY->A1_NOME
(cAliasTab)->XXMUNIC := QRY->A1_MUN
(cAliasTab)->XXESTADO := QRY->A1_EST
(cAliasTab)->XXPROGRAM := QRY->C5_FECENT
(cAliasTab)->XXTES := QRY->C6_TES
(cAliasTab)->(MsUnlock())

QRY->(DbSkip())
EndDo

Else
MsgStop("Nao foi encontrado registros!", "Atencao")

RecLock(cAliasTab, .T.)
(cAliasTab)->XXPEDIDO := " "
(cAliasTab)->XXEMISSAO := " "
(cAliasTab)->XXNREDUZ := " "
(cAliasTab)->XXCLIENTE := " "
(cAliasTab)->XXMUNIC := " "
(cAliasTab)->XXESTADO := " "
(cAliasTab)->XXPROGRAM := " "
(cAliasTab)->XXTES := " "
(cAliasTab)->(MsUnlock())
EndIf
QRY->(DbCloseArea())
(cAliasTab)->(DbGoTop())

RestArea(aArea)
Return

Static Function fGrupo()
MsgInfo("Estou no grupo: " + (cAliasTab)->XXPEDIDO, "Atencao")
Return

Desde já agradeço

Por favor Acessar ou Registrar para participar da conversa.

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