A PickList is a data type that maps a database column pairing of x_id and x_value to a code group. A code group consists of a Code ID record and the Code Values that belong to that record. Together, these records define the possible values for the mapped database column.
Every Xelence app starts with a database that contains a Code table (sgs_code) that contains all the possible "kinds" of data you can call with a PickList data type; and a Code Value table (sgs_code_value) that contains the Code Value records that define the possible values based on the selected Code record. This allows your app to quickly access filtered groups of values without having to execute a query. You can use these values to populate controls that enable users to select one or multiple pre-defined entries, such as drop downs.
The Code and Code Value tables are configured for certain data by default. If you are creating or working with an entity that uses a PickList column, you should check the Code table for that data. If the code group is already present, you can use it in the entity. For example, if one of your entities uses a Gender column, you can set its data type to PickList and map it to the Gender record from the Code table.
If you have checked the Code table for the data your entity needs and it is not already present, you must create it so your entity and files that use your entity will work correctly. You can use your app's default Code screens or execute SQL statements in your app's database to update Code and Code Value tables. This allows you to create new code groups or update existing code groups to add, remove, or edit values. You must use one of these methods if your entity's table already uses a specific ID for its _id column's value, because that has to map to the Code ID of the Code record you want to use.
If it's not necessary to use a specific Code ID, you can create the code group from the entity: select the desired entity column and open its PickList property to enter its details.
In the figure below, the PickList was not originally part of the default database. It was created to manage specific app data.

The item, "Expense Type", represents the Code record. Each row in the table represents a Code Value record. The Value property for each row is the programmatic value assigned to the database column when selected by the user, and the Description is what the user will actually see. If a user enters an Expense Type field by selecting "Healthcare", they will see the field's value as "Healthcare". The app assigns the "HEAL" value in the database and uses that value in any validation or business logic that checks that field.
The Data 1, Data 2, and Data 3 fields control this code group's relationships with other code groups, which you can use to configure a series of drop downs whose available values depend on entries in previous drop downs (cascading drop downs).
The Code, Text Color, etc. fields determine the appearance of controls that use this PickList.
#Entity