Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

Combobox confusion

Posted on 2010-11-09
2
403 Views
Last Modified: 2012-06-21
Hi Experts,

I'm trying to populate a combobox with two fields from one table and then save a value to another table.

ControlSource=Table2.Field1
RowsourceType = 6 (Fields)
Rowsource = Table1.Field1,Field2
BoundColumn=2
BoundTo = .T. (I've also tried .F.)
ColumnCount=2
ColumnWidths=0,125
Style = 2 - Dropdown List


The Rowsource table is just an index field and a description, both character fields.


Rowsource Table

Field1       Field2

01            Choice1
02            Choice2
03            Choice3
04            Choice4


I want the combobox to display Table1.Field2 and when a selection is made I want to store Table1.Field1 to Table 2.

What's happening is that nothing initially displays in the combobox. When I click on it, I see the items from Table1.Field2, as I should. But when I click on an item, I see the value from Table1.Field2. That is the value I want to store in Table 2, but I don't want to display it in the combobox after I make a selection.

For instance, when I click on the combobox I see Choice1, Choice2, etc. But when I select one of them, I see 01, 02, etc., which is what I want to store in Table 2, but not display in the combobox.

If it makes a difference, both tables are buffered,3.

I've tried using the Builder, with the same results. Any ideas? I've been at this for two days now.
0
Comment
Question by:stanmurphy
2 Comments
 
LVL 42

Accepted Solution

by:
pcelba earned 500 total points
ID: 34098116
Yes, to do it properly is a nightmare sometimes...

I've found interesting behavior: When you define the ControlSource then Combo value contains unexpected (but usabe) values...

After some investigations my Combo has following properties:

RowSourceType = 2 (Alias),
RowSource is a cursor having the first column displayed in Combo (so it is the description column) and the second column is the binded one (the numeric key).
BoundColumn = 2
ControlSource  is undefined
ColumnCount = 0  (default)

Refresh method synchronises the Combo value to data, InteractiveChange assigns the selected value into data.

I am saving the Combo value into a form property with the same name as the combo itself. To change this code for "Table ControlSource" by REPLACE command should be easy:

*-- Refresh method
LOCAL lnArea, lnID

lnArea = SELECT(0)
SELECT (THIS.RowSource)

lnID = EVALUATE("THISFORM.DataRecord." + ALLTRIM(THIS.Name))  && value of "ControlSource"

IF ID <> lnID OR EMPTY(THIS.DisplayValue)
  LOCATE FOR ID = lnID
  IF FOUND()
    THIS.DisplayValue = EVALUATE(FIELD(1))  && description field value
  ELSE
    THIS.DisplayValue = ""
  ENDIF
ENDIF

SELECT (lnArea)


*-- InteractiveChange method
IF TYPE('THIS.Value') = "C"
  STORE VAL(THIS.Value) TO ("THISFORM.DataRecord." + THIS.Name)  && REPLACE command for "Field ControlSource"
ELSE
  STORE THIS.Value TO ("THISFORM.DataRecord." + THIS.Name)
ENDIF

Open in new window

0
 

Author Closing Comment

by:stanmurphy
ID: 34098208
I was hoping I was just missing some setting in the combobox, but I think I knew I'd have to use some code somewhere.

Thank you very much!!
0

Featured Post

How our DevOps Teams Maximize Uptime

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us. Read the use case whitepaper.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
FOXPRO 2.6 DISTRIBUTION KIT 7 397
duplicating a record in a grid vfp 2 398
Fox 9  Using datetime field types 2 332
Close table 1 223
Microsoft Visual FoxPro (short VFP) is a programming language with it’s own IDE and database, ranking somewhat between Access and VB.NET + SQL Server (Express). Product Description: http://msdn.microsoft.com/en-us/vfoxpro/default.aspx (http://msd…
Learn how to PXE Boot both BIOS & UEFI machines with DHCP Policies and Custom Vendor Classes
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …

840 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question