Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
How to improve this code
Message
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 6
Miscellaneous
Thread ID:
01175464
Message ID:
01175614
Views:
9
LOL

Stealing a line from Marcia Akins, it compiled fine on the UT! <g>


>Hello Hilmar,
>
>I believe you mean to use ENDIF and ENDSCAN not ENDDO in your example :)
>
>
>>>
>>>sele csrtable
>>>go top
>>>do while .not. eof()
>>>	rch = csrkey
>>>	sele employee
>>>	go top
>>>	locate for rch=ckey
>>>	if found()
>>>		lc = locfle
>>>		sele csrtable
>>>		replace locfle with lc
>>>	enddo
>>>	skip
>>>enddo
>>>
>>
>>For a start, you could use a SCAN, which saves several commands:
>>
>>
>>sele csrtable
>>scan
>>	rch = csrkey
>>	sele employee
>>	go top
>>	locate for rch=ckey
>>	if found()
>>		lc = locfle
>>		sele csrtable
>>		replace locfle with lc
>>	enddo
>>enddo
>>
>>
>>Next, you should use full commands (select instead of sele), and give your variables meaningful commands. Also, use variable naming conventions, and make sure your variables are declared. I'll omit renaming the variables for now.
>>
>>You can omit "go top", since "locate" will start at the top.
>>
>>In the locate command, I think, it is better to invert (if I understand correctly, ckey is the field, rch the variable), so that Rushmore Optimization works better.
>>
>>
>>select csrtable
>>scan
>>	rch = csrkey
>>	select employee
>>	locate for ckey = rch
>>	if found()
>>		lc = locfle
>>		select csrtable
>>		replace locfle with lc
>>	enddo
>>enddo
>>
>>
>>In your original code, you forgot to unconditionally go back to alias csrtable. (With SCAN, this is implicit.)
Previous
Reply
Map
View

Click here to load this message in the networking platform