Matrix CFL problem

Hello
I have a following problem:
I want to make one column in matrix editable and CFL(from OITM).
If I bind it with userdatasource, the chosen value cannot be changed later.
If I bind it with DBdatasource, when I choose the proper value in CFL, I get an error :Bad form Value.
I made very similar thing but not with columns(with form items) and then I could bind an item with EditText field and everything was cool.  edittext1 = (SAPbouiCOM.EditText)oItem.Specific;
But now I cannot convert a column to EditText object 
Anybody help me, please?

Could you send me more code to look for the problem?
Regards,
J:

Similar Messages

  • Query cfl problem in matrix

    hi all good morning.... i have one problem i assigned query cfl for matrix field. the value fetch based on header level.... the query fetch the data but its not show the CFL window..here i pasted my code
    Case "matvariant"
                            Select Case pVal.ColUID
                                Case "Col_Colour"
                                    Select Case pVal.EventType
                                        Case SAPbouiCOM.BoEventTypes.et_GOT_FOCUS
                                            Dim oForm As SAPbouiCOM.Form = gonAppApplication.Forms.Item("VARAINT")
                                            Dim sQuery As String = "SELECT  T1.[U_U_COLOR] FROM [dbo].[@ITEMCOLOR_DETAIL]  T0 inner join [dbo].[@ITEMCOLOR_HEADER]  T1 on t0.docentry=t1.docentry WHERE T0.[U_Itmcode] !='' and T0.[U_Avail] ='y' and T0.[U_Itmcode] = '" & oForm.Items.Item("txticode").Specific.Value & "'"
                                           oGeneral.SetConditionToCFL1(oForm, "COLITEMCFL1", "U_ID", sQuery)
                                                                               Case SAPbouiCOM.BoEventTypes.et_CHOOSE_FROM_LIST
                                            Dim bonCflEvents As SAPbouiCOM.ChooseFromListEvent
                                            Dim bonDTTable As SAPbouiCOM.DataTable
                                            Dim bonCflList As SAPbouiCOM.ChooseFromList
                                            Dim bnnstrUID As String
                                            bonCflEvents = pVal
                                            bnnstrUID = bonCflEvents.ChooseFromListUID
                                            bonDTTable = bonCflEvents.SelectedObjects
                                            bonCflList = lonConvForm.ChooseFromLists.Item(bnnstrUID)
                                            If Not (bonDTTable Is Nothing) Then
                                                If bonCflList.UniqueID = "COLITEMCFL1" Then
                                                    gonMatConvMatrix.GetLineData(pVal.Row)
                                                    gonMatConvMatrix.GetLineData(pVal.Row)
                                                    lonDetailDatasource.SetValue("U_Col_COLOR", lonDetailDatasource.Offset, bonDTTable.GetValue("U_COLOR_NAME", 0))
                                                    gonMatConvMatrix.SetLineData(pVal.Row)
                                                    If pVal.Row = gonMatConvMatrix.VisualRowCount Then
                                                        lonDetailDatasource.SetValue("U_Col_COLOR", lonDetailDatasource.Offset, "")
                                                        lonDetailDatasource.SetValue("U_Col_LENGTH", lonDetailDatasource.Offset, "")
                                                        lonDetailDatasource.SetValue("U_Col_WIDTH", lonDetailDatasource.Offset, "")
                                                        lonDetailDatasource.SetValue("U_Col_THICK", lonDetailDatasource.Offset, "")
                                                        lonDetailDatasource.SetValue("U_Col_SIZE", lonDetailDatasource.Offset, "")
                                                        lonDetailDatasource.SetValue("U_Col_Desc", lonDetailDatasource.Offset, "")
                                                        lonDetailDatasource.SetValue("U_Col_Price", lonDetailDatasource.Offset, "")
                                                        lonDetailDatasource.SetValue("LineId", lonDetailDatasource.Offset, pVal.Row + 1)
                                                        gonMatConvMatrix.AddRow()
                                                        gonMatConvMatrix.SetLineData(pVal.Row + 1)
                                                        gonMatConvMatrix.FlushToDataSource()
                                                    End If
                                                Else
                                                End If
                                            End If
                                    End Select
                            End Select
    Edited by: narain.balan on Oct 26, 2010 7:02 AM

    Hi
    Please post the function code  oGeneral.SetConditionToCFL1(oForm, "COLITEMCFL1", "U_ID", sQuery)
    I think the problem is with choose from list condition.
    Regards
    Arun

  • Hi expert , cfl problem in matrix

    Hi friend,
    i am added two cfl in user form but first cfl working fine but when i using second cfl it bind same value in the seconf row also.
    Regards
    Rajkumar Gupta

    thanks for reply
         ElseIf (pVal.ItemUID = "38") And (pVal.ColUID = "ItemCode") And pVal.EventType = SAPbouiCOM.BoEventTypes.et_CHOOSE_FROM_LIST Then
                        Dim oCFLEvento As SAPbouiCOM.IChooseFromListEvent
                        oCFLEvento = pVal
                        Dim sCFL_ID As String
                        sCFL_ID = oCFLEvento.ChooseFromListUID
                        Dim oForm As SAPbouiCOM.Form
                        oForm = SBO_Application.Forms.Item(FormUID)
                        Dim oCFL As SAPbouiCOM.ChooseFromList
                        oCFL = oForm.ChooseFromLists.Item(sCFL_ID)
                        If oCFLEvento.BeforeAction = False Then
                            Dim oDataTable As SAPbouiCOM.DataTable
                            oDataTable = oCFLEvento.SelectedObjects
                            If oDataTable Is Nothing Then
                                Exit Sub
                            End If
                            Dim Code As String = ""
                            Dim Name As String = ""
                            Dim cflValBefore As String = ""
                            Dim i As Integer = 0
                            Code = oDataTable.GetValue(0, 0)
                            Name = oDataTable.GetValue(1, 0)
                            Try
                                ' If (pVal.ItemUID = "38") And (pVal.ColUID = "ItemCode") Then
                                oMatrix = oForm.Items.Item("38").Specific
                                For i = 0 To oDataTable.Rows.Count - 1
                                    'cflValBefore = oForm.DataSources.DBDataSources.Item(0).GetValue("U_itemCode", oForm.DataSources.DBDataSources.Item(1).Offset)
                                    oForm.DataSources.DBDataSources.Item(1).SetValue("U_itemCode", oForm.DataSources.DBDataSources.Item(1).Offset, oDataTable.GetValue("ItemCode", 0))
                                    oForm.DataSources.DBDataSources.Item(1).SetValue("U_ItemDec", oForm.DataSources.DBDataSources.Item(1).Offset, oDataTable.GetValue(1, 0))
                                    'oForm.DataSources.DBDataSources.Item(1).SetValue("U_BOM", oForm.DataSources.DBDataSources.Item(1).Offset, oDataTable.GetValue("ItemCode", 0))
                                    'oForm.DataSources.DBDataSources.Item(1).SetValue("U_ProdO", oForm.DataSources.DBDataSources.Item(1).Offset, oDataTable.GetValue("ItemCode", 0))
                                    cflValBefore = oForm.DataSources.DBDataSources.Item(1).GetValue("U_itemCode", oForm.DataSources.DBDataSources.Item(1).Offset)
                                    If oForm.Mode <> SAPbouiCOM.BoFormMode.fm_ADD_MODE Then
                                        If cflValBefore <> oForm.DataSources.DBDataSources.Item(1).GetValue("U_itemCode", oForm.DataSources.DBDataSources.Item(1).Offset) Then oForm.Mode = SAPbouiCOM.BoFormMode.fm_UPDATE_MODE
                                        If cflValBefore <> oForm.DataSources.DBDataSources.Item(1).GetValue("U_ItemDec", oForm.DataSources.DBDataSources.Item(1).Offset) Then oForm.Mode = SAPbouiCOM.BoFormMode.fm_UPDATE_MODE
                                    End If
                                    ''For Bom
                                    If Trim(cflValBefore) <> "" Then
                                        If CheckBOM(Trim(cflValBefore)) = True Then
                                            oForm.DataSources.DBDataSources.Item(1).SetValue("U_BOM", oForm.DataSources.DBDataSources.Item(1).Offset, CStr(oDataTable.GetValue("ItemCode", 0)))
                                        Else
                                            oForm.DataSources.DBDataSources.Item(1).SetValue("U_BOM", oForm.DataSources.DBDataSources.Item(1).Offset, "")
                                            ItemcodeProduction = cflValBefore
                                        End If
                                    End If
                                    ''For Production Order
                                    If Trim(cflValBefore) <> "" And Docnum <> "" Then
                                        Dim check As String = CheckPO(Trim(cflValBefore), Docnum)
                                        If check <> "" Then
                                            oForm.DataSources.DBDataSources.Item(1).SetValue("U_ProdO", oForm.DataSources.DBDataSources.Item(1).Offset, CStr(check))
                                        Else
                                            oForm.DataSources.DBDataSources.Item(1).SetValue("U_ProdO", oForm.DataSources.DBDataSources.Item(1).Offset, "")
                                            ItemcodeProduction = cflValBefore
                                        End If
                                    End If
                                    oMatrix.SetLineData(pVal.Row)
                                Next
                                ' End If
                                ' SetInitialDataWorkOrder()
                            Catch ex As Exception
                                'MsgBox(ex.Message)
                                ShowErrMsg(" Event Error et_CHOOSE_FROM_LIST: 38 matrix " & ex.Message)
                            End Try
                        End If ' BeforeAction
                    ElseIf (pVal.ItemUID = "38") And (pVal.ColUID = "LPO") And pVal.EventType = SAPbouiCOM.BoEventTypes.et_CHOOSE_FROM_LIST Then
                        Dim oCFLEvento As SAPbouiCOM.IChooseFromListEvent
                        oCFLEvento = pVal
                        Dim sCFL_ID As String
                        sCFL_ID = oCFLEvento.ChooseFromListUID
                        Dim oForm As SAPbouiCOM.Form
                        oForm = SBO_Application.Forms.Item(FormUID)
                        Dim oCFL As SAPbouiCOM.ChooseFromList
                        oCFL = oForm.ChooseFromLists.Item(sCFL_ID)
                        If oCFLEvento.BeforeAction = False Then
                            Dim oDataTable As SAPbouiCOM.DataTable
                            oDataTable = oCFLEvento.SelectedObjects
                            If oDataTable Is Nothing Then
                                Exit Sub
                            End If
                            Dim Code As String = ""
                            Dim Name As String = ""
                            Dim cflValBefore As String = ""
                            Dim i As Integer = 0
                            Code = oDataTable.GetValue(0, 0)
                            '  Name = oDataTable.GetValue(1, 0)
                            Try
                                ' If (pVal.ItemUID = "38") And (pVal.ColUID = "ItemCode") Then
                                oMatrix = oForm.Items.Item("38").Specific
                                For i = 0 To oDataTable.Rows.Count - 1
                                    cflValBefore = oForm.DataSources.DBDataSources.Item(1).GetValue("U_ProdO", oForm.DataSources.DBDataSources.Item(1).Offset)
                                    oForm.DataSources.DBDataSources.Item(1).SetValue("U_ProdO", oForm.DataSources.DBDataSources.Item(1).Offset, oDataTable.GetValue("DocNum", 0))
                                    oForm.DataSources.DBDataSources.Item(1).SetValue("U_OrderD", oForm.DataSources.DBDataSources.Item(1).Offset, oDataTable.GetValue("PostDate", 0))
                                    'oForm.DataSources.DBDataSources.Item(1).SetValue("U_DueDate", oForm.DataSources.DBDataSources.Item(1).Offset, oDataTable.GetValue("DueDate", 0))
                                    oForm.DataSources.DBDataSources.Item(1).SetValue("U_Status", oForm.DataSources.DBDataSources.Item(1).Offset, oDataTable.GetValue("Status", 0))
                                    If oForm.Mode <> SAPbouiCOM.BoFormMode.fm_ADD_MODE Then
                                        If cflValBefore <> oForm.DataSources.DBDataSources.Item(1).GetValue("U_ProdO", oForm.DataSources.DBDataSources.Item(1).Offset) Then oForm.Mode = SAPbouiCOM.BoFormMode.fm_UPDATE_MODE
                                        If cflValBefore <> oForm.DataSources.DBDataSources.Item(1).GetValue("U_OrderD", oForm.DataSources.DBDataSources.Item(1).Offset) Then oForm.Mode = SAPbouiCOM.BoFormMode.fm_UPDATE_MODE
                                        ' If cflValBefore <> oForm.DataSources.DBDataSources.Item(1).GetValue("U_DueDate", oForm.DataSources.DBDataSources.Item(1).Offset) Then oForm.Mode = SAPbouiCOM.BoFormMode.fm_UPDATE_MODE
                                        If cflValBefore <> oForm.DataSources.DBDataSources.Item(1).GetValue("U_Status", oForm.DataSources.DBDataSources.Item(1).Offset) Then oForm.Mode = SAPbouiCOM.BoFormMode.fm_UPDATE_MODE
                                    End If
                                    oMatrix.SetLineData(pVal.Row)
                                Next
                                ' End If
                                'SetInitialDataWorkOrder()
                            Catch ex As Exception
                                'MsgBox(ex.Message)
                                ShowErrMsg(" Event Error et_CHOOSE_FROM_LIST: 38 matrix LPO " & ex.Message)
                            End Try
                        End If ' BeforeAction
                    ElseIf pVal.ItemUID = "1" And pVal.EventType = SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED And pVal.BeforeAction = True Then 'And pVal.BeforeAction = False Then
                        Dim oQty As SAPbouiCOM.EditText
                        Dim oBOM As SAPbouiCOM.EditText
                        Dim oDueDate As SAPbouiCOM.EditText
                        Dim oLPO As SAPbouiCOM.EditText
                        Dim oForm As SAPbouiCOM.Form
                        oForm = SBO_Application.Forms.Item(FormUID)
                        oMatrix = oForm.Items.Item("38").Specific
                        If oForm.Mode = SAPbouiCOM.BoFormMode.fm_ADD_MODE Or oForm.Mode = SAPbouiCOM.BoFormMode.fm_UPDATE_MODE Or oForm.Mode = SAPbouiCOM.BoFormMode.fm_OK_MODE Then
                            ' If pVal.ActionSuccess = True Then
                            Dim ctr As Integer = 1
                            If oMatrix.VisualRowCount >= 1 Then
                                For ctr = 1 To oMatrix.VisualRowCount
                                    oQty = colQtyWO.Cells.Item(ctr).Specific
                                    oBOM = colLBOM.Cells.Item(ctr).Specific
                                    oDueDate = colDueDate.Cells.Item(ctr).Specific
                                    'Dim wo As SAPbouiCOM.EditText
                                    'wo = oMatrix.Columns.Item("LPO").Cells.Item(ctr).Specific
                                    'code for update the table uin number
                                    oLPO = oMatrix.Columns.Item("LPO").Cells.Item(ctr).Specific
                                    Dim proorder As String = ProductionOrder(oQty.Value, oBOM.Value, CDate(oDueDate.Value))
                                    'oLPO.Value = ProductionOrder(oQty.Value, oBOM.Value, CDate(oDueDate.Value))
                                    If proorder <> "" Then
                                        'oLPO = oMatrix.Columns.Item("LPO").Cells.Item(pVal.Row).Specific
                                        'oLPO.Value = ProductionOrder(oQty.Value, oBOM.Value, CDate(oDueDate.Value))
                                        UpdateForm(proorder, Docnum)
                                        ItemcodeProduction = ""
                                        QtyProduction = ""
                                    End If
                                Next
                            End If
                            'End If ' action close
                        End If 'mode close
                        'ProductionOrder(10, "A00001")

  • Can you help me to solve this matrix filling problem?

    Hi,
    I need to fill a matrix column. this is the description briefly.
    1.This is my binding
    oForm.DataSources.UserDataSources.Add("usr_col5", SAPbouiCOM.BoDataType.dt_DATE, 50);
    oColumn = oColumns.Add("Col5", SAPbouiCOM.BoFormItemTypes.it_EDIT);
                    oColumn.Description = "Konteringsdato";
                    oColumn.TitleObject.Caption = "Konteringsdato";
                    oColumn.DataBind.SetBound(true, "", "usr_col5");
                    oColumn.Width = 89;
                    oColumn.Editable = false;
    2.I am going to fill this column using record set's field. all of the other column's fillings are ok.but problem is here
    oForm.DataSources.UserDataSources.Item("usr_col5").Value = oRs.Fields.Item("DocDate").Value.ToString();
    I think there should be a casting instead of of using ToString(). But i couldn't able to do it. So please help me.

    Hi,
    you can try once to set
    ((SAPbouiCOM.EditText)((SAPbouiCOM.Matrix)(oForm.Items.Item("mtxItemUID").Specific)).Columns.Item("Col5").Cells.Item(cellnumber).Specific).String = oRs.Fields.Item("DocDate").Value.ToString();
    or
    ((SAPbouiCOM.EditText)((SAPbouiCOM.Matrix)(oForm.Items.Item("mtxItemUID").Specific)).Columns.Item("Col5").Cells.Item(cellnumber).Specific).Value = oRs.Fields.Item("DocDate").Value.ToString();
    regards
    David

  • Matrix addrow problem

    I want to enter some value in a matrix
    I enbled matrix with
    oMatrix.AddRow()
    but problem is
    that - when I am inputing data in matrix fields , after pressing tab the value disappears
    how can I resolve the problem?

    thts because your matrix's columns are not bound with any user or DB datatsource. alternatively , you will have to bind it with the columns of table to which you are saving the data.
    regards,
    Binita

  • Group Matrix Report Problem

    when i build a group matrix report ,i only able to get the summary totals of columns (in the cross product ) at group level,but fail to get the summary totals of columns (in the cross product) at report level.So please tell me , how can i achieve this one?

    Dear Waheed....I think u just have to set property of summary column
    'Reset at = Report'
    I this does'nt work then u should explain ur problem.
    Kashif

  • Crystal Repoorts 2008 W2008R2 Dot Matrix Printing Problems

    Using CR2008 running on Windows Server 2008R2 - printing toLexMark 2580n dot matrix printers.
    I have developed reports that print correctly WHEN I call them up in Crystal Reports 2008 and print them from that application. If I call that same report from within a Visual Studio application, it does not print at all as expected (or desired!!). Similarly, I cannot get other reports to print correctly running directly out of Crystal yet if I call them from the Visual Studio application it does work/behave.
    Also, I have some label reports that are printing to a 3.5"W x 2.0"H size (I created a custom label like usual in printer server properties) that behave when I run them directly from Crystal but consistently print out vertically (90 degrees to the right) when I run it from Visual Studio. It's maddeming. I tested the reports when I first purchased CR2008 to make sure it would run on W2008R2 Server (and it did work). Did not see this problem coming. Any assistance would be helpful.
    FYI I am printing to LexMark 2580n dot matrix, brand new printers (had to purchase these to make drivers work on W2008R2). LexMark has effectively (to my satisfaction) ruled out their printers as the problem.
    Any advice would be greatly appreciated.

    Links to SP 4:
    SP4     https://smpdl.sap-ag.de/~sapidp/012002523100008782452011E/cr2008sp4.exe
    SP4 MSI     https://smpdl.sap-ag.de/~sapidp/012002523100008782532011E/cr2008sp4_redist.zip
    SP4 MSM     https://smpdl.sap-ag.de/~sapidp/012002523100008782522011E/cr2008sp4_mm.zip
    Ludek

  • UDO + Matrix + CFL

    Hi,
    How can put to work together a matrix that links to an UDO that works with two user defined tables (a header and a detail), and a CFL two select values from the item table to put after in the matrix and update the UOD (and the table).
    In Screen Painter I put the references, in the matrix, to the detail user table. By code I put the CFL and all works fine. But when I put the values from the CFL in the row's matrix, seems that the matrix loose the original DataSource instead the DataSource from the CFL.
    Anybody knows how put to work this three objects together.
    Thanks in advance,
    Oscar S.M.

    Hi
    Seems that you have to control the values you are passing from and to the CFL.  You can do this by using the SAPbouiCOM.BoEventTypes.et_CHOOSE_FROM_LIST event.  Also, try to evaluate the value of the cell on the lost_focus or validate event.
    Does the value has any special formatting (such as serial number or gl account number)?
    There's a sample on the SDK , C:\Program Files\SAP\SAP Business One SDK\Samples\COM UI\VB.NET\17.ChooseFromList that deals with assigning values to a control on the event!
    Hope it helps

  • Udo matrix -save problem

    Hi,
    i am creating a form by using UDO form generator.
    in that documet and doucument rows are existed. if user select the combobox value from the form, by taking that value and i am generating a query, i am generating a recordset. by using Userdatasources i am binding each column in matrix.
    i binded all values to the matrix successfully. but
    but when i press Add button, this matrix rows are not getting saved. and also if i have two rows, when i press add, in database only one row is adding with NULL values. how to save that matrix data?
    please help me urgent
    asap
    regards,
    nagababu

    I believe this is a duplicate of
    Udo matrix rows saving problem
    Pls read the guidelines. Don't duplicate requests, this just cause confusion and
    inefficiency in the forum. And pls remember that this is a community of very very
    busy developers, each of them with his/her "urgencies" ....

  • CFL Problem

    hi,
            i hav created a exe file for my project.......when i run my project in client machine,in the addon when i click * & press enter in the CFL the records are invisible but the s.no for the records is displaying.....can anyone pls help me for this problem....actually the data is there in CFL but it's invisible.

    Dear dileep varma 
    While setting a column width to 0 - the column becomes unvisible
    (regardless the value in the visible property).
    For some columns, the value in the width field is 0 and as a result the
    columns are invisible in the form.
    Therefore, In order to be able to view those columns, the width should
    be updated with the following code:
      'change the width of all the visible items
      For i = 0 To oColsPreferences.Count - 1
          'check if the item is visible
          If oColsPreferences.Item(i).VisibleInForm = BoYesNoEnum.tYES Then
              'set the width of the item
              oColsPreferences.Item(i).Width = 100
          End If
    Next

  • Option + Drag notes in Matrix editor problem

    I cant say when this started but at some point holding option while dragging a note to copy it stopped working as expected. Basically I want to copy a note in the matrix editor and I want it to go where I drag it (am I asking too much?). Right now as soon as I drop the note in the desired position it jumps forward several beats. Did I do something that changed the way the option key works? If I just drag the note without holding option the note goes where I want it. But as soon as I option + drag. I get this wackyness!! its hugely frustrating! Thanks in advance for any help.

    Well I have a workaround now but am still confused. I discovered that if I click the little button "featuring a square graphic" in the upper left corner of my matrix window (manual says its called the "Up One Display Level button—or
    UDL button"), it fixes the problem... for that matrix edit window only. As soon as I close it and reopen it (by double clicking on a midi region) it goes back into crazy freak **** mode. Something else I noticed is that when I reopen the matrix editor window the little screen read out area (that displays the notes etc under Edit/Functions/View) says "sel 1" right above the notes etc. It says this when its in crazy freak **** mode. When I click the UDL button it changes from "sel 1" to "1/AudioInst 1" which is the instrument for the midi Im working on. So how do I get crazy freak **** mode to stop messing up my matrix editor windows? Its great to have a workaround but its a pain in the butt to have to remember to push this button ( that I never needed to push before) so I can properly option+drag a midi note. I tried reading the manual about this button but I just dont get what its for (other than turning off freak **** mode). And I forgot to mention my logic version before: Logic version 7.2.1 (959.30) Thanks again in advance if you can help me:)

  • Printing using dot matrix printer,problem with landscape printing

    Hi all,
    We are planning to use Dot matrix printers for printing through SAP.We do front end printing using Windows OS. I am able to get prints properly if it is a script form. In case of list outputs, printer is printing the text outside the paper.Only half of the text is printing on the continuous stationary. Actually document is to be printed in Landscape format. So printer should print data vertically on the paper,but it's printing horizontally. I have created sparate output device for this printer.My printer is TVS Electronics HD745 24 Pin heavy duty printer. I have assigned OKI341 as device type for this device.Any more settings I need to do to get printing in landscape mode?

    closing thread

  • Matrix-binding problem

    Hi,
    I created one UDO form.
    in that i am trying to fill the matrix with recordset.
    becoz i am selecting the value from combobox and i run the query with this value.
    so this resultant record set i want to fill in matrix rows.
    oForm = SBO_Application.Forms.Item("JBWISSUES_")
    oItem = oForm.Items.Item("mtx_0")
    oMatrix = oItem.Specific
    oColumns = oMatrix.Columns
    'frm = app.Forms.ActiveForm
    'oMat = frm.Items.Item("gd_act").Specific
    'oMatrix.Clear()
    oComboBox = oForm.Items.Item("27").Specific
    ds = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
    ds.DoQuery("select a.code as Code,b.Itemname as Desc1,a.quantity as Quantity from itt1 a,oitm b where a.code=b.Itemcode and a.code='" & oComboBox.Selected.Value & "'")
    ds.MoveFirst()
    oColumn = oColumns.Item("col_0")
    For i = 0 To ds.RecordCount - 1
    oColumn.ValidValues.Add(ds.Fields.Item("Code").Value, ds.Fields.Item("Desc1").Value)
    ds.MoveNext()
    Next
    oMatrix.AddRow()
    here i am getting error like Object reference not set to instance error at oColumn.validvalues....... plz hel p me in that.
    Regards,
    Ravi

    Hai Ravi,
                U try this coding..........Write the function to fill the matrix with combo and then call this function in combo select event........
    Sub LoadGridCombo()
            Dim oMat As SAPbouiCOM.Matrix
            Dim oCol As SAPbouiCOM.Column
            Dim oCmb As SAPbouiCOM.ComboBox
            Dim ds As SAPbobsCOM.Recordset
            Dim i As Integer
            Try
                frm = app.Forms.ActiveForm
                oMat = frm.Items.Item("gd_act").Specific
                oMat.Clear()
                oCmb = frm.Items.Item("cmb_dept").Specific
                ds = com.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
                ds.DoQuery("Select Code,U_Activity from [@PLANT_ACTIVITY] where U_dept='" & oCmb.Selected.Value & "'")
                ds.MoveFirst()
                oMat = frm.Items.Item("gd_act").Specific
                oCol = oMat.Columns.Item("g_act")
                If oCol.ValidValues.Count > 0 Then
                              For i = 0 To ds.RecordCount - 1
                    oCol.ValidValues.Add(ds.Fields.Item(0).Value, ds.Fields.Item(1).Value)
                    ds.MoveNext()
                Next
    End If
                oCol = oMat.Columns.Item("g_freq")
                If oCol.ValidValues.Count = 0 Then
                    oCol.ValidValues.Add("1", "Annually")
                    oCol.ValidValues.Add("2", "Semi Annually")
                    oCol.ValidValues.Add("3", "Quarterly")
                End If
                oMat.AddRow()
            Catch ex As Exception
                app.MessageBox(ex.Message)
            End Try
        End Sub
    Regards,
    Anitha

  • Matrix Report Problem in Oracle Apps

    Hii All,
    I have created a matrix report in Orace Application using Oracle 6i. It running properly in Report 6i. But after registering in Oracle Apps,
    It does not shows any output.
    Database 10g
    Report 6i
    EBS Oracle 11i
    Thanks
    PS

    Hi PS
    Please check below links:
    How to create a matrix report
    How to create a matrix report
    how to build matrix report
    how to build matrix report
    Oracle Reports Building Reports
    http://download.oracle.com/docs/html/B10602_01/part4.htm
    Regard
    Helios

  • 2D Matrix, Compacting problem

    Hi!
    I'm about to implement a matrix class that need som kind of "compacting" support, meaning:
    If the the following matrix (3x4) is compacted:
    [1][0][2][8]
    [7][0][3][9]
    [0][0][0][0]
    The resulting matrix (2x3)would be:
    [1][2][8]
    [7][3][9]
    Column 2 will be removed since it's empty (only zeros)
    and row 3 will be removed as well sinces its empty.
    I've tried a number of solutions, but they are all inneficient and/or cumbersome.
    I'm thinking like this:
    Find out which rows and columns should be removed.
    Create a new matrix with the new size, and iterate over the first matrix copying the values.
    Any ideas that come to mind?
    What about choice of datastructure?
    Is the best I can do to use a long[][] or maybe a
    combination of Lists of some sort?
    Any ideas for the algorithm?
    Oh, the size of the matrix will in most of the times be around 80x80 to maybe 120x120 (not necessarily same rowcount as colcount)
    And it must support getting/adding at specific cells, because of the way it's filled with values (from database)
    / Ronnie

    Find out which rows and columns should be removed.Well, that's easy. Two arrays of booleans, initially all false, iterate through the entire matrix setting appropriate booleans to true if you find a non-zero element.
    Create a new matrix with the new size, and iterate over the first matrix copying the values.Convert each array of booleans into an array of ints, which are the subscripts of the boolean arrays which were true. E.g. {f, t, ,t f, t} -> {1, 2, 4}.
    The sizes of these arrays give the matrix size. Two nested loops to copy elements across.

Maybe you are looking for