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.
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.
Avanzando con TBrowseMod
Avanzando con TBrowseMod
Buenos días estimados colegas, estamos dando los primeros pasos con el TBrowseMod, con Xailer 7 Enterprise.
Ya logro poner en la primera columna de mi grid una columna con una imagen de Cotejo o Blanco, pero ahora quiero lograr ejecutar un evento cuando pulso clic sobre una linea del grid.
Con el TBrowse lo hacia fácilmente con las siguientes líneas, pero con TBrowseMod, le he dado muchisimas vueltas y no he podido:
LOCAL nPos := ::oCatalogAcc:nArrayAt
// Si pulsamos click en la primera columna del grid se pone o se quita el cotejo (donde esta el checkbox)
WITH OBJECT ::oCatalogAcc
:aArrayData[nPos,1] := !(:aArrayData[nPos,1]) // Swicht del cotejo
:RefreshCurrent()
END
Gracias anticipadas
Carlos Fuentes
Ya logro poner en la primera columna de mi grid una columna con una imagen de Cotejo o Blanco, pero ahora quiero lograr ejecutar un evento cuando pulso clic sobre una linea del grid.
Con el TBrowse lo hacia fácilmente con las siguientes líneas, pero con TBrowseMod, le he dado muchisimas vueltas y no he podido:
LOCAL nPos := ::oCatalogAcc:nArrayAt
// Si pulsamos click en la primera columna del grid se pone o se quita el cotejo (donde esta el checkbox)
WITH OBJECT ::oCatalogAcc
:aArrayData[nPos,1] := !(:aArrayData[nPos,1]) // Swicht del cotejo
:RefreshCurrent()
END
Gracias anticipadas
Carlos Fuentes
Re: Avanzando con TBrowseMod
Hola Carlos buenos días, hace días que vengo con esta cuestión, ayer junto con otros colegas llegamos a lo siguiente:
No se si es la forma correcta, pero así anda.
Saludos desde Argentina
Código: Seleccionar todo
//------------------------------------------------------------------------------
METHOD BrwTurnosClick( oSender ) CLASS TFormPrincipal
::oBrwTurnos:oDataGrid:OnSelect := {|x,y| ::Selected( x, ::oBrwTurnos:nIndex, ::oBrwTurnos:nSelectCol ) }
RETURN Nil
//------------------------------------------------------------------------------
METHOD Selected( oSender, nIndex, nCol ) CLASS TFormPrincipal
local cSql, nIdCliente:=0
// aqui escribes tu metodo
IF nCol == 2
with object TFrmClienteBuscarSeleccionar():New()
:ShowModal()
nIdCliente := :nId
end with
cSql := "UPDATE turnos SET id_cliente=" + ValToSql(nIdCliente) + ","
cSql += "fecha_quese_dio=" + ValToSql(Date()) + " "
cSql += "WHERE id_turno=" + ValToSql(::oSqlTurnos:id_turno)
AppData:cnnMysql:Execute(cSql)
::oSqlTurnos:Refresh()
::oBrwTurnos:Refresh()
ENDIF
RETURN Nil
//------------------------------------------------------------------------------
Saludos desde Argentina
Marcelo Roggeri
Argentina
Argentina
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Avanzando con TBrowseMod
Hola,
Se han modificado los eventos OnClick y OnDblClick para que reciban los siguientes parámetros:
nRow se corresponde con el número de fila seleccionada
nCol se corresponde con el número de columna seleccionada
Además se ha incluido el evento:
Saludos
Se han modificado los eventos OnClick y OnDblClick para que reciban los siguientes parámetros:
Código: Seleccionar todo
EVENT OnClick( oSender, nKeys, nRow, nCol )
EVENT OnDblClick( oSender, nKeys, nRow, nCol )
nCol se corresponde con el número de columna seleccionada
Además se ha incluido el evento:
Código: Seleccionar todo
EVENT OnChange( oSender, lRowChanged )
Re: Avanzando con TBrowseMod
Marcelo, gracias por tu pronta respuesta, funciona a la perfección.
Las gracias a Ignacio y ya estaremos atentos al cambio.
Un abrazo a ambos.
Carlos Fuentes
Las gracias a Ignacio y ya estaremos atentos al cambio.
Un abrazo a ambos.
Carlos Fuentes
- xhermita
- Mensajes: 177
- Registrado: Vie Feb 18, 2011 10:05 pm
- Ubicación: Las Palmas de Gran Canaria
- Contactar:
Re: Avanzando con TBrowseMod
¿No seria más interesante de esta manera?ignacio escribió:Hola,
Se han modificado los eventos OnClick y OnDblClick para que reciban los siguientes parámetros:
nRow se corresponde con el número de fila seleccionadaCódigo: Seleccionar todo
EVENT OnClick( oSender, nKeys, nRow, nCol ) EVENT OnDblClick( oSender, nKeys, nRow, nCol )
nCol se corresponde con el número de columna seleccionada
Además se ha incluido el evento:
SaludosCódigo: Seleccionar todo
EVENT OnChange( oSender, lRowChanged )
Código: Seleccionar todo
EVENT OnClick( oSender, nKeys, oCol, nIndex )
EVENT OnDblClick( oSender, nKeys, oCol, nIndex )
Pedro Amaro
2PC Service
Xailer / Néfele / MySQL-MariaDB / SQLServer
2PC Service
Xailer / Néfele / MySQL-MariaDB / SQLServer
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Avanzando con TBrowseMod
Hola,
Tiene sentido. Lo corrijo.
Saludos
Tiene sentido. Lo corrijo.
Saludos
Re: Avanzando con TBrowseMod
Estoy usando un TbwoseMod, y hago en la edición de las columnas cambiándolas de lugar, pero al grabar y compilar siguen quedando en el orden original.
Ejemplo, agrego nueva columna que toma la posición 7, y la muevo a la posición 1; compilo y ejecuto y se muestra la nueva columna en la posición 7 y no en la 1.
Espero haberme explicado.
Saludos.
Ejemplo, agrego nueva columna que toma la posición 7, y la muevo a la posición 1; compilo y ejecuto y se muestra la nueva columna en la posición 7 y no en la 1.
Espero haberme explicado.
Saludos.
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Avanzando con TBrowseMod
Buenos días,
Visto y corregido. Gracias por comunicarlo. Mientras se publica una nueva versión de Xailer puede hacer lo siguiente (y así de paso utiliza una nueva opción de Xailer 7):
1) Abra el formulario
2) Haga click botón derecho en el caption del formulario
3) Seleccione la opción de menú contextual: 'Editar como texto'
4) Diríjase hasta la línea que pone: WITH OBJECT .... := TBrowseMod():New( Self )
5) Un poco más abajo verá la definición de las columnas. Simplemente cambie el orden de creación
6) Guarde el fichero y ciérrelo
7) Vuelva a abrir el formulario
Un saludo
Visto y corregido. Gracias por comunicarlo. Mientras se publica una nueva versión de Xailer puede hacer lo siguiente (y así de paso utiliza una nueva opción de Xailer 7):
1) Abra el formulario
2) Haga click botón derecho en el caption del formulario
3) Seleccione la opción de menú contextual: 'Editar como texto'
4) Diríjase hasta la línea que pone: WITH OBJECT .... := TBrowseMod():New( Self )
5) Un poco más abajo verá la definición de las columnas. Simplemente cambie el orden de creación
6) Guarde el fichero y ciérrelo
7) Vuelva a abrir el formulario
Un saludo
Re: Avanzando con TBrowseMod
Otro detalle, si cargo un archivo con el visor de recursos dos veces, lo duplica.
ejemplo:
Cargo una imagen en un botón y veo que se ve mal, lo edito en la carpeta origen y vuelvo a cargarlo con el editor de recursos para que copie la nueva imagen modificada y se duplica.
Saludos.
ejemplo:
Cargo una imagen en un botón y veo que se ve mal, lo edito en la carpeta origen y vuelvo a cargarlo con el editor de recursos para que copie la nueva imagen modificada y se duplica.
Saludos.
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Avanzando con TBrowseMod
Entiendo que realmente está cargando el archivo DOS VECES. Siempre puede editar el archivo .RC y guardar lo que realmente quiera.ramonzea escribió: ↑Jue Feb 04, 2021 11:07 am Otro detalle, si cargo un archivo con el visor de recursos dos veces, lo duplica.
ejemplo:
Cargo una imagen en un botón y veo que se ve mal, lo edito en la carpeta origen y vuelvo a cargarlo con el editor de recursos para que copie la nueva imagen modificada y se duplica.
Saludos.
Un saludo
Re: Avanzando con TBrowseMod
Si, es correcto, y como dice, simplemente edito el .rc y hago la corrección; en la otra versión que tengo sustituye dicho recurso.
Igualmente con el browseMod edito el archivo .xfm y corrijo el orden de las columnas.
Saludos.
Igualmente con el browseMod edito el archivo .xfm y corrijo el orden de las columnas.
Saludos.
Re: Avanzando con TBrowseMod
Otra observación:
Quiero en un browseMod editar una celda, y le pongo la propiedad
TBrowseMod:lFastEdit = .t.
y
TBrwColMod:lCanEdit = .t.
pero no se genera la edición, si pongo
TBrowseMod:lAllowEdit = .t.
entran en edición todas las columnas con
TBrwColMod:lCanEdit = .t.
Lo que busco es editar solo una celda a la vez.
Saludos.
Quiero en un browseMod editar una celda, y le pongo la propiedad
TBrowseMod:lFastEdit = .t.
y
TBrwColMod:lCanEdit = .t.
pero no se genera la edición, si pongo
TBrowseMod:lAllowEdit = .t.
entran en edición todas las columnas con
TBrwColMod:lCanEdit = .t.
Lo que busco es editar solo una celda a la vez.
Saludos.
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Avanzando con TBrowseMod
Buenos días,
lFastEdit falla en su versión, pero ya está corregido. No obstante doble-click debería sólo editar una columna si lShowCellSeleCted esta a .t.
Saludos
lFastEdit falla en su versión, pero ya está corregido. No obstante doble-click debería sólo editar una columna si lShowCellSeleCted esta a .t.
Saludos
Re: Avanzando con TBrowseMod
Hola
Una Observación:
la Propiedad nClrDivider <No> se actualiza en IDE
Saludos!
Una Observación:
la Propiedad nClrDivider <No> se actualiza en IDE
Saludos!
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Avanzando con TBrowseMod
Compruebo que se actualiza correctamente. Obviamente nRecSelcectorWidt > 0
Saludos
Re: Avanzando con TBrowseMod
Duda
Como puedo cambiar el Font de las columnas??
Saludos
Como puedo cambiar el Font de las columnas??
Saludos
Re: Avanzando con TBrowseMod
Hola Gabo buenas tardes, yo lo he cambiado de esta manera, en el create del browse
Saludos
Código: Seleccionar todo
::oBrwTurnos:oFont := TFont():Create("Arial",16)
Marcelo Roggeri
Argentina
Argentina
Re: Avanzando con TBrowseMod
Gracias marcelo..
Pero me cambia tambien el font del titulo y yo solo quiero el font de las celdas .. logre hacer algo pero no se si sea correcto la forma por el momento funciona pero cambia el Font de todas las columnas.. (en el tradicional si puedes hacerlo)
Un Saludo
Pero me cambia tambien el font del titulo y yo solo quiero el font de las celdas .. logre hacer algo pero no se si sea correcto la forma por el momento funciona pero cambia el Font de todas las columnas.. (en el tradicional si puedes hacerlo)
Código: Seleccionar todo
// ESTO FUNCIONA PERO CAMBIA LA FUENTE DE TODAS LAS COLUMNAS
//------------------------------------------------------------------------------
METHOD BrwPedidosDrawCell( oSender, oCol, nIndex, xValue, cValue, nImage, nClrText, nClrPane, nState, hDC, aRect ) CLASS TFormDomicilioCards
LOCAL oFont,hFont
IF oCol:cHeader=="No. Sigue"
nClrText:= clBlue
oFont:= TFont():Create( "Consolas",14,0,550 )
hFont:= SelectObject( hDC, oFont:Handle )
DrawText( hDC, xValue, aRect, DT_RIGHT )
oFont:= NIL
hFont:= NIL
ELSEIF oCol:cHeader=="Folio Venta"
nClrText:= clRed
ELSEIF oCol:cHeader=="Teléfono"
ELSEIF oCol:cHeader=="Nombre del Cliente"
ELSEIF oCol:cHeader=="Status"
DO CASE
CASE cValue=="Impresa"
xValue:= ""
nImage:= 3
CASE cValue=="NO"
xValue:= ""
nImage:= 1
OTHER
ENDCASE
ENDIF
RETURN Nil
Re: Avanzando con TBrowseMod
Observación
La Propiedad nClrPaneEnd,oBkgnd no esta documentada.. cual es su función ? no se puede indentifcar visualmemte en el IDE y ejecución oBkgnd no se visualiza (entiendo que es una imagen "marca de agua" dentro del browse)
Saludos!
La Propiedad nClrPaneEnd,oBkgnd no esta documentada.. cual es su función ? no se puede indentifcar visualmemte en el IDE y ejecución oBkgnd no se visualiza (entiendo que es una imagen "marca de agua" dentro del browse)
Saludos!
Última edición por gabo1 el Sab Feb 06, 2021 5:31 am, editado 1 vez en total.
Re: Avanzando con TBrowseMod
Si hago cambio de los colores de la columna con
DBBrowse1DrawCell( oSender, oCol, nIndex, xValue, cValue, nImage, nClrText, nClrPane, nState, hDC, aRect )
el pintado con el color Hot no se aplica.
DBBrowse1DrawCell( oSender, oCol, nIndex, xValue, cValue, nImage, nClrText, nClrPane, nState, hDC, aRect )
el pintado con el color Hot no se aplica.
- Adjuntos
-
- Errorbnrowsemod01.png (17.13 KiB) Visto 4790 veces
Re: Avanzando con TBrowseMod
Observación:
En el Evento OnClick, se tiene que ejecutar dos veces para que se actualice el TBrowseMod:oDataSet, en el primer Click del ratón en la fila no se actualiza se tiene que hacer otro click en la misma fila para que se actualice correctamente.. usando el mismo metodo con el evento OnKeyUp y las flechas arriba y abajo todo va bien
Comprobado con el ejemplo DbBrowse
Un Saludo
En el Evento OnClick, se tiene que ejecutar dos veces para que se actualice el TBrowseMod:oDataSet, en el primer Click del ratón en la fila no se actualiza se tiene que hacer otro click en la misma fila para que se actualice correctamente.. usando el mismo metodo con el evento OnKeyUp y las flechas arriba y abajo todo va bien
Comprobado con el ejemplo DbBrowse
Código: Seleccionar todo
//------------------------------------------------------------------------------
METHOD DbBrowseMod1Click( oSender ) CLASS TForm1
// oLabel1 lo cambie a un control TNoEdit
::oLabel1:value:= AllTrim(::oDbBrowseMod1:oDataSet:first)+" "+CRLF+;
AllTrim(::oDbBrowseMod1:oDataSet:Last)+" "+CRLF+;
AllTrim(::oDbBrowseMod1:oDataSet:Street)
RETURN Nil
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Avanzando con TBrowseMod
Debe controlarlo con el color que le llega en nClrPane.
Saludos
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Avanzando con TBrowseMod
Esto es así, porque el evento se puede para devolviendo falso y por lo tanto la fila no se selecciona. Si le quitamos esa opción podría hacerse para que OnClick se disparase después de que la fila haya sido seleccionada y no antes. No obstante, en la próxima revisión tiene un nuevo método OnChange( oSender, lRowChanged )gabo1 escribió: ↑Sab Feb 06, 2021 2:13 am Observación:
En el Evento OnClick, se tiene que ejecutar dos veces para que se actualice el TBrowseMod:oDataSet, en el primer Click del ratón en la fila no se actualiza se tiene que hacer otro click en la misma fila para que se actualice correctamente.. usando el mismo metodo con el evento OnKeyUp y las flechas arriba y abajo todo va bien
Comprobado con el ejemplo DbBrowseUn SaludoCódigo: Seleccionar todo
//------------------------------------------------------------------------------ METHOD DbBrowseMod1Click( oSender ) CLASS TForm1 // oLabel1 lo cambie a un control TNoEdit ::oLabel1:value:= AllTrim(::oDbBrowseMod1:oDataSet:first)+" "+CRLF+; AllTrim(::oDbBrowseMod1:oDataSet:Last)+" "+CRLF+; AllTrim(::oDbBrowseMod1:oDataSet:Street) RETURN Nil
Saludos
- ignacio
- Site Admin
- Mensajes: 9252
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Avanzando con TBrowseMod
Esa propiedad está a un nivel muy superior en el nivel de herencia. Sirve para hacer un degradado entre los colores nClrPane y nClrPaneEnd, pero además la propiedad nGradient ha de tener valor.
Un saludo
Re: Avanzando con TBrowseMod
Me ha salido este erro varias veces trabajando con las TBrowseMod.
Saludos.
Saludos.
- Adjuntos
-
- Errorbnrowsemod02.png (16.48 KiB) Visto 4744 veces