ram_bh Posted April 25, 2016 Report Share Posted April 25, 2016 Boa tarde! Percebo que a aplicação fica "não respondendo" enquanto está processando uma rotina mais demorada. Alguma sugestão para contornar essa situação? Obrigado! Rodrigo Melo Belo Horizonte FW_1412 / BCC 5.82 / xH 123 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 25, 2016 Report Share Posted April 25, 2016 1 - Verifique se o seu ERRSYSW.PRG, é compativel com esta versão, senão for, troque-o. 2 - Nos WHILE... ENDDO, use o comando: SYSREFRESH() para refrescar o Looping. abs. evertonlb and ram_bh 2 Quote Link to comment Share on other sites More sharing options...
ram_bh Posted April 25, 2016 Author Report Share Posted April 25, 2016 Kapiaba, obrigado! Farei o teste depois do almoço e informo o retorno. Agora está processando e "não respondendo"... Um abraço! Rodrigo Melo Quote Link to comment Share on other sites More sharing options...
evertonlb Posted April 25, 2016 Report Share Posted April 25, 2016 Kapiaba.. o sysreresh() se usa como... do while !eof() ..... ..... skip sysrefresh() enddo Isso? A cada "volta" no do while dá um sysrefresh()? Att. Everton kapiaba 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 25, 2016 Report Share Posted April 25, 2016 Kapiaba.. o sysreresh() se usa como... do while !eof() ..... ..... skip sysrefresh() enddo Isso? A cada "volta" no do while dá um sysrefresh()? Att. Everton Ou no inicio do While... Enddo... Se bem que no final, me parece melhor. Quote Link to comment Share on other sites More sharing options...
evertonlb Posted April 25, 2016 Report Share Posted April 25, 2016 Mas dentro do Do While? Att. Everton Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 25, 2016 Report Share Posted April 25, 2016 sim, WHILE... SYSREFRESH() ... ENDDO evertonlb 1 Quote Link to comment Share on other sites More sharing options...
kleyber Posted April 25, 2016 Report Share Posted April 25, 2016 Ou podes fazer um contador de registros e quando chegar a um número tipo 1000, aí dá um SYSREFRESH() Quote Link to comment Share on other sites More sharing options...
ram_bh Posted April 25, 2016 Author Report Share Posted April 25, 2016 Coloquei no final do loop e a mensagem não se repetiu... While... ... SysRefresh() EndDo Kapiaba, obrigado, e um abraço a todos! Rodrigo Melo Quote Link to comment Share on other sites More sharing options...
CIACPD Posted April 25, 2016 Report Share Posted April 25, 2016 A dica do nosso amigo Kleyber, é utilizada para não tornar o processamento lerdo. Daniel Segura kapiaba 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 26, 2016 Report Share Posted April 26, 2016 A dica do nosso amigo Kleyber, é utilizada para não tornar o processamento lerdo. Daniel Segura Lamentavelmente, pela primeira vez, vou discordar veementemente(kkkkkkkkkk) do meu querido Kleyber Derick, primeiro, que ele nunca vai manjar mais de FiveWin, do que eu!!! kkkkkkkkkkkkkkkkkkkkkkkk, e Daniel Segura: puxa saco e tiririca, tem em todo lugar! kkkkkkkkkkkkkkkkkkkkkkk vejam exemplos: http://wiki.fivetechsoft.com/doku.php?id=fivewin_class_tftpfile Brincadeiras, friends! abs. Quote Link to comment Share on other sites More sharing options...
ram_bh Posted April 27, 2016 Author Report Share Posted April 27, 2016 Olás! Comentário: ao incluir a linha SysRefresh() dentro do loop a aplicação na fica "presa" na execução, o usuário tem acesso às demais opções do menu. Pelo menos na minha aplicação ficou assim... É assim mesmo!? Obrigado e um abraço a todos! Rodrigo Melo Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 29, 2016 Report Share Posted April 29, 2016 Olás! Comentário: ao incluir a linha SysRefresh() dentro do loop a aplicação na fica "presa" na execução, o usuário tem acesso às demais opções do menu. Pelo menos na minha aplicação ficou assim... É assim mesmo!? Obrigado e um abraço a todos! Rodrigo Melo Não deveria, a não ser que voce use janela(window) não MDI. Você pode bloquear a saida do WHILE... ENDDO, retirando o ESCAPE de controle do Usuário. Reveja o WHILE... ENDDO. Eu acho. Quote Link to comment Share on other sites More sharing options...
EDUTEK Posted July 14, 2018 Report Share Posted July 14, 2018 Bom dia! Estou tendo esse problema em meus Xbrowse, existe alguma forma de fazer isso também, e geralmente as maquinas com windows 10 que dá isso ? estou usando fwh 18.01, bcc 7.3 xh 1.2.3 Quote Link to comment Share on other sites More sharing options...
Jmsilva Posted July 14, 2018 Report Share Posted July 14, 2018 Sugestão seria implementar o uso meter ou progress....durante o processamento Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 16, 2018 Report Share Posted July 16, 2018 Edu mostre a rotina. Xbrowse é lento mesmo. Mas só vendo a lógica. Quote Link to comment Share on other sites More sharing options...
EDUTEK Posted July 17, 2018 Report Share Posted July 17, 2018 kapi, é assim que geralmente faço meus xBrowse FUNCTION SysLog_Destino(_modulo) *********************** local oDlg local oWND local oBrw local n local oBar public mFrota, mPlaca, mwfrota, mCarreta1, mPlacac, mwcarreta, mMotoris, mNomeMotoris, mwmotoris, mtipoFrota, mCodigoViagem, mChaveGR PRIVATE mSairFora := "ESC" private mOrder := 1 n2Say := "CODIGO" nSay := "CODIGO" m_titulo := _sistema + " - " + _MODULO + " - PROGRAMAÇÃO DE DESTINOS DE VIAGENS " morder := 1 mTipoBrowse := "FW" aEvento := {} mDthoje := date() mHrHoje := time() mQtdeFrota := "30000" mTipoOpe := "13" mcodigoViagem := mChaveGR := "" lAvisouMot := .f. mDataCarga := date() && prog_destino->tipo_ep mHoraCarga := time() && prog_destino->tipo_ep mDataPrev := date() && prog_destino->tipo_ep mHoraPrev := time() && prog_destino->tipo_ep mDataSaida := date() && prog_destino->tipo_ep mHoraSaida := time() && prog_destino->tipo_ep mtimeline := dtos(mdthoje)+mHrHoje aTipoMov := { {"C","Chegada"},; {"S","Saida"},; {"P","Parada"},; {"R","Retormada"}} /* eventos->(dbGoTop()) DO While !eventos->(EOF()) aadd(aEvento,eventos->codigo + " " + eventos->nome) eventos->(dbSkip()) Loop ENDDO */ openfile("empresa","empresa","N","S","xcodigo") openfile("locais","origem","N","S","xcodigo") openfile("locais","destino","N","S","xcodigo") openfile("locais","troca","N","S","xcodigo") openfile("tipoesp","tipoesp","N","S","xcodigo") openfile("filial","filial","N","S","xchave") openfile("frota","frota","N","S","xcodigo") openfile("tipotab","tipotab","N","S","xcodigo") openfile("motoris","motoris","N","S","xcodigo") openfile("prog_pgr","prog_pgr","N","S","xchavev") openfile("prog_passagem","prog_passagem","N","S","xchacar") openfile("prog_classe","prog_classe","N","S","xcodigo") openfile("prog_rotas","prog_rotas","N","S","xcodigo") openfile("prog_viagem","prog_viagem","N","S","xchaarq") dbselectarea("prog_viagem") dbsetrelation("motoris", {||prog_viagem->motoris}, "prog_viagem->motoris") dbsetrelation("tipotab", {||prog_viagem->tipotab}, "prog_viagem->tipotab") dbsetrelation("tipoesp", {||prog_viagem->tipoesp}, "prog_viagem->tipoesp") openfile("prog_destcarga","prog_destcarga","N","S","xchaarq") openfile("prog_origem","prog_origem","N","S","xchaarq") openfile("prog_destino","prog_destino","N","S","xchaarq") dbsetrelation("tipoesp", {||prog_destino->tipoesp}, "prog_destino->tipoesp") dbsetrelation("tipotab", {||prog_destino->tipotab}, "prog_destino->tipotab") dbsetrelation("empresa", {||prog_destino->empresa}, "prog_destino->empresa") dbsetrelation("filial", {||prog_destino->filial }, "prog_destino->filial") dbsetrelation("origem", {||prog_destino->origem }, "prog_destino->origem") dbsetrelation("destino", {||prog_destino->destino}, "prog_destino->destino") dbselectarea("prog_destino") mData := date() dbseek(mdata) mChaveord := prog_destino->chave dbselectarea("prog_viagem") prog_viagem->( dbseek(mChaveord)) ORDSCOPE(TOPSCOPE,mChaveord) ORDSCOPE(BOTTOMSCOPE,mchaveord) dbselectarea("prog_destino") dbseek(mdata) filtra_operacao(Alias(select())) DEFINE BRUSH oBru RESOURCE "fundo" DEFINE DIALOG oDlg PIXEL FONT oBold TITLE ".:: "+m_titulo +" ::." oDlg:lHelpIcon := .F. oDlg:nTop := nTopDlg oDlg:nLeft := 5 oDlg:nBottom := GetSysMetrics(17) - 10 oDlg:nRight := GetSysMetrics(16) - 10 oDlg:nStyle := nOR( DS_MODALFRAME, WS_POPUP, WS_CAPTION ) bFiltraPos := {|| mChaveord := prog_destino->chave, dbselectarea("prog_viagem"), prog_viagem->( dbseek(mChaveord)), ORDSCOPE(TOPSCOPE,mChaveord),ORDSCOPE(BOTTOMSCOPE,mchaveord) ,; oBrw2:nRowSel := 1 ,; oBrw2:Refresh(.T.) } *****--- Browse - xBrowse Nativa ---******************************************** oBrw:= TXBrowse():new( oDlg ) oBrw:CreateFromCode() oBrw:nTop := 50 oBrw:nLeft := 10 oBrw:nBottom:= (((oDlg:nHeight())/2 -10)/4) * 3 oBrw:nRight := (oDlg:nWidth())/2 -10 oBrw:cAlias := "prog_destino" oBrw:SetRdd(.F.) oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW //-------------> Estilo da barra de seleçao. oBrw:bClrSelFocus := {|| { CLR_WHITE, nRGB( 000, 100, 255 ) } } //--> Cor da barra de seleçao. * oBrw:nClrText:={|| IIF(prog_destino->situacao<>'D',CLR_BLUE,CLR_WHITE) } * oBrw:bClrStd:={|| IIF(prog_destino->situacao<>'D',{CLR_BLUE, CLR_WHITE},{CLR_RED , CLR_WHITE}) } * oBrw:bClrStd :={|| IIF(prog_destino->QTVI>prog_destino->QTVIPROG,{CLR_BLACK, CLR_YELLOW},{CLR_BLUE, CLR_WHITE}) } oBrw:nColDividerStyle := LINESTYLE_BLACK oBrw:nRowDividerStyle := LINESTYLE_BLACK oBrw:nHeaderLines := 01 //----------------------------> Linhas do Cabecalho. oBrw:lAllowColSwapping := .F. //----------------------------> Trocar Colunas oBrw:lAllowRowSizing := .F. //----------------------------> Nao move as Linhas oBrw:lHScroll := .T. //----------------------------> Barra Rolagem Horiz. oBrw:lFooter := .T. oBrw:l2007 := .T. oBrw:bChange := { || eval(bFiltrapos), oDlg:UpDate()} oCol:=obrw:addcol() oCol:bStrdata:={||dtoc(prog_destino->data)} oCol:cHeader:="DATA" oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:nEditType := EDIT_GET oCol:=obrw:addcol() * oCol:bStrdata:={||SUBSTR(tipotab->nome,1,15)} oCol:bStrdata:={||SUBSTR(prog_destino->ntipotab,1,15)} oCol:cHeader:="CLIENTE" oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:=obrw:addcol() * oCol:bStrdata:={||prog_destino->tipoesp+prog_destino->tipoesp+" - "+SUBSTR(tipoesp->nome,1,15)} * oCol:bStrdata:={||SUBSTR(tipoesp->nome,1,15)} oCol:bStrdata:={||SUBSTR(prog_destino->ntipoesp,1,15)} oCol:cHeader:="PRODUTO" oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:=obrw:addcol() * oCol:bStrdata:={||prog_destino->origem+" - "+SUBSTR(prog_destino->nORIGEM,1,20)} oCol:bStrdata:={||SUBSTR(prog_destino->nOrigem,1,20)} oCol:cHeader:="ORIGEM" oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:=obrw:addcol() *oCol:bStrdata:={|| prog_destino->DESTINO+" - "+SUBSTR(prog_destino->nDESTINO,1,20)} oCol:bStrdata:={|| SUBSTR(prog_destino->nDestino,1,20)} oCol:cHeader:="DESTINO" oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:=obrw:addcol() oCol:bStrData := { || iif( prog_destino->situacao="A", "Ativo", "Em Viagem")} oCol:cHeader:="SITUACAO" oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:=obrw:addcol() oCol:AddResource( "VERMELHO" ) oCol:AddResource( "AMARELO" ) oCol:AddResource( "VERDE" ) oCol:AddResource( "AZUL" ) oCol:cHeader:="SolxPrg" oCol:bBmpData := { || iif( prog_destino->sit_sp="1", 1, ; iif( prog_destino->sit_sp="2", 2, ; iif( prog_destino->sit_sp="3", 3, 4 ))) } oCol:bStrData := { || prog_destino->sit_sp } oCol:nDataBmpAlign := 3 oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:=obrw:addcol() oCol:AddResource( "VERMELHO" ) oCol:AddResource( "AMARELO" ) oCol:AddResource( "VERDE" ) oCol:AddResource( "AZUL" ) oCol:cHeader:="PrgxCarr" oCol:bBmpData := { || iif( prog_destino->sit_pc="1", 1, ; iif( prog_destino->sit_pc="2", 2, ; iif( prog_destino->sit_pc="3", 3, 4 ))) } oCol:bStrData := { || prog_destino->sit_pc } oCol:nDataBmpAlign := 3 oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:=obrw:addcol() oCol:bStrdata:={||transform(prog_destino->qtde,"@E 999,999,999")} oCol:cHeader:="QTDE PEDIDA" oCol:nDataStrAlign := AL_RIGHT oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:=obrw:addcol() oCol:bStrdata:={||transform(prog_destino->qtvi,"@E 999")} oCol:cHeader:="VIAGENS" oCol:nDataStrAlign := AL_RIGHT oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 * oCol:bClrStd = { || if(prog_destino->qtviprog >= prog_destino->qtvi, ; * { CLR_WHITE, CLR_GREEN }, if(prog_destino->qtviprog > 0,; * { CLR_BLACK, CLR_YELLOW }, if(prog_destino->qtviprog = prog_destino->qtvicarga,; oCol:bClrStd = { || iif( prog_destino->sit_sp="1", { CLR_WHITE, CLR_RED }, ; iif( prog_destino->sit_sp="2", { CLR_BLACK, CLR_YELLOW }, ; iif( prog_destino->sit_sp="3", { CLR_WHITE, CLR_GREEN }, { CLR_WHITE, CLR_BLUE } ))) } /* oCol:=oBrw:AddCol() oCol:AddResource("VERDE") oCol:AddResource("VERMELHO") oCol:AddResource("AMARELO") oCol:AddResource("AZUL") oCol:cHeader := "STATUS" oCol:bBmpData := { || iif( PROG_VIAGEM->Married, 1, 2) } oCol:bStrData := { || iif( _FIELD->Married, "Yes", "No ")} oCol:bEditValue := { || _FIELD->Married } oCol:nDataStyle := oCol:DefStyle( AL_RIGHT, .T.) oCol:nEditType := EDIT_LISTBOX oCol:aEditListTxt := { "Yes", "No"} oCol:aEditListBound := { .t., .f. } oCol:bOnPostEdit := {|o, v| (DBRLOCK(), _FIELD->Married := v, DBUNLOCK() ) } */ oCol:=obrw:addcol() oCol:bStrdata:={||transform(prog_destino->qtdeprog,"@E 999,999,999")} oCol:cHeader:="QTDE PROG." oCol:nDataStrAlign := AL_RIGHT oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:=obrw:addcol() oCol:bStrdata:={||transform(prog_destino->qtviprog,"@E 999")} oCol:cHeader:="V.PROG" oCol:nDataStrAlign := AL_RIGHT oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:bClrStd = { || iif( prog_destino->sit_pc="1", { CLR_WHITE, CLR_RED }, ; iif( prog_destino->sit_pc="2", { CLR_BLACK, CLR_YELLOW }, ; iif( prog_destino->sit_pc="3", { CLR_WHITE, CLR_GREEN }, { CLR_WHITE, CLR_BLUE } ))) } oCol:=obrw:addcol() oCol:bStrdata:={||transform(prog_destino->qtdecarga,"@E 999,999,999")} oCol:cHeader:="QTDE CARREG." oCol:nDataStrAlign := AL_RIGHT oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:=obrw:addcol() oCol:bStrdata:={||transform(prog_destino->qtvicarga,"@E 999")} oCol:cHeader:="V.CARG" oCol:nDataStrAlign := AL_RIGHT oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:bClrStd = { || iif( prog_destino->sit_pc="1", { CLR_WHITE, CLR_RED }, ; iif( prog_destino->sit_pc="2", { CLR_BLACK, CLR_YELLOW }, ; iif( prog_destino->sit_pc="3", { CLR_WHITE, CLR_GREEN }, { CLR_WHITE, CLR_BLUE } ))) } oCol:=obrw:addcol() oCol:bStrdata:={||transform(prog_destino->qtdecarga-prog_destino->qtde,"@E 999,999,999")} oCol:cHeader:="QTDE A CARG" oCol:nDataStrAlign := AL_RIGHT oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 * oBrw:CreateFromCode() oCol:=obrw:addcol() oCol:bStrdata:={||transform(prog_destino->qtVIcarga-prog_destino->qtVI,"@E 999,999,999")} oCol:cHeader:="V.A CARG" oCol:nDataStrAlign := AL_RIGHT oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oBrw:nFreeze:=2 **************************************************************2 xbrowse oBrw2:= TXBrowse():new( oDlg ) oBrw2:CreateFromCode() oBrw2:nTop := oBrw:nBottom + 1 oBrw2:nLeft := 10 && oBrw:nLeft oBrw2:nBottom:= (oDlg:nHeight())/2 -10 && 10 oBrw2:nRight := ((oDlg:nWidth())/2 -10 )/2 oBrw2:cAlias := "prog_viagem" oBrw2:SetRdd(.F.) oBrw2:nMarqueeStyle := MARQSTYLE_HIGHLROW //-------------> Estilo da barra de seleçao. oBrw2:bClrSelFocus := {|| { CLR_WHITE, nRGB( 000, 100, 255 ) } } //--> Cor da barra de seleçao. * oBrw:nClrText:={|| IIF(prog_destino->situacao<>'D',CLR_BLUE,CLR_WHITE) } * oBrw:bClrStd:={|| IIF(prog_destino->situacao<>'D',{CLR_BLUE, CLR_WHITE},{CLR_RED , CLR_WHITE}) } * oBrw2:bClrStd :={|| IIF(prog_destino->situacao='D',{CLR_RED , CLR_WHITE},{CLR_BLUE, CLR_WHITE}) } oBrw2:nColDividerStyle := LINESTYLE_BLACK oBrw2:nRowDividerStyle := LINESTYLE_BLACK oBrw2:nHeaderLines := 01 //----------------------------> Linhas do Cabecalho. oBrw2:lAllowColSwapping := .F. //----------------------------> Trocar Colunas oBrw2:lAllowRowSizing := .F. //----------------------------> Nao move as Linhas oBrw2:lHScroll := .T. //----------------------------> Barra Rolagem Horiz. oBrw2:lFooter := .T. oBrw2:l2007 := .T. oCol:=obrw2:addcol() oCol:bStrdata:={|| PROG_VIAGEM->CARRETA } oCol:cHeader:="CARRETA" oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:nEditType := EDIT_GET oCol:=obrw2:addcol() oCol:bStrdata:={|| prog_viagem->frota} oCol:cHeader:="FROTA" oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:nEditType := EDIT_GET oCol:=obrw2:addcol() oCol:bStrdata:={||iif(prog_viagem->situacao="A","ATIVA ","EM VIAGEM")} oCol:cHeader:="SITUACAO" oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:=obrw2:addcol() oCol:bStrdata:={||transform(prog_viagem->qtde,"@E 999,999,999")} oCol:cHeader:="QTDE PROG." oCol:nDataStrAlign := AL_RIGHT oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:=obrw2:addcol() oCol:bStrdata:={||transform(prog_viagem->qtdenota,"@E 999,999,999")} oCol:cHeader:="QTDE CARREGADA" oCol:nDataStrAlign := AL_RIGHT oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:=obrw2:addcol() oCol:bStrdata:={|| prog_viagem->MOTORIS+"-"+substr(motoris->nome,1,15) } oCol:cHeader:="MOTORISTA" oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 oCol:=obrw2:addcol() oCol:bStrdata:={|| prog_viagem->idlanc } oCol:cHeader:="reg viagem" oCol:oDataFont := oFont4 oCol:oHeaderFont := oFont3 * oBrw2:CreateFromCode() oBrw2:nFreeze:=2 * oCol:=obrw:addcol() * oCol:bStrdata:={|| IIF(dtos(date())+tiratraco(time())>dtos(prog_destino->dataf)+tiratraco(prog_destino->horaf),"Disponivel","Indisponivel") } * oCol:cHeader:="SITUACAO" /* EXEMPLO DE PICTURE COM VALOR oCol:=obrw:addcol() oCol:bStrdata:={||transform(financa->valor,"@E 999,999,999.99")} oCol:cHeader:="VALOR DOCTO" oCol:nDataStrAlign := AL_RIGHT */ oDlg:bKeyDown := {|nKey| Teclas( nKey ),oBrw:Refresh(),oBrw:SetFocus() } @ 00,07 GROUP oGrp2 to 41, 380 LABEL "Ação" PIXEL OF oDlg transparent @ 00,400 GROUP oGrp2 to 20, 490 LABEL "Ordem" PIXEL OF oDlg transparent @ 21,400 GROUP oGrp1 to 41, 490 LABEL "Navegação" PIXEL OF oDlg transparent @ 08,410 SAY oSay VAR n2Say SIZE 50,12 PIXEL FONT oBold update transparent adjust OF oDlg @ 29,410 BTNBMP OF oDlg PROMPT "" TOOLTIP "Primeiro Registro" RESOURCE "T_PRIMEIRO" 2007 ACTION (oBrw:GoTop(),oBrw:SetFocus()) SIZE 12, 12 PIXEL FONT oFont1 @ 29,426 BTNBMP OF oDlg PROMPT "" TOOLTIP "Anterior" RESOURCE "t_anterior" 2007 ACTION (oBrw:GoUp(),oBrw:SetFocus()) SIZE 12, 12 PIXEL FONT oFont1 @ 29,442 BTNBMP OF oDlg PROMPT "" TOOLTIP "Seguinte" RESOURCE "t_proximo" 2007 ACTION (oBrw:GoDown(),oBrw:SetFocus()) SIZE 12, 12 PIXEL FONT oFont1 @ 29,458 BTNBMP OF oDlg PROMPT "" TOOLTIP "Ultimo" RESOURCE "t_ultimo" 2007 ACTION (oBrw:Gobottom(),oBrw:Setfocus()) SIZE 12, 12 PIXEL FONT oFont1 @ 29,474 BTNBMP OF oDlg PROMPT "" TOOLTIP "Desfaz" RESOURCE "t_desfaz" 2007 ACTION (oBrw:Refresh(),oBrw:SetFocus()) SIZE 12, 12 PIXEL FONT oFont1 @ 08,10 BTNBMP OF oDlg PROMPT "Incluir" TOOLTIP "Incluir Prog. Destinos" RESOURCE "incluir" 2007 ACTION {SysLog_Destino_I2("I"),oBrw:Refresh(),oBrw2:Refresh(),oBrw:SetFocus(),oSay:refresh()} SIZE 30, 30 PIXEL FONT oFont2 @ 08,40 BTNBMP OF oDlg PROMPT "Excluir" TOOLTIP "Excluir Prog. Destinos" RESOURCE "excluir" 2007 ACTION {SysLog_Destino_x("X"),oBrw:Refresh(),oBrw2:Refresh(),oBrw:SetFocus(),oSay:refresh()} SIZE 30, 30 PIXEL FONT oFont2 @ 08,70 BTNBMP OF oDlg PROMPT "Alterar" TOOLTIP "Alterar Dados Destinos" RESOURCE "alterar" 2007 ACTION {SysLog_Destino_A("A"),oBrw:Refresh(),oBrw2:Refresh(),oBrw:SetFocus(),oSay:refresh()} SIZE 30, 30 PIXEL FONT oFont2 @ 08,100 BTNBMP OF oDlg PROMPT "Buscar" TOOLTIP "Procurar" RESOURCE "procurar" 2007 ACTION {SysLog_Destino_f("A"),oBrw:Refresh(),oBrw2:Refresh(),oBrw:SetFocus(),oSay:refresh()} SIZE 30, 30 PIXEL FONT oFont2 @ 08,130 BTNBMP OF oDlg PROMPT "Ordem" TOOLTIP "Ordem Pesquisa" RESOURCE "index" 2007 ACTION {SysLog_Destino_o("A"),oBrw:Refresh(),oBrw2:Refresh(),oBrw:SetFocus(),oSay:refresh()} SIZE 30, 30 PIXEL FONT oFont2 @ 08,160 BTNBMP OF oDlg PROMPT "Ver" TOOLTIP "Consulta dados" RESOURCE "ver" 2007 ACTION {SysLog_Destino_V("V"),oBrw:Refresh(),oBrw2:Refresh(),oBrw:SetFocus(),oSay:refresh()} SIZE 30, 30 PIXEL FONT oFont2 @ 08,190 BTNBMP OF oDlg PROMPT "Viagens" TOOLTIP "Lanca Programação de Viagens" RESOURCE "carros" 2007 ACTION {SysLog_Destino_viagem("I"),oBrw:Refresh(),oBrw2:Refresh(),oBrw:SetFocus(),oSay:refresh()} SIZE 30, 30 PIXEL FONT oFont2 @ 08,220 BTNBMP OF oDlg PROMPT "Dt Movto" TOOLTIP "Filtra a Data da Programação" RESOURCE "calendar" 2007 ACTION {SysLog_Destino_data(),oBrw:Refresh(),oBrw2:Refresh(),oBrw:SetFocus(),oSay:refresh()} SIZE 30, 30 PIXEL FONT oFont2 @ 08,250 BTNBMP OF oDlg PROMPT "Opções" TOOLTIP "Opções Adicionais" RESOURCE "engrenagem" 2007 ACTION {SysLog_Destino_adicionais(),oBrw:Refresh(),oBrw2:Refresh(),oBrw:SetFocus(),oSay:refresh()} SIZE 30, 30 PIXEL FONT oFont2 @ 06,290 BTNBMP OF oDlg PROMPT "" TOOLTIP "" RESOURCE "azul" 2007 SIZE 07, 07 PIXEL FONT oFonte @ 06,300 SAY oSay VAR "4-Sem Programa" SIZE 50,07 PIXEL FONT oBold update transparent adjust OF oDlg @ 14,290 BTNBMP OF oDlg PROMPT "" TOOLTIP "" RESOURCE "vermelho" 2007 SIZE 07, 07 PIXEL FONT oFonte @ 14,300 SAY oSay VAR "1-Não Realizado" SIZE 50,07 PIXEL FONT oBold update transparent adjust OF oDlg @ 22,290 BTNBMP OF oDlg PROMPT "" TOOLTIP "" RESOURCE "amarelo" 2007 SIZE 07, 07 PIXEL FONT oFonte @ 22,300 SAY oSay VAR "2-Realizado Parcial" SIZE 50,07 PIXEL FONT oBold update transparent adjust OF oDlg @ 30,290 BTNBMP OF oDlg PROMPT "" TOOLTIP "" RESOURCE "Verde" 2007 SIZE 07, 07 PIXEL FONT oFonte @ 30,300 SAY oSay VAR "3-Realizado Total" SIZE 50,07 PIXEL FONT oBold update transparent adjust OF oDlg * @ 08,290 BTNBMP OF oDlg PROMPT "Opções" TOOLTIP "Opções Adicionais" RESOURCE "azul" 2007 SIZE 10, 40 PIXEL FONT oFonte @ 08,500 BTNBMP OF oDlg PROMPT "SAIR" TOOLTIP "SAIR" RESOURCE "sair" 2007 ACTION {SysLog_Destino_esc(),oDLG:END()} SIZE 30, 30 PIXEL FONT oFont2 ACTIVATE DIALOG oDlg CENTERED dbcloseall() *GlobalFree() *ResAllFree() Release All RETURN nil Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 17, 2018 Report Share Posted July 17, 2018 Não entendo muito de xBrowse, mas aqui, você precisa testar a velocidade desta área: openfile("empresa","empresa","N","S","xcodigo") openfile("locais","origem","N","S","xcodigo") openfile("locais","destino","N","S","xcodigo") openfile("locais","troca","N","S","xcodigo") openfile("tipoesp","tipoesp","N","S","xcodigo") openfile("filial","filial","N","S","xchave") openfile("frota","frota","N","S","xcodigo") openfile("tipotab","tipotab","N","S","xcodigo") openfile("motoris","motoris","N","S","xcodigo") openfile("prog_pgr","prog_pgr","N","S","xchavev") openfile("prog_passagem","prog_passagem","N","S","xchacar") openfile("prog_classe","prog_classe","N","S","xcodigo") openfile("prog_rotas","prog_rotas","N","S","xcodigo") openfile("prog_viagem","prog_viagem","N","S","xchaarq") dbselectarea("prog_viagem") dbsetrelation("motoris", {||prog_viagem->motoris}, "prog_viagem->motoris") dbsetrelation("tipotab", {||prog_viagem->tipotab}, "prog_viagem->tipotab") dbsetrelation("tipoesp", {||prog_viagem->tipoesp}, "prog_viagem->tipoesp") openfile("prog_destcarga","prog_destcarga","N","S","xchaarq") openfile("prog_origem","prog_origem","N","S","xchaarq") openfile("prog_destino","prog_destino","N","S","xchaarq") dbsetrelation("tipoesp", {||prog_destino->tipoesp}, "prog_destino->tipoesp") dbsetrelation("tipotab", {||prog_destino->tipotab}, "prog_destino->tipotab") dbsetrelation("empresa", {||prog_destino->empresa}, "prog_destino->empresa") dbsetrelation("filial", {||prog_destino->filial }, "prog_destino->filial") dbsetrelation("origem", {||prog_destino->origem }, "prog_destino->origem") dbsetrelation("destino", {||prog_destino->destino}, "prog_destino->destino") dbselectarea("prog_destino") mData := date() dbseek(mdata) mChaveord := prog_destino->chave dbselectarea("prog_viagem") prog_viagem->( dbseek(mChaveord)) ORDSCOPE(TOPSCOPE,mChaveord) ORDSCOPE(BOTTOMSCOPE,mchaveord) dbselectarea("prog_destino") dbseek(mdata) filtra_operacao(Alias(select())) // ????? VERIFIQUE O TEMPO DE DEMORA DISSO BROWSE() // PARE O PROGRAMA AQUI E VEJA QUEM DEMORA. Quote Link to comment Share on other sites More sharing options...
EDUTEK Posted July 17, 2018 Report Share Posted July 17, 2018 bom realmente este xbrowse fica lento para carregar, mas ele carrega, depois fica normal, o que acontece é que na movimentação ou na chamada de alguma dialogos ele trava e fica não respondendo, até nos xbrowse com menos arquivos isso está ocorrendo, Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 17, 2018 Report Share Posted July 17, 2018 Exemplo? Quote Link to comment Share on other sites More sharing options...
emotta Posted July 17, 2018 Report Share Posted July 17, 2018 Bom dia! Estou tendo esse problema em meus Xbrowse, existe alguma forma de fazer isso também, e geralmente as maquinas com windows 10 que dá isso ? estou usando fwh 18.01, bcc 7.3 xh 1.2.3 Xará quando vc executa o SYSREFRESH o usuário tem acesso aos botões, browse, etc... Por isso que ao executar algum relatório ou outro processo que vai levar tempo vc precisa abrir uma janela ou criar um meter, etc... A melhor maneira de resolver isso é usar o MSGRUN, caso não seja possivel criar um meter... // JEITO ERRADO Function u_Teste() Local bBlock ProcRelatorio() MsgStop("Fim") Return Static Function ProcRelatorio() Local nI For nI := 1 to 100 SysRefresh() ThreadSleep(100) Next Return // JEITO CERTO Function u_Teste() Local bBlock bBlock := {|| ProcRelatorio() } // aqui vc coloca a função pra executar e fazer o seu processamento ou relatorio (dentro do codeblock) MsgRun("Aguarde... ",,bBlock) MsgStop("Fim") Return Static Function ProcRelatorio() Local nI For nI := 1 to 100 SysRefresh() ThreadSleep(100) Next Return Quote Link to comment Share on other sites More sharing options...
EDUTEK Posted July 17, 2018 Report Share Posted July 17, 2018 OK VOU FAZER UM TESTE NISSO Quote Link to comment Share on other sites More sharing options...
EDUTEK Posted July 17, 2018 Report Share Posted July 17, 2018 no caso eu tenho detro do xbrowse as chamadas de dialogs ex: @ 08,250 BTNBMP OF oDlg PROMPT "Email" TOOLTIP "Email do Transito" RESOURCE "cartao" 2007 ACTION {SysLog_Transito_email(),oBrw:Refresh(),oBrw:SetFocus(),oSay:refresh() } SIZE 30, 30 PIXEL FONT oFont3 essa dialog algumas vezes chama mais de uma dialog, no caso colocaria o MSGRUN para chamalas ? @ 08,250 BTNBMP OF oDlg PROMPT "Email" TOOLTIP "Email do Transito" RESOURCE "cartao" 2007 ACTION { msgrun("processando"," ", { || syslog_transito_email()) }),oBrw:Refresh(),oBrw:SetFocus(),oSay:refresh() } SIZE 30, 30 PIXEL FONT oFont3 isso ? Quote Link to comment Share on other sites More sharing options...
emotta Posted July 18, 2018 Report Share Posted July 18, 2018 no caso eu tenho detro do xbrowse as chamadas de dialogs ex: @ 08,250 BTNBMP OF oDlg PROMPT "Email" TOOLTIP "Email do Transito" RESOURCE "cartao" 2007 ACTION {SysLog_Transito_email(),oBrw:Refresh(),oBrw:SetFocus(),oSay:refresh() } SIZE 30, 30 PIXEL FONT oFont3 essa dialog algumas vezes chama mais de uma dialog, no caso colocaria o MSGRUN para chamalas ? @ 08,250 BTNBMP OF oDlg PROMPT "Email" TOOLTIP "Email do Transito" RESOURCE "cartao" 2007 ACTION { msgrun("processando"," ", { || syslog_transito_email()) }),oBrw:Refresh(),oBrw:SetFocus(),oSay:refresh() } SIZE 30, 30 PIXEL FONT oFont3 isso ? sim isso mesmo Quote Link to comment Share on other sites More sharing options...
EDUTEK Posted January 12, 2019 Report Share Posted January 12, 2019 Bom Dia Ainda estou tendo problemas com a Mensagem "nao respondendo", na questao da movimentação, inclusão e alterações não tive mais problemas se o usuario esta usando o sistema ele não trava. estou com o problema assim, quando o usuário abre o sistema e deixa ele num "browse" qualquer, ai nao usa e vai em outra aplicação ou na web, quando ele volta para usar o sistema ele fica congelado com a mensagem "não respondendo." ai o usuário tem que fechar o programa via gerenciador de tarefas, e abrir novamente. isso ocorre várias vezes ao dia uso tabela DBFCDX ta na rede FWH18.05 bcc 7.3 a maioria com win 10 as que tem win 7 não tenho muito problema Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.