DbtreeView multilevel(3 level) isssue

Hi all,

I’m trying to do a simple solution that have one form having DBTreeview with 3 level but
unfortunately it shows me just 2 level!!!
Here’s my function I call on the show form event.

function loadTree()
{
	var tree_customers = elements.bean_859.createBinding(controller.getServerName(), 'customers')
	var tree_orders = elements.bean_859.createBinding(controller.getServerName(), 'orders')
	var tree_orderDetails = elements.bean_859.createBinding(controller.getServerName(), 'order_details')

	tree_customers.setNRelationName('customers_to_orders')
	tree_orders.setNRelationName('orders_to_order_details')
	
	tree_orders.setNRelationDataprovider('clients_to_projects')
	tree_orderDetails.setNRelationDataprovider('orders_to_order_details')
	
	tree_customers.setTextDataprovider('customerid') 
	tree_orders.setTextDataprovider('orderid') 
	tree_orderDetails.setTextDataprovider('productid') 

	var fs = databaseManager.getFoundSet(controller.getServerName(), 'customers')
	fs.find()
	fs.search(true, true)
	fs.loadRecords()
	elements.bean_859.addRoots(fs);
}

here’s my solution based on “example_data” database
I’m using servoy 4.1.4

If someone has an idea of what’s the problem or what am I missing? I’m grateful.

DbTreeviewMultiLevelTest.servoy (5.36 KB)

These lines are a little weird:

tree_orders.setNRelationDataprovider('clients_to_projects')
tree_orderDetails.setNRelationDataprovider('orders_to_order_details')

With setNRelationDataprovider() you can set a dataprovider(column or calculation) that returns a relationname that is used to get the nodes of the next level.

For tree_orders, you set the NRelationName before to “orders_to_order_details”, so no need to set it again. tree_orderDetails is already the lowest level, so no need to set a NRelationDataprovider.

I think you should just delete these two lines, that will probably solve your problem.

Thank you joas for the reply,

you are right, the problem is solved.

thank you for the explanation :)