In table view, I have a ‘companies’ file, which shows a related ‘addresses’ field, let’s call it ‘Address’.
When I clicksort ‘Address’, it not only sorts, but also omits records from my found set. (Apparently, it omits records that don’t have a related ‘addresses’ record.)
Is this expected behavior? If so, is there a way to prevent clicksorting on certain fields in a table?
It is expected behaviour. I guess it is due to the join type that is sent to the database.
I’d be happy too, if there was a solution for this. In Cain’s example it can be very useful for users to see which records have an address at all and which ones don’t. Changing the foundset is general “bad” behaviour in my eyes. I’d rather have the sort disabled then…
In Cain’s example it can be very useful for users to see which records have an address at all and which ones don’t.
Actually, I’m more concerned that someone might clicksort by, say, state, and then go into a panic thinking that some critical record (for someone with no known address) seems to vanish from the database. This just seems like a 7 AM panic call in the making.
My problem is: my users “mark” records (via a relation to a mark table). They basically set a 1 in a related field. If you mark a few, you might want to see what you have marked and what not. So you click on the column header of the mark and oops! All your other records are gone. My concern here is, that users take hours of time to search the data they really want. Then they “sort” and their search result is gone.
The behaviour is being caused by the fact that we use inner joins when you sort. The solution would be to introduce outer joins when you sort but this is implemented differently by each database and will require quite some work. Basicly it isn’t possible to introduce this feature very soon, maybe it will show up in the next-next version of Servoy. To not confuse your users until then you can contemplate creating your own header in which you make the headers of the related fields non-clickable.
I have a form with a portal. I can do a find for ‘%’ in a portal field, to find only records with a related value, and it pulls up 36 of 48 records.
However, when I go ‘Select>Invert Records’, I get a zero found count. 'Show all returns to all 48 records.
Is this the same join issue, or something new? As with the click-sort, this is very disconcerting from a user standpoint. Users, who don’t understand ‘join’, will assume that the records have been lost.