I have a list form for Contracts, which I show in a FormInDialog. Nearly all of the “Contract” data in the list is really information about the Customer, who is a Person. So there are three tables involved: contracts, customers and people.
I need to get details about the Person who is a Customer on this Contract, and show the fields in the list as editable fields (not just text), so I need to get, f’rinstance, the Person’s First Name, to be only one relation away from Contracts.
To accomplish this, I have a calculation in Contracts that should get the People key from Customers. It looks like this:
Using that key, I have a direct relation from Contracts to People.
However, when the list comes up in a FormInDialog, the names are (in the words of my client) “jumbled”. Various names are duplicated or missing in the list. As the user clicks through the list, the names resolve to the correct names, but as a list it’s fairly useless.
It’s as though the key doesn’t calculate, or the fields from the relation don’t ‘fill in’, until the user clicks on the record.
Is something wrong with my calc? Is there just an easier way to do this?[/b]
I’ve just now found another formInDialog list with a similar issue. However, in this case it’s a straight key-to-key, direct relationship. No calc involved. In this case, it’s a list of salespeople, showing first and last name from the People file.
In both cases, the list is shown in a tabless tabpanel on a form shown in Dialog. The related info either doesn’t show at all or shows the wrong related value for some records, until they are clicked.
Is this perhaps a known issue in the beta version I’m using?:
Servoy Developer
Version R2 2.2b2-build 316
Java version 1.4.2_06-b03 (Windows 2000)
Cain:
Is this perhaps a known issue in the beta version I’m using?:
Servoy Developer
Version R2 2.2b2-build 316
Java version 1.4.2_06-b03 (Windows 2000)
Please update first if you are running old prerelease version, before posting on the forum.
BTW the release notes for each release are posted here http://forum.servoy.com/viewforum.php?f=1
My client is in the middle of going live with this solution. I’m not going to ask them to upgrade to another beta (rc) right now. For better or worse, I need to support them on the version that they have.
That’s great for testing, but I’m not going to try that in a production environment. I made that mistake already with 2.2b2. I did some unit testing, and put 2.2b2 into production. By the time we realized the changes we’d need to make for b2, we had already made other enhancements and changes. We could roll back several releases, but then we’d have needed to isolate and redo any changes after that older release.
I can’t shut down the client, or hold up other enhancements, while I do an end-to-end test of the entire solution, only to have it replaced by another beta/RC the next day. For my production environment, I’m holding out for a final version.
I have created a separate version, on the latest release, and am testing in preparation for when I can upgrade the client to 2.2 Final. I have not yet seen the issue with the latest beta, but I still need to test with a more complete data set and with the client’s SQL backend.
I am thoroughly impressed with Servoy’s deployment methodology. That being said, though, “simply” upgrading to the latest release candidate doesn’t seem quite so simple to me, outside of a development sandbox. I’d like to test all the new enhancements and fixes in each and every release, and I do what I can, but at least part of the time I’m “on the clock,” and have to support and develop with the version in Production. If the three betas and 5 release candidates don’t yet deserve the name “final”, then they’re not going up on my client’s server, and I’ll need to support the version they have in the meantime.
I understand how to upgrade and how to test. I was just trying to determine if this was something that I was doing wrong that could be fixed now, or if someone recognized the issue. Either would have saved me considerable time. Since neither seems to be the case, I’ll assume it’s a bug, and focus on making sure this doesn’t occur in the (hopefully) imminent final release of 2.2.
Cain:
My client is in the middle of going live with this solution. I’m not going to ask them to upgrade to another beta (rc) right now. For better or worse, I need to support them on the version that they have.
Hmm, Cain I understand what you are saying here but shouldn’t you release with 2.1? That’s an official release.
You can’t expect Servoy to ‘support’ on releases that are not releases imo. Having that said I completely understand them asking you to update first and check if the issue is solved or not…
True. I screwed up and went to 2.2b. It’s too late to back them down to 2.1, but neither can I go through all the new betas, as that would only compound my mistake.
Regardless, I was looking for input from everyone on the forum, not just support from Servoy. I was simply asking if someone could save me some trouble by either pointing out my error or sharing a similar experience. I thought that was what the forum was for.
I’m not posting in “issues and bugs”, nor under RC5. Why is it assumed that I “expect Servoy to ‘support’ on releases that are not releases”? Also, is it now policy on the forum that I must “update first if you are running old prerelease version, before posting on the forum”? Since I’m stuck supporting, admittedly by my own lack of foresight, version 2.2b2, am I forbidden to ask questions?
On the other hand, it is perfectly normal for Servoy (or anyone else imo) to ask you to update. This way they know if they can check/reproduce the issue on their own installation. In case of Servoy even do a bugfix…
In my case I can’t do anything else but to give you hints/directions since I have the production environment on 2.1 and my testing on 2.2b5.
And now, let’s cut the crap and try to answer your question…
I don’t remember to have seen such an issue. Questions:
did you solve the first issue with the help of Jan’s suggestion (this check is btw crucial to all checks you do on a relationship);
talking about your key-key relationship. Are you handing over the foundset ‘manually’ to the form in dialog or via the relationship. If the latter what happens when you load the foundset yourself?
Thanks, Marcel. Sorry if I’m whiney and frustrated today.
I did fix the keys issue that Jan pointed out (fixed it everywhere in the system, in fact. Glad he saw that!) I found, though, that it happens with at least one other list/formindialog (salespeople) that has a simple key rather than a calculated one, so apparently that was a red herring.
The list in question uses a separate found set, and I’m not manipulating the found set with my method(s).
More info: Both lists are being used in a “selection” dialog. They are shown in a tabless tabpanel on a form called DiaSelect. In both cases (contracts and salespeople), DiaSelect is shown in dialog, and the method switches to the appropriate tab. There are filter tools (field name, operator, value) above the tabpanel in DiaSelect, but they are not touched when this error occurs.
You say you use a seperate foundset. So at which moment do you set the foundset? OnShowForm or before? Are you able to replicate the issue when you make a small sample solution (just to take away anything that could influence the stuff)?
In fact I think I have a comparable situation whithout such an issue where I open a form in a dialog that in itself holds 1 tabless and 1 normal tabpanel both with straight on related items… The first has it foundset set via a method onshowform, the second just through a relation…
When the method for this select list is called, one of the parameters is whether the found set should be kept (arguments[5] == 1 means "leave the foundset as is). Otherwise, I use loadAllRecords() on the form in the tab. This would be before onShow, which has no method associated.
I’m working on a test solution to try to narrow the problem down, as you’ve suggested.