Dynamic field

I have a multivalue field that stores different skills sets and the user needs to rate themselves on each skill. So the multivalue skills field would contain values i.e., MS Windows XP, MS WIndows 2000 and so on. I want the users to be able to rate their knowledge on these technologies. So there would be a field for rating (0-5) but I need them to rate themselves on each skill. How do I do that?

If I create a Rating field for each value then how do I line them up? And also it’s not an very efficient way to maintain the database, since everytime new skill is added a developer would have to manually add a corresponding field for the rating? There is got to be a better way to do this. Any ideas?

Subject: Dynamic field

If 'twer me, I’d drop the multi value design and switch to a parent/child document design. Each child is a skill. Define the possible skill list elsewhere so you can modify it without changing the design (think profile doc). Now you can add to or remove skills without any design intervention and a person can update skills as they learn them. The parent/child design is much easier to manage as you move forward.

Doug

Subject: RE: Dynamic field

Doug,

That is a great idea but how would they rate themselves? So the user needs to rate himself/herself on each skill. Also, what would be the parent document?

Can you please shed some light?? Thank You for your response.

Subject: RE: Dynamic field

I’m still trying to figure this out, can somebody please help. If you have an example that would really help.

Thank You for your help!

Ash

Subject: Dynamic field

For a starter, look for the TableWalker demo… though this is somewhat of an old model. I use something similar in an application that has no dialog box and uses a div to input new values into editable fields. “Submitting” the new values pushes them to a new “Row” in my display table which is actually a collection of divs/spans for each row. Building the “cells” provides each row with a div id and the javascript code to handle events such as onclick. The onclick event for the row should pass the data back to the editable fields to be changed. A set of multivalue fields is still required in this model to hold the actual data. The divs are simply used for displaying the data and are populated from the fields during the onLoad. You could use something like this to simulate what you are trying to do (you could even build it so that whenever you edit the row, you float your editable fields div and it appears that you are actually editing the display div. One advantage to this method over the TW is that the * used to fill out blank spots in the table are not required. The disadvantage is that this is web only, of course.

You can also use a method similar to TW in the client but have the editable fields in the same document as the display fields and use a button or the exit event of the last field to populate the “table”.

I have also seen (perhaps on OpenNTF, though I don’t remember) a demo for an inView edit on the web. This may work in a similar manner and have code that could be useful for what you are trying to do… but I have not looked at it myself.

Subject: RE: Dynamic field

Joel,

Thank You for your repsonse. I will look for the demo. My app is client based, no Wen interface.

Thank You,

Ash

Subject: RE: Dynamic field

Maybe this is too “brute force”, but I think it could work for you.

First have a table. Each row would house a different skillset (preset choices by you). First column would be the skillset.

The next column would be for the rating fields… each one being a radio button with 5 choices, set to 5 columns. Make the table pretty. Deep ridge borders, background colors, etc.

That would be as far as you would need to go, but you could go another step, and allow the user to select from a list the skills they have, and only display the rows (using hide/when) for the items they check off.

This would require a separate field per skillset.

That is how I would do it and forget about it. Cheap and quick.

Would that work for you?

Subject: RE: Dynamic field

Matt,

Thank You for your response. But this would require a developer intervention anytime a new skill needs to be added. Correct?

I want to design it so that the skills are part of the Keyword document and the Multivalue field on the form looks-up to the Keyword document and displays all skills. And then across each item/skill there should be a rating field displaying 5 choices (0-1). So how do I generate rating for each skill? Does this make sense?

Again, thanks for your input.

Subject: RE: Dynamic field

If it’s a browser app you can generate ad hoc forms with HTML and have agents to process the input.

If it’s a Notes client app, it’s not as simple. How you present the UI to the user is (mostly) separate from the issue of how you store the data. You’re presumably going to want to be able to store the information in a way that facilitates searching (“List everyone who’s a 4 or more in Java and 3 or more in XML”).

You actually could have a form that updates itself based on information you enter in a configuration document or something: you could have an agent that is RunOnServer when the config doc is saved, pulls the information from the document and uses DXL to generate a new form that contains the necessary fields. This is nice because then the user can just enter a value in each field.

For easy construction of searches, you could use a dialog with this same form (or another auto-generated form) to let people make their selections.

To store the data in a way that’s searchable, you could have five “level” fields which are multivalued, which each list the skills they have said they have at that level. That way if you want the 4’s and 5’s of a particular skill, you could use a query like ([level4] = “Java”) or ([level5] = “Java”), and you could also just search for “Java” anywhere in the document.