Good morning,
I have a Ultragrid which has a combo box in it. When I record, the value will work with the SetCellData if it is correct. Some of our values have trailing spaces and some do not. I need to get the combo box from the cell. Then I can process the items to see if the specified value is available. If available I can select the value.
Can you tell me how to get the combo box object so I can work with it?
Regards,
Brian
That depends highly on how, where and when the combobox's gets it's data as well as what the combobox actually is. By default, I would say you should be able to use GetNAProperty to get either the cell's or the columns ValueList property, and look at it's ValueListItems. But it is also quite possible that the combobox is a customized editor that doesn't follow that methodology or place of storage for it's data, or that it only populates the combobox on dropdown, and the valuelists are empty prior to that. For the later you can activate the cell, then PerformAction gridEnterEditModeAndDropdown, then try to get the value of the valuelists. If none of those work, I would suggest contacting your developer and learning more about this particular instance of combobox itself.
As to QTP getting ahold of the specific combobox, in most scenarios the combobox is an editor component and not really a control. In which case QTP has no knowledge of it, as it only interacts with objects that inherit form System.Windows.Forms.Control.
Hi Michael,
Could you possible provide and example of the code to get both the cell and column value list items?
Thank you,
Hi Mike,
I spoke to the person I work with on this project. Laurie recalls that we could not use the 10.3 advantage on the application since the company used a earlier version of the toolkit to build the code. Can we install the 10.3 to get the information and then use this in the 2007 toolkit code in QTP.
Thank you for your help,
Here are the versions of the DLLs which are in the appliation directory.
Can we use the TestAdvantage 10.3 with this version of code?
Hi Brian,
Unfortunately no, you need to use the version of TestAdvantage with an identical Major and Minor assembly version number, and CLR. So in your case you would need to use TestAdvantage 7.3 since you are using NetAdvantage 7.3.
GetNAProperties is only really an exploratory method to help learn more about the property names and their data types. It's useful for testers who may have limited access to their developers and want more information on the fly. If you do have access to your developer it should be easier to ask them what that datatype is and what properties it has.
If for some reason that is not a viable option for you, there are other methods. Albeit they will require a greater amount of understanding of code. You could use .NET Reflector, have it open your application, then find the data type that you are looking for.
According to your previous entry in the forums, you would need to expand the references of your application, right click on the reference to Framework, and select Go To Assembly. Find that assembly, which hopefully should be either in the directory of your application or it's bin directory. If you find that assembly, then you can search for it via F3 or View-> Search to search for "Summit.Framework.View.DDItem", double click it in the search window to highlight it in the main window. Finally right click it and select dissemble. It should open a Disassembler window.
Use the information that you garner from that to access the data via GetNAProperty. Note that GetNAProperty returns allows you to dig down through public properties. It will only return values of properties for simple datatypes such as string, int, double, datetime, etc.
As I stated this is a much more advanced method of trying to learn about a particular object, and is why we created GetNAProperties, but as this is not a window open to you, due to versioning restrictions, and if the developer is not available to you, it is at least an additional option.
Is there anything more we can help you with?
Michael S.
Thank you for the ideas. We are going to hold off on getting this done for now.