ID: Q105587
2.50 WINDOWS kbprg kbfixlist kbbuglist
The information in this article applies to:
The SHOW GETS command does not clear a list box when a SET FILTER command is used to simulate a parent-child relationship.
This behavior occurs only when you are moving from a record in the "parent" database that has a matching "child" record to a parent record that does not have a matching child record. The list box displaying the child record should clear, but instead continues to display the previous values.
Microsoft has confirmed this to be a problem in FoxPro 2.5 for Windows. This problem was corrected in FoxPro 2.5a for Windows.
NOTE: In the following program, a filter is set on the INVOICES database in order to display the INO field for all INVOICES related to the current customer.
1. Create and run a program with the following code:
CREATE TABLE customer (cno C(5), contact C(35))
CREATE TABLE invoices (ino N(4), cno C(5))
INSERT INTO customer (cno, contact) VALUES ;
('10000', '1st Computers')
INSERT INTO customer (cno, contact) VALUES ;
('20000', 'A. Arts Computers')
INSERT INTO customer (cno, contact) VALUES ;
('30000', 'Balance Computing Systems')
INSERT INTO invoices (ino, cno) VALUES ;
(1111, '10000')
INSERT INTO invoices (ino, cno) VALUES ;
(3333, '30000')
SELECT customer
GO TOP
SELECT invoices
SET FILTER TO invoices.cno = customer.cno
* (The filter controls what appears in the list box.)
SELECT customer
DEFINE WINDOW test ;
FROM 0, 0 ;
TO 10, 60
DEFINE POPUP lpop ;
PROMPT FIELD invoices.ino ;
SCROLL ;
MARGIN
ACTIVATE WINDOW test
@ 1, 1 SAY "Customer# "
@ 1, 13 GET customer.cno ;
SIZE 1,5 ;
DEFAULT " "
@ 2, 1 SAY "Contact"
@ 2,13 GET customer.contact ;
SIZE 1, 35 ;
DEFAULT " "
@ 4,30 GET x ;
PICTURE "@*HN next" ;
SIZE 2,14,1 ;
DEFAULT 1 ;
VALID xval()
@ 4,7 GET y ;
PICTURE "@&N" ;
POPUP lpop ;
SIZE 4, 15 ;
DEFAULT " "
READ CYCLE
CLEAR ALL
FUNCTION xval
SELECT customer
SKIP
SELECT invoices
GO TOP && Move record pointer to update filter in INVOICES.
SHOW GETS && This doesn't always properly refresh the list box.
Note that the first Customer#, "10000," and Contact, "1st
Computers," are displayed, along with the matching Invoice number,
"1111," in the list box.
2. Choose the Next button. The next Customer#, "20000," and Contact,
"A. Arts Computers," display, but the invoice number is still
'1111.' The expected behavior is for the list box to clear.
3. Choose the Next button again. The last Customer#, "30000," and
Contact, "Balance Computing Systems," display along with the
matching invoice number, "3333."
Additional reference words: FoxWin 2.50 buglist2.50 fixlist2.50a empty
KBCategory: kbprg kbfixlist kbbuglist
KBSubcategory: FxprgGeneral
Solution Type : kbfix
Last Reviewed: October 14, 1997