How to Revert .SCX/.FRX Files to Pre-Transported State in FPWLast reviewed: April 30, 1996Article ID: Q126014 |
The information in this article applies to:
SUMMARYWhen you open a report or screen for editing and that report or screen was created on a platform other than the current one, the Transport program is invoked to add platform specific records to .SCX and .FRX files. Once the platform-specific records have been created and the file modified, there is no intrinsic method to revert back to the original (untransported) form. This article shows by example how to do it using code.
MORE INFORMATIONIMPORTANT NOTE: The techniques described below will *PERMANENTLY* remove all work done under the current platform on the file selected. This measure should only be carried out if attempting to repair the work would be costlier in time and effort than starting over again. Returning the file to a pre-transported state can be accomplished by opening the .SCX or .FRX with the USE command and deleting the records for the specific platform. However, if there are more than a few files to revert, this method can be time-consuming and cumbersome. The following program will quickly modify the selected files, while allowing control over the name and type of files selected. If the file has no platform specific records, the system message window will show that the selected file has completed processing, with no error generated. To display an optional safety message prior to packing the database, remove the asterisks placed in front of the section of code.
* REVERTER.PRG Removes records of the current platform in SCX or FRX * * This program assumes a clean environment, so any setup code should go * here to preserve open files, status settings, and so on. SET MESSAGE TO "Click CANCEL when finished" SET TALK OFF * Loop through SCX/FRX files to be processed, until CANCEL is pressed: DO WHILE LASTKEY() <> 27 fyl = ( GETFILE( 'SCX;FRX', 'Select a file:', 'Revert' ) ) * CANCEL button pressed, so exit loop: IF !FILE( fyl ) SET MESSAGE TO "" RETURN * otherwise, valid SCX/FRX file selected: ELSE DO CASE && determine current platform CASE AT( "WINDOWS", UPPER( VERSION() ) ) <> 0 vers = "WINDOWS" CASE AT( "MAC", UPPER( VERSION() ) ) <> 0 vers = "MAC" CASE AT( "UNIX", UPPER( VERSION() ) ) <> 0 vers = "UNIX" CASE AT( "FOXPRO", UPPER( VERSION() ) ) <> 0 vers = "DOS" OTHERWISE WAIT WINDOW "Unknown platform" NOWAIT RETURN ENDCASE USE ( fyl ) EXCLUSIVE && must not be in use elsewhere! DELETE FOR platform = vers && marks this platform's records *** optional warning message: * WAIT WINDOW CHR(13)+" DELETE RECORDS FOREVER? "+ ; * CHR(13)+CHR(13)+" [ Y ]es or [ N ]o"+ ; * CHR(13) TO answer * IF UPPER(answer)<>"Y" * WAIT WINDOW (fyl) + " skipped." NOWAIT * LOOP && go back for next file * ENDIF PACK && permanently remove records * Inform user of progress: WAIT WINDOW (fyl) + " completed." NOWAIT ENDIF && end of test for valid filename ENDDO && get next SCX/FRX, or cancel SET MESSAGE TO "" && reset status bar * End of Program |
Additional reference words: FoxWin 2.60a undo version redo revert
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |