# custom valuelists and adding an empty value

**URL:** <https://forum.servoy.com/t/custom-valuelists-and-adding-an-empty-value/4152>\
**Category:** Classic Servoy\
**Created:** [May 3, 2005, 1:57pm UTC](https://forum.servoy.com/t/custom-valuelists-and-adding-an-empty-value/4152 "2005-05-03T13:57:11Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rene](https://avatars.discourse-cdn.com/v4/letter/r/7cd45c/32.png) [@Rene](https://forum.servoy.com/u/Rene)\
**Post date:** [May 3, 2005, 1:57pm UTC](https://forum.servoy.com/t/custom-valuelists-and-adding-an-empty-value/4152/1 "2005-05-03T13:57:11Z")

</div>

Hello Everybody,

I`ve got a question about how to add an empty value to an array which I want to use in a custom valuelist.

Tried a lot of combinations but all of them seem to screw up the array format.

This is basicly the code I wanted to use.

```auto
var query = 'SELECT DISTINCT initials, usersid FROM users WHERE department LIKE(\'%it%\') AND users_status = 1 ORDER BY initials asc'
var dataset = databaseManager.getDataSetByQuery(forms.users.controller.getServerName(), query, null, 1000)
var Array_Initials = new Array(dataset.getColumnAsArray(1),'') //'' is supposed to add an empty value at the end
var Array_UsersID = new Array(dataset.getColumnAsArray(2),'') //'' is supposed to add an empty value at the end
application.setValueListItems('Users_Initials_IT', Array_Initials, Array_UsersID)

```

See also:

> **[custom valuelists and adding an empty value](https://forum.servoy.com/viewtopic.php?t=1588&)**
>
> When I set a valuelist with (empty) custom values and later on change the list via application.setValueListItems() I have noticed the empty value is not added... Althoug I checked it.

Can somebody enlighten me?

With kind regards Rene

---

<div class="post-metadata">

**Author:** ![patrick](https://avatars.discourse-cdn.com/v4/letter/p/b2d939/32.png) [@patrick](https://forum.servoy.com/u/patrick)\
**Post date:** [May 3, 2005, 2:41pm UTC](https://forum.servoy.com/t/custom-valuelists-and-adding-an-empty-value/4152/2 "2005-05-03T14:41:53Z")

</div>

hmm. I have never tried something like

```auto
new Array(anArray, 'abc', 'def')

```

and don’t know if that works (JavaCript wise). What should work is

```auto
var query = 'SELECT DISTINCT initials, usersid FROM users WHERE department LIKE(\'%it%\') AND users_status = 1 ORDER BY initials asc'
var dataset = databaseManager.getDataSetByQuery(forms.users.controller.getServerName(), query, null, 1000)
var Array_Initials = dataset.getColumnAsArray(1)
Array_Initials[Array_Initials.length] = ''
var Array_UsersID = dataset.getColumnAsArray(2)
Array_UsersID[Array_UsersID.length] = 0 // or try: null
application.setValueListItems('Users_Initials_IT', Array_Initials, Array_UsersID)

```

---

<div class="post-metadata">

**Author:** ![Odysseus](https://avatars.discourse-cdn.com/v4/letter/o/cdc98d/32.png) [@Odysseus](https://forum.servoy.com/u/Odysseus)\
**Post date:** [May 3, 2005, 2:46pm UTC](https://forum.servoy.com/t/custom-valuelists-and-adding-an-empty-value/4152/3 "2005-05-03T14:46:55Z")

</div>

Yo rene,

```auto
var query = 'SELECT DISTINCT initials, usersid FROM users WHERE department LIKE(\'%it%\') AND users_status = 1 ORDER BY initials asc'
var dataset = databaseManager.getDataSetByQuery(forms.users.controller.getServerName(), query, null, 1000)
var Array_Initials = dataset.getColumnAsArray(1),'');
Array_Initials.push('')
var Array_UsersID = dataset.getColumnAsArray(2)
Array_UsersID.push('');

```

Used both, never used the combination

hth

Bart

---

<div class="post-metadata">

**Author:** ![Rene](https://avatars.discourse-cdn.com/v4/letter/r/7cd45c/32.png) [@Rene](https://forum.servoy.com/u/Rene)\
**Post date:** [May 3, 2005, 3:32pm UTC](https://forum.servoy.com/t/custom-valuelists-and-adding-an-empty-value/4152/4 "2005-05-03T15:32:15Z")

</div>

Thanks Guys,

The code Patrick gave works excellent.

The Code from Odysseus also returns an empty string but doesn`t save it to the database.

Patrick`s code however I don`t understand.

Can you explain it to me?

var Array\_Initials = dataset.getColumnAsArray(1)  
Array\_Initials\*\*[Array\_Initials.length]\*\* = ‘’ ![:?:]( "Question")  
var Array\_UsersID = dataset.getColumnAsArray(2)  
Array\_UsersID\*\*[Array\_UsersID.length]\*\* = 0 ![:?:]( "Question")

Thanks very much for your quick response Guys

Rene[/b]

---

<div class="post-metadata">

**Author:** ![patrick](https://avatars.discourse-cdn.com/v4/letter/p/b2d939/32.png) [@patrick](https://forum.servoy.com/u/patrick)\
**Post date:** [May 3, 2005, 3:40pm UTC](https://forum.servoy.com/t/custom-valuelists-and-adding-an-empty-value/4152/5 "2005-05-03T15:40:17Z")

</div>

At the point where you want to add your extra entries, you don’t know the index of the array (you need to know the last position). So you could do

```auto
var Array_Initials = dataset.getColumnAsArray(1)
// now you have an array of length x, where x is currently unknown
// if you want to add an item you need to know at what index
// to add an extra item, you could use push as noted by Odysseus
// or figure out the last position manually by doing
var arrayLength = Array_Initials.length
// since Arrays are zero based, you can now add an item using
Array_Initials[arrayLength] = ...
// What I wrote was just a shortcut without the extra variable arrayLength:
Array_Initials[Array_Initials.length] = ''

```

---

<div class="post-metadata">

**Author:** ![Odysseus](https://avatars.discourse-cdn.com/v4/letter/o/cdc98d/32.png) [@Odysseus](https://forum.servoy.com/u/Odysseus)\
**Post date:** [May 3, 2005, 6:41pm UTC](https://forum.servoy.com/t/custom-valuelists-and-adding-an-empty-value/4152/6 "2005-05-03T18:41:33Z")

</div>

Odysseus code not working ![:roll:]( "Rolling Eyes")

unacceptable

Instead of pushing ‘’ in the idarrays, you probably need to push null

Database will expect integer probably

hth

---

<div class="post-metadata">

**Author:** ![Rene](https://avatars.discourse-cdn.com/v4/letter/r/7cd45c/32.png) [@Rene](https://forum.servoy.com/u/Rene)\
**Post date:** [May 4, 2005, 6:07am UTC](https://forum.servoy.com/t/custom-valuelists-and-adding-an-empty-value/4152/7 "2005-05-04T06:07:41Z")

</div>

Thanks Patrick,

I figured your code out myself at 4 AM this morning (clear head I think).  
When the code was something like

```auto
Array_Initials[arrayLength + 1]

```

I think I understood it right away but since an array starts with 0 no need to increment it by one.

Odysseus,

Sorry to have offended you. (I don`t want to walk next time to SNUG meetings ![:wink:]( "Wink") ).

After setting the usersID to null your code also workes like a charm.

For all others the working codes

```auto
//Patrick
var query = 'SELECT DISTINCT initials, usersid FROM users WHERE department LIKE(\'%it%\') AND users_status = 1 ORDER BY initials asc' 
var dataset = databaseManager.getDataSetByQuery(forms.users.controller.getServerName(), query, null, 1000) 

var Array_Initials = dataset.getColumnAsArray(1) 
Array_Initials[Array_Initials.length] = ''

var Array_UsersID = dataset.getColumnAsArray(2) 
Array_UsersID[Array_UsersID.length] = null

application.setValueListItems('Users_Initials_IT', Array_Initials, Array_UsersID)

//Odysseus
var query = 'SELECT DISTINCT initials, usersid FROM users WHERE department LIKE(\'%it%\') AND users_status = 1 ORDER BY initials asc' 
var dataset = databaseManager.getDataSetByQuery(forms.users.controller.getServerName(), query, null, 1000) 

var Array_Initials = dataset.getColumnAsArray(1)
Array_Initials.push('')

var Array_UsersID = dataset.getColumnAsArray(2) 
Array_UsersID.push(null)

application.setValueListItems('Users_Initials_IT', Array_Initials, Array_UsersID)

```

I think I have a slight preference for Odysseus code  
(this might be a little pollitically founded.)

Thanks both for your explanation.

Rene
