Saludos, tengo creado un xbrowse con data de una consulta Mysql con TDolphin, las primeras 4 columnas, 1 es numero de filas del xbrw y las 3 siguiente son campos de la consulta(tabla), luego adiciono una 5ta. columna que inicializo sus valores con ceros, pero que debo reemplazarlos basado en operaciones posteriores, en otra funcion trato de actualizar esta 5ta. columna con oBrw:aArrayData[oBrw:nArrayAt, 5] := xValor, pero me da error, tambien intente con oBrw:aCols[5]:Value := xValor, tambien error.
La pregunta de las mil lochas es: puedo o no modificar el valor de la 5ta.columna que no es de un campo de la consulta o estoy inventando loquera.? por los momentos lo resolvi cambiando el xBrw a un array en vez de un Qry, pero es mas trabajo y lo necesito con el Qry. Espero sus comentarios y sugerencias, dejo el codigo del xBrw, gracias, saludos...
- Code: Select all Expand view
aCampos := {"productos_id", "productos_nombre", "productos_pvp"}
oBrwMenu := TXBrowse():New( oDlg )
WITH OBJECT oBrwMenu
:SetDolphin( oQryPro, .t., .t., aCampos )
:nMarqueeStyle := MARQSTYLE_HIGHLROW
:nColDividerStyle := LINESTYLE_BLACK
:lAllowColSwapping := .f.
:lAllowColHiding := .f.
:lColDividerComplete := .t.
:nHeaderHeight := 30
:l2007 := .t.
:lFooter := .f.
:lRecordSelector := .t.
:bClrStd := {|| IF( oQryPro:RecNo() % 2 == 0, {0, RGB(255, 255, 255)} ,;
{0, RGB(203,226,254)} ) }
:bLDblClick := {|| add_producto_pedido( oQryPro, oBrwPed, aVarPed, aGetPed, aVar, oBrwMenu ) ,;
aVar[2] := 1, aGet[2]:REFRESH(), oBrwPed:SETFOCUS() }
:bKeyDown := {|nKey| IF( nKey == VK_RETURN ,;
( add_producto_pedido( oQryPro, oBrwPed, aVarPed, aGetPed, aVar, oBrwMenu ), aVar[2] := 1 ,;
aGet[2]:REFRESH(), oBrwPed:SETFOCUS() ), ) }
END WITH
ADD TO oBrwMenu AT 1 DATA StrZero( oBrwMenu:KeyNo(), 2 )
oBrwMenu:aCols[1]:cHeader := "Reg."
oBrwMenu:aCols[1]:nHeadStrAlign := AL_CENTER
oBrwMenu:aCols[1]:nDataStrAlign := AL_CENTER
oBrwMenu:aCols[1]:nWidth := 30
oBrwMenu:aCols[2]:cHeader := "Código"
oBrwMenu:aCols[2]:bStrData := {|| IIF( oQryPro:LastRec() = 0, SPACE(10) ,;
STRZERO( oQryPro:productos_id, 5 ) ) }
oBrwMenu:aCols[2]:nHeadStrAlign := AL_CENTER
oBrwMenu:aCols[2]:nDataStrAlign := AL_CENTER
oBrwMenu:aCols[2]:nWidth := 60
oBrwMenu:aCols[3]:cHeader := "Nombres del Producto"
oBrwMenu:aCols[3]:bStrData := {|| IIF( oQryPro:LastRec() = 0, SPACE(10) ,;
oQryPro:productos_nombre ) }
oBrwMenu:aCols[3]:nHeadStrAlign := AL_CENTER
oBrwMenu:aCols[3]:nDataStrAlign := AL_LEFT
oBrwMenu:aCols[3]:nWidth := 255
oBrwMenu:aCols[4]:cHeader := "PVP"
oBrwMenu:aCols[4]:bStrData := {|| IIF( oQryPro:LastRec() = 0, SPACE(10) ,;
TRANS( oQryPro:productos_pvp, "@E 99,999.99" ) ) }
oBrwMenu:aCols[4]:nHeadStrAlign := AL_CENTER
oBrwMenu:aCols[4]:nDataStrAlign := AL_RIGHT
oBrwMenu:aCols[4]:nWidth := 70
[b]// COLUMNAS ADICIONALES, 5TA.COLUMNAS QUE QUIERO CAMBIAR SU VALOR DINAMICAMENTE...[/b]
oCol := oBrwMenu:AddCol()
oCol:cHeader := "Tot.PVP"
oCol:bStrData := {|| IIF( oQryPro:LastRec() = 0, SPACE(10) ,;
TRANS( 0, "@E 99,999.99" ) ) }
oCol:nHeadStrAlign := AL_CENTER
oCol:nDataStrAlign := AL_RIGHT
oCol:nWidth := 70
//
oCol := oBrwMenu:AddCol()
oCol:cHeader := "Ing"
oCol:nHeadStrAlign := AL_CENTER
oCol:AddResource( "PRODUC16" ) // MUESTRA BMP CON DATA
oCol:nBtnBmp := 1 // COLOCA IMAGEN AL BOTON
oCol:nEditType := EDIT_BUTTON // BOTON EN LA MISMA DATA
oCol:bEditBlock := { | oCol | select_ingre_menu( aVar, aGet, oQryPro, oBrwIP ) } // ACCION A REALIZAR PULSAR BOTON
oCol:nWidth := 25
oCol:cToolTip := "Pulse Boton para Ingredientes"
//
oCol := oBrwMenu:AddCol()
oCol:cHeader := "Add"
oCol:nHeadStrAlign := AL_CENTER
oCol:AddResource( "SUMAR16" ) // MUESTRA BMP CON DATA
oCol:nBtnBmp := 1 // COLOCA IMAGEN AL BOTON
oCol:nEditType := EDIT_BUTTON // BOTON EN LA MISMA DATA
oCol:bEditBlock := { | oCol | add_producto_pedido( oQryPro, oBrwPed, aVarPed, aGetPed, aVar, oBrwMenu ) } // ACCION A REALIZAR PULSAR BOTON
oCol:nWidth := 25
oCol:cToolTip := "Pulse Boton para Agregar este Producto"
oBrwMenu:CreateFromResource(100)