UDO-Choose From List

Hi;
I would appreciate if someone could tell me how to associate an UDO to a choose from list.
I have looked over the SDK example, but this is for standar SAP objects and I need to associate the choose from list to a customer object. 
Best regards

The choose from list (CFL) can be triggered from your edittext - there is some sample code in the DI API help file that shows this.  Have a look for 'Adding a choose from list object' in the help file.  Remember that where they set ObjectType="2", you should use the name of your UDO.
As can also be seen in the help file, CFL objects allow you to add conditions to determine what rows are displayed.  In the example it shows selecting only where CardType = 'C'.  The columns displayed can be tailored by the user at runtime, where they can select from any columns that are on your main UDO table.
There are a few limitations.  At present CFL's do not allow you to directly specify a SQL query.  Only data from the single table related to the 'ObjectType' is displayed.  If you want a more complex query that displays data from multiple tables when you press tab, a formatted search may be more powerful.  If you search the forums you should find one of my previous posts (probably about a year ago) where I showed how to link a formatted search to the tab keypress and have it behave in a very similar manner to a CFL.
John.

Similar Messages

  • Choose From List used in UDO (B1 2004)

    Hi,
    in the presentation "Creating a UDO of document type.pps" (slide 53+55) provided with the SDK 2004 they use the Choose From List to select business partners and/or items in their UDO form when adding a new document. Does anyone know, how this has to be done? The sample, from the presentation is not provided in the sample codes.
    Do I have to use an implementation DLL for my UDO to use this functionality?
    My problem is, that it takes too long (about 5 times longer than with the system CFL) to get all items in my custom defined matrix.
    thanks,
    Markus

    Hi Markus,
    You cannot use the built-in CFL in version 2004. It is only exposed from version 2005. The only suggestion is to look at optimizing your matrix. All CFLs in the system uses DB Datasources which makes populating the grid faster than using User data sources.
    Hope it helps,
    Adele

  • Choose From List From a UDT in SAP Business One 2005 A

    Hi All
    How to develop a Choose From List from a <b>User Defined Table</b> (not from System Tables) in SAP Business One 2005 A.
    I need the Choose From List should display the records stored in the UDT.
    Any Idea ?
    Thanks in Advance.
    Regards.
    Asutosh.

    Hi Asutosh,
    You can add a CFL to a User Defined Object, not a simple User Defined Table.
    In order to do it you only have to set the object type of the CFL to the code of your UDO.
    Here you have a simple:
    oCFLCPuo = SB1_App.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_ChooseFromListCreationParams)
    oCFLCPuo.ObjectType = "MY_UDO_CODE"
    oCFLCPuo.UniqueID = "UserObjectCFL"
    oCFLuo = oForm.ChooseFromLists.Add(oCFLCPuo)
    Hope it helps
    Trinidad.

  • Problem in Choose from list.

    Hi,
    As I tried CFL for a user defined form, when I select an item from CFL and it is displaying in the relevant field.  And when I save the data it is perfectly saving with the message of "Operation has been completed successfully".  But the data is not saving in the field in which is the CFL is activating. 
    It would be appreciated, if any one can give the solution please.
    The steps I' ve followed as,
    1.  In the screen painter I' ve added the choose from list thru' the collection folder.
    2.  Then the choose from list id is attached and give the allias in the item's specific property.
    3. Then I' ve written code in the load form function as follows.
                Oform.DataSources.UserDataSources.Add("EditDS", SAPbouiCOM.BoDataType.dt_SHORT_TEXT)
                txtaccode.DataBind.SetBound(True, "", "EditDS")
    4. In the item event
            If 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
                    Dim val As String
                    Dim val1 As String
                    Dim val2 As String
                    Dim val3 As String
                    Try
                        Try
                            val = oDataTable.GetValue(0, 0)
                            val1 = oDataTable.GetValue(1, 0)
                            If (pVal.ItemUID = "txtaccode") Then
                                oForm.DataSources.UserDataSources.Item("EditDS").ValueEx = val
                                txtaccode.Value = val
                                oForm.DataSources.UserDataSources.Item("EditDS1").ValueEx = val1
                            End If
                        Catch ex As Exception
                            Exit Sub 'For Exception raised for Cancel Button
                        End Try
                    Catch ex As Exception
                        SBO_Application.MessageBox(ex.Message)
                    End Try
                End If
            End If
        End Sub

    Checks if  the property TableName in the field is pointed to the table to store de data.
    Go to  Example: How to binding CFL  to a UDO in a customized System Form. and rate it
    regards

  • [SBO 2005] Choose from list on User Table

    Hi all,
    I need an information from the developper that already tried the SDK of BO 2005.
    Is it possible to create Choose from List on user tables ?
    I looked at the WebEx, there is no restriction about it, but when I tried in the demo, I can't figure out how to do it.
    Thanks for your help
    Sébastien

    Thank for your input Edward:
    I do have the sample, but it uses a system table (OCRD, Object Type=2)
    It seems that it works for system object or UDO, but not for simple user table. Am I right ?
    Sebastien

  • Associating a Custome ResultSet with a Choose From List

    Hi Experts,
    I have to Link the Chose from List with a UDO for accessing the records from the Parent Table /Child Table
    How to crack this problem?
    Also I have to associate the Results of a custom query in a choose from list so that when I press TAB over a Text Box I get a Choose From List which displays the Results and I could select one of those rows.
    Plz Hint me for this Problem

    Hello,
    When you create CFL, just set your UDO type with oCFLCreationParams.ObjectType = "My_UDO", the collumn to be displayed in CFL has been determined by Find Service in your UDO definition.
    As per custom query, actually you can set the condition to do so. Direct customed SQL is not supported in CFL. You may refer to the SDK sample for further info after you install SDK component:
    <<C:\Program Files\SAP\SAP Business One SDK\Samples\COM UI\VB.NET\17.ChooseFromList>>
    Private Sub AddChooseFromList()
            Try
                Dim oCFLs As SAPbouiCOM.ChooseFromListCollection
                Dim oCons As SAPbouiCOM.Conditions
                Dim oCon As SAPbouiCOM.Condition
                oCFLs = oForm.ChooseFromLists
                Dim oCFL As SAPbouiCOM.ChooseFromList
                Dim oCFLCreationParams As SAPbouiCOM.ChooseFromListCreationParams
                oCFLCreationParams = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_ChooseFromListCreationParams)
                ' Adding 2 CFL, one for the button and one for the edit text.
                oCFLCreationParams.MultiSelection = False
                'Just Set your UDO type.
                oCFLCreationParams.ObjectType = "My_UDO"
                oCFLCreationParams.UniqueID = "CFL1"
                oCFL = oCFLs.Add(oCFLCreationParams)
                ' Adding Conditions to CFL1
                oCons = oCFL.GetConditions()
                oCon = oCons.Add()
                oCon.Alias = "CardType"
                oCon.Operation = SAPbouiCOM.BoConditionOperation.co_EQUAL
                oCon.CondVal = "C"
                oCFL.SetConditions(oCons)
            Catch
                MsgBox(Err.Description)
            End Try
        End Sub
    Kind Regards
    -Yatsea

  • Multiple Values For one Condition in Choose From List

    I have used one Business Partner Choose From List in my form but i want to give condition in that choose from list on GroupCode .But the condition will have multiple values like 100,102,104 then how i will write the code to incorporate multiple values for one single condition.

    Hi,
    Check this thread
    How to set a Multiple condition in a single CFL
    Hope that helps,
    Vasu Natari.

  • Choose from List-CFL button is not visible

    Hi Experts,
    I am using SAP B1 8.8 PL 05 in ramp up. I have observed that in some of the clients PCs in Sales Order window I am not able to see the Choose from list button / CFL button for selecting Customer Or say Item.
    This happens only in some Client PCs, where as in other clients PCs it works fine.
    BR
    Samir Gandhi

    Hi Rashid,
    I did that. Now the indicator is displayed, but still I am not able to see the customer / item  list.
    BR
    Samir Gandhi

  • Removing Duplicates from a choose from list

    Hi All,
    I have a choose from list of obj 73 )Catalog Numbers (Table OSCN)
    I also added conditions in the CFL that it only shows the Substitute for the CardType = 'S' (Supllier) Business Partners.
    But I want to remove all the duplicate Substitutes from the CFL so that only distinct Catalog Numbers shows in the CFL.
            //  Adding 2 CFL, one for the button and one for the edit text.
                    oCFLCreationParams.MultiSelection = false;
                    oCFLCreationParams.ObjectType = "73";
                    oCFLCreationParams.UniqueID = "CFL1";
                    oCFL = oCFLs.Add(oCFLCreationParams);
                    //Adding Conditions to CFL1
                    oCons = oCFL.GetConditions();
                    oCon = oCons.Add();
                    oCon.Alias = "Substitute";
                    SAPbobsCOM.Recordset oSuppliers = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset);
                    oSuppliers.DoQuery("Select Distinct t1.Substitute From OSCN t1 Join OCRD t2 on t1.CardCode = t2.CardCode Where t2.CardType = 'S' Group By t1.Substitute");
                    oCon.Operation = SAPbouiCOM.BoConditionOperation.co_EQUAL;
                    while (!oSuppliers.EoF)
                        oCon.CondVal = oSuppliers.Fields.Item(0).Value.ToString();
                        oCon.Relationship = SAPbouiCOM.BoConditionRelationship.cr_OR;
                        oCon = oCons.Add();
                        oCon.Alias = "Substitute";
                        oCon.Operation = SAPbouiCOM.BoConditionOperation.co_EQUAL;
                        oSuppliers.MoveNext();
                    oCFL.SetConditions(oCons);
    Please advise....
    Kind Regards,
    Brenden Draper

    Hi Brenden,
    what you are trying to archieve won't work. Simply because CFL is getting all row data from  OSCN and ItemCode or CardCode can differ for a specific substitute.
    For example.
    ItemCode,CardCode,Substitute
    ItemA,BP1,sub1
    ItemA,BP2,sub1
    Would be 2 resultlines both with sub1 as substitute.
    SQL equivalent :
    Select Distinct t0.* from oscn t0 inner join OCRD t1 on t0.CardCode = t1.CardCode where t1.CardType = 'S'
    My advise would be to open a simple form with a grid and datatable bound.
    Some lines of coding and you get all you need.
    regards,
    Maik

  • Edit and text and choose from list

    hello,
    I am trying to create a form that resemle to the purchase order form.
    In the purchase order form when we select the card code from the choose from list
    the system fill all the fileds like the name docnum .. with relevant information.
    i tried to do that by using the vent et_evaluate of the edit text bind with the Card code in my form.
    The problem is that when i clik on the choose from list button the event is lanched  and then the value of the card code is "" so i can't crate my queries to get the infomation like suplier name and ..
    does any body have an answer?
    This my code:
    switch (pVal.ItemUID)
                                                case "3":
                                                        _Form.Freeze(true);
                                                        try
                                                            string NumFournisseur =
                                                                ((EditText) _Form.Items.Item("3").Specific).Value;
                                                            ArrayList DFournisseur =
                                                                new DB.PurchaseRequest(_SboCompany).
                                                                    GetDetailsFournisseur(NumFournisseur);
                                                            EditText Textvar;
                                                            // remplir nom fournisseur et nom contact
                                                            Textvar = (EditText) _Form.Items.Item("2").Specific;
                                                            Textvar.String = DFournisseur[0].ToString();
                                                            Textvar = (EditText) _Form.Items.Item("4").Specific;
                                                            Textvar.String = DFournisseur[1].ToString();
                                                            // remplir les dates comptable , de livraiosn et du document
                                                            Textvar = (EditText) _Form.Items.Item("17").Specific;
                                                            Textvar.String = DateTime.Today.ToString();
                                                            Textvar = (EditText) _Form.Items.Item("19").Specific;
                                                            Textvar.String = DateTime.Today.ToString();
                                                            Textvar = (EditText) _Form.Items.Item("21").Specific;
                                                            Textvar.String = DateTime.Today.ToString();
                                                            // remplir devise partenaire et numéro document
                                                            ((EditText) _Form.Items.Item("59").Specific).String =
                                                                new DB.PurchaseRequest(_SboCompany).GetCurrencyCode(
                                                                    NumFournisseur);
                                                            _Form.Items.Item("59").Visible = true;
                                                            _Form.Items.Item("59").Enabled = false;
                                                            ((ComboBox) _Form.Items.Item("10").Specific).Select(
                                                                "primary",
                                                                BoSearchKey.
                                                                    psk_Index);
                                                            ((EditText) _Form.Items.Item("11").Specific).String =
                                                                new DB.PurchaseRequest(_SboCompany).GetLastDocNum().
                                                                    ToString();
                                                            ((EditText) _Form.Items.Item("12").Specific).String = "0";
                                                        catch (Exception e)
                                                            Console.WriteLine(e.Message);
                                                        _Form.Freeze(false);
                                                        break;
                                            break;
                                        catch (Exception ex)
                                            Console.Write(ex.Message);
                                break;

    Hey Achref,
    You can use the event and code like this:
    string vendCode = string.Empty;
    SAPbouiCOM.IChooseFromListEvent oCFLEvento = (SAPbouiCOM.IChooseFromListEvent) pVal;
    string sCFL_ID = oCFLEvento.ChooseFromListUID;
    SAPbouiCOM.ChooseFromList oCFL = oVendorSourcingForm.ChooseFromLists.Item(sCFL_ID);
    SAPbouiCOM.DataTable oDataTable =  oCFLEvento.SelectedObjects;
    if (oDataTable != null)
         //get selected value from datatable
         if (oDataTable.Rows.Count > 0)vendCode = oDataTable.GetValue(0, 0).ToString();
    Also check out 17.ChooseFromList in the samples that you can download.
    Hope that helps
    Curtis

  • Create choose from list in Report selection criteria

    Hi all,
    Is it possible to create a choose from list in UDF in a Report selection criteria ?
    My issue is i just want to create a report using crystal report. In this report contain some parameter which the parameter choose from list value is come from a UDT. If the value come from OCRD or OITM , it's so easy to make. I just make Customer @From OCRD in parameter CR, then i just preview, it will make choose from list from business partner. But how about from UDT.
    I have try to make it using Formatted search. So in SAP B1, i binded with formatted search in some parameter that i make it in CR. But there is some thing odd. if I make 2 different report with  different parameter. The formatted search with binded in the first report, will also binded in the second report. And i don't want this happen.
    How can i make it , the formatted search didn't  binded in second report parameter, because the second report is totally different. ?
    thanks in advance
    regards
    Jia shun

    Hi Jia
    Try this
    @UDT
         Code          Alpha(8)
         Name          Alphe(30)
         Fields      etc
    Define the parameter token as follows.
    Season@SELECT DISTINCT T1.Code, T1.Name FROM OADM T0 CROSS JOIN "@UDT" T1
    OADM only has one record so the join will return the right number of records.
    Hope this helps
    Rob

  • Choose From List Cancel Button Throws Exception

    Hi all,
    When I click the "Cancel" Button on my CFL, I get an error....
    EXCEPTION: Matrix__EBS_FRM_CRDCLM__64.OnAfterChooseFromList raised
    No matching records found (ODBC -2028)
    Any ideas???

    Hi
    in your choose from list  event add this  condition
    If Not pval.SelectedObjects Is Nothing Then
    'write your code in this if condition
    end if
    hope it will help u.
    Regards,
    Mithun.

  • Choose From List and Golden arrow link in System Matrix UDF column

    I'm wondering if there is a way through the SDK to create a 'Choose From List' and Golden arrow linked button in a System Matrix UDF column? 
    For example the Item Code in a sales order matrix does both.

    Hi,
    Try this code for adding CFL.             
                   SAPbouiCOM.ChooseFromListCollection oCFLs = null;
                    SAPbouiCOM.Conditions oCons = null;
                    SAPbouiCOM.Condition oCon = null;
                    oCFLs = oForm.ChooseFromLists;
                    SAPbouiCOM.ChooseFromList oCFL = null;
                    SAPbouiCOM.ChooseFromListCreationParams oCFLCreationParams = null;
                    oCFLCreationParams = ( ( SAPbouiCOM.ChooseFromListCreationParams )( SBO_Application.CreateObject( SAPbouiCOM.BoCreatableObjectType.cot_ChooseFromListCreationParams ) ) );
                    oCFLCreationParams.MultiSelection = false;
                    oCFLCreationParams.ObjectType = "object id ";
                    oCFLCreationParams.UniqueID = "CFL1";
                    oCFL = oCFLs.Add( oCFLCreationParams );
                   oColumn.ChooseFromListUID = "CFL1";
                  //where oColumn is the instance of that column.
    Hope u will get help....
    Thanks and Regards,
    Lalit

  • Choose from list - data display with condition

    Hi,
    I 've developed a form using screen painter, I ' ve attached a choose from list to fill GRPo Number.  In the choose from list the GRPo no. should not display again which once I have selected and saved. 
    Let me have a good solution please and it would be appreciated.
    Thanks & Regards,
    Venkatesan G.

    Hi suresh,
    where did you put this code?....In the choose_from_list event handler?..I've tried a similar solution, before reading your post, but it doesn't work because if i dynamically set the condition for the choose from list i got an empty table.
    i've tried to put my code when beforeaction=true and i have this kind of problem. The difference is that i need to set the filter starting with the value i've entered on the field connected to the choose from list. I put code here, so it's more clear
    If (pVal.Before_Action = True) And (pVal.EventType = SAPbouiCOM.BoEventTypes.et_CHOOSE_FROM_LIST) Then
                        Dim oCFL As SAPbouiCOM.ChooseFromList
                        Dim oCons As SAPbouiCOM.Conditions
                        Dim oCon As SAPbouiCOM.Condition
                        Dim sItemCode As String
                        oEditText = oMatrix.Columns.Item("V_ItemCode").Cells.Item(pVal.Row).Specific
                        sItemCode = oEditText.Value.ToString
                        oCFL = oForm.ChooseFromLists.Item("CFL_Item")
                        oCons = oCFL.GetConditions()
                        oCon = oCons.Add()
                        oCon.Alias = "ItemCode"
                        oCon.Operation = SAPbouiCOM.BoConditionOperation.co_START
                        oCon.CondVal = sItemCode
                        oCFL.SetConditions(oCons)
                    End If
    My situation is that i type something in V_ItemCode column and after that i press the tab key to open the choose from list.
    Would be ok if i get the SAP standard beahviour too, that doesn't open the choose from list, but fills the field with the first code starting with what you type.
    Thanks in advance

  • Choose From List Condition

    Dear Experts,
    i want to select Items in Sales Quotation Screen  which is from Particular Group, I'm using following code
    If pVal.EventType = SAPbouiCOM.BoEventTypes.et_CHOOSE_FROM_LIST And pVal.BeforeAction = True Then
                If pVal.FormTye = "149" And pVal.ItemUID = "38" And (pVal.ColUID = "1" Or pVal.ColUID = "3") Then
                    Try
                        oForm = SBO_Application.Forms.ActiveForm
                        Dim oCFLEvento As SAPbouiCOM.IChooseFromListEvent = pVal
                        Dim sCFL_ID As String = oCFLEvento.ChooseFromListUID
                        Dim oCFL As SAPbouiCOM.ChooseFromList = Nothing
                        oCFL = oForm.ChooseFromLists.Item(sCFL_ID)
                        oCons = Nothing
                        oCon = Nothing
                        oCons = oCFL.GetConditions()
                        oCon = oCons.Add()
                        oCon.Alias = "ItmsGrpCod"
                        oCon.Operation = SAPbouiCOM.BoConditionOperation.co_EQUAL
                        oCon.CondVal = "100"
                        oCFL.SetConditions(oCons)
                    Catch ex As Exception
                        SBO_Application.MessageBox(ex.Message)
                    End Try
                End If
            End If
    First time  Its working fine. but i'm selecting the next time in next row or same row its not showing any item. it opens only empty Choose from list. what is the prblm
    Mathi

    The problem is that when this event is called again, the Conditions object still has the conditions from the last call :
    oConditions = oCFL.GetConditions();  // this has all the previous set conditions
    So the conditions set before are also taken into consideration. What you need to do is :
    oCFL.SetConditions(null);
    oConditions = oCFL.GetConditions();
    This way the Conditions object will be empty. There is no method to remove a Condition from a Conditions collection, so you have to make it null.

Maybe you are looking for

  • Error in PO creation in backend (SRM to R/3)

    Hello,   We need to add contract no and contract item no to EKPO table in backend. For this reason we implemented BADI : BBP_ECS_PO_OUT_BADI in SRM system. Also updated bbp_cufmap table with necessary information. <b>Code in the BADI :</b> Loop at IT

  • Possible to recover data from a formatted partition? HELP!

    So I have the Windows 7 RC installed on a 150 gb hard drive. On a seperate drive, I had a storage partition sitting at the very end with all my documents, pictures, etc. It was 122 gb. I had 110 gb of unallocated space before it, so I decide to expan

  • Question about java

    I have a question here that I cant seem to figure out. I would really appreciate it if someone would help me out with the answer. I just got started learning Java and have a question: Suppose list is an array of five components of the type int. What

  • HT204053 icloud is not on my system preferences

    Hi can someone tell me how to get icloud started on my macbook when there isn't an icloud icon on system preferences.  thanks

  • PSE11, Windows 8, Email

    When I try to send an email with an attached photo via Photoshop Elements 11 I get the message "Error trying to save message to Outlook" and then nothing happens and no email is sent. Have tried to change email client in preferences/sharing but only