Skip to Content
Former Member
Jul 18, 2005 at 10:58 AM

Linked button in a matrix



We are trying to add a linked button to a matrix.

First of all we tried to add it by xml, but we haven't had luck. this is the xml piece of code:

<column AffectsFormMode="1" backcolor="-1" description="" disp_desc="0" editable="0" font_size="12" forecolor="-1" right_just="0" text_style="0" title="Artículo" type="16" uid="art" val_off="" val_on="" visible="1" width="70">
   <databind alias="art" databound="1" table=""></databind>
   <ExtendedObject linkedObject="4"></ExtendedObject>

We have a datasource binded to this item and it works well, but the arrow doesn't appear.

The other option we tryed is to add it by code, but by now we haven't been able to add it in the correct place. We have only been able to show it in the last position of the matrix.

We have tried to assign an existing column to a column created by us and then link the linked button to it, but it doesn't work.

This is the code that adds the column in the last position (it works):

     Dim formPedido As SAPbouiCOM.Form
     Dim docxml As New XmlDocument
     Dim uid As String
     Dim str As String = docxml.InnerXml
     newformuid(uid, Aplicacion)
        docxml.SelectSingleNode("Application/forms/action/form/@uid").Value = uid
     Dim ParametrosCreacion As SAPbouiCOM.FormCreationParams = Aplicacion.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_FormCreationParams)
     ParametrosCreacion.XmlData = docxml.InnerXml
     ParametrosCreacion.FormType = "Pedido"
     ParametrosCreacion.BorderStyle = SAPbouiCOM.BoFormBorderStyle.fbs_Fixed
     ParametrosCreacion.UniqueID = uid
     formPedido = Aplicacion.Forms.AddEx(ParametrosCreacion)
     Dim matriz As SAPbouiCOM.Matrix
     Dim flecha As SAPbouiCOM.LinkedButton
     matriz = formPedido.Items.Item("lstoferta").Specific
     Dim columna As SAPbouiCOM.Column
     columna = matriz.Columns.Add("flecha", SAPbouiCOM.BoFormItemTypes.it_LINKED_BUTTON)
     columna.Width = 50
     columna.Editable = False
     flecha = columna.ExtendedObject
     columna.TitleObject.Caption = "Flecha"
     flecha.LinkedObject = SAPbouiCOM.BoLinkedObject.lf_Items
   With Aplicacion.Forms.ActiveForm.DataSources.UserDataSources
     Dim UDSchk As SAPbouiCOM.UserDataSource = .Add("chk", SAPbouiCOM.BoDataType.dt_SHORT_TEXT)
     Dim UDSarticulo As SAPbouiCOM.UserDataSource = .Add("art", SAPbouiCOM.BoDataType.dt_SHORT_TEXT, 20)
     Dim UDSctdPedido As SAPbouiCOM.UserDataSource = .Add("ped", SAPbouiCOM.BoDataType.dt_LONG_NUMBER)
   End With
     matriz = Aplicacion.Forms.ActiveForm.Items.Item("lstoferta").Specific
     matriz.Columns.Item("chk").DataBind.SetBound(True, "", "chk")
     matriz.Columns.Item("art").DataBind.SetBound(True, "", "art")
     matriz.Columns.Item("pedido").DataBind.SetBound(True, "", "pedido")

How can we do it with XML?

Message was edited by: Martin Garmendia