Foros Néfele 4 Harbour › Foros › Dudas › WArrayBrowse no puedo fijar cabeceras
Etiquetado: Ejemplos. wArrayBrowse
- Este debate tiene 8 respuestas, 2 mensajes y ha sido actualizado por última vez el 4 años, 1 mes por Xevi. This post has been viewed 756 times
-
AutorEntradas
-
-
17-10-2020 a las 09:21 #1263XeviParticipante
Estoy intentando "personalizar" y entender más de Néfele/Html/Css... (un poco)
Bien, dado un WArrayBrowse, alguna opción para "retocarlo" no he sabido encontrarlo, pero tocando el inspector del navegador, aprendo/entiendo alguna cosilla.
Así que, con este código...
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950PROCEDURE xeviMiBrowse()Local aItems := {}Local nFor n:=1 To 50AAdd( aItems, { "Registro " + ToString(n), "Columna2" } )NextWITH OBJECT TWebPage():New()//Un contenedor del BrowseWITH OBJECT WBevel():New(:WO):oStyle:cPadding_left := 0 //No dejo márgenes a la izquierda:oStyle:cPadding_right := 0 //No dejo márgenes a la derecha:oStyle:cHeight := "460px" //Establezco un alto fijo, quiero un Browse con scolling:oStyle:cOverflow_y := "scroll" // Solo scroll verticalWITH OBJECT WArrayBrowse():New(:WO):nStyle := xc_Striped // Estilo visual, con pautado pijama:cClrHeadPane := "black" // Color de Fondo a las cabeceras:cClrHeadText := "white" // Color del texto de cabeceras:oStyle:cLine_height := 0 //Quito altura entre registro y registro:cCSS += "table.striped>tbody>tr>td { border: 1px solid #dee2e6; }" // Borde al Browse, interlineado y entre columnas:cCSS += "#abw0001_head1 { text-align:right !important; }" // Título primera columna alineado izq.:cCSS += "#abw0001_head1 { padding-top: 0px; padding-bottom: 2px; }" // Menos alto título columnas:cCSS += "#abw0001_head2 { padding-top: 0px; padding-bottom: 2px; }" // debo establecerlas a TODAS// Añadimos ColumnasWITH OBJECT :AddCol( "Col1" ) AS wItemColBrowse:cAlign := xc_RightEND WITHWITH OBJECT :AddCol( "Col2" ) AS WItemColBrowse:lBold := .T.:cAlign := xc_LeftEND WITH:aItems := AsciiHTML(aItems) // Le alimentamos datos directamente de la consulta:Create()END WITH //ArrayBrowse:Create()END WITH //BeveloCgi:SendPage( :Create() )END WITH //WebPageRETURNlas líneas que no he encontrado Nefelizadas, las he añadido con :cCSS
Ahora bien, para que la cabecera se quede "fija" no he sabido encontrar la manera.
He leído alguna cosa por ahí y por allá, que si con...
position: fixed
Pero por mas que toqueteo el inspector no allo donde o como lograr este efecto en el Browse.
Gracias por vuestro tiempo.
Un Saludo,
Xevi.
- Este debate fue modificado 4 años, 1 mes por Alfredo Sanz.
-
17-10-2020 a las 13:47 #1264Alfredo SanzSuperadministrador
Yes, We Can!
Es buena idea, la "nefelizaremos" para la próxima versión.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172PROCEDURE xeviMiBrowse()Local aItems := {}Local nFor n:=1 To 50AAdd( aItems, { "Registro " + ToString(n), "Columna2" } )NextWITH OBJECT TWebPage():New()WSeparator():New(:WO):Create()WSeparator():New(:WO):Create()//Un contenedor del BrowseWITH OBJECT WBevel():New(:WO):oStyle:cPadding_left := 0 //No dejo márgenes a la izquierda:oStyle:cPadding_right := 0 //No dejo márgenes a la derechaWITH OBJECT WArrayBrowse():New(:WO):cId := "table":lIncludeArray := .f.:nStyle := xc_Striped // Estilo visual, con pautado pijama:cClrHeadPane := "black" // Color de Fondo a las cabeceras:cClrHeadText := "white" // Color del texto de cabeceras:oStyle:cLine_height := 0 //Quito altura entre registro y registro:cCSS += "table.striped>tbody>tr>td { border: 1px solid #dee2e6; }" // Borde al Browse, interlineado y entre columnas:cCSS += "#table_head1 { padding-top: 0px; padding-bottom: 2px; }" // Menos alto título columnas:cCSS += "#table_head2 { padding-top: 0px; padding-bottom: 2px; }" // debo establecerlas a TODAS:cCSS += cssMakeScrollable()// Añadimos ColumnasWITH OBJECT :AddCol( "Col1", xc_Right, xc_Right ) AS WItemColBrowse // texto cabecera, alineacion cabecera, alineacion datos AS wItemColBrowse:nWidth := 25END WITHWITH OBJECT :AddCol( "Col2", xc_Center, xc_Left ) AS WItemColBrowse:lBold := .T.:nWidth := 75END WITH:aItems := AsciiHTML(aItems) // Le alimentamos datos directamente de la consulta:Create()END WITH //ArrayBrowse:Create()END WITH //BeveloCgi:SendPage( :Create() )END WITH //WebPageRETURN//------------------------------------------------------------------------------FUNCTION cssMakeScrollable()LOCAL cTxt//https://stackoverflow.com/questions/47723996/table-with-fixed-thead-and-scrollable-tbodyTEXT INTO cTxt.table > thead { display:table; width: 100%; background: black; }.table > thead > tr { width: calc(100% - 17px); }.table > thead > tr > th { border-bottom: 1px black solid; }.table > tbody { max-height: 485px; overflow-y: scroll; display: block; }tr { display: table; width: 100%; }ENDTEXTRETURN cTxt//------------------------------------------------------------------------------Contenido no disponible.
Por favor, acepta las cookies haciendo clic en este aviso- Esta respuesta fue modificada 4 años, 1 mes por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 1 mes por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 1 mes por Alfredo Sanz.
-
17-10-2020 a las 16:01 #1273XeviParticipante
PERFECTO!!!
Y ya para dejarlo todavía más mejor...
OnclickHeader, ¿sería posible añadirlo???
Que se recibiera la columna en la que se ha presionado click, y así poder hacer, cosillas como Ordenación A-Z o Z-A
El :cOnClick del WArrayBrowse sirve o actúa cuando se presiona click en un registro... pero igual valdria ese mismo evento si el registro fuera cero o -1 . No se, pienso en voz alta, jejeje
Gracias por vuestro tiempo.
Un Saludo,
Xevi.
-
18-10-2020 a las 13:20 #1280Alfredo SanzSuperadministrador
Tomo nota.
-
18-10-2020 a las 13:29 #1281XeviParticipante
Ahora, pensando y viendo algun browse con TWeb Botstrapp, forma parte de la rabla... se incluye una imagen doble flecha si no orden, flecha hacia arriba si orden ascendente, flecha abajo si orden descendente.
Es una forma "cerrada" del browse, pero no tienes que programar NADA, el browse ya lo lleva incluido.
Como idea para un simple browse, estaría bien.
- Esta respuesta fue modificada 4 años, 1 mes por Xevi.
-
18-10-2020 a las 13:57 #1283Alfredo SanzSuperadministrador
Sí,
En néfele vamos a tener inicialmente dos browses.
- wArrayBrowse: lo estamos diseñando desde cero, basado en tablas html. Con funciones limitadas pero sencillo de implementar
- DataTables.net: Va a incorporar todas las funcionalidades de este fantástico plugin (filtrar, ordenar, paginar, etc....)
El DataTables lo estamos cocinando y espero poder enseñar algo muy prontito.
El wArrayBrowse, ya es funcional, lo que no quiere decir que no le incorporemos más "cosicas" según se necesiten, por ejemplo:
Contenido no disponible.
Por favor, acepta las cookies haciendo clic en este aviso- Esta respuesta fue modificada 4 años, 1 mes por Alfredo Sanz.
- Esta respuesta fue modificada 4 años, 1 mes por Alfredo Sanz.
-
18-10-2020 a las 15:18 #1284XeviParticipante
👏👏👏
Si ya lo teneis hecho!!!
Y no podemos actualizar???
jejeje
Un Saludo,
Xevi
-
18-10-2020 a las 18:24 #1287Alfredo SanzSuperadministrador
Bueno, como diría el amigo Quim, lo tengo hecho "a cuchillo" para comprobar que funciona.
Ahora falta darle "el toque Néfele"
En unos días estará terminado.
-
18-10-2020 a las 19:50 #1288XeviParticipante
Un pequeño detalle.
Borde cabecera y entre columnas cabecera.
:cCSS += "table.striped tr { border: 1px solid #dee2e6; }"
Un Saludo,
Xevi.
-
-
AutorEntradas
- Debes estar registrado para responder a este debate.