New FTDN April/Abril 2023 (FWH 23.04)

New FTDN April/Abril 2023 (FWH 23.04)

Postby Antonio Linares » Tue May 02, 2023 7:08 am

January to April 2023
======================

* FWMariaConnection:
- Method QueryResult( cSql ) enhanced to
QueryResult( cSql, [aParams] )

* New Function JsonView( cJsonText/File, [cTitle] )

* function FW_CopyToClipBoard( uValue, [nFormat] ) --> lSucess
now supports UTF8 text also.

* Fix: function GetProfString() was causing a GPF in Windows 7 if compiled using Visual C 2022.
viewtopic.php?p=258683#p258683
Many thanks to Giovany for the finding and to Enrico for testing it.

* New: new 'slide to unlock' example using a ButtonBar and a button, samples\slide.prg

* Fix: samples\buildg.bat and buildg64.bat were missing -lws2_32 -liphlpapi. Included and
now working fine.

* New: samples\chatgpt.prg allows you to use chatGPT from FWH apps. You need to get an OpenAI key
and copy inside chatgpt.prg. Many thanks to Carlos Gallego!

* New: samples\phind.prg allows you to use the www.phind.com AI unofficial API from your FWH apps.
Users don't need to register, neither you, neither you need to get a key like OpenAI. Totally free.
Many thanks to Carlos Gallego, Charly, Cristobal, Giorgio, etc. These are great news! Soon we
plan to provide more AI power from FWH in the autoGPT way of work. Edited: phind.com API is
discontinued for now.

* New: samples\autogpt.prg is an extension of great chatgpt.prg example from Carlos Gallego.
This example shows how to keep a context when using OpenAI and also implements a Class TOpenAI
that you can use from your FWH apps.

* New: Class TWindow METHODs RegisterDragDrop() and RevokeDragDrop(). They allow you to drop
images and text from the Web browser and other apps. Please review samples\imgdrop.prg for a
working example.

* New: samples\barchange.prg, developed by Cristobal Navarro, shows how to replace the buttons of
a ButtonBar.

* Enhanced: function FW_AReverse( aArray, [nStart], [nCount] )
--> aReversed.
Using the newly added optional parameters nStart and nCount,
it is possible to restrict the range of reversal. The original
array is not disturbed.

* Enhanced: FW_ASort( aArray, [nStart], [nCount], [bBlock/naCols] )
for multi-column sort.
4th Parameter:
-nil/codeblock: functionality is exactly same as ASort(...)
-nColNo: Sortede on nColNo asc if +ve and desc if -ve.
-aCols: Array of column numbers or codeblocks. Multi-column
sort is performed on the column numbers in the array. Asc if
the number is +ve and desc if -ve.
If any element of the array is codeblock, the comarison is made
{ |x,y| Eval( b,x ) < Eval( b, y ) }
All string comparisons are case insensitive and values of
different datatypes are sorted on the type.

* New: function FW_GetClipboardData( [[@]Format] ) --> uData
Similar to FW_CopyToClipboard(...), this function can be
used to get data from clipboard without opening and closing
clipboard within the application. This single line function
saves much coding.
If nFormat is specified, data of that format is obtained.
If the param is ommited or nil, data of availabe format is
obtained. If @nFormat is passed by ref and nFormat is nil,
the format is returned in this parameter.

* New: FW_ImageToBlob( [npImage], [cType], [nJpgQuality], ;
[lAlpha], [nClrBack], [nWidth], [nHeight] ) ;
--> cBlob
- 1.npImage: Optional. hBitmap or GDI+ image pointer
If nil, defaults to hBitmap from Clipboard, if available.
- 2.cType: Optional. Can be bmp,jpg/jpeg,png,tif/tiff,gif.
Defaults to bmp.
- Other parms are self explantary. Note: nClrBack is not
used in this version.
This function is intended to covert hBitmap/pImage, mostly
obtained from clipboard, for assigning to MEMO/BLOB fields.

* TGET:
- While editing Date and DateTime variables, following keys
have this functionality:
"=" Assigns Current Date
" " Assigns Blank date
"+" Increments the get by one day/month/year/hour,etc
depending on the position of the cursor
"-" Decrements the date as above.
This feature can be disabled or enabled by assigning
classdata TGet():nDateKey := 0 or 2

* XBROWSE:

- Autosort of array browse was sorting on a single column only.
Now it is possible to specify multi-column sort by assigning
an array of column numbers to oCol:cSortOrder.

- SeekNext: In case of Incremental seek normal and wildseek,
it is now possible to go to next row with the same seek value
by pressing F3 key.
Now implemented for arrays, DBF, TDatabase, all ADO databases
and FW MariaDB rowsets only.

- Sorting on Computed columns: It is now possible to sort on
computed columns also for all datasources. For this,
Set oCol:lSortVisible := .t.
Supports incremetal seek, wildseek and seeknext.
Note: Incremental filters are not supported yet.

- function HashTree( hHash ) --> oTree enhanced. Now can
handle nested arrays of hashes also.

- New METHOD ToArray( [aCols] ) --> aData

- oCol:aDataFonts, aClrText, used for multiline text can
now be codeblocks also.

* new function MergeDocs( cDest, aMergeDocs, [lShow] ) --> cDest
cDest: Merged Doc name. Can be docx or pdf
aMergeDocs: Can be doc,docx,rtf,pdf,text,bmp,jpg,png
Known Issues: works in portrait mode only

* New: print commands:
OPEN PRINT_QUEUE [<prevw: PREVIEW>] [[TO] FILE <cFile>]
//
CLOSE PRINT_QUEUE [<prevw: PREVIEW>] [[TO] FILE <cFile>]

Outputs of all PRINT and REPORT commands in between OPEN
and CLOSE commands are treated as a single document and
displayed in a single Preview and saved as a single document.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42097
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: New FTDN April/Abril 2023 (FWH 23.04)

Postby Antonio Linares » Thu May 04, 2023 6:37 am

De Enero a Abril de 2023
========================

* FWMariaConnection:

- Método QueryResult( cSql ) mejorado a QueryResult( cSql, [aParams] )

* Nueva función JsonView( cJsonText/File, [cTitle] )

* La función FW_CopyToClipBoard( uValue, [nFormat] ) --> lSucess
Ahora también soporta texto UTF8.

* Corrección: la función GetProfString() causaba un GPF en Windows 7 si se compilaba con Visual C 2022.
viewtopic.php?p=258683#p258683
Muchas gracias a Giovany por el hallazgo y a Enrico por probarlo.

* Nuevo: Ejemplo de 'deslizar para desbloquear' usando una ButtonBar y un botón.
El ejemplo lo puedes encontrar en samples\slide.prg

* Corrección: Los ficheros por lotes samples\buildg.bat y buildg64.bat carecían de los parámetros -lws2_32 -liphlpapi.
Incluidos y ahora funcionan bien.

* Nuevo: Nuevo ejemplo samples\chatgpt.prg, permite usar chatGPT desde aplicaciones FWH. Es necesario obtener una clave
OpenAI y copiarla dentro de chatgpt.prg. ¡Muchas gracias a Carlos Gallego!

* Nuevo: Nuevo ejemplo samples\phind.prg, permite usar la API no oficial de https://www.phind.com/ AI desde tus aplicaciones FWH.
Los usuarios no necesitan registrarse, ni tu, ni necesitas conseguir una clave como OpenAI. Totalmente gratis.
Muchas gracias a Carlos Gallego, Charly, Cristobal, Giorgio, etc. ¡Son grandes noticias! Pronto
planeamos proporcionar más potencia de IA desde FWH en el modo de trabajo autoGPT. Editado: phind.com API está
descontinuada por ahora.

* Nuevo: Nuevo ejemplo samples\autogpt.prg es una extensión del gran ejemplo chatgpt.prg de Carlos Gallego.
Este ejemplo muestra cómo mantener un contexto cuando se utiliza OpenAI y también implementa una clase TOpenAI
que puedes usar desde tus aplicaciones FWH.

* Nuevo: Nuevos métodos de la clase TWindow RegisterDragDrop() y RevokeDragDrop(). Permiten soltar imágenes y texto
desde el navegador web y otras aplicaciones. Por favor revise samples\imgdrop.prg para un ejemplo práctico.

* Nuevo: Nuevo ejemplo samples\barchange.prg, desarrollado por Cristóbal Navarro, muestra cómo reemplazar los botones de una ButtonBar.

* Mejorado: Se ha mejorado la función FW_AReverse( aArray, [nStart], [nCount] ) --> aReversed.
Usando los nuevos parámetros opcionales nStart y nCount, es posible restringir el rango de inversión. El array original no se altera.

* Mejorado: Se ha mejorado la función FW_ASort( aArray, [nStart], [nCount], [bBlock/naCols] ) para la ordenación multicolumna.
4º Parámetro:
-nil/codeblock: la funcionalidad es exactamente la misma que ASort(...)
-nColNo: Ordena en nColNo ascendente si +ve y descendente si -ve.
-aCols: Matriz de números de columna o codeblocks. Ordenación multicolumna se realiza sobre los números de columna de la matriz. Ascendente si
el número es +ve y desc si es -ve.
Si algún elemento del array es codeblock, se realiza la comparación { |x,y| Eval( b,x ) < Eval( b, y ) }
Todas las comparaciones de cadenas son insensibles a mayúsculas y minúsculas y los valores de diferentes tipos de datos se ordenan según el tipo.

* Nuevo: Nueva función FW_GetClipboardData( [[@]Format] ) --> uData
Similar a FW_CopyToClipboard(...), esta función puede ser para obtener datos del portapapeles sin abrir y cerrar el portapapeles dentro de la aplicación.
Esta función de una sola línea ahorra mucho código.
Si se especifica nFormat, se obtienen los datos de ese formato.
Si el parámetro se omite o es nulo, se obtienen los datos del formato disponible.
Si @nFormat se pasa por ref y nFormat es nulo, el formato se devuelve en este parámetro.

* Nuevo: Nueva función FW_ImageToBlob( [npImage], [cType], [nJpgQuality], ;
[lAlpha], [nClrBack], [nWidth], [nHeight] ) ;
--> cBlob
- 1. npImage: Opcional. hBitmap o puntero de imagen GDI+.
Si es nulo, por defecto hBitmap desde el portapapeles, si está disponible.
- 2. cType: Opcional. Puede ser bmp,jpg/jpeg,png,tif/tiff,gif.
Por defecto es bmp.
- Los demás parámetros son autoexplicativos. Nota: nClrBack no se utiliza en esta versión.
Esta función está destinada a cubrir hBitmap/pImage, en su mayoría obtenidas del portapapeles, para asignarlas a campos MEMO/BLOB.

* TGET:
- Durante la edición de variables Date y DateTime, las siguientes teclas tienen esta funcionalidad:
"=" Asigna la Fecha Actual
" " Asigna la fecha en blanco
"+" Incrementa el get en un día/mes/año/hora,etc dependiendo de la posición del cursor
"-" Disminuye la fecha como en el caso anterior.
Esta función puede desactivarse o activarse asignando a la classdata TGet():nClaveFecha := 0 o 2

* XBROWSE:

- La ordenación automática de la matriz se basaba en una sola columna. Ahora es posible especificar la ordenación en varias columnas asignando
una matriz de números de columna a oCol:cSortOrder.

- SeekNext: En caso de búsqueda incremental normal y búsqueda ampliada, ahora es posible ir a la siguiente fila con el mismo valor de búsqueda
pulsando la tecla F3.
Ahora implementado para matrices, DBF, TDatabase, todas las bases de datos ADO y conjunto de filas de FW MariaDB solamente.

- Ordenación de columnas calculadas: Ahora es posible ordenar columnas calculadas también para todas las fuentes de datos. Para ello,
establezca oCol:lSortVisible := .T.
Soporta búsqueda incremental, búsqueda ampliada y búsqueda siguiente.
Nota: Los filtros incrementales aún no están soportados.

- Se ha mejorado la función HashTree( hHash ) --> oTree. Ahora puede manejar matrices anidadas de hashes también.

- Nuevo método ToArray( [aCols] ) --> aData

- oCol:aDataFonts, aClrText, usados para texto multilínea ahora pueden ser también bloques de código.

* Nueva función MergeDocs( cDest, aMergeDocs, [lShow] ) --> cDest
cDest: Nombre del documento fusionado. Puede ser docx o pdf
aMergeDocs: Puede ser doc,docx,rtf,pdf,text,bmp,jpg,png
Problemas conocidos: sólo funciona en modo vertical

* Nuevo: Comandos de impresión:
OPEN PRINT_QUEUE [<prevw: PREVIEW>] [[TO] FILE <cFile>]
//
CLOSE PRINT_QUEUE [<prevw: PREVIEW>] [[TO] FILE <cFile>]

Las salidas de todos los comandos PRINT y REPORT entre los comandos OPEN y CLOSE se tratan como un único documento y se muestran en una única
vista previa y se guardan como un único documento.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42097
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: New FTDN April/Abril 2023 (FWH 23.04)

Postby goosfancito » Sun Aug 20, 2023 1:16 pm

Donde puedo ver un ejemplo de esto:
* Mejorado: Se ha mejorado la función FW_ASort( aArray, [nStart], [nCount], [bBlock/naCols] ) para la ordenación multicolumna.
4º Parámetro:
-nil/codeblock: la funcionalidad es exactamente la misma que ASort(...)
-nColNo: Ordena en nColNo ascendente si +ve y descendente si -ve.
-aCols: Matriz de números de columna o codeblocks. Ordenación multicolumna se realiza sobre los números de columna de la matriz. Ascendente si
el número es +ve y desc si es -ve.
Si algún elemento del array es codeblock, se realiza la comparación { |x,y| Eval( b,x ) < Eval( b, y ) }
Todas las comparaciones de cadenas son insensibles a mayúsculas y minúsculas y los valores de diferentes tipos de datos se ordenan según el tipo.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: New FTDN April/Abril 2023 (FWH 23.04)

Postby Antonio Linares » Sun Aug 20, 2023 3:47 pm

Estimado Gustavo,

Te estamos preparando un ejemplo
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42097
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: New FTDN April/Abril 2023 (FWH 23.04)

Postby goosfancito » Sun Aug 20, 2023 6:20 pm

Grazie!
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm


Return to WhatsNew / Novedades

Who is online

Users browsing this forum: No registered users and 4 guests