2.50
WINDOWS
kbprg kbfixlist kbbuglist
The information in this article applies to:
- Microsoft FoxPro for Windows, version 2.5
SYMPTOMS
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.
STATUS
Microsoft has confirmed this to be a problem in FoxPro 2.5 for
Windows. This problem was corrected in FoxPro 2.5a for Windows.
MORE INFORMATION
Steps to Reproduce Problem
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.
- 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.
- 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.
- Choose the Next button again. The last Customer#, "30000," and
Contact, "Balance Computing Systems," display along with the
matching invoice number, "3333."
|