Skip to main content Skip to complementary content

AddSelections Method

Overloads

AddSelections(QDSDocumentSession, List<FieldContent>, Boolean, Boolean, Boolean)

Adds or toggles the currently selected fields within a document.

AddSelections(QDSDocumentSession, List<FieldContent>, Boolean, Boolean, Boolean)

Adds or toggles the currently selected fields within a document.

Declaration

      List<FieldContent> AddSelections(QDSDocumentSession session, List<FieldContent> fieldContents, bool lockSelection, bool toggleSelect, bool returnSelectedList)
    

Parameters

Type Name Description
QDSDocumentSession session

The session to be used.

System.Collections.Generic.List<FieldContent> fieldContents

The selected fields to add or toggle

System.Boolean lockSelection

Set this to true if you want to lock the selected fields.

System.Boolean toggleSelect

If set to true, toggles to selected fields, otherwise sets them to be selected in the document.

System.Boolean returnSelectedList

Set to true if a list of currently selected fields should be returned.

Returns

Type Description
System.Collections.Generic.List<FieldContent>

A list of selected fields.

Remarks

security

Requires membership of local group QlikView Management API and the role Document Folder Administrator.

Examples

This example assumes that the document used contains a Quarter field which is related to a Month field. It retrieves all the values from the Quarter field and adds a new selection using the first value. Next it retrieves the values from the Month field and prints them to the console. Here it is possible to see which of the months that were selected or excluded after the quarter selection.

The service key injection is assumed to be handled behind the scenes. For an example of how to inject the service key, see Samples.

    using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using QMSAPI;

class Program
{
    static void Main(string[] args)
    {
        try
        {
            // create a QMS API client
            IQMS apiClient = new QMSClient();

            //retrieve a time limited service key
            ServiceKeyClientMessageInspector.ServiceKey = apiClient.GetTimeLimitedServiceKey();

            ServiceInfo serviceInfo = apiClient.GetServices(ServiceTypes.QlikViewDistributionService).FirstOrDefault();
            if (serviceInfo != null)
            {
                QDSDocumentSessionConfiguration sessionConfig = new QDSDocumentSessionConfiguration();

                sessionConfig.QDSID = serviceInfo.ID;
                sessionConfig.FilePath = @"C:\ProgramData\QlikTech\SourceDocuments\Sales.qvw";

                QDSDocumentSession documentSession = apiClient.CreateSession(sessionConfig);

                if (documentSession != null && documentSession.OpenDocumentResult == DocumentState.OpenedSuccessfully)
                {
                    List<FieldContent> fieldContentList = apiClient.GetFieldContentList(documentSession, "Quarter", FieldContentType.All, 0, 4);
                    FieldContent firstField = fieldContentList.FirstOrDefault();
                    if(firstField != null)
                    {
                        //Remove all fields but the first one and add it as a selection.
                        firstField.Values.RemoveRange(1, firstField.Values.Count - 1);
                        apiClient.AddSelections(documentSession, new List<FieldContent>(){firstField}, false, false, true );

                        //Retrieve all the contents of the Month field.
                        FieldContent monthField = apiClient.GetFieldContentList(documentSession, "Month", FieldContentType.All, 0, 12).FirstOrDefault();

                        if (monthField != null) {

                            Console.WriteLine(monthField.Name);

                            //Print all the values for the month field.
                            foreach(FieldValue fv in monthField.Values )
                            {
                                Console.WriteLine(string.Format("{0} {1}", fv.IsNumeric ? fv.Number.ToString() : fv.Text, fv.State ));
                            }
                        }
                        apiClient.CloseSession(documentSession);
                    }
                }
                else
                {
                    Console.WriteLine("Failed to open the document.");
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("An exception occurred: " + ex.Message);
        }
        // wait for user to press any key
        Console.ReadLine();
    }
}
  

Did this page help you?

If you find any issues with this page or its content – a typo, a missing step, or a technical error – let us know how we can improve!

Join the Analytics Modernization Program

Remove banner from view

Modernize without compromising your valuable QlikView apps with the Analytics Modernization Program. Click here for more information or reach out: ampquestions@qlik.com