VPM 6.0b FIX:Saving changes to view cursor

The place where ProMatrix posts coding tips and fixes. Read only.

VPM 6.0b FIX:Saving changes to view cursor

Postby JessicaLawson » Sun Jun 13, 2010 3:13 pm

Subject: VPM 6.0b FIX: Error occurs when saving changes to view cursor

Applies to: VPM 6.0b

Symptoms: An error can occur when saving changes that have been made to a
view cursor. This error will occur if before saving an index tag was created
for a view cursor, the view was requeried, and an additional index tag was
created. What happens is that the two tags are created in different CDXs
instead of both tags being created in the same CDX. This happens because VFP
changes the name of the view cursor when it is requeried and the CDX gets
its name from the view cursor.

Resolution: To fix this problem, make the following changes so that all view
cursor index tags are created in the same CDX.

1. In the SetOrder method of the VPMApp class in the VPMApp class library,
change:

INDEX ON &slcExpr TAG (slcCreateTag) &slcFilterDesc

To:

slcCDX = CDX(1)
IF EMPTY(slcCDX)
INDEX ON &slcExpr TAG (slcCreateTag) &slcFilterDesc
ELSE
INDEX ON &slcExpr TAG (slcCreateTag) OF (slcCDX) &slcFilterDesc
ENDIF

2. In the Init method of the grid in the Grid_List class in the VPMCtrls
class library, change:

IF slnSearch = 2 && Case-sensitive
INDEX ON &slcControlSource TAG &slcListTag
ELSE && Not case-sensitive
slcExpr = 'UPPER('+slcControlSource+')'
INDEX ON &slcExpr TAG &slcListTag
ENDIF

To:

slcCDX = CDX(1)
IF slnSearch = 2 && Case-sensitive
IF EMPTY(slcCDX)
INDEX ON &slcControlSource TAG &slcListTag
ELSE
INDEX ON &slcControlSource TAG &slcListTag OF (slcCDX)
ENDIF
ELSE && Not case-sensitive
slcExpr = 'UPPER('+slcControlSource+')'
IF EMPTY(slcCDX)
INDEX ON &slcExpr TAG &slcListTag
ELSE
INDEX ON &slcExpr TAG &slcListTag OF (slcCDX)
ENDIF
ENDIF

3. In the Init method of the List class in the VPMGen class library, change:

IF slnSearch = 2 && Case-sensitive
INDEX ON &slcField TAG &slcTag
ELSE && Not case-sensitive
slcExpr = 'UPPER('+slcField+')'
INDEX ON &slcExpr TAG &slcTag
ENDIF

To:

slcCDX = CDX(1)
IF slnSearch = 2 && Case-sensitive
IF EMPTY(slcCDX)
INDEX ON &slcField TAG &slcTag
ELSE
INDEX ON &slcField TAG &slcTag OF (slcCDX)
ENDIF
ELSE && Not case-sensitive
slcExpr = 'UPPER('+slcField+')'
IF EMPTY(slcCDX)
INDEX ON &slcExpr TAG &slcTag
ELSE
INDEX ON &slcExpr TAG &slcTag OF (slcCDX)
ENDIF
ENDIF
JessicaLawson
 
Posts: 79
Joined: Sun Jun 13, 2010 1:23 pm

Return to ProMatrix Library

Who is online

Users browsing this forum: No registered users and 1 guest

cron