agregar combobox a xbrowse en los header

Post Reply
jbrita
Posts: 425
Joined: Mon Jan 16, 2006 3:42 pm

agregar combobox a xbrowse en los header

Post by jbrita »

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!
jbrita
Posts: 425
Joined: Mon Jan 16, 2006 3:42 pm

Re: agregar combobox a xbrowse en los header

Post by jbrita »

Hola amigos, ya que no hubo ningun comentario para modificar el xbrowse, tuve que hacerla manualmente y quedo asi:
Image
Saludos
Last edited by jbrita on Sun Aug 20, 2017 12:38 am, edited 1 time in total.
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: agregar combobox a xbrowse en los header

Post by joseluisysturiz »

jbrita wrote:Hola amigos, ya que no hubo ningun comentario para modificar el xbrowse, tuve que hacerla manualmente y quedo asi:
Image

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

Gracias a mi Dios ante todo!
Francisco Horta
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: agregar combobox a xbrowse en los header

Post by Francisco Horta »

Excelente +1

Saludos
____________________
Paco
nanoespinoza
Posts: 105
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Re: agregar combobox a xbrowse en los header

Post by nanoespinoza »

Una gran característica; +1
jbrita
Posts: 425
Joined: Mon Jan 16, 2006 3:42 pm

Re: agregar combobox a xbrowse en los header

Post by jbrita »

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="tipo"
cOrden:=XServer:Query("SELECT * FROM ordentrabajo where sucursal='"+Alltrim(codagencia)+"' and tipo_orden='"+AllTrim(aData[oBrw:nArrayAt])+"' ORDER BY numero_orden")
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
Post Reply