Nunca falta un pelo en la sopa, estoy tratando edicion de celdas con array con xBrowse en facturacion y todo muy bien, pero ahora se me presenta este problema, estoy usando totalizador de columnas MakeTotals(), en la columna que edito para agregar data me totaliza sin problema, pero resulta que hay una columna que no se edita que es el total = precio * cantidad, quiero que la columna TOTAL me de total de su columna en el footer, pero he hecho de todo lo conocido y nada, revice y probe como en el foro, aca dejo como tengo la columna CANTIDAD que trababa bien y es editable y la columna TOTAL que no es editable, tambien dejo como defino mi xBrowse a ver quien me da una ayuda o sugerencia, gracias, saludos...
REDEFINE xBrowse oBrw ID 100 of oDlg ;
HEADERS "CODIGO", "DESCRIPCION", "UNIDAD", "CANTIDAD", "DESC", "PRECIO", "TOTAL" ;
COLUMNS 1, 2, 3, 4, 5, 6, 7 ;
COLSIZES 100, 200, 70, 70, 50, 70, 70 ;
JUSTIFY AL_LEFT, AL_LEFT, AL_LEFT, AL_RIGHT, AL_RIGHT, AL_RIGHT, AL_RIGHT ;
PICTURES , , , "@E 9,999,999", "@E 999.99%", "@E 9,999,999.99", "@E 9,999,999.99" ;
ARRAY aItems FASTEDIT LINES FOOTERS
// CONFIGURACION DEL xBROWSE
WITH OBJECT oBrw
* :nMarqueeStyle := MARQSTYLE_HIGHLROW // NO PERMITE EDICION CELDA AUTO.
:nMarqueeStyle := MARQSTYLE_HIGHLCELL
:nColDividerStyle := LINESTYLE_BLACK
:nStretchCol := STRETCHCOL_LAST
:bRClicked := { || msginfo( "pulsastes boton derecho..." ) } // LLAMA MENU-POPUP CON BOTON DERECHO
:lColDividerComplete := .t.
:nHeaderHeight := 30 // ANCHO CABEZERA
:l2007 := .t.
:lFooter := .t.
:lRecordSelector := .t. // SI/NO 1RA.COL.IZQ.QUE TIENE LA FLECHITA NEGRA
:lAllowColHiding := .f. // SI/NO BOTON DERECHO SOBRE CABEZERA, MUESTRE ARRAY COL.
:lAllowColSwapping := .f. // SI/NO INTERCAMBIAR COL.
:bClrStd := {|| IF( oBrw:nArrayAt % 2 == 0, {CLR_BLACK, CLR_WHITE}, {0, RGB(203, 226, 254)} ) }
:bKeyDown := {| nKey | teclado( nKey, oBrw ) } // CONTROLA VIRTUAL KEY
***:bPastEof := { || addrow( oBrw, aItems ) } // HACE EDICION DE CELDA AUTOMATICAMENTE CON FLECHA ABAJO...
END WITH
// COL.4 - CANTIDAD
WITH OBJECT oBrw:aCols[4]
:bStrData := {|| IIF( LEN( aItems ) = 0, SPACE(10) ,;
aItems[oBrw:nArrayAt, 4] ) }
:cEditPicture := "@E 9,999,999"
:nFootStrAlign := AL_RIGHT // ALINEA DATA FOOTER
:lTotal := .t. // PARA TOTALIZAR COL.
:nTotal := 0 // PARA TOTALIZAR COL.
:nFooterType := AGGR_SUM // PARA TOTALIZAR COL.
:nEditType := EDIT_GET
:bEditValid := { | oGet, oCol | mayorqcero( oGet:value() ) }
:bOnPostEdit := { | oCol, xVal, nKey | If( nKey <> VK_ESCAPE ,;
( oCol:value:= xVal ) , ) }
:bEditWhen := {|| !EMPTY( aItems[oBrw:nArrayAt, 1] ) }
END WITH
// COL.7 - TOTAL LINEA
WITH OBJECT oBrw:aCols[7]
:bStrData := {|| IIF( LEN( aItems ) = 0, SPACE(10) ,;
aItems[oBrw:nArrayAt, 7] ) }
* :bEditValue := {|| IIF( LEN( aItems ) = 0, SPACE(10) ,;
* aItems[oBrw:nArrayAt, 7] ) }
:cEditPicture := "@E 9,999,999.99"
:nFootStrAlign := AL_RIGHT // ALINEA DATA FOOTER
:lTotal := .t. // PARA TOTALIZAR COL.
:nTotal := 0.00 // PARA TOTALIZAR COL.
:nFooterType := AGGR_TOTAL // PARA TOTALIZAR COL.
END WITH
*oBrw:aCols[7]:lTotal := .t. // PARA TOTALIZAR COL.
*oBrw:aCols[7]:nTotal := 0.00 // PARA TOTALIZAR COL.
*oBrw:aCols[7]:nFooterType := AGGR_TOTAL // PARA TOTALIZAR COL.
oBrw:MakeTotals()
oBrw:Refresh()