Foros Néfele 4 Harbour › Foros › Dudas › Listas dentro de listas
- Este debate tiene 8 respuestas, 3 mensajes y ha sido actualizado por última vez el 4 años, 1 mes por Daniel. This post has been viewed 736 times
-
AutorEntradas
-
-
12-10-2020 a las 22:25 #1139DanielParticipante
Estoy intentando hacer una lista expandible, en donde cada item de ésta contenga otra lista dentro. ¿alguno sabe donde puedo encontrar documentación de :AddItem(), he buscado en el nefele_sambles y en el wiki pero no encuento algo para saber todas las opciones que contiene.
Desde ya muchas gracias
Daniel
-
13-10-2020 a las 22:07 #1157DanielParticipante
Me respondo y les envío un pequeño aporte
He podido realizar una lista dentro de otra y comparto el código, seguramente se podrá hacer mucho mas linda pero bueno, paso a paso.
Lo que no me funciona es que las Ñ, ñ y los tildes se muestren correctamente, ¿cual es el truco?
12345678910111213141516171819202122232425262728With Object WListView():New(:WO):cType := xc_Expandable:lTitleItem := .T.:cClrPane := "light-blue lighten-4":cClrText := "white":cIconOpen := "keyboard_arrow_up":cIconClose := "keyboard_arrow_down"for nI := 1 to Len(aFamilias)With Object :AddItem(aFamilias[nI,1],,AsciiHTML(aFamilias[nI,2])) As wItemListView:lDefault := .F.With Object WListView():New(:WO):lTitleItem := .T.:cClrPane := "light-blue lighten-5"for nJ := 1 to Len(aArticulos)if aArticulos[nJ,2] == aFamilias[nI,1]With Object :AddItem(nJ,,AsciiHTML(aArticulos[nJ,4]),AsciiHTML(aArticulos[nJ,6])) As wItemListViewWith Object :oBadge As wBadge:cText := LTrim(Transform(aArticulos[nJ,5], "99,999.99"))End WithEnd Withendifnext:Create()End WithEnd Withnext:Create()End With -
13-10-2020 a las 23:11 #1160Alfredo SanzSuperadministrador
Hola Daniel,
Pueden ser varias cosas,
Mira en la barra inferior del editor de código de Xailer.
Si te pone ANSI pincha encima y cámbialo a utf-8 en todos los prg
Si no te funcionas probaremos otra cosa
-
14-10-2020 a las 12:30 #1163XeviParticipante
Daniel,
Se agradece el aporte... ahora bien, por pedir, pediría que los aportes/ejemplos sean básicos (como el que has puesto) pero a poder ser que sean "autosuficientes", vaya, que se pueda ejecutar con el propio código que se muestra/aporta.
Así pues, tu ejemplo...
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849PROCEDURE PruebaDaniel()Local nI, nJLocal aFamilias := { { "1", "Família1 çÇ"}, { "2", "Família2 ñÑ"} }Local aArticulos := { { "R101", "1",, "Descripción Articulo1 çÇ", 101, "Descripción ampliada Artículo R101 çÇ" },;{ "R102", "2",, "Descripción Articulo2 ñÑ", 102, "Descripción ampliada Artículo R102 ñÑ"} }WITH OBJECT TWebPage():New()With Object WLabel():New(:WO):nFontSize := 5:lBold := .T.:cAlign := xc_Center:cText := "Pruebas Néfele4Harbour!!! çÇ ñÑ":Create()End WithWith Object WListView():New(:WO):cType := xc_Expandable:lTitleItem := .T.:cClrPane := "light-blue lighten-4":cClrText := "white":cIconOpen := "keyboard_arrow_up":cIconClose := "keyboard_arrow_down"for nI := 1 to Len(aFamilias)With Object :AddItem(aFamilias[nI,1],,AsciiHTML(aFamilias[nI,2])) As wItemListView:lDefault := .F.With Object WListView():New(:WO):lTitleItem := .T.:cClrPane := "light-blue lighten-5"for nJ := 1 to Len(aArticulos)if aArticulos[nJ,2] == aFamilias[nI,1]With Object :AddItem(nJ,,AsciiHTML(aArticulos[nJ,4]),AsciiHTML(aArticulos[nJ,6])) As wItemListViewWith Object :oBadge As wBadge:cText := LTrim(Transform(aArticulos[nJ,5], "99,999.99"))End WithEnd Withendifnext:Create()End WithEnd Withnext:Create()End WithoCgi:SendPage( :Create() )END WITHRETURNY realmente, tienes razón, al mostrar ListViews, muestra mal los caracteres con acentos o Çç ñÑ
Un Saludo,
Xevi.
- Esta respuesta fue modificada 4 años, 1 mes por Xevi.
-
14-10-2020 a las 14:26 #1168Alfredo SanzSuperadministrador
Eso es un problema con las páginas de código
Prueba con StrToXml( cCadena) en lugar de con AsciiHTML y me cuentas.
-
14-10-2020 a las 14:46 #1170XeviParticipante
Sip... con StrToXml() se ven correctamente los caracteres
Lo que me resulta "raro" es que un WLabel u otro control WEdit, WButton... visualize correctamente un Text conteniendo acentos çÇ ñÑ sin necesidad de StrToXml(), y en cambio un control WListView necesite de esa "de/codificación"
el archivo .prg es en format UTF-8, o sea que debe ser por el control en si.
Un Saludo,
Xevi.
-
14-10-2020 a las 14:52 #1172Alfredo SanzSuperadministrador
En este caso en concreto, si el prg lo tienes como utf-8, StrToXml() realmente te está devolviendo lo mismo que le has enviado. Se puede quitar tranquilamente
-
-
14-10-2020 a las 14:47 #1171Alfredo SanzSuperadministrador
Me corrijo.
La verdad es que es muy buena idea eso de los ejemplos autocontenidos, he copiado el código que ha publicado Xevi, he compilado y he dado con el problema de una manera muy sencilla ( he tardado 4 minutos)
Tanto es así, que estoy pensando habrir una nueva sección dentro del foro que sea "ejemplos de usuarios" ¿Qué os parece?
Bueno, al lío.
AsciiHTML() es una función que se usa cuando recuperamos datos que nos vienen de otras fuentes distintas al prg ( una base de datos, un archivo de texto, un jSon, etc...)
Como en este caso estamos haciendo referencia a unos caracteres que ya tenemos codificados utf-8 (porque se lo hemos dicho en editor de xailer), no hace falta hacer nada más, Si a una cadena utf-8 le volvemos a decir que nos la codifique en utf-8 (cons el AsciiHTML) nos va ha devolver cosas raras porque ya estaba codificada inicialmente
Para que salga bien, tan solo hace falta quitar los AsciiHTML
Si por ejemplo, la codificación del prg en Xalier es ANSI, para pasar a utf-8 y que se muestren bien, tendríamos que usar
1:cText := StrToXml("Pruebas Néfele4Harbour!!! çÇ ñÑ")-
14-10-2020 a las 17:17 #1192DanielParticipante
Ante todo muchas gracias por vuestra ayuda.
Algunos comentarios:
Respecto a los ejemplos autocontenidos estoy totalmente de acuerdo, en el caso que puse, me ganó la ansiedad de poder compratir "algo" luego de tanta ayuda que he recibido y una vez que lo tuve andando copié y pegué sin más. Para la idea de "ejemplos de usuario" va mi +1
En cuanto a las ñÑ çÇ y tildes, he observado que dentro de los prg que fuí creando, como algunos de ellos, salieron de copio y pego de los ejemplos y otros los creé de cero, tenía diferencia en la codificación, estando tanto en ANSI como en UTF-8, lo que explica porqué en algunos casos los caracteres en cuestón se ven bien y en otros no. Para traer y mostrar datos de un DBF (viejito de la época de MS-DOS) la solución que apliqué fue:
StrToXml(OEMToAnsi(familias->detalle), teniendo el PRG en UTF-8
Por último, comparto la alegría que sentí en el momento que mi primer aplicación con Néfele quedó funcional, es algo muy sencillo pero cumple con su cometido. Descontando el tiempo de aprendizaje, el ensayo y error y los largos minutos que invertí en elegir el aspecto (colores, fonts, etc.), podría decir que me tomó tan solo 1 hora de trabajo, sin saber absolutamente nada del mundo web.
Mis felicitaciones al equipo Néfele por lo que están haciendo.
Daniel
-
-
-
AutorEntradas
- Debes estar registrado para responder a este debate.