CONTROLAR CLICK SOBRE COLUMNA EN XBROWSE

CONTROLAR CLICK SOBRE COLUMNA EN XBROWSE

Postby kpidata » Fri Sep 01, 2023 7:18 pm

Estimados Amigos, espero que estén bien, tengo el siguiente problema, estoy trabajando con xbrowse, en una lectura de una tabla con unos 10 campos, el punto es que cuando hago click sobre el campo codigo se ordena por el, luego hago click sobre el campo nombre, hace exactamente lo ordena de forma ascendente o descendente, hasta ahi todo ok, pero luego estan las columnas marca, familia, precio, etc, y si le hace click sobre esas columna, se ordena la tabla por ese parametro, pero yo no quiero que eso ocurra, solo quiero que esten activas las dos primeras columnas y las otras no, he tratado de encontrar un manual o alguna referencia de todas las opciones que tiene Xbrowse, pero no encuentro nada al respecto.. me dicen que vea la clase, pero por desgracia no encuentro la clase como para ir mirando que trae y que se configura por el browse o por las columnas y todas su posibilidades... les encargo el que me ayuden como se hace eso..

Code: Select all  Expand view

FUNCTION MENU_PRODUCTO(cEmpresa,cUsuario)
Local oDlg, oBrw, oFont2, oCol, oSay, oBtn2[ 9 ]
LOCAL oGet,nIndex,aIdx:={}
LOCAL cBusca:= Space(60)
Local cSeek:=""
Local oCampo, cCampo :=space(50)

cTab_Art:=xServer:Query("SELECT a.*, b.*, c.* FROM tab_art AS a LEFT JOIN tab_fam AS b ON a.fam_art = b.cod_fam LEFT JOIN tab_mar AS c ON a.mar_art = c.cod_mar ORDER BY nom_art ")

Define Font oFont2 Name "Tahoma" Size 0,-11 Bold
DEFINE DIALOG oDlg ResName "BROW6BG" TITLE "TABLA DE PRODUCTOS"

Redefine BtnGet oCampo Var cCampo Id 1002 Of oDlg Resource "BTO_ZOOM" Font oFont2 PICTURE "@!" COLOR RGB(128,0,0) ;
Action (FiltrarProducto(oBrw,cCampo,cTab_Art))

Redefine BtnBmp oBtn2[1] Id 101 Resource "BTO_NUEVO" Of oDlg 2007; // BTO_NUEVO
Action (Add_Producto(.T.,oBrw, cTab_Art, cEmpresa),oBrw:Refresh() ) Tooltip "Permite Ingresar nuevo Registro.."

Redefine BtnBmp oBtn2[2] Id 102 Resource "BTO_CAMBIA" Of oDlg 2007;
Action (Add_Producto(.F.,oBrw, cTab_Art, cEmpresa),oBrw:Refresh() ) Tooltip "Permite Cambiar y/o Modificar Registro.."

Redefine BtnBmp oBtn2[3] Id 103 Resource "BTO_BORRA" Of oDlg 2007;
ACTION (Del_Producto(oBrw,cTab_Art,cEmpresa,cTab_Art:cod_art),oDlg:End()) Tooltip "Permite Borrar y/o Eliminar Registro.."

Redefine BtnBmp oBtn2[4] Id 104 Resource "BTO_PRINT" Of oDlg 2007;
ACTION ( MSGRUN( "Procesando...., espere un momento por favor ", "Usuario" , {|| Print_Producto(cEmpresa,cTab_Art) } ),oBrw:Refresh(),oBrw:Gotop()) Tooltip "Imprime informe General del Archivo.."

Redefine BtnBmp oBtn2[5] Id 105 Resource "BTO_EXCEL" Of oDlg 2007;
ACTION ( MSGRUN( "Procesando...., espere un momento por favor ", "Usuario", {|| Excel_Producto(cEmpresa,cUsuario,cTab_Art) } ),oBrw:Refresh(),oBrw:Gotop()) Tooltip "Excel informe General del Archivo.."

Redefine BtnBmp oBtn2[6] Id 106 Resource "BTO_SALIR" Of oDlg 2007;
ACTION oDlg:End() Tooltip "Salir del Proceso.."

oBrw:=TxBrowse():New(oDlg)
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW // Con cursor de todo el renglón
oBrw:nColDividerStyle := LINESTYLE_RAISED
oBrw:nRowDividerStyle := LINESTYLE_RAISED
oBrw:bClrSelFocus := {|| { nRGB( 0, 0, 0), nRGB(128,255,128) } } // para barra de linea selecc cuando el control tiene el foco
oBrw:lColDividerComplete := (.t.) // (.T.) Mantiene siempre llena la pantalla
oBrw:nHeaderHeight := 35 // Altura de los encabezados
oBrw:nRowHeight := 25 // Altura del renglón
oBrw:nHeaderLines := 3 // Número de líneas de encabezados
oBrw:nDataLines := 2 // Número de líneas de detalle
oBrw:nFooterHeight := 20 // Altura del footer
oBrw:nFooterLines := 2 // Número de líneas en el footer
oBrw:bClrHeader := {|| { nRGB(000,000,000), nRGB(128,255,128) } }
oBrw:bClrStd := {|| If( oBrw:KeyNo() % 2 == 0, { CLR_BLACK, RGB( 224, 236, 255 ) }, { CLR_BLACK, RGB( 189, 211, 253 ) } ) }
oBrw:bClrFooter := {|| { nRGB(000,000,000), nRGB(150,200,200) } }
oBrw:bClrSel := {|| { nRGB(000,000,000), nRGB(128,255,128) } } // para barra de linea selecc cuando el control no tiene el foco
oBrw:l2007:=.T.
oBrw:lFooter := (.T.) // Sí queremos línea de footer
oBrw:lHScroll := (.T.) // Quitamos el scroll horizontal
oBrw:lVScroll := (.T.) // Quitamos el scroll horizontal
oBrw:nStretchCol := STRETCHCOL_WIDEST
oBrw:bLDblClick := {|| Opcion_Producto(oBrw, cTab_Art, cEmpresa), cTab_Art:Refresh() }
oBrw:bRClicked := {|| Stock_Producto(.F.,oBrw, cTab_Art, cEmpresa, cTab_Art:cod_art), cTab_Art:Refresh() }
oBrw:bKeyDown := { | nKey | TeclasProducto(nKey, oBrw, cTab_Art, cEmpresa) }
oBrw:oFont := oFont2
oBrw:SetDolphin(cTab_Art,.T.,.T.)

oBrw:aCols[1]:SetCheck( { "BOTONSI", "BOTONNO" } ) NO QUIERO QUE PASE NADA AL HACER DOBLE CLICK SOBRE ESTA COLUMNA
oBrw:aCols[1]:cHeader := "Est"
oBrw:aCols[1]:nHeadStrAlign := AL_LEFT //LEFT
oBrw:aCols[1]:bBmpData := { || iif( cTab_Art:opcion=.t., 1, 2) }
oBrw:aCols[1]:nWidth := 20

oBrw:aCols[2]:cHeader := "Código"
oBrw:aCols[2]:bStrData := { || cTab_Art:cod_art }
oBrw:aCols[2]:nHeadStrAlign := AL_CENTER
oBrw:aCols[2]:nDataStrAlign := AL_LEFT //LEFT
oBrw:aCols[2]:nWidth := 100
oBrw:aCols[2]:cSortOrder := "cod_art"
oBrw:aCols[2]:bLClickHeader := {|| oBrw:GoTop() }
oBrw:aCols[2]:cToolTip :="Haga doble Click para ordenar por código"

oBrw:aCols[3]:cHeader := "Detalle"
oBrw:aCols[3]:bStrData := { || cTab_Art:nom_art }
oBrw:aCols[3]:nHeadStrAlign := AL_CENTER
oBrw:aCols[3]:nDataStrAlign := AL_LEFT //LEFT
oBrw:aCols[3]:nWidth := 350
oBrw:aCols[3]:cSortOrder := "nom_art"
oBrw:aCols[3]:bLClickHeader := {|| oBrw:GoTop() }
oBrw:aCols[3]:cToolTip :="Haga doble Click para ordenar por Detalle"

oBrw:aCols[4]:cHeader := "Familia" NO QUIERO QUE PASE NADA AL HACER DOBLE CLICK SOBRE ESTA COLUMNA
oBrw:aCols[4]:bStrData := { || cTab_Art:nom_fam }
oBrw:aCols[4]:nHeadStrAlign := AL_CENTER
oBrw:aCols[4]:nDataStrAlign := AL_LEFT //LEFT
oBrw:aCols[4]:nWidth := 100

oBrw:aCols[5]:cHeader := "Marca" NO QUIERO QUE PASE NADA AL HACER DOBLE CLICK SOBRE ESTA COLUMNA
oBrw:aCols[5]:bStrData := { || cTab_Art:nom_mar }
oBrw:aCols[5]:nHeadStrAlign := AL_CENTER
oBrw:aCols[5]:nDataStrAlign := AL_LEFT //LEFT
oBrw:aCols[5]:nWidth := 100

oBrw:aCols[6]:cHeader := "Barra" NO QUIERO QUE PASE NADA AL HACER DOBLE CLICK SOBRE ESTA COLUMNA
oBrw:aCols[6]:bStrData := { || cTab_Art:cod_bar }
oBrw:aCols[6]:nHeadStrAlign := AL_CENTER
oBrw:aCols[6]:nDataStrAlign := AL_LEFT //LEFT
oBrw:aCols[6]:nWidth := 100

oBrw:aCols[7]:cHeader := "Precio"+CRLF+"Venta" NO QUIERO QUE PASE NADA AL HACER DOBLE CLICK SOBRE ESTA COLUMNA
oBrw:aCols[7]:bStrData := { || Transform( cTab_Art:pve_art, "@E 99,999,999") }
oBrw:aCols[7]:nHeadStrAlign := AL_CENTER
oBrw:aCols[7]:nDataStrAlign := AL_RIGHT //LEFT
oBrw:aCols[7]:nWidth := 100

oBrw:aCols[8]:cHeader := "Stock"+CRLF+cEmpresa[21] NO QUIERO QUE PASE NADA AL HACER DOBLE CLICK SOBRE ESTA COLUMNA
oBrw:aCols[8]:bStrData := { || Transform(((cTab_Art:in1_art + cTab_Art:en1_art) - cTab_Art:sa1_art),"@E 999,999.99") }
oBrw:aCols[8]:nHeadStrAlign := AL_CENTER
oBrw:aCols[8]:nDataStrAlign := AL_RIGHT //LEFT
oBrw:aCols[8]:nWidth := 80

oBrw:aCols[9]:cHeader := "Stock"+CRLF+cEmpresa[22] NO QUIERO QUE PASE NADA AL HACER DOBLE CLICK SOBRE ESTA COLUMNA
oBrw:aCols[9]:bStrData := { || Transform(((cTab_Art:in2_art + cTab_Art:en2_art) - cTab_Art:sa2_art),"@E 999,999.99") }
oBrw:aCols[9]:nHeadStrAlign := AL_CENTER
oBrw:aCols[9]:nDataStrAlign := AL_RIGHT //LEFT
oBrw:aCols[9]:nWidth := 80

oBrw:CreateFromResource( 1000 )

Redefine Say oBrw:oSeek Var oBrw:cSeek Id 1001 Of oDlg Picture "@!" Font oFont2 COLOR Rgb( 255, 0, 0 ), Rgb(185,220,255)

ACTIVATE DIALOG oDlg CENTERED
oFont2:End()
cTab_Art:End()
Return NIl
 
kpidata
 
Posts: 80
Joined: Tue Jul 26, 2016 9:52 pm



Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 58 guests