In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Sugerencias para Xailer 7

Foro de Xailer profesional en español
User avatar
bingen
Posts: 433
Joined: Mon Jul 07, 2014 8:17 pm
Location: Bilbao
Contact:

Sugerencias para Xailer 7

Postby bingen » Mon Mar 09, 2020 10:51 am

Buenas xTeam, tengo algunas sugerencias que voy a indicar aquí, si son posibles y hubiera tiempo para ello serían bienvenidas.
1.- Ahora que hemos empezado a usar Hash en las lecturas a las bases de datos SQL, el código es mucho más legible y más seguro que los elementos de los arrays, es un gran avance. Pero ahora lo echo en falta en otros casos como por ejemplo
oDataSet:GetRows()
2.- Sería muy complicado hacer que cuando añades una columna a un browse se posicione en ella, me llamareis vago pero.... me parece lo lógico.
3.- Como sabeis y además recomendais, en caso de necesidad y solo ocasionalmente, entramos directamente a los Xfm a editarlos, pero para ello hemos de abandonar el IDE y buscarnos la vida por fuera y con otro editor. Si tan util es que incluso indicais que es una de las cosas que podemos hacer si hace falta, no es mas lógico que podamos editarlos desde el IDE?, aunque sea con una advertencia, pulsando una tecla al abrir o lo que sea para que no sea una opción directa por defecto.
4.- Como comenté en el foro en Inglés y añado de nuevo aqui sería interesante tener este foro en una pestaña del ide para poder abrirlo a la vez qque tenemos abierto el IDE y poder copiar y pegar entre ventanas, etc.
5.- Cuando seleccionas un bloque de texto "irregular" con ALT+click del raton y estirar no funciona la tecla SUPR para borra el área, ahora corto sin pegar después. Y mucho cuidado con pegar por que tengas la inserción o sobreescritura, siempre sobreescribe el texto donde te encuentras.
6.- No estaría nada mal tener las propiedades nAlignment y nVAlignment en los tLabelEx

De momento hasta aquí, no recuerdo nada más.
BiSoft Desarrollo de software profesional
http://www.bisoft.es
User avatar
ignacio
Site Admin
Posts: 8660
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

Re: Sugerencias para Xailer 7

Postby ignacio » Fri Mar 27, 2020 1:37 pm

Hola Bingen,

1) Entiendo que GetRows() debe de devolver una matriz en todo caso.

2) No soy partidario de tanto automatismo. Además a no todo el mundo le gustaría esa funcionalidad. Lo siento.

3) Esto es algo que se nos ha pedido muchas veces y tiene más trabajo del que parece ya que hay que tener en cuenta que el formulario puede estar en edición o simplemente cargado en memoria. No obstante, le doy una vuelta.

4) Eso llegará con Xailer 7

5) Me temo que ese es trabajo únicamente de Scintilla. Esperemos que en próximas versiones funcione mejor.

6) Le echo un vistazo. No obstante, este control es tremendamente complejo y no es una tarea fácil.

Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
User avatar
ignacio
Site Admin
Posts: 8660
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

Re: Sugerencias para Xailer 7

Postby ignacio » Fri Mar 27, 2020 2:22 pm

Buenos días,

El primer punto se puede hacer. Me pongo con ello:
TDataset:GetRows( lAsHashes ) // Sigue siendo una matriz, pero de hashes
TDataset:GetRow( lAsHash )

Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
User avatar
ignacio
Site Admin
Posts: 8660
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

Re: Sugerencias para Xailer 7

Postby ignacio » Fri Mar 27, 2020 2:38 pm

Buenos días,

Aquí están:

Code: Select all

//--------------------------------------------------------------------------

METHOD GetRows( lAsHashes ) CLASS XDataSet

   LOCAL xData := ::oRecords:GetRows()
   LOCAL aFlds, aRow
   LOCAL hHash

   IF !Empty( lAsHashes )
      aFlds := Array( ::FieldCount() )
      AEval( aFlds, {|v,e| aFlds[ e ] := ::FieldName( e )  } )
      FOR EACH aRow IN @xData
         hHash := HB_Hash()
         Aeval( aRow, {|v,e| HB_HSet( hHash, aFlds[ e ], v )  } )
         aRow := hHash
      NEXT
   ENDIF

RETURN xData

//--------------------------------------------------------------------------

METHOD GetRow( nRow, lAsHash ) CLASS XDataSet

   LOCAL xData := ::oRecords:GetRow( nRow )
   LOCAL aFlds
   LOCAL hHash

   IF !Empty( lAsHash ) .AND. ValType( xData ) == "A"
      aFlds := Array( ::FieldCount() )
      AEval( aFlds, {|v,e| aFlds[ e ] := ::FieldName( e )  } )
      hHash := HB_Hash()
      Aeval( xData, {|v,e| HB_HSet( hHash, aFlds[ e ], v )  } )
      xData := hHash
   ENDIF

RETURN xData

Si los puedes probar te lo agradezco.

Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
User avatar
bingen
Posts: 433
Joined: Mon Jul 07, 2014 8:17 pm
Location: Bilbao
Contact:

Re: Sugerencias para Xailer 7

Postby bingen » Wed Apr 08, 2020 12:34 pm

Probados ambos GetRows( lAsHashes ) y GetRow( nRow, lAsHash )como sobrecargas de tDataSet

En principio funcionan bien pero tengo una pregunta.
Hago
::oSQLTable:oDataSource:=Appdata:oSqlSource
::oSQLTable:lOpen:=.T.
Msg(ValType(::oSQLTable:GetRow(1,.T.)))
MSg(hb_HKeyAt(::oSQLTable:GetRow(1,.T.), 1))

y me devuelve el tipo H y el campo ID, totalmente correcto

Pero si hago
::oSQLTable:oDataSource:=Appdata:oSqlSource
::oSQLTable:lOpen:=.T.
Msg(ValType(::oSQLTable:GetRows(.T.)[1]))
Msg(hb_HKeyAt(::oSQLTable:GetRows(.T.)[1], 1))

El primer MSG me da H correcto y el segundo Peta, pero si quito el primer Msg el segundo funciona correctamente e indica el campo ID. Supongo que es por el valor por referecia de @xData.

Salu2
BiSoft Desarrollo de software profesional
http://www.bisoft.es
User avatar
ignacio
Site Admin
Posts: 8660
Joined: Mon Apr 06, 2015 8:00 pm
Location: Madrid, Spain
Contact:

Re: Sugerencias para Xailer 7

Postby ignacio » Thu Apr 09, 2020 1:15 pm

MSg(hb_HKeyAt(::oSQLTable:GetRow(1,.T.), 1))
El primer MSG me da H correcto y el segundo Peta, pero si quito el primer Msg el segundo funciona correctamente e indica el campo ID. Supongo que es por el valor por referecia de @xData.



@Data se utiliza en GetRowS(), y no en GetRow().

Si ::oSQLTable:GetRow(1,.T.) devuelve correctamente un hash, no entiendo como hb_keyAt( DeAlgoSeguroQueEsUnHash, 1 ) peta.

Te ruego envés un ejemplo. Gracias.

Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
http://www.xailer.com
ddupre
Posts: 304
Joined: Mon Nov 12, 2007 3:53 pm

Re: Sugerencias para Xailer 7

Postby ddupre » Fri Jun 05, 2020 5:21 pm

Hola,
Creadores de Xailer, me gustaría aportar un pequeña sugerencia para el IDE tando de Xailer como XEdit

No se que tan fuerte puede impactar esto en el desarrollo de Xailer, pero me resultaría cómodo poder configurar a elección del usuario, que la "ventana" "Mensajes de salida", tenga el comportamiento actual o permanezca cerrada cuando compilamos y que se abra automáticamente solo en caso de Warning o Error y a su vez, disponer de una ProgressBar en la barra de notificaciones para indicar que el proceso se está llevando a cabo.

Muchas gracias
Daniel

Return to “Spanish”