FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Combobox Data
Posts: 2706
Joined: Fri Oct 07, 2005 01:50 PM
Combobox Data
Posted: Fri Sep 18, 2015 02:12 PM
To All

I am migrating an application and I have a field called Status which I am using in a combobox .. However I ran across a problem .. what happens if the data in the table ( in this case = "Dispute" ) is not found in the array aStatus ? .. apparently cStatus is not found even though the data for cStatus = "Dispute" .. but the value that shows in the combobox is blank ..

Is there a way to over-ride that behavior if cStatus is not found in aStatus so that if cStatus is not found, at least cStatus will be visible in the combobox field?

Thanks
Rick Lipkin

Code (fw): Select all Collapse
Local oStatus,cStatus,aStatus

aStatus := {}
aadd( aStatus, "All")
aadd( aStatus, "Active" )


cStatus := a->Status  // "Dispute"

REDEFINE COMBOBOX oStatus  var cStatus   ID 148 of oInvt  ;
             ITEMS aStatus when cMode <> "V"
   oStatus:SetFont( oFontB )
   oStatus:lIncSearch = .T.
Posts: 4840
Joined: Fri Nov 18, 2005 04:52 PM
Re: Combobox Data
Posted: Fri Sep 18, 2015 02:31 PM

Rick,

Is sounds like you have a referential integrity issue. Can't you just add "Dispute" to the array, or are there lots more possible items that aren't in the list?

If so, you could create a UNIQUE index on the field and use that data to load the array. But I do wonder how data that was not allowed got into the field?

James

FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10
Posts: 2706
Joined: Fri Oct 07, 2005 01:50 PM
Re: Combobox Data
Posted: Fri Sep 18, 2015 02:45 PM

James

I am in the process of converting some old Excel data and this data is a mess. As I import the data I am building the lookup tables as I go, so technically, the imported data will be in the lookup tables I create as I loop thru excel.

My question is two fold .. what happens if someone deletes a record in one of the look up tables and as I build my array for the combobox during data entry, that value is missing from the array so when I edit or view the main table that has the value .. since that field value was not found in the array . the combobox value is blank.

If there is no other way around this, I will prob abandon the combobox and just use a field with a look up table.

Rick Lipkin

Posts: 4840
Joined: Fri Nov 18, 2005 04:52 PM
Re: Combobox Data
Posted: Fri Sep 18, 2015 04:23 PM
Rick,

My question is two fold .. what happens if someone deletes a record in one of the look up tables and as I build my array for the combobox during data entry


I would question why would you allow anyone to do that? Shouldn't the table be built by you and maintained by you, and maybe an admin? Actually, for integrity you can't allow any item to be deleted from the table once it has been used.

...that value is missing from the array so when I edit or view the main table that has the value .. since that field value was not found in the array . the combobox value is blank.


There is a method add( cItem, nAt) for the combobox, so technically you could add it on the fly. But, I still maintain that you should build the lookup table and never delete anything from it. Anything else is going to create a nightmare.

I also note that you should always have a blank entry in the lookup table. Consider what will happen if you don't. During data entry of a new record, what if a user doesn't know or have the answer for that field. Since it is a constrained field, the user is forced to select something, so instead of getting no data, you get incorrect data. An empty field is easy to find later, but incorrect data is just about impossible to find.

There is a similar problem with radio buttons--no blank option.

Regards,
James
FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10
Posts: 2706
Joined: Fri Oct 07, 2005 01:50 PM
Re: Combobox Data
Posted: Fri Sep 18, 2015 04:44 PM

James

If I keep the comboboxes .. I will definitely only allow deletes on the look up data .. only if I check to see if the value exists in the main table .. I haven't made up my mind yet .. I like the incremental search feature of the combobox, but I use Get\Action to fire off a data validation browse .. that way I have my regular get instead of the combobox value .. Don;t know what I am going to do yet.

Rick Lipkin

Posts: 4840
Joined: Fri Nov 18, 2005 04:52 PM
Re: Combobox Data
Posted: Fri Sep 18, 2015 05:09 PM
Rick,

If I keep the comboboxes .. I will definitely only allow deletes on the look up data .. only if I check to see if the value exists in the main table ..


I'm not clear what you are saying. It sounds like you said just the opposite of what I would expect--only allow deletes on the lookup data if the value DOES NOT exist in the main table. Is that what you meant?

Generally I would only allow additions to the lookup table, never deletions. Then I don't think I have ever dealt with the situation where we needed to remove an option for all future records.

Is the purpose of the combobox to limit users to specific choices, or are these just suggestions? Maybe if you provided more details, I could offer more relevant suggestions.

James
FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10
Posts: 2706
Joined: Fri Oct 07, 2005 01:50 PM
Re: Combobox Data
Posted: Fri Sep 18, 2015 05:13 PM

James

I am multi-tasking .. If I allow deletes on the look up tables .. I will first look to the main data to see if that value exists .. if it does .. I WILL NOT allow any deletes on the lookup data that makes up the Ccombobox array.

Sorry for the confusion

RIck Lipkin

Posts: 4840
Joined: Fri Nov 18, 2005 04:52 PM
Re: Combobox Data
Posted: Fri Sep 18, 2015 05:23 PM

Rick,

Got it.

Multitasking--the life of every programmer. I think we are all prematurely wearing out our brains...

James

FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10

Continue the discussion