FWH 25.06 - Problema METHOD RestoreState( cState ) CLASS TXBrowse
FWH 25.06 - Problema METHOD RestoreState( cState ) CLASS TXBrowse
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.
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
Re: FWH 25.06 - Problema METHOD RestoreState( cState ) CLASS TXBrowse
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
Re: FWH 25.06 - Problema METHOD RestoreState( cState ) CLASS TXBrowse
Carlos,
Intenta por favor mostrar el error real mostrando el valor de oError:Description
Intenta por favor mostrar el error real mostrando el valor de oError:Description
Re: FWH 25.06 - Problema METHOD RestoreState( cState ) CLASS TXBrowse
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.
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
Re: FWH 25.06 - Problema METHOD RestoreState( cState ) CLASS TXBrowse
Si, si, es esto:hmpaquito wrote: Sun Aug 17, 2025 10:50 am Carlos,
Intenta por favor mostrar el error real mostrando el valor de oError:Description
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