Saludos, nose si me estoy enrrollando solo o cometiendo una burrada, tengo un xBrowse con 2 campos de un Query usando TDolphin, hasta alli todod bien, pero necesito agregar una columna de un campo que no es del Query, es decir es un campo LOCAL, asi que adicione la columna al final para luego usarla de edicion, cambiar el valor inicial que es cero y luego los registros que tengan este campo LOCAL mayor a cero los voy enviar a un ARRAY, el detalle esta que cuando edito el campo LOCAL los valores de toda la columna cambian al valor entrado, como hago para que solo me tome el valor entrado ese campo y no los demas, algo estoy haciendo mal pero a las 2am, ya uno casi ni ve, cualquier ayuda o sugerencia, BIENVENIDA ES, aca dejo como defino el xbrowse, gracias y saludos...
LOCAL nMontoG, aCampos
// BRW GASTOS NO COMUNES
aCampos := {"gas_codigo", "gas_nombre"}
oBrow := TXBrowse():New( oDlg )
WITH OBJECT oBrow
:SetDolphin( oQryG, .f., .t., aCampos )
:nMarqueeStyle := MARQSTYLE_HIGHLROWMS // sin MS es seleccion normal
:nColDividerStyle := LINESTYLE_BLACK
:nStretchCol := STRETCHCOL_LAST
:lColDividerComplete := .t.
:bRClicked := { || msginfo( "pulsastes boton derecho..." ) } // LLAMA MENU-POPUP CON BOTON DERECHO
: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.
:nHeaderHeight := 30
:l2007 := .t.
:lFooter := .t.
:lRecordSelector := .t.
:bClrStd := {|| IF( oQryG:RecNo() % 2 == 0, {CLR_BLACK, CLR_WHITE}, {0, RGB(203,226,254)} ) }
*oBrw:Married:SetCheck( , .t. )
* :lCheck:SetCheck( ,.t. )
* :bKeyDown := {|nKey| IIF( nkey == 13 ,; // Si Pulsa ENTER
* ( alert("seleccionado") ), ) }
:bLDblClick := {|| ( IIF( lCheck == .f., lCheck := .t., lCheck := .f. ) ,;
oBrow:REFRESH() ) }
:lFastEdit := .t.
END WITH
oCol := oBrow:AddCol() // COL.PARA USAR CHECKBOX
oCol:cHeader := "Sel"
oCol:bStrData := {|| lCheck }
* oCol:SetCheck()
oCol:nHeadStrAlign := AL_CENTER
oCol:nDataStrAlign := AL_CENTER
oCol:nWidth := 30
oCol := oBrow:AddCol()
oCol:cHeader := "Código Gasto"
oCol:bStrData := {|| IIF( oQryG:LastRec() > 0 ,;
oQryG:gas_codigo, SPACE(10) ) }
oCol:nHeadStrAlign := AL_CENTER
oCol:nDataStrAlign := AL_LEFT
oCol:nWidth := 70
oCol:bLClickHeader:= {|| alert("click cabecera...") }
oCol := oBrow:AddCol()
oCol:cHeader := "Nombre del Gasto"
oCol:bStrData := {|| IIF( oQryG:LastRec() > 0 ,;
oQryG:gas_nombre, SPACE(10) ) }
oCol:nHeadStrAlign := AL_CENTER
oCol:nDataStrAlign := AL_LEFT
oCol:nWidth := 250
oCol := oBrow:AddCol() // COL.PARA MONTO DEL GASTO
oCol:cHeader := "Monto"
* oCol:bStrData := {|| nMontoG }
oCol:cEditPicture := "@E 9,999,999,999.999" // para totalizar col.
oCol:nEditType := EDIT_GET
oCol:bEditValue := {|| nMontoG }
oCol:bOnPostEdit := { | oCol, xVal | nMontoG := xVal }
* oCol:bOnPostEdit = { | oCol, xVal, nKey | If( nKey == VK_RETURN, oCol:Value := xVal, ) }
oCol:nHeadStrAlign := AL_CENTER
oCol:nDataStrAlign := AL_RIGHT
oCol:nFootStrAlign := AL_RIGHT // ALINEA DATA FOOTER
oCol:lTotal := .t. // para totalizar col.
oCol:nTotal := 0 // para totalizar col.
oCol:nFooterType := AGGR_SUM // para totalizar col.
oCol:nWidth := 80
oBrow:CreateFromResource(102)
oBrow:MakeTotals()