reneumg Posted July 30, 2009 Report Share Posted July 30, 2009 Alguem ai sabe me dizer porque um arquivo de 16.800 registros e 20 campos fica lento em um ListBox, em uma rede Linux de 18 terminais com windows XP, ah no meu computador sem rede e windows XP Tá normal. Obs: Arquivo DBF/NTX Compilado em FW 2.7 xHarbour Desde já agradeço quem puder me ajudar Reneu, Catanduva/SP Editado por - reneumg on 30/07/2009 21:26:31 Quote Link to comment Share on other sites More sharing options...
reneumg Posted July 30, 2009 Author Report Share Posted July 30, 2009 Alguem ai sabe me dizer porque um arquivo de 16.800 registros e 20 campos fica lento em um ListBox, em uma rede Linux de 18 terminais com windows XP, ah no meu computador sem rede e windows XP Tá normal. Obs: Arquivo DBF/NTX Compilado em FW 2.7 xHarbour Desde já agradeço quem puder me ajudar Reneu, Catanduva/SP Editado por - reneumg on 30/07/2009 21:26:31 Quote Link to comment Share on other sites More sharing options...
reneumg Posted July 30, 2009 Author Report Share Posted July 30, 2009 O Pessoal ninguem tem se quer uma idéia do que pode ser? Quote Link to comment Share on other sites More sharing options...
senun Posted July 30, 2009 Report Share Posted July 30, 2009 citação:O Pessoal ninguem tem se quer uma idéia do que pode ser? id=quote>id=quote>Olá, boa noite..... vc utiliza [x]harbour com NTX ? Tem filtros neste listbox ? Experimente mudar os indices para CDX.. Faça um pequeno teste com estas mesmas quantidades de terminais... Nelson Nunes de Araujo Santo André - SP MSN : nelson.n.araujo@hotmail.com EMAIL: nelson.n.araujo@gmail.com nelson.n.araujo@terra.com.br Clipper 5.3E, Blinker 7.0, FW 2.4, Workshop Editado por - senun on 30/07/2009 22:46:17 Quote Link to comment Share on other sites More sharing options...
CIACPD Posted July 30, 2009 Report Share Posted July 30, 2009 Reneu, Mostra a linha que voce define o listbox pode ter algo errado Daniel Segura ciacpd@terra.com.br Quote Link to comment Share on other sites More sharing options...
reneumg Posted July 31, 2009 Author Report Share Posted July 31, 2009 Nelson vou testar o CDX, é que tenho este sistema rodando nesta empresa com o velho clipper 5.01 a uns 8 anos +ou- e to mudandos aos poucos e o browse do clipper vai bem. mas vou testar o CDX. Daniel é um ListBox simples vê acho que tá certo qualquer coisa que possa melhorar ta um toque. ************************************************ Set relation to PRODUTO->COD_SEG into SEGUIMENTO nOrden:=2 REDEFINE LISTBOX oLbxBrw ; FIELDS PRODUTO->COD_PRO,; PRODUTO->NOME,; PRODUTO->COD_EXT,; SEGUIMENTO->DESCRICAO,; Transform((PRODUTO->PRC_VEN/oFator[1]), [@E 9,999,999.99] ),; Transform(iif(SEGUIMENTO->QTD_TB>"1",(PRODUTO->PRC_VEN/oFator[2]),0), [@E 9,999,999.99] ),; Transform(iif(SEGUIMENTO->QTD_TB>"2",(PRODUTO->PRC_VEN/oFator[3]),0), [@E 9,999,999.99] ),; Transform(iif(SEGUIMENTO->QTD_TB>"3",(PRODUTO->PRC_VEN/oFator[4]),0), [@E 9,999,999.99] ),; Transform(iif(SEGUIMENTO->QTD_TB>"4",(PRODUTO->PRC_VEN/oFator[5]),0), [@E 9,999,999.99] ) ; FIELDSIZES 150, 390, 150, 90, 80, 80, 80, 80, 80 ; HEADERS OemToAnsi("C¢digo"), OemToAnsi("Descri‡Æo"), "Nosso Codigo", "Seguimento", oTitulo[1], oTitulo[2], oTitulo[3], oTitulo[4], oTitulo[5] ; ON LEFT DBLCLICK F_Cad( oDlgBrw, .F., BrwFile ); ID 115 OF oDlgBrw oLbxBrw:bKeyChar = { | nKey | LstBusca( oLbxBrw, nKey ) } *********************************** Blza. Reneu. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 31, 2009 Report Share Posted July 31, 2009 Olá, coloque isto no inicio do modulo, teste e reporte. Request OrdKeyNo Request OrdKeyCount Se não funcionar, mostre o código todo. Abraços, João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Editado por - kapiaba on 31/07/2009 09:01:08 Quote Link to comment Share on other sites More sharing options...
reneumg Posted July 31, 2009 Author Report Share Posted July 31, 2009 O João Santos Tranquilo, Ta ai como to fazendo mas será que não tem uma configuração nos micros ou na rede que pode melhorar o desempelho, é que em rede sou meio leigo se tiver manda ai que eu mostro para os pessoal la que cuida da rede e dos micros. Ta ai: //----------------------------------------------------------------------------// //------ WBRW.PRG : Modulo com ListBox diversas utilizadas no Sistema -----// //----------------------------------------------------------------------------// #include "FIVEWIN.CH" * ----------------------------------------------------------------------------- FUNCTION BrwArq(Brwfile,BrwTitulo,oBrw,oDlg,oDbf,aCtr,aRelacao) * ----------------------------------------------------------------------------- LOCAL oLbxBrw, oDlgBrw, oFont, oSay LOCAL oRadioButtons, aNtx:=0, nOrden:=1, oTmp:=" " LOCAL lBsc := .F., oPsgm := .F., oFator:={0,0,0,0,0}, oTitulo:={"","","","",""} LOCAL oDlg_B:=iif(oBrw,"xDlg_Brw","Dlg_Brw") vBusca:=vCd:="" Select(BrwFile) aNtx:=(BrwFile)->(indexord()) If aNtx = 1 (BrwFile)->(DBSetOrder(2)) // Ordem de Nome EndIf (BrwFile)->(DBGoTop()) DEFINE DIALOG oDlgBrw RESOURCE oDlg_B TITLE OemToAnsi(BrwTitulo) // FONT oFont if BrwFile = "PRODUTO" Do While !TABGRUPO->(Eof()) If Val(TABGRUPO->TAB_GR)>0 .and. Val(TABGRUPO->TAB_GR)<6 oFator[Val(TABGRUPO->TAB_GR)]:=TABGRUPO->FATOR oTitulo[Val(TABGRUPO->TAB_GR)]:=TABGRUPO->CABECA EndIf TABGRUPO->(DBSkip()) EndDo Set relation to PRODUTO->COD_SEG into SEGUIMENTO nOrden:=2 REDEFINE LISTBOX oLbxBrw ; FIELDS PRODUTO->COD_PRO,; PRODUTO->NOME,; PRODUTO->COD_EXT,; SEGUIMENTO->DESCRICAO,; Transform((PRODUTO->PRC_VEN/oFator[1]), [@E 9,999,999.99] ),; Transform(iif(SEGUIMENTO->QTD_TB>"1",(PRODUTO->PRC_VEN/oFator[2]),0), [@E 9,999,999.99] ),; Transform(iif(SEGUIMENTO->QTD_TB>"2",(PRODUTO->PRC_VEN/oFator[3]),0), [@E 9,999,999.99] ),; Transform(iif(SEGUIMENTO->QTD_TB>"3",(PRODUTO->PRC_VEN/oFator[4]),0), [@E 9,999,999.99] ),; Transform(iif(SEGUIMENTO->QTD_TB>"4",(PRODUTO->PRC_VEN/oFator[5]),0), [@E 9,999,999.99] ) ; FIELDSIZES 150, 390, 150, 90, 80, 80, 80, 80, 80 ; HEADERS OemToAnsi("C¢digo"), OemToAnsi("Descri‡Æo"), "Nosso Codigo", "Seguimento", oTitulo[1], oTitulo[2], oTitulo[3], oTitulo[4], oTitulo[5] ; ON LEFT DBLCLICK F_Cad( oDlgBrw, .F., BrwFile ); ID 115 OF oDlgBrw oLbxBrw:bKeyChar = { | nKey | LstBusca( oLbxBrw, nKey ) } endif oLbxBrw:bGoTop:={|| 1 } oLbxBrw:cAlias:= BrwFile oLbxBrw:SetFocus() oLBXBrw:nClrBackHead := nRgb(128,128,192) oLbxBrw:nClrBackFocus:= nrgb(192,254,237) oLbxBrw:nClrForeFocus:= nrgb(0,0,255 ) oLbxBrw:nClrForeHead := nRgb(255,255,217) oLbxBrw:bKeyDown = { | nKey | If( nKey == VK_RETURN,; F_Cad( oDlgBrw, .F., BrwFile ),; If( nKey == VK_INSERT,; F_Cad( oDlgBrw, .T., BrwFile ),; If(nKey == VK_F2,; ORD_TAB( nOrden, oDlgBrw, BrwFile, @oTmp ),))), nil } REDEFINE RADIO oRadioButtons var nOrden ID 120,121 ; OF oDlgBrw ON CHANGE Orden(nOrden,oDlgBrw,BrwFile) // Muda a ordem do NTX 1 Codigo 2 Descricao REDEFINE BUTTON ID 101 OF oDlgBrw ; ACTION F_Cad( oDlgBrw, .T., BrwFile ) // Botao Novo REDEFINE BUTTON ID 102 OF oDlgBrw ; ACTION F_Cad( oDlgBrw, .F., BrwFile ) // Botao Alatera REDEFINE BUTTON ID 104 OF oDlgBrw ; ACTION nMsgBusca( BrwFile, oLbxBrw ) // Busca REDEFINE BUTTON ID 103 OF oDlgBrw ; ACTION DelRegistro( oDlgBrw, BrwFile ) // Botao Exclui REDEFINE BUTTON ID 105 OF oDlgBrw ; ACTION F_Move( oDlgBrw, .T., BrwFile ) // Botao Inicio REDEFINE BUTTON ID 106 OF oDlgBrw ; ACTION F_Move( oDlgBrw, .F., BrwFile ) // Botao Final REDEFINE BUTTON ID 107 OF oDlgBrw ; ACTION (IMPCD(BrwFile,BrwTitulo,oPsgm), oLbxBrw:Refresh()) // Botao Inprimir REDEFINE BUTTON ID 108 OF oDlgBrw ; ACTION oDlgBrw:End(); CANCEL // Botao Sair oDlgBrw:aControls[1]:SetFocus() ACTIVATE DIALOG oDlgBrw CENTER (BrwFile)->(DBSetOrder(aNtx)) // Ordem Inicial RETURN ( NIL ) *************************************** Abraços Reneu. Catanduva-SP Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 31, 2009 Report Share Posted July 31, 2009 //----------------------------------------------------------------------------// //------ WBRW.PRG : Modulo com ListBox diversas utilizadas no Sistema -----// //----------------------------------------------------------------------------// #Include "FiveWin.Ch" #Define CLR_LGRAY nRGB( 230, 230, 230 ) #Define CLR_LGREEN nRGB( 190, 215, 190 ) #Define CLR_CHOCOLATE nRGB( 238, 118, 33 ) #Define CLR_VERMELHO nRGB( 255, 000, 000 ) //--> Vermelho Para a Letra #Define CLR_AMARELO nRGB( 255, 255, 000 ) //--> Amarelo Para o Fundo #Define CLR_LYELLOW nRGB( 255, 255, 128 ) //--> Amarelo Claro #Define CLR_LWHITE nRGB( 255, 255, 254 ) //--> 16777215 #Define CLR_BOMBOM nRGB( 165, 42, 42 ) //--> Marrom BomBom #Define CLR_MARROM nRGB( 235, 202, 171 ) //--> Marrom Normal Request OrdKeyNo Request OrdKeyCount * ----------------------------------------------------------------------------- FUNCTION BrwArq(Brwfile,BrwTitulo,oBrw,oDlg,oDbf,aCtr,aRelacao) * ----------------------------------------------------------------------------- LOCAL oLbxBrw, oDlgBrw, oFont, oSay LOCAL oRadioButtons, aNtx:=0, nOrden:=1, oTmp:=" " LOCAL lBsc := .F., oPsgm := .F., oFator:={0,0,0,0,0}, oTitulo:={"","","","",""} LOCAL oDlg_B:=iif(oBrw,"xDlg_Brw","Dlg_Brw") vBusca:=vCd:="" Select(BrwFile) aNtx:=(BrwFile)->(indexord()) If aNtx = 1 (BrwFile)->(DBSetOrder(2)) // Ordem de Nome EndIf (BrwFile)->(DBGoTop()) //-> local correto para este looping, se ele realmente for necessario //-> Nao pode dentro do DEFINE DIALOG / ACTIVATE DIALOG. Do While !TABGRUPO->(Eof()) SYSREFRESH() //-> refresque o looping If Val(TABGRUPO->TAB_GR)>0 .and. Val(TABGRUPO->TAB_GR)<6 oFator[Val(TABGRUPO->TAB_GR)]:=TABGRUPO->FATOR oTitulo[Val(TABGRUPO->TAB_GR)]:=TABGRUPO->CABECA EndIf TABGRUPO->(DBSkip()) EndDo Set relation to PRODUTO->COD_SEG into SEGUIMENTO nOrden := 2 DEFINE DIALOG oDlgBrw RESOURCE oDlg_B TITLE OemToAnsi(BrwTitulo) // FONT oFont //-> E SE FOR OUTRA COISA?? O QUE ACONTECE? IF BrwFile = "PRODUTO" //-> Nao entendi?? Entra outra coisa aqui??? //-> Isto esta no lugar errado /* O DEFINE DIALOG JA E UM LOOPING, NAO PODE TER OUTRO Do While !TABGRUPO->(Eof()) SYSREFRESH() If Val(TABGRUPO->TAB_GR)>0 .and. Val(TABGRUPO->TAB_GR)<6 oFator[Val(TABGRUPO->TAB_GR)]:=TABGRUPO->FATOR oTitulo[Val(TABGRUPO->TAB_GR)]:=TABGRUPO->CABECA EndIf TABGRUPO->(DBSkip()) EndDo Set relation to PRODUTO->COD_SEG into SEGUIMENTO nOrden:=2 */ REDEFINE LISTBOX oLbxBrw ; FIELDS PRODUTO->COD_PRO,; PRODUTO->NOME,; PRODUTO->COD_EXT,; SEGUIMENTO->DESCRICAO,; Transform((PRODUTO->PRC_VEN/oFator[1]), [@E 9,999,999.99] ),; Transform(iif(SEGUIMENTO->QTD_TB>"1",(PRODUTO->PRC_VEN/oFator[2]),0), [@E 9,999,999.99] ),; Transform(iif(SEGUIMENTO->QTD_TB>"2",(PRODUTO->PRC_VEN/oFator[3]),0), [@E 9,999,999.99] ),; Transform(iif(SEGUIMENTO->QTD_TB>"3",(PRODUTO->PRC_VEN/oFator[4]),0), [@E 9,999,999.99] ),; Transform(iif(SEGUIMENTO->QTD_TB>"4",(PRODUTO->PRC_VEN/oFator[5]),0), [@E 9,999,999.99] ) ; FIELDSIZES 150, 390, 150, 90, 80, 80, 80, 80, 80 ; HEADERS OemToAnsi("C¢digo"), OemToAnsi("Descri‡Æo"), "Nosso Codigo", "Seguimento", oTitulo[1], oTitulo[2], oTitulo[3], oTitulo[4], oTitulo[5] ; ON LEFT DBLCLICK F_Cad( oDlgBrw, .F., BrwFile ); ID 115 OF oDlgBrw oLbxBrw:bKeyChar = { | nKey | LstBusca( oLbxBrw, nKey ) } ELSE //-> E SE NAO FOR = "PRODUTO" Mostra o que??? Nao entendi este IF ? [ENTREI NO ELSE NA LINHA 104, O QUE E QUE EU FACO???] ENDIF //-> LOCAL CORRETO oLbxBrw:bKeyDown = { | nKey | If( nKey == VK_RETURN,; F_Cad( oDlgBrw, .F., BrwFile ),; If( nKey == VK_INSERT,; F_Cad( oDlgBrw, .T., BrwFile ),; If(nKey == VK_F2,; ORD_TAB( nOrden, oDlgBrw, BrwFile, @oTmp ),))), nil } //--------------------------------------------------------------------- oLbxBrw:nClrBackHead := CLR_LGREEN // Cor do Fundo do Cabe‡alho oLbxBrw:nClrBackFocus := CLR_HRED // Cor do Cursor Em Cima do Ötem oLbxBrw:nClrForeFocus := CLR_AMARELO // cor da letra da barra ativa oLbxBrw:nClrForeHead := CLR_HRED // Cor nos Headers - Cabe‡alhos // Cor no Pano de Fundo da Browse() Listbox-Legal - abaixo o comando oLbxBrw:nClrPane := { || IIF( ( oLbxBrw:cAlias )->( OrdKeyNo() ) %2 == 0, ; CLR_LGREEN, CLR_LGRAY ) } oLbxBrw:nColAct := 2 // Onde o Cursor Vai Iniciar qual coluna? oLbxBrw:nLineStyle := 3 // Estilo das linhas nos dados da Browse oLbxBrw:lCellStyle := .T. // S¢ Pinta a celula que o cursor est // Justifica As Colunas dos Campos Esq. .T. = Centro oLbxBrw:aJustify := { .T., .F., .F., .F., .F., .F., .F., .F., .F. } oLbxBrw:lMChange := .F. // Desabilita Mousemove oLbxBrw:SetFocus() // Refocus on The Browse oLbxBrw:Refresh() // Estabiliza o Browse/Listbox // ( Pinta os Dados Novamente ) /* //-> Arrume a gosto oLbxBrw:bGoTop:={|| 1 } oLbxBrw:cAlias:= BrwFile oLbxBrw:SetFocus() oLBXBrw:nClrBackHead := nRgb(128,128,192) oLbxBrw:nClrBackFocus:= nrgb(192,254,237) oLbxBrw:nClrForeFocus:= nrgb(0,0,255 ) oLbxBrw:nClrForeHead := nRgb(255,255,217) */ //-> LOCAL ERRADO - sempre antes das definicoes do cabecalho da ListBox /* oLbxBrw:bKeyDown = { | nKey | If( nKey == VK_RETURN,; F_Cad( oDlgBrw, .F., BrwFile ),; If( nKey == VK_INSERT,; F_Cad( oDlgBrw, .T., BrwFile ),; If(nKey == VK_F2,; ORD_TAB( nOrden, oDlgBrw, BrwFile, @oTmp ),))), nil } */ REDEFINE RADIO oRadioButtons var nOrden ID 120,121 ; OF oDlgBrw ON CHANGE Orden(nOrden,oDlgBrw,BrwFile) // Muda a ordem do NTX 1 Codigo 2 Descricao REDEFINE BUTTON ID 101 OF oDlgBrw ; ACTION F_Cad( oDlgBrw, .T., BrwFile ) // Botao Novo REDEFINE BUTTON ID 102 OF oDlgBrw ; ACTION F_Cad( oDlgBrw, .F., BrwFile ) // Botao Alatera REDEFINE BUTTON ID 104 OF oDlgBrw ; ACTION nMsgBusca( BrwFile, oLbxBrw ) // Busca REDEFINE BUTTON ID 103 OF oDlgBrw ; ACTION DelRegistro( oDlgBrw, BrwFile ) // Botao Exclui REDEFINE BUTTON ID 105 OF oDlgBrw ; ACTION F_Move( oDlgBrw, .T., BrwFile ) // Botao Inicio REDEFINE BUTTON ID 106 OF oDlgBrw ; ACTION F_Move( oDlgBrw, .F., BrwFile ) // Botao Final REDEFINE BUTTON ID 107 OF oDlgBrw ; ACTION (IMPCD(BrwFile,BrwTitulo,oPsgm), oLbxBrw:Refresh()) // Botao Inprimir REDEFINE BUTTON ID 108 OF oDlgBrw ; ACTION oDlgBrw:End(); CANCEL // Botao Sair //-> Lugar errado, nem sei qual e o motivo disto - Desnecessario //oDlgBrw:aControls[1]:SetFocus() //?????? QUE TAL NO ON INIT?? //-> ESTE COMANDO TEM FINALIDADE DE QUE EM UMA LISTBOX??? ACTIVATE DIALOG oDlgBrw CENTER (BrwFile)->(DBSetOrder(aNtx)) // Ordem Inicial - AQUI NAO VOLTA PARA O MENU PRINCIPAL? //DBCLOSEALL() //RELEASE ALL RETURN ( NIL ) *************************************** id=code>id=code>João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
aferra Posted July 31, 2009 Report Share Posted July 31, 2009 Olá, será que não é set relation que está deixando lento??? Alessandroid=blue> FW20d+CL53b+Blk7+@Say+CDX FW9.02+xHb110+@Say+CDX "O fracasso jamais me surpreenderá, se minha vontade de vencer for suficientemente forte..."id=red> Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 31, 2009 Report Share Posted July 31, 2009 citação:Olá, será que não é set relation que está deixando lento??? Alessandroid=blue> FW20d+CL53b+Blk7+@Say+CDX FW9.02+xHb110+@Say+CDX "O fracasso jamais me surpreenderá, se minha vontade de vencer for suficientemente forte..."id=red> id=quote>id=quote>NÃO, É O LOOPING DENTRO DE OUTRO LOOPING, TESTE AI, PONHA UM BANCO DE DADOS DENTRO DE UM DEFINE DIALOG... ACTIVATE DIALOG, DE UM LOOPING NELE, E VEJA O QUE ACONTECE. João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
aferra Posted July 31, 2009 Report Share Posted July 31, 2009 aff, é mesmo, eu li o seu post pensando que era o dele, relamente é o loop.... "medesculpeme" pela falha rsrsrs Alessandroid=blue> FW20d+CL53b+Blk7+@Say+CDX FW9.02+xHb110+@Say+CDX "O fracasso jamais me surpreenderá, se minha vontade de vencer for suficientemente forte..."id=red> Quote Link to comment Share on other sites More sharing options...
reneumg Posted July 31, 2009 Author Report Share Posted July 31, 2009 ----------------------------------------------------------- //-> E SE FOR OUTRA COISA?? O QUE ACONTECE? IF BrwFile = "PRODUTO" //-> Nao entendi?? Entra outra coisa aqui??? ------------------------------------------------------------ Oi João é que uso uma tela padrão numa Dll pra varios ligares Ex: IF BrwFile = "PRODUTO" ListBox Blá Blá Blá Blá Blá ElseIf BrwFile ="CIDADE" ListBox Blá Blá Blá Blá Blá ElseIf BrwFile ="CLIENTE" ListBox Blá Blá Blá Blá Blá Else Mensagem (Moódulo não disponivel) EndIf Isso é Errado? só não coloquei a funcão interira pq ela é Grande e ia te dar um trabalho danado. Mas vou ver tudo aquilo que vc me passou com calma e aviso se der certo Obrigado Reneu. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 31, 2009 Report Share Posted July 31, 2009 ESTA CORRETO, FIQUE TRAQUILO, QUE AGORA A LISTBOX, VAI ´VOAR´. NO PRIMEIRO LOOPING, MANDE UM AVISO DE: "Aguarde Processamento... ", " Demorado" Se o banco for muito grande, faça o seu programa falar com o usuário. Abraços. João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
reneumg Posted July 31, 2009 Author Report Share Posted July 31, 2009 João fiz os acertos e vou no cliente testar. Ficou legal no visual mas fica preto na linha onde não está o cursor agora se oLbxBrw:lCellStyle for .F. Toda a linha fica vermelha e se for .T. fica vermelho onde esta o cursor e preto o resto da linha, tem como resolver isso? Reneu. Catanduva-SP Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 31, 2009 Report Share Posted July 31, 2009 citação:João fiz os acertos e vou no cliente testar. Ficou legal no visual mas fica preto na linha onde não está o cursor agora se oLbxBrw:lCellStyle for .F. Toda a linha fica vermelha e se for .T. fica vermelho onde esta o cursor e preto o resto da linha, tem como resolver isso? Reneu. Catanduva-SP id=quote>id=quote>MOSTRE UMA IMAGEM E O CODIGO FINAL. VOE PODE TER COMETIDO UMA ´FALHINHA´ TÉCNICA, EXTREMAMENTE NATURAL. SE BEM, QUE USUARIOS DE RECURSOS, NÃO HERRAM NUNKA! KKKKKK João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
reneumg Posted July 31, 2009 Author Report Share Posted July 31, 2009 João vou mandar a imagem p/ seu e-mail não dei conta de postar ela aqui. se pela imagem vc consegir ver o que acontece. Eita Sexta-Feira que numca Acaba Brejas!!!!! vem ni mim. Reneu. Catanduva-SP Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 31, 2009 Report Share Posted July 31, 2009 //-> Altere a classe WBROWSE.PRG e incorpore ao seu projeto para ver se resolve. METHOD DrawSelect() CLASS TWBrowse if ::lCellStyle ::DrawLine() WBrwLine( ::hWnd, ::hDC, ::nRowPos, Eval( ::bLine, Self ),; ::GetColSizes(), ::nColPos, ::nClrForeFocus,; If( ::lFocused, ::nClrBackFocus, CLR_BOMBOM ),; //-> troque por outra cor If( ::oFont != nil, ::oFont:hFont, 0 ),; ValType( ::aColSizes ) == "B", ::aJustify,, ::nLineStyle,; ::nColAct, ::lFocused, ::oVScroll, ::bLogicLen ) else WBrwLine( ::hWnd, ::hDC, ::nRowPos, Eval( ::bLine, Self ),; ::GetColSizes(), ::nColPos, ::nClrForeFocus,; If( ::lFocused, ::nClrBackFocus, CLR_BOMBOM ),; //-> troque por outra cor If( ::oFont != nil, ::oFont:hFont, 0 ),; ValType( ::aColSizes ) == "B", ::aJustify,, ::nLineStyle, nil,; ::lFocused, ::oVScroll, ::bLogicLen ) endif return nil id=code>id=code>João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Editado por - kapiaba on 31/07/2009 16:23:00 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 31, 2009 Report Share Posted July 31, 2009 poste imagens, em Ftp, TIPO 4shared ou outro site de FTP. Abraços, João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 31, 2009 Report Share Posted July 31, 2009 //-> veja: #Define CLR_LGRAY nRGB( 230, 230, 230 ) #Define CLR_LGREEN nRGB( 190, 215, 190 ) #Define CLR_VERMELHO nRGB( 255, 000, 000 ) //--> Vermelho Para a Letra #Define CLR_AMARELO nRgb( 255, 255, 000 ) //--> Amarelo Para o Fundo #Define CLR_BOMBOM nRGB( 165, 42, 42 ) //--> Marrom BomBom #Define CLR_MARROM nRGB( 235, 202, 171 ) //--> Marrom Normal Request OrdKeyNo Request OrdKeyCount FUNCTION... REDEFINE LISTBOX oLbx FIELDS ; xPadL( AllTrim( Str( ( CADCLIEN )->CLIENCOD ) ), 12 ) , ; ( CADCLIEN )->CLIENTE , ; ( CADCLIEN )->FANTASIA , ; TRANSFORM( ( CADCLIEN )->CGC, "@R 99.999.999/9999-99" ) , ; TRANSFORM( ( CADCLIEN )->CPF, "@R 999.999.999-99" ) , ; SPACE(1) ; HEADERS OemToAnsi( "C¢digo " ) , ; OemToAnsi( "Nome do Cliente" ) , ; OemToAnsi( "Fantasia " ) , ; OemToAnsi( "C.n.p.j. " ) , ; OemToAnsi( "C.p.f. " ) , ; OemToAnsi( " " ) ; FIELDSIZES 110, 330, 180, 160, 130, 01 ; COLOR CLR_BROWN, CLR_LGREEN ; FONT wfonte_FixedSys ; ID 101 ; OF oDlg ; ON DBLCLICK( CLICK(), GETCLIEN( .F., CADCLITM, CARTOPL, ; CADCONDI, CADMOVCR, CADMUNIC, CADREGIO, ; CADFUNCI, CADENDEN, CADCLIEN, CADPARAM, ; CADTPCLI, CADBANCO, CADVENDE, CADTRANS, ; CADUF, CADCESTA, CADORCAM, ; oLbx, lPesquisa := .T. ), oLbx:Refresh(), oLbx:SetFocus() ) oLbx:nClrBackHead := CLR_LGREEN // Cor do Fundo do Cabe‡alho oLbx:nClrText := {|| nRGB( 165, 42, 42 ) } oLbx:nClrBackFocus := CLR_HBLUE // Cor do Cursor Em Cima do Ötem oLbx:nClrForeFocus := CLR_AMARELO // cor da letra da barra ativa oLbx:nClrForeHead := CLR_HRED // Cor nos Headers - Cabe‡alhos oLbx:nClrPane := { || IIF( ( oLbx:cAlias )->( OrdKeyNo() ) %2 == 0, ; CLR_LGREEN, CLR_LGRAY ) } oLbx:nColAct := 2 // Onde o Cursor Vai Iniciar qual coluna? oLbx:nLineStyle := 3 // Estilo das linhas nos dados da Browse oLbx:lCellStyle := .T. // S¢ Pinta a celula que o cursor est oLbx:aJustify := { .T., .F., .F., .F., .F., .F. } oLbx:lMChange := .F. // Desabilita Mousemove oLbx:SetFocus() // Refocus on The Browse oLbx:Refresh() // Estabiliza o Browse/Listbox id=code>id=code>João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 31, 2009 Report Share Posted July 31, 2009 ja olhei, mostre o codigo final. ou olhe o que esta errado comparando com o exemplo acima. em ultimo caso, altere a classe WBROWSE.PRG y incorpore ao projeto. João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
kapiaba Posted July 31, 2009 Report Share Posted July 31, 2009 Experimente comentar esta linha: oLbx:lCellStyle := .T. // S¢ Pinta a celula que o cursor est João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
reneumg Posted July 31, 2009 Author Report Share Posted July 31, 2009 No Final Ficou Assim mas continua com a linha preta mas agora da pra ver o que esta escrito em azul ainda nao testei pra ver se ficou rapido segunda eu faço o teste. Obrigado, mais tá na hora de uma gelada. 18:50 ja passou. Reneu //----------------------------------------------------------------------------// //------ WBRW.PRG : Modulo com funcoes diversas utilizadas no Sistema -----// //----------------------------------------------------------------------------// #include "FIVEWIN.CH" #Define CLR_LGRAY nRGB( 230, 230, 230 ) #Define CLR_LGREEN nRGB( 190, 215, 190 ) #Define CLR_CHOCOLATE nRGB( 238, 118, 33 ) #Define CLR_VERMELHO nRGB( 255, 000, 000 ) //--> Vermelho Para a Letra #Define CLR_AMARELO nRGB( 255, 255, 000 ) //--> Amarelo Para o Fundo #Define CLR_LYELLOW nRGB( 255, 255, 128 ) //--> Amarelo Claro #Define CLR_LWHITE nRGB( 255, 255, 254 ) //--> 16777215 #Define CLR_BOMBOM nRGB( 165, 42, 42 ) //--> Marrom BomBom #Define CLR_MARROM nRGB( 235, 202, 171 ) //--> Marrom Normal Request OrdKeyNo Request OrdKeyCount * ----------------------------------------------------------------------------- FUNCTION BrwArq(Brwfile,BrwTitulo,oBrw,oDlg,oDbf,aCtr,aRelacao) * ----------------------------------------------------------------------------- LOCAL oLbxBrw, oDlgBrw, oFont, oSay LOCAL nSenha:="*****" LOCAL oRadioButtons, aNtx:=0, nOrden:=1, oTmp:=" " LOCAL lBsc := .F., oPsgm := .F., oFator:={0,0,0,0,0}, oTitulo:={"","","","",""} LOCAL oDlg_B:=iif(oBrw,"xDlg_Brw","Dlg_Brw") vBusca:=vCd:="" Select(BrwFile) If !oBrw aNtx:=(BrwFile)->(indexord()) If aNtx = 1 (BrwFile)->(DBSetOrder(2)) // Ordem de Nome EndIf If (BrwFile)->(indexord())<1 (BrwFile)->(DBSetOrder(1)) // Ordem de Codigo aNtx:=1 EndIf EndIf (BrwFile)->(DBGoTop()) Do While !TABGRUPO->(Eof()) If Val(TABGRUPO->TAB_GR)>0 .and. Val(TABGRUPO->TAB_GR)<6 oFator[Val(TABGRUPO->TAB_GR)] :=TABGRUPO->FATOR oTitulo[Val(TABGRUPO->TAB_GR)]:=TABGRUPO->CABECA EndIf TABGRUPO->(DBSkip()) EndDo DEFINE DIALOG oDlgBrw RESOURCE oDlg_B TITLE OemToAnsi(BrwTitulo) IF BrwFile = "PRODUTO" Set relation to PRODUTO->COD_SEG into SEGUIMENTO nOrden:=2 REDEFINE LISTBOX oLbxBrw ; FIELDS PRODUTO->COD_PRO,; PRODUTO->NOME,; PRODUTO->COD_EXT,; SEGUIMENTO->DESCRICAO,; Transform((PRODUTO->PRC_VEN/oFator[1]), [@E 9,999,999.99] ),; Transform(iif(SEGUIMENTO->QTD_TB>"1",(PRODUTO->PRC_VEN/oFator[2]),0), [@E 9,999,999.99] ),; Transform(iif(SEGUIMENTO->QTD_TB>"2",(PRODUTO->PRC_VEN/oFator[3]),0), [@E 9,999,999.99] ),; Transform(iif(SEGUIMENTO->QTD_TB>"3",(PRODUTO->PRC_VEN/oFator[4]),0), [@E 9,999,999.99] ),; Transform(iif(SEGUIMENTO->QTD_TB>"4",(PRODUTO->PRC_VEN/oFator[5]),0), [@E 9,999,999.99] ) ; FIELDSIZES 150, 390, 150, 90, 80, 80, 80, 80, 80 ; HEADERS OemToAnsi("C¢digo"), OemToAnsi("Descri‡Æo"), "Nosso Codigo", "Seguimento", oTitulo[1], oTitulo[2], oTitulo[3], oTitulo[4], oTitulo[5] ; ON LEFT DBLCLICK F_Cad( oDlgBrw, .F., BrwFile ); ID 115 OF oDlgBrw oLbxBrw:bKeyChar = { | nKey | LstBusca( oLbxBrw, nKey ) } ENDIF oLbxBrw:bKeyDown = { | nKey | If( nKey == VK_RETURN,; F_Cad( oDlgBrw, .F., BrwFile ),; If( nKey == VK_INSERT,; F_Cad( oDlgBrw, .T., BrwFile ),; If(nKey == VK_F2,; ORD_TAB( nOrden, oDlgBrw, BrwFile, @oTmp ),))), nil } oLbxBrw:nClrBackHead := CLR_LGREEN // Cor do Fundo do Cabe‡alho oLbxBrw:nClrText := CLR_HBLUE //{|| nRGB( 165, 42, 42) } oLbxBrw:nClrBackFocus := CLR_HBLUE // Cor do Cursor Em Cima do Ötem oLbxBrw:nClrForeFocus := CLR_AMARELO // cor da letra da barra ativa oLbxBrw:nClrForeHead := CLR_HRED // Cor nos Headers - Cabe‡alhos If BrwFile != "FUNCI" oLbxBrw:nClrPane := { || IIF( ( oLbxBrw:cAlias )->( OrdKeyNo() ) %2 == 0, ; CLR_LGREEN, CLR_LGRAY ) } EndIf oLbxBrw:nColAct := 2 // Onde o Cursor Vai Iniciar qual coluna? oLbxBrw:nLineStyle := 3 // Estilo das linhas nos dados da Browse oLbxBrw:lCellStyle := .t. // S¢ Pinta a celula que o cursor est oLbxBrw:aJustify := { .F., .F., .F., .F., .F., .F., .F., .F., .F. } oLbxBrw:lMChange := .F. // Desabilita Mousemove oLbxBrw:SetFocus() // Refocus on The Browse oLbxBrw:Refresh() // Estabiliza o Browse/Listbox // ( Pinta os Dados Novamente ) oLbxBrw:cAlias:= BrwFile REDEFINE RADIO oRadioButtons var nOrden ID 120,121 ; OF oDlgBrw ON CHANGE Orden(nOrden,oDlgBrw,BrwFile) REDEFINE BUTTON ID 101 OF oDlgBrw ; ACTION F_Cad( oDlgBrw, .T., BrwFile ) // Botao Novo REDEFINE BUTTON ID 102 OF oDlgBrw ; ACTION F_Cad( oDlgBrw, .F., BrwFile ) // Botao Alatera REDEFINE BUTTON ID 104 OF oDlgBrw ; ACTION nMsgBusca( BrwFile, oLbxBrw ) REDEFINE BUTTON ID 103 OF oDlgBrw ; ACTION DelRegistro( oDlgBrw, BrwFile ) // Botao Exclui REDEFINE BUTTON ID 105 OF oDlgBrw ; ACTION F_Move( oDlgBrw, .T., BrwFile ) // Botao Inicio REDEFINE BUTTON ID 106 OF oDlgBrw ; ACTION F_Move( oDlgBrw, .F., BrwFile ) // Botao Final REDEFINE BUTTON ID 107 OF oDlgBrw ; ACTION (IMPCD(BrwFile,BrwTitulo,oPsgm), oLbxBrw:Refresh()) // Botao Inprimir REDEFINE BUTTON ID 108 OF oDlgBrw ; ACTION oDlgBrw:End(); CANCEL // Botao Sair ACTIVATE DIALOG oDlgBrw CENTER If aNtx>0 (BrwFile)->(DBSetOrder(aNtx)) // Ordem Anterior EndIf RETURN ( NIL ) return .t. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 3, 2009 Report Share Posted August 3, 2009 Se já tomou as brejas, tá na hora de trabalhar. Se funcionar do jeito que voce sonhou, fica então o senhor me devendo UMAS BREJAS. No próximo encontro que eu marcar, V.Sa., já está CONVOCADO, pelo: MAIOR HIPER SUPER MEGA ULTRA POTENCIA do FIVEWIN MUNDI. -> Porém, super modesto: -> KKKKKKKKKKKKKKKKKKKK Modifique aqui para a perfeição: Do While !TABGRUPO->(Eof()) SYSREFRESH() //-> Refresque o looping, agiliza o processador. If Val(TABGRUPO->TAB_GR)>0 .and. Val(TABGRUPO->TAB_GR)<6 oFator[Val(TABGRUPO->TAB_GR)] :=TABGRUPO->FATOR oTitulo[Val(TABGRUPO->TAB_GR)]:=TABGRUPO->CABECA EndIf TABGRUPO->(DBSkip()) EndDo id=code>id=code>João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
jcleoner Posted August 3, 2009 Report Share Posted August 3, 2009 Uma pergunta que não quer calar.... Porque colocar 16.800 registros num listbox ? Quem vai ler isso ? 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.