Respuestas de foro creadas
-
AutorEntradas
-
24-03-2021 a las 10:10 en respuesta a: Generardor de Aplicaciones no reconocer Carpeta de Xailer #1765Pedro AmaroSuperadministrador
Muchas gracias por avisar lo tenemos en cuenta para la próxima actualización que esta a punto de salir.
Pedro AmaroSuperadministradorError detectado, estará corregido en la próxima actualización de Néfele.
Un saludo
Pedro AmaroSuperadministradorLa ultima versión de la librería de Néfele incluye todo lo necesario para conectarte a MariaDB, MySQL, SQLServer, FireBird y PostgreSQL, la conexión se realiza por ODBC por lo que tendrás que tener instalados los clientes ODBC necesarios, si utilizas la función nfl_sqlconnect se encargara de avisarte si tiene instalado correctamente el cliente ODBC necesario y en caso de que no es te ofrecerá un enlace para su descarga.
En el Samples de Néfele tienes ejemplos de acceso a BBDD MariaDB, MySQL, SQLServer y FireBird, también se puede conectar con PostgreSQL pero quedo fuera de esa versión del sample.
En el Wiki tienes explicado todo.
Saludos
Pedro AmaroSuperadministradorSi asignas aWidth a {} dejara de utilizar las columnas de materialize.
- Esta respuesta fue modificada 3 años, 10 meses por Pedro Amaro.
Pedro AmaroSuperadministradorLos wButton son los botones estandar de Materialize y no permiten imagen, en próximas actualizaciones tenemos previsto incluir evento OnClick a los wChips que si permiten imagen.
Puede utilizar un wBevel como boton, e incluirle dentro un wImage o incluso utilizar la propiedad cBackground para incluirle una imagen, el wBevel tiene propiedad cOnClick, en el ejemplo que tenemos publicado utilizamos esta técnica para que abra el menú lateral cuando esta en modo movil, picando en la imagen del fondo.
Pedro AmaroSuperadministradorConfirmado, es un bug que se coló a ultima hora en la 0.3.5.1
Pedro AmaroSuperadministradorErrores en wADOConect
Para evitar que el CGI se quede colgado con un error de SQL se ha deshabilitado la propiedad lAbortOnError lo que pararía la ejecución del CGI..
Puedes consultar Application:hAdoError["Title"] si esta vacío no se ha producido error, en caso contrario tienes también Application:hAdoError["Text"] y Application:hAdoError["Code"] para obtener más información sobre el error que se ha producido.
Pedro AmaroSuperadministradorEl SQL Lite, en la instalación del Driver ODBC se te instalan 3 versiones
Selecciona la ultima "SQLite3 ODBC Driver"
Pedro AmaroSuperadministradorEs correcto va hay, pero lo que tienes que poner en Base de Datos es bancos.db
Pedro AmaroSuperadministradorNo consigo provocar el error que comentas, a mi si me ejecutan cada uno el suyo.
Asegurate que utilizas la ultima versión de Néfele, la 0.3.5
Pedro AmaroSuperadministradorbancos.db
Pedro AmaroSuperadministradorPor cierto esta función
12345678910FUNCTION cOpenModal( cName )LOCAL crescres := '$("#' + cName + '").modal("open");' + crlf*oCGI:console("=cres=")*oCGI:console(cres)RETURN '$("#' + cName + '").modal("open");' + crlfla puedes reemplazar por
12nfl_OpenModal(cId,lDirect) // --> cScriptlDirect es .F. por defecto y es lo correcto en tu casoTengo que seguir dedicandole tiempo al wiki, me quedan funciones por documentar.
Pero me ha gustado como lo has resuelto.
Pedro AmaroSuperadministradorBuenos dias Eduardo;
El primer problema es producido porque wComboBox considera un cSelected := 0 como no seleccionado.
En el segundo caso hay dos problemas;
1º Las columnas del wArrayBrowse no estan heredando el aParams del wArrayBrowse: Tenemos que estudiar si es necesario
2º Estas definiendo mal el aparams de las comunas:
Lo correcto seria :aparams := {{"combogrupo", "#combogrupo"}}
y estas poniendo :aparams := {{"combogrupo"}, {"#combogrupo"}}Un saludo
Pedro AmaroSuperadministradorLa propiedad ::cTitleClass que por defecto vale "z-depth-5", dejala vacio.
Si quires "tunenar" un poco el cTitle puedes hacerlo por hay o con ::oStyleTitle para poder acceder a todas las propiedades de estilo, tal y como lo pueder hacer con ::oStyleText para el texto de abajo.
Saludos
- Esta respuesta fue modificada 4 años por Pedro Amaro.
- Esta respuesta fue modificada 4 años por Pedro Amaro.
- Esta respuesta fue modificada 4 años por Pedro Amaro.
Pedro AmaroSuperadministradorEstamos preparando la nueva actualización de Néfele, y con ella incluimos en el samples un ejemplo de lo que pretendes conseguir.
Pedro AmaroSuperadministradorUtiliza la propiedad :cValue del wEdit para asignarle el valor
Pedro AmaroSuperadministradorA mi se me ocurren varias posibilidades;
1ª - Añadir al aParams del wArrayBrowse los filtros utilizados en la consulta que se presenta en clientes(), de esa manera en el resto de procesos tenemos los filtros necesarios para recuperar los datos de la base de datos.
2ª - Guardar los datos suministrador al wArrayBrowse en un fichero JSon temporal y añadir al aParams del wArrayBrowse el nombre de dicho fichero temporal, de esa forma cuando ejecutes novo_cliente() solo tienes que leer el parámetro recibido y recuperar los datos desde el JSon, a mi particularmente es la opción que más me gusta porque así evitamos que el usuario pueda manipular los datos que nos regresa el navegador.
3ª - Empaquetar los datos en un JSon y añadirlo al aParams del wArrayBrowse
4º - Empaquetar los datos en un JSon y guardarlo en un Cookie, hay que tener en cuenta que los cookies tienen un limite de tamaño.
5º - Igual que la 2ª pero guardando el nombre de fichero temporal en un Cookie
Espero que te sirva alguna de estas opciones, ya nos cuentas tus avances
Pedro AmaroSuperadministradorEnvíalo en formato doc a hola@nefele.dev vemos si podemos aportarle lo que le falta y lo publicamos en el Blog como una aportación tuya.
IIS tiene algo parecido a los Alias de Apache, hay que estudiarlo
Saludos
Pedro AmaroSuperadministradorYo tengo un dominio con https y un cgi de Néfele
http://sincarta.es?q=XROK6uc3NmQK5sxIIyxi
Y esto es lo que tengo en httpd.conf
12345678<IfModule rewrite_module><VirtualHost *:80>RewriteCond %{HTTPS} offRewriteEngine OnRewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]RewriteEngine On</VirtualHost></IfModule>Pedro AmaroSuperadministradorEl orden de los factores en este caso Si altera el producto
12345678910aDatos := { "uno", "dos", "tres" }oCGI:Console( aDatos )// Aqui cDatos SIEMPRE SERA VACIO, porque oCGI:Console retorna NILcDatos := oCGI:Console( Array2Char( aDatos, "|" ) ) // 1|uno2|dos3|tres// Lo correcto seria estooCGI:Console( cDatos := Array2Char( aDatos, "|" ) ) // 1|uno2|dos3|tresoCGI:Console( Char2Array( cDatos, "|" ) ) // { "uno", "dos", "tres" }Saludos
Pedro AmaroSuperadministradorEn la próxima actualización de Néfele contaras con wIcon para añadir iconos.
Pedro AmaroSuperadministradorVamos por partes;
1º - Si tu código, en el editor, esta como UTF8 no necesitas utilizar AsciiHTML para un texto que tu escribas, solo será necesario para los textos que vengan de fuentes externas que no estén en UTF8
2º - Efectivamente el apostrofe se te convierte en una comilla doble, por la rutina de escapado de comillas, ya la he modificado para que no produzca ese error, pero tengo que probarlo con el resto de Néfele por si nos generara algún inconveniente.123456WITH OBJECT WMsgAlert():New(:WO):cText := "S'ha produït un error!!!":cIcon := "ERROR":Create()cHtml := :FullHtml()END WITHPedro AmaroSuperadministradorLos aParam tienen que ser siempre un array de {campo, cValor}, y cValor siempre debe ser una cadena, si es un valor numérico lo pasamos a cadena, pero un array no lo trata, deberás convertir ese array en una cadena antes de asignarlo. En Néfele tienes Array2Char y Char2Array para eso.
El problema con las \ no acabo de entender por que se produce, porque al navegador le llega bien, pero al hacer el envío se lo carga.
Una solución es remplazar \ por \\, desaparece el problema, voy ha integrarlo en los aParams para que lo haga solo.- Esta respuesta fue modificada 4 años, 1 mes por Alfredo Sanz.
Pedro AmaroSuperadministradorSi deseas que el PDF se vea directamente en el Navegador necesitas tener una wBevel modal creado previamente en la página.
Luego la llamada para la creación del PDF123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189#include "Xailer.ch"#include "Nefele.ch"//------------------------------------------------------------------------------//Función principal de la app WebPROCEDURE MainPage()LOCAL adatos:={}, alineaAAdd(adatos,{"Juan lopez" , "Rio Fuerte" , "345" , "Caborca" , "6688231245"})AAdd(adatos,{"Salvador Perez" , "Av. insurgentes" , "4112", "Ciudad de Mexico", "5514359845"})AAdd(adatos,{"Francisco Apodaca", "Blvd. Antonio Rosales" , "33" , "Cd. Obregon" , "6482402519"})AAdd(adatos,{"Arturo Artola" , "Blvd. Francisco Madero", "555" , "Guadalajara" , "3332854604"})// Comenzamos instanciando la Página Web que queremos crearWith Object TWebPage():New():lValign := .f.:lContainer := .f.:lAlerts := .f.// Creamos un modal para que luego presente el PDF descargadoWITH Object WBevel():New(:WO):cId := "vistamodal":nStyle := xc_Modal:cModalHeight := "550px":Create()END WITHWITH object WPanel():New(:WO):cTitle := "Clientes":aWidth[ _grande ] := 10:aOffset[ _grande ] := 1:oStyle:cPadding := 0:oStyle:cBorder_radius := "10px"WITH OBJECT WForm():New( :WO ):cId := "forma_clientes":cFunction := "#alert('Saliendo')"WITH OBJECT WBevel():New(:WO):cId := "bevel_uno":nStyle := xc_RowWITH OBJECT WListView():New(:WO):cId := "lista_clientes":cType := xc_Popout:lTitleItem := .t.:nItemInPage := 8:cAjaxBevel := "vistamodal" // Le indicamos que la llamada es por Ajax y que la respuesta ira en vistamodal// :AddParam({"Height","@$('#vistamodal').innerHeight()"}) Esto no funcionara hasta la versión 0.3.1 de Néfelefor each alinea IN adatosWITH OBJECT :AddItem() AS wItemListView:cId := alinea:__enumindex:cIcon := "person":cTitle := alinea[1]:nRowId := alinea[1]:cIconEdit := "edit":lEdit := .t.:cOnClickEdit := "envia_pdf":aText := {"Calle: "+alinea[2], "Numero: "+alinea[3], "Ciudad: "+alinea[4], "Telefono: "+alinea[5]}END WITH // ITEM DE LISTVIEWNEXT:Create()END WITH:Create()END WITHWITH OBJECT WBevel():New(:WO):cId := "bevel_dos":nStyle := xc_RowWITH object WEdit():New( :WO ):cId := "cliente":cHint := ".":cTitle := "cliente":nLength := 4:Create()END WITHWITH object WEdit():New( :WO ):cId := "nombre":cHint := ".":cTitle := "Nombre":nLength := 50:Create()END WITH:Create()END WITHWITH object WButton():New(:WO):cText := "es el submit":cIcon := "addbox":lLarge := .T.:lSubmit := .T.:nFix := "100%":cOnClick := "envia_pdf":Create()ENDWITH object WButton():New(:WO):cText := "Genera PDF":cIcon := "pdf":lLarge := .T.:nFix := "100%":cOnClick := "envia_pdf":Create()END:Create()END WITH // Form:Create()END WITH // Listview principaloCgi:SendPage( :Create() ) // Se crea el HTML final y se envía al navegador saliendo del ejecutable CGIEnd WithRETURN//------------------------------------------------------------------------------CLASS TFastReport FROM XFastReportPROPERTY cDllPath INIT Application:cDirectory // Se debe especificar el Path de la DLLPROPERTY cResIco INIT "aaSistema" // Se especifica Icono para que FastReport No lo busque por default en Application:oMainForm:oIcon porque truenaEND CLASS//------------------------------------------------------------------------------FUNCTION envia_pdf()LOCAL oFr, cpaso, cfile, cerroresLOCAL cHeight := oCGI:GetCgiValue("Height","500")oCGI:console("En prueba_impresion, antes de iniciar objeto fr")cfile := "orale.pdf" // Se almacena el nombre del archivo en variable, porque si se manda directamente No lo crea: SetProperty("PDFExport", "FileName", ::oDataSet:FilePDF)WITH OBJECT oFr := TFastReport():New():lAbortOnErrors := .t.:cResIco := "nefele":lDelFRVars := .T.:Create():oEngineOptions:lSilentMode := .t. // EVITA QUE: Si hay errores FR intenta presentarlos en pantalla y ocasiona que se congele el CGI (mejor se consulten los errores con :cLastError):cFileName := "primero.fr3":AddVariable("nombre", "prueba de campo nombre"):AddVariable("segundo", "segunda linea"):PrepareReport():SetProperty( "PDFExport", "ShowDialog", .F. ):SetProperty( "PDFExport", "FileName", cfile ):SetProperty( "PDFExport", "Compressed", .T. ):SetProperty( "PDFExport", "EmbeddedFonts", .T. ) // En TRUE aumenta mucho el tamaño del PDF:SetProperty( "PDFExport", "PrintOptimized",.T. ) // En TRUE aumenta mucho el tamaño del PDF:SetProperty( "PDFExport", "Subject", "Pruebas Lalo" ):DoExport( "PDFExport" )cerrores := aJoin(:GetErrors):End()END WITHIF Empty(cerrores)oCGI:console(Application:cDirectory)// Como lo que queremos es que el PDF se vea en el Modal lo enviamos con SendPage// Pero utilizamos la Función EmbedFile para que nos cree el HTML necesarios para// que se visualize, con cHeight le damos el mismo alto que el contenedoroCGI:SendPage(EmbedFile( cfile, Application:cDirectory,,, cHeight ))ELSEoCGI:console(cerrores)oCGI:SendPage( cerrores)ENDIFoCGI:console("En prueba_impresion, ya enviada la exportacion")RETURN (nil)//------------------------------------------------------------------------------- Esta respuesta fue modificada 4 años, 1 mes por Pedro Amaro.
- Esta respuesta fue modificada 4 años, 1 mes por Pedro Amaro.
Pedro AmaroSuperadministradorListo, estará incluido en la próxima versión de Néfele.
- Esta respuesta fue modificada 4 años, 1 mes por Pedro Amaro.
Pedro AmaroSuperadministradorPor lo que veo en el código el botón es el submit de un wForm, en ese caso parece que efectivamente no hace caso al lShadowSheet. Seguramente habrá que asignárselo al wForm ya que el submit se ejecuta en el formulario no en el botón, déjanos que lo estudiemos porque el ShadowSheet lo consideramos como algo fundamental y debe funcionar también en un wForm.
Pedro AmaroSuperadministradorCallAutoForm te retorna la cadena con el script tendrás que hacer oCGI:SendScript( CallAutoForm(" visparam" ) )
Pedro AmaroSuperadministradorHay una función CallAutoForm (que en la próxima versión de Néfele sera nfl_CallAutoForm) que nos crea un script con la llamada a nuestro CGI pasando los parámetros por POST, esta en la lista de funciones del wiki pero aún no esta documentada.
cPage es la función de nuestro CGI o una URL
aParam como todos los aParam de Néfele es {{param1, value1},{param2,value2}....}
cAjaxbevel si la llamada que queremos hacer es por Ajax
lAjaxWaitOn, pues eso que si es por Ajax queremos que ponga una mensaje de espera
cText, texto a poner en el WaitOn
lModal, si va ha producir la apertura de un Bevel Modal
curl, si además de los parámetros que pasaremos por POST queremos pasar algo por GET
lappend, no me acuerdo 😕 ... le tengo que preguntar a Fredy
lShadowSheet, sabana traslucida que se pone delante de la página web para evitar que el usuario interactue con la página durante la llamada
cSSTitle y cSSSubTitle, Titulo y subtitulo que queremos que aparezca en el ShadowSheet, si no ponemos nada utilizara los definidos en tWebPage
lEncript, si queremos que los parámetros se pasen encriptados al estilo Néfele. Ojo, solo para llamadas a CGI de Néfele
- Esta respuesta fue modificada 4 años, 1 mes por Pedro Amaro.
Pedro AmaroSuperadministradorLos controles que permiten Click tienen una propiedad lShadowSheet que si es .T. pondrá una cortinilla delante de la página para evitar que se pueda picar en ella, si quieres personalizar el mensaje que aparece tienes un par de propiedades en tWebPage
Puedes combinar lShadowSheet con lWaitOn para que ponga un circulito en movimiento de espera
- Esta respuesta fue modificada 4 años, 1 mes por Pedro Amaro.
Pedro AmaroSuperadministradorConfirmado, ya esta funcionando al 100% con SQLite3.
Ahora nos ponemos con FireBird
Pedro AmaroSuperadministradorPara definir el Favicon de la página creada con Néfele, tenemos la propiedad cIcon de tWebPage.
Puedes indicarle cualquier tipo de fichero de imagen (png, jpg, gif e ico), la única exigencia, y que estará solventada en la próxima actualización de Néfele, es que el fichero ha de estar en la carpeta principal del apache (normalmente htdocs).Pedro AmaroSuperadministradorEfectivamente, es un error que ya hemos detectado. En la próxima versión de la librería no debería ocurrirte.
Pedro AmaroSuperadministradorDe todas maneras, aunque este en producción el datatables hay que ir cambiando nuestra forma de ver y hacer el interface de usuario, teniendo en cuenta que el porcentaje de usuarios que va ha utilizar nuestras aplicaciones realizadas con Néfele, lo harán desde un teléfono móvil, y en ese tamaño de pantalla un grid nos es lo más cómodo para trabajar.
Hay que ir pensando en soluciones hibridas con grid o listview para presentar la información y formularios modales para la edición.
Pedro AmaroSuperadministradorEn la próxima versión de Néfele esperamos poder incluir la Clase wADOConnect que permite acceder a cualquier servidor de BBDD mediante ADO/ODBC, ya lo hemos probado con MariaDB/MySQL y con SQLServer, y estamos haciendo pruebas con Firefox y SQLite, pero como es mediante ADO/ODBC debería funcionar con cualquier Driver ODBC que instalemos en el servidor donde corra nuestro CGI.
Tal y como lo hemos preparado no es necesario configurar un DSN, solo hay que tener instalado el Driver.Pedro AmaroSuperadministrador¿Con esto valdría?
Habrá una propiedad nMultiPageDots a la que indicarle cuantas pagina queremos que se vean entre los Dots en este caso su valor es 3.
- Esta respuesta fue modificada 4 años, 1 mes por Pedro Amaro.
Pedro AmaroSuperadministradorEs que realmente ["Familia"] no es un parámetro que le paso a la función RecuperaBBDD, se aplica la resultado de la función
12LOCAL hTodo := RecuperaBBDD()LOCAL aFamila := aTodo["Familias"]Es lo mismo que
1LOCAL aFamilas := RecuperaBBDD()["Familias"]Los JSon son un formato de fichero que esta bastante estandarizado en el mundo web, yo no lo había utilizado mucho hasta que empezamos con Néfele, podríamos decir que equivale a un fichero XML pero es más sencillo de codificar.
Pedro AmaroSuperadministradorComo comento Fredy esto son Hash, que es una especie de Array en que cada elemento esta compuesto por un nombre y un valor.
Yo lo asemejo mucho a un JSon en memoria, de hecho Harbour tiene funciones para pasar de JSon a Hash y viceversa.
Si te fijas en el proyecto de ejemplo, hay una función CreaBBDD donde hay un JSon con la estructura y los datos de la BBDD que utiliza el ejemplo.
Este JSon tiene un primer nivel con tres elementos, Version, Familias y Articulos.
Version es una campo de tipo cadena
Familia es un campo de tipo Array
y Articulos es un campo de tipo Array
La función RecuperaBBDD() nos devolverá un Hash con todo el JSon, si le añadimos ["Familias"] se aplicará al resultado de RecuperaBBDD() y nos devolverá solo el Array de Familias.
Seria equivalente a
1234LOCAL aBBDD := RecuperaBBDD()LOCAL cVersion := aBBDD["Version"]LOCAL aFamlia := aBBDD["Familias"]LOCAL aArticulos := aBBDD["Articulos"]Como solo vamos a querer "Familias" pues lo simplificamos con
1LOCAL aFamilias := RecuperaBBDD()["Familias"]Pedro AmaroSuperadministradorEfectivamente, es un error que queda resuelto en la próxima versión de Néfele.
Si asignas 0 en _movil no aparece en el tamaño de pantalla de un movil, si lo haces en _tablet no aparece en el tamaño tablet, pero si asignas los dos a 0 no lo hace correctamente, ya lo tenemos resuelto.
Pedro AmaroSuperadministradorSe nos había pasado, en la próxima versión de Néfele traerá incluida
1nfl_HttpLink( cUrl, cText, cIcon, cAlign, cColor )Pedro AmaroSuperadministrador1234567891011121314151617181920212223242526272829303132333435PROCEDURE ProvaBrowse()With Object TWebPage():New():lValign := .T.WITH OBJECT WListView():New(:WO):cType := xc_Collapsible:lTitleItem := .T.WITH OBJECT :AddItem( "4", , AsciiHTML("Factura Núm."),) AS wItemListViewPutImagen("/images/@Soft/PDFview.bmp", "4", :WO)WITH OBJECT wLabel():New(:WO):cText := AsciiHTML("detalle"):Create()END WITHEND With:Create()END WithoCgi:SendPage( :Create() ) // Se crea el HTML final y se envía al navegador saliendo del ejecutable CGIEnd WithRETURN//------------------------------------------------------------------------------FUNCTION PutImagen( cImage, cId, oParent )LOCAL cSalidaWith Object WImage():New(oParent):lResponsive :=.T.:cImage := cImage:aParams := {{ "cId", cId }}:cOnClick := "VisParam":Create()End WithRETURN NilCuando quieres incluir controles dentro del detalle del ItemListView debes hacerlo de esta manera, en el AddItem espera una cadena con en enlace a la imagen o un Basr64 con la imagen.
Ten en cuenta que si añadimos controles dentro del detalle no va ha hacer caso al texto que le pases para el detalle, tendrás tu que montarlo con un wLabel.- Esta respuesta fue modificada 4 años, 1 mes por Pedro Amaro.
- Esta respuesta fue modificada 4 años, 1 mes por Pedro Amaro.
Pedro AmaroSuperadministradorCorregido, gracias.
Pedro AmaroSuperadministradorPedro AmaroSuperadministrador3,00
Pedro AmaroSuperadministradorSi no asignas un Font reconocible por el Navegador, este pone el que tenga por defecto.
Néfele no selecciona ningún Font, pero como nos basamos en Materialize este tiene su propio juego de Font seleccionados por defecto.Pedro AmaroSuperadministradorBienvenido, esperamos que disfrutes con Néfele.
Esperamos ansiosos tus avances.
Pedro AmaroSuperadministradorComo te cometa Fredy el error te lo da porque la propiedad cTitle de wRebar es Nil, ya esta corregido en la próxima versión para que no de error.
Pedro AmaroSuperadministradorEn la próxima versión de Néfele podrás definir el estilo de la imagen del Avatar.
- Esta respuesta fue modificada 4 años, 1 mes por Pedro Amaro.
Pedro AmaroSuperadministradorNecesitaría ver el código de VerLineas()
Pedro AmaroSuperadministradorFredy te ha comentado el uso de una función que utiliza, pero que no esta aun incluida en Nefele, estaré en la proxima versión pero por ahora puedes incluirla en tu proyecto.
1234567891011FUNCTION GetRowValue( cDato )Local eRetorno// En cDato llega en indice (nIndexValue del browse que será el campo clave en la base de datos) y el id html de la linea para poder cambiarlacDato := hb_ATokens( cDato , "|" )WITH OBJECT eRetorno := TExsTruct():New():AddMember( "cValue"):AddMember( "cId"):cValue := cDato[1]:cId := cDato[2]ENDRETURN eRetornoPedro AmaroSuperadministradorSupongo que no te esta funcionando el Intelisense de Xailer, en las versiones anteriores de Néfele hemos tenido algún que otro problema con eso, en la nueva versión debería funcionarte correctamente, informándote de los parámetros de las funciones y de las propiedades de los controles. De estas ultimas estamos aun peleándonos para que solo te presente las que realmente utiliza el control y no todas las de las clases padre, es uno de los temas que estamos optimizando.
-
AutorEntradas