Zoom

Tenemos asociado el zoom para las imagenes… pero los chicos de WinDev lo usan también para redimensionar los objetos y sus fonts.

Si miras en la ayuda: http://doc.windev.com/en-US/?1000017201&verdisp=210

Verás que en la version 20 ya se tiene para muchos objetos… pero en la 21 han incluido el form principal.

Esta propiedad es mas importante de lo que muchos se piensan… pues con los años la gente va perdiendo vista y quiere ver la aplicación con las letras más grandes.

Si quieres, puedes bajarte esto que lo he realizado con la version 21 y pulsar en el boton del zoom para ver como crecen los objetos y los font.

https://drive.google.com/file/d/0Bwf43lxlsw5IcmR6NG1fdzRKTGc/view?usp=sharing

Monitores activos y su resolucion

lstScreen is string = SysListScreen()
res is string
i is int = 0
Moni is Control
MoniRes is Control
y is int = 145
FOR EACH STRING screen OF lstScreen SEPARATED BY CR
	i++
	Moni <- ControlCreate("Monitor_"+i, typStatic, 170, y, 300, 26)
	Moni..Caption = ExtractString(screen, lastRank, "\")
	res = SysScreenResolution(screen)
	MoniRes <- ControlCreate("MonitorRes_"+i, typStatic, 474, y, 300, 26)
	MoniRes..Caption = ExtractString(res, 1) + " x " + ExtractString(res, 2)
	y+=27
END

Visualizar mails HTML y texto en el mismo control HTML

Los mails pueden ser tipo texto o tipo html.

WinDev guarda en la propiedad HTML el contenido HTML y en la propiedad Message el contenido texto.

Para mostrar la información de forma correcta en un Edit box de tipo HTML.

Podemos hacer:

MySession is EmailPOP3Session

MySession..ServerAddress = "mail.mihostpop.com"
MySession..Name = "pruebas@mihostpop.com"
MySession..Password = "clave"

EmailStartSession(MySession)

// Se trae todos los mensajes
arrMessage is array of Emails
arrMessage = EmailGetAll(MySession)

FOR EACH AMessage OF MySession
    // Si el mensaje es HTML
    IF AMessage..HTML <> "" THEN
       edt_noname1 = AMessage..HTML
    ELSE
       EDT_NoName1 = TextToHTML(AMessage..Message) // Aqui esta el truco. Convertir el texto a HTML
    END
END

Nota: Para ver un mensaje concreto podemos usar la ID. Para eso tenemos AMessage..MessageID = «<op.yua3m7ip6biz1x@desktop-jji97or>»

Optimizar MySQL en Windows (II)

Cuando instalas mySQL te deja el fichero de configuración my.ini en: c:\programData\MySQL\MYSQL Server 5.6\my.ini

Para ver qué consultas SQL van lentas puedes activar el log de consultas lentas cambiando los parametros:

log-output=NONE
slow-query-log=0
long_query_time=10

por

log-output=FILE
slow-query-log=1
long_query_time=5

Con eso se activaba el log para consultas lentas que duren mas de 5 segundos.

Una vez reiniciado el servidor… veras que en la carpeta DATA aparece un fichero *.log de consultas lentas en las que puedes ver qué consultas están ralentizando los procesos y crear los indices oportunos.

La propiedad month (mes)

Suponte que estás en el mes de Enero y quieres trabajar con el mes anterior (diciembre).

Si usas:

MyDate1..Month = MyDate1..Month – 1

Te devolverá 0 (en vez de 12 que es lo que esperas)

En este caso tienes que usar:

MyDate1..Month -= 1

Los unicos operadores que puedes usar con Month son:

++ and —
+= and – =

Editor de informes

Efectivamente al editor de informes puedes ir via:

iPreview()
iPrintReport(nombre del informe)

Y con los botones crear/modificar accedes al editor de informes. Pero eso es algo confuso… Es mucho mejor ir a través de

RunReportsAndQueries(nombre del informe) 

te ahorras la vision preliminar que con su cumulo de opciones desconcierta un poco.

Report & Queries

Una de las cosas buenas de WinDev es que tiene un editor de informes que se le puede entregar al cliente.

Para que se esto le funcione al cliente tienes que hacer 3 cosas:

1.- Decirlo en el proyecto (en la opción Advanced)

2.- Decirlo individualmente en cada informe en (options). Yo suelo marcar todo (all modificable/ Include the compiled code)

3.- Al cliente tienes que adjuntarle el exe del Reports & Queries que te lo tienes que bajar de la web de WinDev.


Cuando el cliente abre el preview del informe tiene un par de botones para modificar o para crear informes. Nos vamos a centrar en modificar informes.

Dándole al boton modificar te abre el diseñador del informe y te permite hacer cambios en él. Cuando una vez realizados los cambios le das a guardar verás que WD te crea al lado del exe una carpeta llamada Reports and Queries. En esa carpeta junto con diversos ficheros que si los eliminas parece que no pasa nada… te crea un fichero con el mismo nombre que tu report. Si el Report se llamaba Informe1…. verás que aparece un fichero que se llama Informe1.wde

Lo mas curioso es que una vez modificado el informe por el usuario, las veces siguientes que accedes al preview te muestra siempre el informe modificado. No hay forma de recuperar el informe original salvo que borres el que se ha creado dentro de la carpeta Reports & Queries.

Para acceder a esos informes puedes usar:

IF InTestMode() THEN
    iPreview(i100,Informe1)

    iPrintReport(Informe1)
ELSE
    iPreview(i100,CompleteDir(fExeDir()) + "Reports and Queries\Informe1.wde")

    iPrintReport(CompleteDir(fExeDir()) + "Reports and Queries\Informe1.wde")
END

Nota: para modificar el directorio de los informes por defecto puedes usar: fReportsAndQueriesDir()