Tengo este raro comportamiento en Xbrowse cuando se edita directamente una celda.
Lo tengo definido asi:
- Code: Select all Expand view
- XbrNumFormat( 'A', .t. )
REDEFINE XBROWSE oBrw ID 181 OF oDlg ;
COLUMNS "Codigo","Nombre","Tipo","Fecha","Td","Docum","Debe","Vence","NumDocPago","FechPago","SaldoAct","Concepto" ;
FIELDSIZES 80,200,30,70,24,66,80,70,66,70,80,470 ;
HEADERS "Codigo","Nombre","Tipo","Fecha","Td","Docum No.","Valor","Vence","Doc Pago","Fecha Pago","Saldo Act","Concepto" ;
ALIAS (cAlias) CELL LINES FOOTERS // FASTEDIT
WITH OBJECT oBrw
:nMarqueeStyle := MARQSTYLE_HIGHLROW // HIGHLCELL
:nColDividerStyle := LINESTYLE_LIGHTGRAY //INSET
:nRowDividerStyle := LINESTYLE_LIGHTGRAY //INSET
:lColDividerComplete := .t.
:nStretchCol := STRETCHCOL_LAST //llenar espacio con ultima columna
:nRowHeight := 18 //altura entre lineas
:nHeaderHeight := 30 //Altura cabeceras de col
:lFooter := .t. //Que tendrá footer
:nFooterLines := 2 //Lineas del footer
:nFooterHeight := 24 //Altura del Footer 42
:lRecordSelector := .t. //poner o no, COL de la flechita de la izq
:bClrHeader := {|| { nRGB(140, 0, 0), nRGB( 231, 242, 255 ), } }
:bClrFooter := oBrw:bClrHeader
:bClrStd := {|| { nRGB( 0, 0, 0), nRGB(255,255,255) } } // colores para lineas normales
:bClrSel := {|| { nRGB( 0, 0, 0), aGradRowSel } } // para barra de linea selecc cuando el control tiene el foco
:bClrSelFocus := { || { CLR_BLACK, aGradBarSel } } // para barra de linea selecc cuando el control tiene el foco
:nHeadStrAligns := AL_CENTER
END
WITH OBJECT oBrw:SaldoAct
:nEditType := EDIT_GET
:bEditWhen := { || MsgInfo("Deberia revisar sus transacciones antes de editar este valor.","Advertencia"), .t. }
* :bEditValid := {|oGet| if( len(Alltrim(str(oGet:Value))) > len(Str((cAlias)->SaldoAct)), (MsgInfo("Valor fuera de rango","Alto"),.f.),.t.) }
:bOnPostEdit := { | oCol, xVal, nKey | nSdoActAnt:=(cAlias)->SaldoAct, If( nKey == VK_RETURN, if( (cAlias)->(RLock()), ((cAlias)->SaldoAct := xVal, (cAlias)->(DbUnLock()), ActProce(nSdoActAnt,xVal,(cAlias)->nombre,(cAlias)->Docum,(cAlias)->concepto) ),) ,(cAlias)->(DbUnLock())) }
*:bOnPreEdit := { || If(oRsDetail:Fields("Inventory Id"):Value = " ", , __Keyboard( Chr( VK_HOME ))) }
END
El campo SaldoAct es numerico, 10,2 (2 decimales)
Cuando introduzco un valor de 1,000,000.00 (con decimales o no) //TODO OK
Cuando introduzco un valor de 10,000,000.00 (con decimales, lo controlo con el bEditValid descrito arriba) //TODO OK
Cuando introduzco un valor de 10,000,000 (sin decimales), me da error de anchura de datos, //TODO MAL
Sucede al darle Enter para grabar el dato.
Algunos ya han pasado por esto? Como lo han corregido? (Mi version es FWH 1204
Saludos.
PD:
Si establezco el picture con :cEditPicture = "9,999,999.99" TODO OK
Pero si establezco el picture con :cEditPicture = "99,999,999.99" TODO MAL (vuelve al comportamiento descrito).
No controla esto XBrowse esto ultimo?
Es decir, si ponemos un picture mayor a longitud del campo correspondiente, XBrowse no corrige automaticamente esto?