Xbrowse

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

Avatar do usuário
Daiane
Usuário Nível 3
Usuário Nível 3
Mensagens: 122
Registrado em: 28 Out 2014 16:19
Localização: Feira de Santana - BA

Xbrowse

Mensagem por Daiane »

Olá pessoal,sou nova no clipper e quero uma ajuda sobre o xbrowse

Estou usando o xbrowse e preciso retornar o conteúdo da linha para passar por paramentro para outra classe
como posso fazer isso??
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Xbrowse

Mensagem por Kapiaba »

Editado pela última vez por Toledo em 30 Out 2014 20:16, em um total de 1 vez.
Razão: Mensagem foi editada para juntar mensagem postada posteriormente que tinha apenas um link. Por favor, evite postar mensagens apenas com link, sem conteúdo.
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Xbrowse

Mensagem por Kapiaba »

Atendendo Reclamação do Administrador, estou postando o código em vez do Link.

Código: Selecionar todos

********************************************************************************************
FUNCTION xPlanilha(xDbf,xTit,xFld) // Planilha usando o xBrowse -> PARAM=(oDbf,cTít,aCampos)
********************************************************************************************
   #include "XBrowse.Ch"
   Local oDlg, oBrw, oReg, oFld, i
   Local aFld := {}
   if Select(xDbf)=0
      Return nil
   endif
   Select(xDbf)
   (xDbf)->(DbGoTop())
   Default xTit := "Planilha: "+Alias()
   Default xFld := {}
   DEFINE DIALOG oDlg SIZE 800,420 FONT WndMain():oFont TITLE xTit TRANSPARENT
   if Empty(xFld) // Mostra Todos os campos do DBF
      @ 10,10 XBROWSE oBrw OF oDlg SIZE 380,180 PIXEL AUTOCOLS FOOTERS LINES CELL ALIAS (xDbf)
      AEval(oBrw:aCols, {|o| o:cToolTip := {'Coluna:' + CRLF + o:cHeader,    'Informação'}}) // ToolTip nas colunas automático
   else           // Mostra Campos específicos do DBF
      @ 10,10 XBROWSE oBrw OF oDlg SIZE 380,180 PIXEL AUTOCOLS FOOTERS LINES CELL
      For i=1 To Len(xFld)
         oFld := xDbf+"->"+xFld[i][1]
         ADD TO oBrw DATA &oFld HEADER xFld[i][1]
      Next
      i:=0
      AEval(oBrw:aCols, {|o| (i++, o:cToolTip:={'Coluna:'+CRLF+ iif(Empty(xFld[i][2]),xFld[i][1],xFld[i][2]) ,'Informação'}) }) // ToolTip nas colunas passado no parâmetro
   endif
   oBrw:lAutoSort := Empty((xDbf)->(OrdScope()))                                             // Se o DBF está com OrdScope, então não permitir a mudança na classificação para não perder o filtro
   oBrw:bClrStd   := {|| {CLR_BLACK, iif(oBrw:Keyno()%2=0, CLR_WHITE, CLR_HGRAY) } }         // Cores nas linhas (Par/Impar) ou (oBrw:cAlias)->(RecN())%2=0
// oBrw:DelCol( 1 )                                                                          // Deleta Coluna
// oBrw:DT_EMISS:cEditPicture := 'dd/mm/yyyy'                                                // Máscara da Coluna
// oBrw:aCols[1]:bLClickHeader := {|| (xDbf)->(DBSETORDER(1)), oBrw:GoTop(), oBrw:Refresh()} // Para ordenar a planilha pela coluna, quando selecionada.
   oBrw:CreateFromCode()
   @ 195, 010 BUTTON "&Imprimir" SIZE 50,10 FONT oFontGet PIXEL ACTION oBrw:Report()         // IIF( MsgYesNo("Deseja imprimir essa planilha?","Confirme"), (oReg:=(xDbf)->(RecN()),Listar(xTit,,,,,,,,,,,,,.T.,.F.),(xDbf)->(DbGoTo(oReg)),oBrw:Refresh()), )
   @ 195, 070 BUTTON "&Excel"    SIZE 50,10 FONT oFontGet PIXEL ACTION oBrw:ToExcel()
// @ 195, 130 BUTTON "&Pesquisa" SIZE 50,10 FONT oFontGet PIXEL ACTION (Pesquisa(xDbf,,oDlg,OrdNumber(),"Informe o que deseja encontrar:",xDbf,.f.,.t.),oBrw:Refresh()) // ( cSeek:=Space(50), iif(oaMsgGet("Buscar por","Informe o que deseja encontrar:",@cSeek,"LUPA"),oBrw:RDDIncrFilter(Upper(Alltrim(cSeek))),) )
   @ 195, 190 BUTTON "&Fechar"   SIZE 50,10 FONT oFontGet PIXEL ACTION oDlg:End()
   ACTIVATE DIALOG oDlg CENTERED ON INIT oBrw:SetFocus()
Return Nil
abs.
Avatar do usuário
Daiane
Usuário Nível 3
Usuário Nível 3
Mensagens: 122
Registrado em: 28 Out 2014 16:19
Localização: Feira de Santana - BA

Xbrowse

Mensagem por Daiane »

Olá Pessoa,estou com um probleminha com o xbrowser
o que acontece é que eu tenho um xbrowser dentro de outro,ou seja eu abro a tela do xbrowser que contem o botão inbcluir e nesse botão abre uma outra janela que tem um botão de pesquisa que abre outra janela de xbrowser.
o meu problema é que quando saio da ultima janela xbrowser os dados da primeira somem,no banco eles continuam armazenadas mas visualmente no xbwoser elas somem.

Primeiro xbrowser:

Código: Selecionar todos

METHOD GenerateXBrowse() CLASS JsQuadra
 
 ::bancos:abrir(4)	
 SELE 4 
 GO TOP 	
	REDEFINE XBROWSE ::xbrowBusca ID 4001 OF ::oChild ;
		FIELDS CODCOND, CODQUAD, DESC, NOMERUA;
		HEADERS "Codigo Condominio   ", "Codigo Quadra    ", "Descrição                ","Rua   ";
		ON DBLCLICK ::Entregar() 
	//REDEFINE COMBOBOX ::gIndice VAR ::indice ID 4005 ITEMS {"", ""} VALID ::refreshIndex() OF ::oChild
		
   	::oCadastro := CadQuadras():New2(::oChild,::xbrowBusca)

RETURN  

Segundo xbrowser:

Código: Selecionar todos

METHOD GenerateXBrowser()  CLASS CadQuadras
   	LOCAL altura:=::oChild:nHeight-100
 ::bancos:abrir(4)	
 SELE 4 
 GO TOP 	
		@ 10,10 XBROWSE ::xbrowBusca;
		FIELDS CODCOND, CODQUAD, DESC, NOMERUA;
		HEADERS "Codigo Condominio   ", "Codigo Quadra    ", "Descrição                ","Rua   ";
		OF ::oChild SIZE -10,altura PIXEL;
		ON DBLCLICK ::IncOuAlt(.F.) 
      
return 

REDEFINE BUTTONBMP ::bCODCondon ID 4014 OF ::oDlg;
							 BITMAP "#7002" ACTION (JsCondon2(::oDlg,::gCodCondom), ::gCodQuadra:setFocus()) Valid ::VALIDDESC()
Anexos
xbrowser.jpg
XHb 1.2.1 + FW 12.05 + Pelles C IDE
"Eu adoraria mudar o mundo, mas não me deram o código-fonte."
Euclides
Usuário Nível 3
Usuário Nível 3
Mensagens: 154
Registrado em: 12 Mai 2007 14:07
Localização: São Paulo, Capital

Xbrowse

Mensagem por Euclides »

Oi Diane,
Não sei se entendi direito, mas abrindo o mesmo DBF com dois 'browsers', um 'browser' vai acabar 'desposicionando' o outro.
Eu resolvo isso, abrindo a mesmo DBF com alias diferentes (um para cada 'browser').
Para os dados incluídos aparecerem no 'browser', é só fazer um oLbx:refresh() ou em caso de poucos itens, um oLbx:gotop()
Acho que é isso.
T+
Euclides
Responder