FWH 25.06 - Problema METHOD RestoreState( cState ) CLASS TXBrowse

Post Reply
FiveWiDi
Posts: 1467
Joined: Mon Oct 10, 2005 2:38 pm

FWH 25.06 - Problema METHOD RestoreState( cState ) CLASS TXBrowse

Post by FiveWiDi »

Hola Antonio,

En el METHOD RestoreState() de XBrowse está en la línea 9196 esta igualdad:

aState := &( cState )

El caso es que si cState vale:

XS1:{{'_nCreationOrders',{1,2,3,4,5,6,7,8,9,10,11,12,13}},{'_nRowHeight',20},{'_nWidths',{100.000000,100.000000,100.000000,200.000000,50.000000,300.000000,200.000000,50.000000,300.000000,80.000000,80.000000,80.000000,80.000000}},{'_lHides',{.F.,.F.,.F.,.F.,.F.,.F.,.F.,.T.,.T.,.T.,.T.,.T.,.T.}},{'_cGrpHdrs',{,,,,,,,,,,,,}},{'_cHeaders',{'Código XML','Tipo VF','Estado','Id VF','N.Reg.','Est.Envío','CSV Respuesta','Tiene Incidencia previa (S-N)','Time Stamp Envío','Fecha Envío','Hora Envío','Fecha recepción','Hora recepción'}}}

No hay problema.

Si vale:

XS1:{{'_nCreationOrders',{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29}},{'_nRowHeight',20},{'_nWidths',{100.000000,100.000000,120.000000,100.000000,100.000000,250.000000,80.000000,80.000000,250.000000,400.000000,250.000000,50.000000,50.000000,50.000000,50.000000,50.000000,50.000000,50.000000,50.000000,50.000000,5000.000000,50.000000,50.000000,3000.000000,750.000000,750.000000,500.000000,120.000000,50.000000}},{'_lHides',{.F.,.F.,.F.,.F.,.F.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.}},{'_cGrpHdrs',{,,,,,,,,,,,,,,,,,,,,,,,,,,,,}},{'_cHeaders',{'Código XML','Tip.Reg.','Código Fact.','Estado','Cód.Reg.','Id factura','Fecha de alta','Hora de alta','Id.VfRegi','Id 'Petición'','Estado en Veri_factu','Cód.Estado Veri_factu','És Subsanación (S-N)','Tiene Rechazo previo (S-N)','NO Tiene Regi.previo (S-N)','Fuerza recalcular Sub.Reb.NoReg.','Simplificada (S-N)','Sin destinatario (S-N)',''S'ubstitutiva/d'I'ferencia','VF-Tipo Fact.(F1,F2,F3,R1,R2,R3,R4,R5)','Descripción Operación','VF-Macro Dato (S - N)','VF-Cupón (S - N)','Cadena cálculo Huella','Huella-Veri_factu','Reg.Fact.Ant.Huella','Referencia Requerimiento','Código Regi.Ver.Original','Intento envío'}}}

Da el error:

"Invalid parameter to RestoreState()" que es un mensaje de Try/Catch del METHOD RestoreState() cuando se aplica esta igualdad:

aState := &( cState )

Si en lugar de usar el METHOD RestoreState() utilizo el OldRestoreState(), entonces funciona sin problemas.

Si en mi código aplico la igualdad el comportamiento es el mismo; por tanto no es problema de la clase.

Y cuando da error indica:
Error description: Error BASE/1449 Error de sintaxis: &
Args:
[ 1] = C {{"_nCreationOrders",{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29}},{"_nRowHeight",20},{"_nWidths",{100.000000,100.000000,120.000000,100.000000,100.000000,250.000000,80.000000,80.000000,250.000000,400.000000,250.000000,50.000000,50.000000,50.000000,50.000000,50.000000,50.000000,50.000000,50.000000,50.000000,5000.000000,50.000000,50.000000,3000.000000,750.000000,750.000000,500.000000,120.000000,50.000000}},{"_lHides",{.F.,.F.,.F.,.F.,.F.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.}},{"_cGrpHdrs",{,,,,,,,,,,,,,,,,,,,,,,,,,,,,}},{"_cHeaders",{"Código XML","Tip.Reg.","Código Fact.","Estado","Cód.Reg.","Id factura","Fecha de alta","Hora de alta","Id.VfRegi","Id "Petición"","Estado en Veri_factu","Cód.Estado Veri_factu","És Subsanación (S-N)","Tiene Rechazo previo (S-N)","NO Tiene Regi.previo (S-N)","Fuerza recalcular Sub.Reb.NoReg.","Simplificada (S-N)","Sin destinatario (S-N)",""S"ubstitutiva/d"I"ferencia","VF-Tipo Fact.(F1,F2,F3,R1,R2,R3,R4,R5)","Descripción Operación","VF-Macro Dato (S - N)","VF-Cupón (S - N)","Cadena cálculo Huella","Huella-Veri_factu","Reg.Fact.Ant.Huella","Referencia Requerimiento","Código Regi.Ver.Original","Intento envío"}}}

¿Dónde debe estar el problema?

Ya me dices.

Un Saludo
Carlos G.

FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

FiveWiDi
Posts: 1467
Joined: Mon Oct 10, 2005 2:38 pm

Re: FWH 25.06 - Problema METHOD RestoreState( cState ) CLASS TXBrowse

Post by FiveWiDi »

Voy a revisar, creo que he visto muchas comillas por ahí.

Un Saludo
Carlos G.

FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

hmpaquito
Posts: 1534
Joined: Thu Oct 30, 2008 2:37 pm

Re: FWH 25.06 - Problema METHOD RestoreState( cState ) CLASS TXBrowse

Post by hmpaquito »

Carlos,

Intenta por favor mostrar el error real mostrando el valor de oError:Description
FiveWiDi
Posts: 1467
Joined: Mon Oct 10, 2005 2:38 pm

Re: FWH 25.06 - Problema METHOD RestoreState( cState ) CLASS TXBrowse

Post by FiveWiDi »

El problema està en que si la cadena contiene como parte de los literales las comillas simples ( ' ), al evaluarse peta.

Lo he solucionado modificando la cadena antes de llamar al METHOD así:

cStateXbrowse := StrTran( cStateXbrowse, "{'", '{"' )
cStateXbrowse := StrTran( cStateXbrowse, "'}", '"}' )
cStateXbrowse := StrTran( cStateXbrowse, ",'", ',"' )
cStateXbrowse := StrTran( cStateXbrowse, "',", '",' )
cStateXbrowse := StrTran( cStateXbrowse, "'", '-' ) <<-- esto se carga las comillas simples como parte de los literales.

Evidentemente esto funcionarà siempre que no se altere la grabación de la cadena en el METHOD SaveState()

Bueno, ahí lo dejo.
Last edited by FiveWiDi on Sun Aug 17, 2025 11:13 am, edited 1 time in total.

Un Saludo
Carlos G.

FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

FiveWiDi
Posts: 1467
Joined: Mon Oct 10, 2005 2:38 pm

Re: FWH 25.06 - Problema METHOD RestoreState( cState ) CLASS TXBrowse

Post by FiveWiDi »

hmpaquito wrote: Sun Aug 17, 2025 10:50 am Carlos,

Intenta por favor mostrar el error real mostrando el valor de oError:Description
Si, si, es esto:

Error description: Error BASE/1449 Error de sintaxis: &
Args:
[ 1] = C {{"_nCreationOrders",{1,2,3,4,5,6,7,8,9,10,11,12,........

Un Saludo
Carlos G.

FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Post Reply