aldreks Posted May 7, 2005 Report Share Posted May 7, 2005 Amigos, bom dia! 1) Como fazemos para diante de uma Listbox, ao clicarmos duas vezes numa linha (registro), a listbox seja fechada, e o código (por exemplo) do registro selecionado seja carregado no GET em espera, em foco, do diálogo anterior? (quem usava o DBEDIT do Clipper para fazer Zoom sensitive ao campo, sabe do q estou falando) 2) Como fazemos para alterar dados dos campos numa listbox? (como fazÃamos no DBEDIT) 3) Caso isso não seja possÃvel numa Listbox, ou seja muito trabalhoso, pelo fato de existir uma outra ferramenta para isto, por favor, qual é a ferramenta correta pra isso? Ou em ambiente Windows isso não convém, não prático, não é seguro? 4) Eu entendo, é o q dá a entender, q a Listbox é a sucessora do DBEDIT, para o FW. Aguardo ajuda dos profissionais e amigos de plantão! ------------------------- qadoshy@hotmail.com Clipper 5.2e/BLinker7/FW "Sábio é aquele que ensina para saber mais. (Desconhecido)" Quote Link to comment Share on other sites More sharing options...
Paulo1361303230 Posted May 7, 2005 Report Share Posted May 7, 2005 Bom dia (Aldreks?) Eu utilizava muito o dbedit dentro dos parâmetros que o nobre colega expos. Dentro dos meus conhecimentos, encontrei somente uma solução, se houver outra espero que alguem nos informe. Aà vai: ******************************************* function altdescr && descri‡ao individual ******************************************* local oDlg local oLbx local aHBitMaps:= { ReadBitmap( 0, "Level1.bmp" ), ; // BitMaps de 14 x 32 ReadBitmap( 0, "Level2.bmp" ), ; ReadBitmap( 0, "Level3.bmp" ), ; ReadBitmap( 0, "Level4.bmp" ),; ReadBitmap( 0, "Level5.bmp" ) } local nome_get:=space(40) if dr3='X' noaut() return .f. endif use drprodt if ! neterr() set inde to codbar,drprodt,descric,laborat,indipro,simpro else beep(3) msginfo('Arquivo não DisponÃvel (Drprodt)','Atenção') close all return nil endif set order to 3 GO top DEFINE DIALOG oDlg FROM 08,11 TO 31,87 TITLE "Manutenção de Produtos" @0,1 SAY " &Alteração de descrição de Produtos" OF oDlg color('r+/w') @1,1 LISTBOX oLbx FIELDS drprodt->descric,drprodt->(str(valvend,10,2)),drprodt->(str(grupo,3)),drprodt->nomlabo,drprodt->nomepro,drprodt->classif,drprodt->(str(codprod,6)),drprodt->codbar HEADERS "Descrição do Produto","Preço de venda","Grupo","Fabricante","Setor","Apresentação", "Códpro","CódBarras" FIELDSIZES 260,120,45,120,120,45,60 SIZE 284,137 OF oDlg @155,005 DBUTTON "&1-Altera" FILE "...\EDIT2.BMP" OF oDlg ACTION altedpro(oLbx,.f.) SIZE 43,13 @155,130 DBUTTON "&2-Busca" FILE "...\FIND2.BMP" OF oDlg ACTION buscdpro(oLbx) SIZE 43, 13 @155,250 DBUTTON "&3-Cancela" FILE "...\DBSALIR.BMP" OF oDlg ACTION oDlg:End() SIZE 45,13 ACTIVATE DIALOG oDlg CLOSE ALL AEval( aHBitmaps, { | hBmp | DeleteObject( hBmp ) } ) ********************************* function altedpro(olbx) ********************************* local odlg local lSave := .f. local nOldRec := RecNo() lAppend := .f. prod_nom:=drprodt->descric+space(6) DEFINE DIALOG oDlg FROM 28,15 TO 33,83 TITLE If( lAppend, "", "Alteração de Descrição de Produtos") @00,06 say 'Descrição' of odlg @00,11 GET prod_nom OF oDlg picture "@!" @02,09 BUTTON "&1-Confirma"OF oDlg SIZE 50,12 ACTION (lSave:=.t.,oDlg:End()) @02,22 BUTTON "&2-Cancela" OF oDlg SIZE 50,12 ACTION oDlg:End() ACTIVATE DIALOG odlg if lSave .and. !empty(prod_nom) RLOCK() drprodt->descric :=prod_nom skip oLbx:Refresh() // We want the ListBox to be repainted endif return .t. Espero que sirva como ajuda Abraços. Paulo Quote Link to comment Share on other sites More sharing options...
aldreks Posted May 7, 2005 Author Report Share Posted May 7, 2005 Prezado Amigo Paulo, bom dia! Grato por sua gentileza e presteza! Vou compreender como funciona seu código, e lhe darei retorno com certeza. Lhe agradeço desde já. *********** citação:Bom dia (Aldreks?) Eu utilizava muito o dbedit dentro dos parâmetros que o nobre colega expos. Dentro dos meus conhecimentos, encontrei somente uma solução, se houver outra espero que alguem nos informe. Aà vai: ******************************************* function altdescr && descri‡ao individual ******************************************* local oDlg local oLbx local aHBitMaps:= { ReadBitmap( 0, "Level1.bmp" ), ; // BitMaps de 14 x 32 ReadBitmap( 0, "Level2.bmp" ), ; ReadBitmap( 0, "Level3.bmp" ), ; ReadBitmap( 0, "Level4.bmp" ),; ReadBitmap( 0, "Level5.bmp" ) } local nome_get:=space(40) if dr3='X' noaut() return .f. endif use drprodt if ! neterr() set inde to codbar,drprodt,descric,laborat,indipro,simpro else beep(3) msginfo('Arquivo não DisponÃvel (Drprodt)','Atenção') close all return nil endif set order to 3 GO top DEFINE DIALOG oDlg FROM 08,11 TO 31,87 TITLE "Manutenção de Produtos" @0,1 SAY " &Alteração de descrição de Produtos" OF oDlg color('r+/w') @1,1 LISTBOX oLbx FIELDS drprodt->descric,drprodt->(str(valvend,10,2)),drprodt->(str(grupo,3)),drprodt->nomlabo,drprodt->nomepro,drprodt->classif,drprodt->(str(codprod,6)),drprodt->codbar HEADERS "Descrição do Produto","Preço de venda","Grupo","Fabricante","Setor","Apresentação", "Códpro","CódBarras" FIELDSIZES 260,120,45,120,120,45,60 SIZE 284,137 OF oDlg @155,005 DBUTTON "&1-Altera" FILE "...\EDIT2.BMP" OF oDlg ACTION altedpro(oLbx,.f.) SIZE 43,13 @155,130 DBUTTON "&2-Busca" FILE "...\FIND2.BMP" OF oDlg ACTION buscdpro(oLbx) SIZE 43, 13 @155,250 DBUTTON "&3-Cancela" FILE "...\DBSALIR.BMP" OF oDlg ACTION oDlg:End() SIZE 45,13 ACTIVATE DIALOG oDlg CLOSE ALL AEval( aHBitmaps, { | hBmp | DeleteObject( hBmp ) } ) ********************************* function altedpro(olbx) ********************************* local odlg local lSave := .f. local nOldRec := RecNo() lAppend := .f. prod_nom:=drprodt->descric+space(6) DEFINE DIALOG oDlg FROM 28,15 TO 33,83 TITLE If( lAppend, "", "Alteração de Descrição de Produtos") @00,06 say 'Descrição' of odlg @00,11 GET prod_nom OF oDlg picture "@!" @02,09 BUTTON "&1-Confirma"OF oDlg SIZE 50,12 ACTION (lSave:=.t.,oDlg:End()) @02,22 BUTTON "&2-Cancela" OF oDlg SIZE 50,12 ACTION oDlg:End() ACTIVATE DIALOG odlg if lSave .and. !empty(prod_nom) RLOCK() drprodt->descric :=prod_nom skip oLbx:Refresh() // We want the ListBox to be repainted endif return .t. Espero que sirva como ajuda Abraços. Paulo id=quote>id=quote>------------------------- qadoshy@hotmail.com Clipper 5.2e/BLinker7/FW "Sábio é aquele que ensina para saber mais. (Desconhecido)" Quote Link to comment Share on other sites More sharing options...
adilson1361303171 Posted May 7, 2005 Report Share Posted May 7, 2005 VC CONHECE A FUNCAO BROWSE DO FIVEWIN , USANDO O WORKSHOP , VOU PASSAR UMA ROTINA NESTE PADRAO SE INTERESSAR OU SERVIR Redefine Browse oBrw id 22 of oDial; Color CLR_BLACK,RGB(255,255,235); Font fonte; alias 'ARRAY' oBrw:SetArray( aPagto ) oBrw:nClrForeHead := CLR_HRED oBrw:nClrBackHead := CLR_HGRAY // oBrw:lNoHScroll :=.t. oBrw:nAdjColumn := 6 oBrw:bKeyDown:={ |nKey| altCelula(nKey,oBrw,oBrw:nAt) } Add Column to Browse oBrw Data strz(oBrw:nAt,2); Header '' size 20 Color CLR_BLACK,CLR_HGRAY Add Column to Browse oBrw Data Array elem 4; Header 'Condicao' size 70 Add Column to Browse oBrw Data Array elem 2; Header 'Doc' size 30 Picture '@!' Add Column to Browse oBrw Data Array elem 1; Header 'Vencimento' size 80 Add Column to Browse oBrw Data Array elem 3; Header 'Valor' size 80 Picture '@ZE 99999.99' right Add Column to Browse oBrw Data Array elem 6; Header 'Observacao' size 200 Function altCelula( nKey,oBrw,itLinha ) // // // Alteracao Celula do Browse de Aplicacao de Taxa de Juros. // // Local aTip:=aPagto[itLinha,2],; aVct:=aPagto[itLinha,1],; aVlr:=aPagto[itLinha,3],; aObs:=aPagto[itLinha,6] Define Font oFx name 'arial' size 0,-12 activate Font oFx if nKey==K_ENTER oBrw:lEditCol(oBrw:nColPos+2,@aTip,,,CLR_WHITE,CLR_BLUE) aPagto[itLinha,2]:=UPPER(aTip) oBrw:refresh() oBrw:lEditCol(oBrw:nColPos+3,@aVct,,,CLR_WHITE,CLR_BLUE) aPagto[itLinha,1]:=aVct oBrw:refresh() oBrw:lEditCol(oBrw:nColPos+4,@aVlr,'@ZE 999,999.99',,CLR_WHITE,CLR_BLUE) aPagto[itLinha,3]:=aVlr oBrw:refresh() oBrw:lEditCol(oBrw:nColPos+5,@aObs,'@!',,CLR_WHITE,CLR_BLUE) aPagto[itLinha,6]:=aObs oBrw:refresh() verValorPar(itLinha,aVlr) oBrw:goDown() endif oBrw:refresh() Return (.t.) ESTA ROTINA ALTERA UM MATRIZ, PARA BANCO É SO FAZER ALGUMAS MODIFICACOES E NA FUNCAO ALTCELULA VC TRATA OS EVENTOS COMO EXCLUI A LINHA DO BROWSE, OU QUALQUER EVENTO COM O TECLADO Q. QUEIRA, COMO CHARMA OUTRA TELA ETC... Editado por - adilson on 07/05/2005 11:18:53 Quote Link to comment Share on other sites More sharing options...
aldreks Posted May 9, 2005 Author Report Share Posted May 9, 2005 Prezado Adilson, valeu sua ajuda. Eu ainda não utilizo o Workshop (infelizmente), mas tentarei adaptar seu código a codificação manual. Não conheço a função Browse do FW. Só utilizei até agora a Listbox. Talvez seja uma boa hora de dar uma olhada nela, e vê se dá para decolar. Abraços prezado amigo. ******** citação:VC CONHECE A FUNCAO BROWSE DO FIVEWIN , USANDO O WORKSHOP , VOU PASSAR UMA ROTINA NESTE PADRAO SE INTERESSAR OU SERVIR Redefine Browse oBrw id 22 of oDial; Color CLR_BLACK,RGB(255,255,235); Font fonte; alias 'ARRAY' oBrw:SetArray( aPagto ) oBrw:nClrForeHead := CLR_HRED oBrw:nClrBackHead := CLR_HGRAY // oBrw:lNoHScroll :=.t. oBrw:nAdjColumn := 6 oBrw:bKeyDown:={ |nKey| altCelula(nKey,oBrw,oBrw:nAt) } Add Column to Browse oBrw Data strz(oBrw:nAt,2); Header '' size 20 Color CLR_BLACK,CLR_HGRAY Add Column to Browse oBrw Data Array elem 4; Header 'Condicao' size 70 Add Column to Browse oBrw Data Array elem 2; Header 'Doc' size 30 Picture '@!' Add Column to Browse oBrw Data Array elem 1; Header 'Vencimento' size 80 Add Column to Browse oBrw Data Array elem 3; Header 'Valor' size 80 Picture '@ZE 99999.99' right Add Column to Browse oBrw Data Array elem 6; Header 'Observacao' size 200 Function altCelula( nKey,oBrw,itLinha ) // // // Alteracao Celula do Browse de Aplicacao de Taxa de Juros. // // Local aTip:=aPagto[itLinha,2],; aVct:=aPagto[itLinha,1],; aVlr:=aPagto[itLinha,3],; aObs:=aPagto[itLinha,6] Define Font oFx name 'arial' size 0,-12 activate Font oFx if nKey==K_ENTER oBrw:lEditCol(oBrw:nColPos+2,@aTip,,,CLR_WHITE,CLR_BLUE) aPagto[itLinha,2]:=UPPER(aTip) oBrw:refresh() oBrw:lEditCol(oBrw:nColPos+3,@aVct,,,CLR_WHITE,CLR_BLUE) aPagto[itLinha,1]:=aVct oBrw:refresh() oBrw:lEditCol(oBrw:nColPos+4,@aVlr,'@ZE 999,999.99',,CLR_WHITE,CLR_BLUE) aPagto[itLinha,3]:=aVlr oBrw:refresh() oBrw:lEditCol(oBrw:nColPos+5,@aObs,'@!',,CLR_WHITE,CLR_BLUE) aPagto[itLinha,6]:=aObs oBrw:refresh() verValorPar(itLinha,aVlr) oBrw:goDown() endif oBrw:refresh() Return (.t.) ESTA ROTINA ALTERA UM MATRIZ, PARA BANCO É SO FAZER ALGUMAS MODIFICACOES E NA FUNCAO ALTCELULA VC TRATA OS EVENTOS COMO EXCLUI A LINHA DO BROWSE, OU QUALQUER EVENTO COM O TECLADO Q. QUEIRA, COMO CHARMA OUTRA TELA ETC... Editado por - adilson on 07/05/2005 11:18:53 id=quote>id=quote>------------------------- qadoshy@hotmail.com Clipper 5.2e/BLinker7/FW "Sábio é aquele que ensina para saber mais. (Desconhecido)" Quote Link to comment Share on other sites More sharing options...
eevaldo Posted May 16, 2012 Report Share Posted May 16, 2012 Da para fazer listbox editavel sim igual ao dbedit, se ainda necessitar posso te enviar um exemplo. Obrigado. Evaldo Wagner FiveWin9.07 xHarbour 1.21,BCC55, Pelles C xDev,xHarbour for Linux(console) evaldowl@hotmail.com Editado por - eevaldo on 16/05/2012 18:58:04 Quote Link to comment Share on other sites More sharing options...
atnsoft Posted May 16, 2012 Report Share Posted May 16, 2012 Evaldo, estas mensagens foram em 2005, sei naum mas, acho que já resolveram. AtnSoft(Antenor Rabello) - xHarbour 0.99.71 / FwH 7.05 / Verce C. Procópio - PR 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.