En Ingles: http://www.windev.tips/wp-content/uploads/2017/04/WX22-Features-simple.pdf
Mes: abril 2017
Dialogar con el monedero de una criptomoneda
Las criptomonedas suelen tener daemons que ofrecen funciones para ser usadas mediante consola o por curl. Las respuestas suelen darlas en jsonrpc
Desde Windev se pueden invocar esas funciones y obtener los resultados. Muestro el código para una moneda llamada vcash
lcCadena is string=[
{"jsonrpc":"2.0","id":"1337","method":"getbalance", "params": [] }
]
ResStart is boolean = HTTPRequest("http://127.0.0.1:9195","","",lcCadena,"application/json")
lcResultado is string
IF ResStart = True THEN
lcResultado = HTTPGetResult(httpResult)
END
sBalance is Structure
result1 is string
id is string
END
Balance is sBalance
Deserialize(Balance,lcResultado, psdJSON)
Info(Balance.id)
Si no quieres trabajar con un monedero local, puedes tener info desde un explorador de cadenas como: explorer.vchain.info
Y podrias escribir:
ResStart is boolean = HTTPRequest("https://explorer.vchain.info/ext/getbalance/VifzHiu9MFyUTmHmcHsAStergviBeNM2Pjz")
lcResultado is string
IF ResStart = True THEN
lcResultado = HTTPGetResult(httpResult)
END
Extrae los números de una cadena
PROCEDURE StringToNum(LOCAL sCadena is string): int
i are int
sAux is string
WHILE i <= Length(sCadena)
sAux += IsNumeric(sCadena[[i]])? sCadena[[i]] ELSE ""
i++
END
RESULT Val(sAux)
Minimiza el Frame de compilacion por teclado
La tecla CTRL+Q te permite minimizar/abrir el pane de compilacion
La tecla CTRL+W te cierra y abre todos los panes
SYS(2015) en WinDev
// Genera un nombre de 9 posiciones (no estoy seguro que siempre sean 9)
"_" + (fExtractPath(fTempFile("_"),fFileName))+(fExtractPath(fTempFile(),fFileName))
Concatenar campos de MySQL
MySQL tiene la opción de unir campos con CONCAT
Por ejemplo:
SELECT fkcentro+fkidfactur+t70clinart FROM
Se deberia escribir:
SELECT CONCAT(fkcentro, fkidfactur, t70clinart)
Esto funciona bien… pero con tablas grandes es lentisimo… Es mejor excluirlos de una select.
Así por ejemplo esta SELECT
DELETE FROM ttab70 ;
WHERE fkcentro = «001» ;
AND (nhistorico = 0 OR nhistorico IS NULL) ;
AND fkcentro+fkidfactur+t70clinart NOT IN ;
(SELECT fkcentro+fkidfactur+t70clinart FROM _tmpdel_001_ttab70_ultima_sincro)
Se deberia escribir como:
DELETE FROM `ttab70`
WHERE fkcentro = «001» AND (nhistorico = 0 OR nhistorico IS NULL)
AND (fkcentro,fkidfactur,t70clinart) NOT IN
(SELECT fkcentro,fkidfactur,t70clinart FROM `_tmpdel_001_ttab70_ultima_sincro`)
Contenido de LST
LST 108
WinDev/WebDev/WinMob
– Retormas automaticamente descargas interumpidas de ficheros
– Ejemplo para las tres plataformas de pequeña aplicacion de Gestion CLEANZY
– 3 ejemplo de programación de tratamiento de textos
– Gestion de un BOT con el framework de Microsoft
– Pestañas dinámicas con ventanas internas y barras de scroll
– Conectar la mensajería WinDev con los emails
– Design Patern
– HFSQL con grandes volumnenes de datos
– Guardar los parametros de configuración para diferentes perfiles
– Memorizar diferentes colores de lineas de una tabla
– Guardar una base de datos GDS
– Sesión IMAP en GMail
– Crear indices en caliente para HFSQL
– Como variar el color de las variables en el editor de codigo
– Como crear una cita en el campo planning
– Como vincular una imagen de 5 estados a una pestaña dinamica
– M2M entre Windev y SigFox mediante Rasberry Pi
WinDev
– Campo tabla con calculos dinámicos en celdas
– Gestion de Layouts. Una misma ventana con diferentes apariencias (a partir de la 22)
– Usar Groupware con una identificación personalizada
WinDev Mobile
– Acceder al API de WordPress
– Comunicas una aplicación Android con un sitio Web
– Usar aplicaciones de terceros desde android
– Campo Cámara para codigos de barras
– Cómo recuperar el numero de versión de la APK
WebDev
– Diseño adaptativo. Los campos cambian al redimensionar las pantallas
– Efectos sobre una imagen al hacer scroll
– PayBox
– Dimensionar el calendario
– re-encuadrar imagen
LST 107
WinDev
– Analizar e identificar el contenido de las fotos
– Editor de imagenes para usuario final que le permite hacer comentarios/modificaciones
– Crear dinamicamente campos e interfaces especificos
– Compartir elementos del proyecto via GDS y mantenerlos en version 21 y 22
– Memorizar la configuración de los widgets de un dashboard
– Acceder a la base de datos de registro de una aplicación de 64 desde una de 32
– El campo Mapas
– Poner un popup en la zona de notificación de Windows
– Campo agenda. Uso de cortar y pegar
WebDev
– Creación de Bots
– Clave virtual aleatoria para asegurar el acceso a una web
– Usar el clipboard
– Truco: Cómo construir dinamicamente una cadena RTF
WinMobile
– Una presentación especifica para cada linea
– Donde guardar la base de datos/ los ficheros de configuración etc… en Android
– El campo slide para desbloquear aplicaciones mobiles
WinDev/WebDev/WinMobile
– Ejemplo en las tres plataformas de aplicación de gestión de imagenes
– Utilidad que simplifica el consumo de servicios REST HTTP
– Generar codigos de barras para tickets y codigos de descuento.
– Como tracear un WebService
– Optimizar SQL (uso jerarquico versus transversal)
– El campo potenciometro
– Tecla rapida para posicionar el explorador de proyectos en el lugar correcto
– Poner un salto de linea en los toast
– Truco: forzar el refresco de una ventana o pagina
– Truco: genear numeros de serie consecutivos
– Truco: cómo establecer los margenes de un documento PDF
– Truco: cómo construir una cadena por programación
En Frances en: http://stg.webdev.info/publicationSt_WEB/fr/exlst.awp
Traerte los nombres de los ficheros de una carpeta por FTP
conex is int
conex = FTPConnect("ftp.myweb.com", "myuser", "mykey")
IF conex < 0 THEN
//info("no hay conexion")
RETURN
END
// se usa para preparar la cadena de devolucion
cCadena is string
FTpFileList is string = FTPListFile(conex, "/www/ots/201705/*.PDF",FileList,ftpFile)
afile is string
FOR EACH STRING afile OF ResName SEPARATED BY CR
Info(afile)
END
//******* Procedures
PROCEDURE FileList(name)
cCadena = cCadena + name + CR
RESULT True
Del procedure sólo tomamos el nombre... pero se podrian poner todas las opciones:
PROCEDURE FileList(Name, nSize, sAttribute, sDate, sTime, nParam)