FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour agregar combobox a xbrowse en los header
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
agregar combobox a xbrowse en los header
Posted: Fri Aug 18, 2017 12:30 AM

Hola,
Alguien agreg贸 las caracter铆sticas como excel, combobox a xbrowse en la parte superior de cada encabezado de colum, as铆 que podr铆a buscar cada datas colum.
hacer filtro
隆Atentamente!

Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Re: agregar combobox a xbrowse en los header
Posted: Sat Aug 19, 2017 02:53 PM
Hola amigos, ya que no hubo ningun comentario para modificar el xbrowse, tuve que hacerla manualmente y quedo asi:

Saludos
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: agregar combobox a xbrowse en los header
Posted: Sat Aug 19, 2017 03:37 PM
jbrita wrote:Hola amigos, ya que no hubo ningun comentario para modificar el xbrowse, tuve que hacerla manualmente y quedo asi:


Saludos

Buen dia, puedes compartir el codigo, saludos, gracias.
Dios no est谩 muerto...



Gracias a mi Dios ante todo!
Posts: 845
Joined: Sun Oct 09, 2005 05:36 PM
Re: agregar combobox a xbrowse en los header
Posted: Sat Aug 19, 2017 04:03 PM

Excelente +1

Saludos

____________________

Paco
Posts: 163
Joined: Thu Mar 16, 2017 04:08 PM
Re: agregar combobox a xbrowse en los header
Posted: Sat Aug 19, 2017 06:55 PM

Una gran caracter铆stica; +1

Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Re: agregar combobox a xbrowse en los header
Posted: Sat Aug 19, 2017 10:04 PM

Hola, amigos ya que no me manejo en modificar la clase de xbrowse, tuve que improvisar:

En Bot贸n en los Header puse una imagen:
oLbx:aCols[ 3 ]:AddResource("flecha"); oLbx:aCols[ 3 ]:nHeadBmpNo := 1;oLbx:aCols[ 3 ]:nHeadBmpAlign := AL_RIGHT
oLbx:aCols[ 4 ]:AddResource("flecha"); oLbx:aCols[ 4 ]:nHeadBmpNo := 1;oLbx:aCols[ 4 ]:nHeadBmpAlign := AL_RIGHT

en la posici贸n del dialogo tuve que ver la posici贸n y hacer algunos c谩lculos:
oLbx:aCols[3]:bLClickHeader := {|nRow, nCol| ShowPopup( nRow, nCol, 171,"estado" ,oLbx) }
oLbx:aCols[4]:bLClickHeader := {|nRow, nCol| ShowPopup( nRow, nCol, 244,"tipo" ,oLbx) }

el dialogo y xbrowse y llenado
function ShowPopup( nRow, nCol, lin,nFiltro,oLbx)
LOcal oDlg
local oWnd, aData := {}, i, oBrw, oBtn
Local cFiltro,nEstado
Local lAceptar:=.F.

AAdd(aData,"< Seleccionar Todos >" )

Do Case
Case nFiltro="estado"
cFiltro:=XServer:Query("SELECT estado FROM ordentrabajo WHERE sucursal='"+Alltrim(codagencia)+"' GROUP BY estado ORDER BY estado")
cFiltro:GoTop()
Do While !cFiltro:Eof()
AAdd(aData,If(cFiltro:estado=0,"ABIERTA","CERRADA") )
cFiltro:Skip(1) //Skip
ENDDO
cFiltro:End()

Case nFiltro="tipo"
cFiltro:=XServer:Query("SELECT tipo_orden FROM ordentrabajo WHERE sucursal='"+Alltrim(codagencia)+"' GROUP BY tipo_orden ORDER BY tipo_orden")
cFiltro:GoTop()
Do While !cFiltro:Eof()
AAdd(aData,cFiltro:tipo_orden )
cFiltro:Skip(1) //Skip
ENDDO
cFiltro:End()

EndCase

DEFINE DIALOG oDlg FROM 215, lin+240 TO nRow+500,lin+452 PIXEL STYLE WS_POPUP

@ 0, 0 XBROWSE oBrw OF oDlg ARRAY aData ;
PICTUREs "!!!!!!!!!!!!!!!!!!!";
AUTOCOLS ;
CELL ;
FASTEDIT

oBrw:lAllowColHiding := .f.
oBrw:CreateFromCode()
oBrw:lHeader := .F.

@ 6.2, 1 BUTTON "Aplicar" OF oDlg ACTION (lAceptar:=.T.,oDlg:End())
@ 6.2, 9 BUTTON "Cancelar" OF oDlg ACTION oDlg:End()

ACTIVATE DIALOG oDlg
If lAceptar
If AllTrim(aData[oBrw:nArrayAt])="< Seleccionar Todos >"
cOrden:=XServer:Query("SELECT * FROM ordentrabajo where sucursal='"+Alltrim(codagencia)+"' ORDER BY numero_orden")
cOrden:GoTop()
Else
Do Case
Case nFiltro="estado"
nEstado:=If (AllTrim(aData[oBrw:nArrayAt])="ABIERTA",0,1)
cOrden:=XServer:Query("SELECT * FROM ordentrabajo where sucursal='"+Alltrim(codagencia)+"' and estado='"+Str(nEstado)+"' ORDER BY numero_orden")
cOrden:GoTop()

   Case nFiltro=&quot;tipo&quot;
            cOrden:=XServer:Query(&quot;SELECT * FROM ordentrabajo where sucursal='&quot;+Alltrim(codagencia)+&quot;' and tipo_orden='&quot;+AllTrim(aData[oBrw:nArrayAt])+&quot;'  ORDER BY numero_orden&quot;)
            cOrden:GoTop()


EndCase

Endif
Endif
SetDolphin( oLbx, cOrden,.f. )

cOrden:Refresh()

oLbx:Refresh(.t.)
oLbx:SetFocus()
return nil

y eso seria la magia, por eso les comentaba que lo tuve que hacer manualmente
espero que les ayude, ami me funciono

saludos

Continue the discussion