--------------------------------------------------------------------------------------
                      [BUG/PRB.] VFP 9.0 FIX - THE SELECTED REPORT OBJECTS ARE PRINTED WITH SHADOW
                                 January 2024
                 --------------------------------------------------------------------------------------
                                     CCB



1. BUG:

     In vfp9, if we select some report objects and save the report file, it will set the CURPOS field to true (.T.) for the selected report objects.
     When we run the report in the preview window, the selected report objects are printed with shadow.

     The bug only occurs in vfp9, it does not occur in vfp6, vfp7 and vfp8.

     The bug only occurs when set ReportBehavior 80, it does not occur when set ReportBehavior 90.

     In vfp9, it will show some shadow in the preview window, please refer to the picture testshadow0-vfp9.jpg:

     and then, it will show the report in the preview window, please refer to the picture testshadow-vfp9.jpg:


2. CAUSE:

     There are some BUGs in the following code.


3. RESOLUTION:

     We can write some code to fix the BUG.

     Fun48f7f6 :: ; proc near
             push ebp                                                        ;0x0048f7f6 :        55
             mov ebp , esp                                                   ;0x0048f7f7 :        8bec
             sub esp , 013Ch                                                 ;0x0048f7f9 :        81ec3c010000
             mov eax ,  dword ptr [ Data937090 ]                             ;0x0048f7ff :        a190709300
             mov  dword ptr [ ebp - 4 ] , eax                                ;0x0048f804 :        8945fc
             pushd 043h                                                      ;0x0048f807 :        6a43
             lea ecx ,  dword ptr [ ebp + 0FFFFFEC8h ]                       ;0x0048f809 :        8d8dc8feffff
             call Fun43c868                                                  ;0x0048f80f :        e854d0faff


     ;
     ;                 ---------------------------------------------------------------------------
     ;                      VFP 9.0 FIX - THE SELECTED REPORT OBJECTS ARE PRINTED WITH SHADOW
     ;                                 October 2018
     ;                 ---------------------------------------------------------------------------
     ;                                     CCB
     ;
     ; In vfp9, if we select some report objects and save the report file, it will set the CURPOS field to true (.T.) for the selected report objects.
     ; When we run the report in the preview window, the selected report objects are printed with shadow.
     ; In VFP Advanced, it will ALWAYS use the CURPOS field as false (.F.), so there is no the shadow in the preview window.
     ;
     ;
     ; 2018/10/7, by ccb
     ;

             cmp dword ptr vfpa_report_isreportform,00h
             je Label48f814
             cmp  byte ptr [ Data93c280 ] , 05Ah
             jae Label48f814
             mov  dword ptr [ ebp + 0FFFFFED0h ] , 00h


     Label48f814 ::
             mov  ecx , dword ptr [ ebp + 8 ]                                ;0x0048f814 :        8b4d08
             mov  ecx , dword ptr [ecx]                                      ;0x0048f817 :        8b09
             xor eax , eax                                                   ;0x0048f819 :        33c0
             cmp  dword ptr [ ebp + 0FFFFFED0h ] , eax                       ;0x0048f81b :        3985d0feffff
             setne al                                                        ;0x0048f821 :        0f95c0
             mov  dword ptr [ ecx + 48 ] , eax                               ;0x0048f824 :        894130
             mov  ecx , dword ptr [ ebp - 4 ]                                ;0x0048f827 :        8b4dfc
             call Fun42bf1d                                                  ;0x0048f82a :        e8eec6f9ff
             leave                                                           ;0x0048f82f :        c9
             ret 04h                                                         ;0x0048f830 :        c20400

     Now in VFP Advanced, it will ALWAYS use the CURPOS field as false (.F.), so there is no the shadow in the preview window.
     Please refer to the picture testshadow-vfpa.jpg:


4. APPLIES TO:

     VFP 9.0.0.2412
     VFP 9.0.0.3504 (SP1)
     VFP 9.0.0.4611 (SP2)
     VFP 9.0.0.5015 (SP2)
     VFP 9.0.0.5411 (SP2)
     VFP 9.0.0.5721 (SP2)
     VFP 9.0.0.5815 (SP2)
     VFP 9.0.0.6303 (SP2)
     VFP 9.0.0.6602 (SP2)
     VFP 9.0.0.7423 (SP2)

     The bug has been fixed in VFP Advanced.


5. REFERENCE WEBSITES:

     1, baiyujia.com:
     http://www.baiyujia.com

     2, mattslay.com:
     http://www.mattslay.com/pages/FoxPro-Report-FRX-Structure.html

     3, foxcentral.com:
     http://www.foxcentral.net/microsoft/WhatsNewInVFP9_Chapter06.htm


6. OTHER:

     For reference only, there is no guarantees.

     Any questions or suggestions, please send me an email at ccb2000@163.com.