Página 1 de 1
TDbBrowseMod No actualiza correctamente el registro
Publicado: Mar Jun 29, 2021 10:49 pm
por gabo1
Estimando Ignacio
Estoy volviendo a retomar TbBrowseMod 7.0.11 en el metodo OnChange
Código: Seleccionar todo
//------------------------------------------------------------------------------
METHOD BrwPedidosChange( oSender, lRowChanged ) CLASS TFormDomicilioBrowseMod
IF lRowChanged
::DspPedidoActual()
ENDIF
RETURN Nil
El registro que se visualiza es el registro anterior al actual, me puede indicar cual es la forma correcta de usar este metodo para que me despliegue los datos donde esta posicionado el puntero o cursor
Saludos!
Re: TDbBrowseMod No actualiza correctamente el registro
Publicado: Mar Jun 29, 2021 11:42 pm
por gabo1
Otros detalles detectados
1.- Cuando se tiene presionada la tecla de flecha arriba o abajo el browse enloquece pierde la posicion
2.- El dataset no se actualiza.. tuve que hacer el siguiente codigo para que se actualizara el nuevo registro
Código: Seleccionar todo
Wait_On("Grabando datos del cliente..")
AppData:oMySQLDS:BeginTrans()
::oSQLPedidos:AddNew()
::oSQLPedidos:ID_EMPRESA:= AppData:cIdCompany
::oSQLPedidos:ID_TERMINAL:= AppData:cTerminalTPV
::oSQLPedidos:ID_SALON:= ""
::oSQLPedidos:FECHA_VENTA:= AppData:dFechaTPV
::oSQLPedidos:ID_TURNO:= AppData:cTurnoTPV
::oSQLPedidos:FOLIO_SIGUE:= AppData:nSigueTPV
::oSQLPedidos:ID_MESA:= AppData:cPhoneTPV
::oSQLPedidos:ID_CAJA:= ""
::oSQLPedidos:FOLIO_VENTA:= 0
::oSQLPedidos:ID_MESERO:= ""
::oSQLPedidos:NOMBRE_MESERO:= ""
::oSQLPedidos:NOMBRE_CLIENTE:= cNAME_CLIENTE
::oSQLPedidos:ID_CLIENTE:= cCODE_CLIENTE
::oSQLPedidos:HORA_ENTRADA:= Time()
::oSQLPedidos:NUMERO_PAX:= 1
::oSQLPedidos:FOLIO_VENTA:= 0
::oSQLPedidos:TOT_DESCUENTO:= 0
::oSQLPedidos:DESCUENTO:= 0
::oSQLPedidos:TOT_IVA:= 0
::oSQLPedidos:HORA_ENTRADA:= Time()
::oSQLPedidos:STA_VENTA:= "ACTIVA"
::oSQLPedidos:STA_IMPRESA:= "NO"
::oSQLPedidos:STA_COBRADA:= "NO"
::oSQLPedidos:AREA_SERVICIO:= "Domicilio"
::oSQLPedidos:USER_BITACORA:= GetComputerName()
::oSQLPedidos:DATE_BITACORA:= Date()
::oSQLPedidos:TIME_BITACORA:= Time()
::oSQLPedidos:Update()
// ESTE CODIGO FUE NECESARIO PARA QUE DATASET SE ACTUALIZARA
// DE LO CONTRARIO EL NUEVO REGISTRO NO APARECE
cSQLQuery:= "SELECT * FROM mesas_abiertas WHERE "+ ;
"id_empresa='" + AppData:cIdCompany+"' AND "+ ;
"fecha_venta='"+DToS(AppData:dFechaTPV)+"' AND "+;
"area_servicio='Domicilio' AND "+ ;
"sta_venta='ACTIVA' ORDER BY id_unique"
WITH OBJECT ::oSQLPedidos
:Close()
:oDataSource:= AppData:oMySQLDS
:cSelect:= cSQLQuery
:lOpen:= .T.
END WITH
::oSQLPedidos:Refresh()
::oSQLPedidos:SaveState(.T.)
::oSQLPedidos:GoTop()
DO WHILE !::oSQLPedidos:Eof()
IF ::oSQLPedidos:ID_MESA==AppData:cPhoneTPV .AND. ;
::oSQLPedidos:ID_CLIENTE== cCODE_CLIENTE
AppData:nSigueTPV:= ::oSQLPedidos:FOLIO_SIGUE
AppData:cPhoneTPV:= ::oSQLPedidos:ID_MESA
AppData:cClientePedidosTPV:= ::oSQLPedidos:ID_CLIENTE
EXIT
ENDIF
::oSQLPedidos:Skip()
ENDDO
::oSQLPedidos:RestoreState(.T.)
Re: TDbBrowseMod No actualiza correctamente el registro
Publicado: Mié Jun 30, 2021 5:22 am
por gabo1
Siguiendo con las pruebas..
El metodo OnClick funciona bien con el parametro nIndex
Código: Seleccionar todo
//------------------------------------------------------------------------------
METHOD BrwPedidosClick( oSender, nKeyFlags, oCol, nIndex ) CLASS TFormDomicilioBrowseMod
::oSQLPedidos:GoTo(nIndex)
::DspPedidoActual()
RETURN Nil
Re: TDbBrowseMod No actualiza correctamente el registro
Publicado: Jue Jul 01, 2021 9:06 pm
por ignacio
gabo1 escribió: ↑Mar Jun 29, 2021 10:49 pm
Estimando Ignacio
Estoy volviendo a retomar TbBrowseMod 7.0.11 en el metodo OnChange
Código: Seleccionar todo
//------------------------------------------------------------------------------
METHOD BrwPedidosChange( oSender, lRowChanged ) CLASS TFormDomicilioBrowseMod
IF lRowChanged
::DspPedidoActual()
ENDIF
RETURN Nil
El registro que se visualiza es el registro anterior al actual, me puede indicar cual es la forma correcta de usar este metodo para que me despliegue los datos donde esta posicionado el puntero o cursor
Saludos!
Corregido. Muchas Gracias. Espero que en breve podamos, con su colaboración, resolver el resto de problemas que está sufriendo.
Un saludo
Re: TDbBrowseMod No actualiza correctamente el registro
Publicado: Jue Jul 01, 2021 9:08 pm
por ignacio
Otros detalles detectados
1.- Cuando se tiene presionada la tecla de flecha arriba o abajo el browse enloquece pierde la posicion
No consigo reproducir su error
2.- El dataset no se actualiza.. tuve que hacer el siguiente codigo para que se actualizara el nuevo registro
Indique como reproducirlo con los ejemplos.
Gracias
Re: TDbBrowseMod No actualiza correctamente el registro
Publicado: Lun Jul 05, 2021 3:49 pm
por gabo1
SOLO UN DETALLE DE INFORMACION LA VERSION DE XAILER QUE ESTOY USANDO ES LA 7.0.11 EN EL MENSAJE DE ERROR APARECE 7.0.9
Ese error sucede cuando se le da click a la celda "Street" del ejemplo DbBrowse
------------------------- Información del compilador --------------------------
Versión Xailer: Xailer 7.0.9 LA VERSION QUE TENGO ES LA 7.0.11
Compilador: Harbour 3.2.0dev (r1912031042)
Compilador C/C++: MinGW GNU C 7.3 (32-bit)
Plataforma: Windows 10 10.0
----------------------- Información detallada del error -----------------------
Subsistema: BASE
Código de error: 42
Estado: .F.
Descripción: Scope violation (protected)
Operación: TMEMOMOD:_LBORDER
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
TMEMOMOD:_LBORDER (0)
TEDITFORGRID:DROPDOWNMEMO (934)
(b)TEDITFORGRID_SHOW (669)
TEDITFORGRID:ONBTNCLICK (0)
TEDITFORGRID:WMNCLBUTTONUP (0)
RUNFORM (0)
TAPPLICATION:RUN (289)
MAIN (15)
Re: TDbBrowseMod No actualiza correctamente el registro
Publicado: Lun Jul 05, 2021 5:57 pm
por ignacio
Buenas tardes,
Corregido. Si tiene los fuentes sólo hay que cambiar la línea 934 de BrwColMod.prg por esto:
:lModBorder := .f. // Antes :lBorder := .f.
En breve publicaremos una actualización.
La última versión es la 7.1.0.
Saludos