Página 1 de 1

Xbrowse

Enviado: 30 Out 2014 09:58
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??

Xbrowse

Enviado: 30 Out 2014 12:10
por Kapiaba

Xbrowse

Enviado: 31 Out 2014 10:15
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.

Xbrowse

Enviado: 07 Nov 2014 10:26
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()

Xbrowse

Enviado: 07 Nov 2014 23:11
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