*--- ****Procedure Filesfro ****Copies data from the followin three data bases : * HRXXX.DBF ALIAS ->HEADERS.DBF * RRXXX.DBF ALIAS ->RECORDS.DBF * FRXXX.DBF ALIAS ->FRECORDS.DBF * TO TEXT FILES NAMED * HEADERS.TXT, RECORDS.TXT, FRECORDS.TXT * THE ABOVE FILES ARE THEN ADD TOGETHER * SO THAT THEY ARE SIMILAR TO THE ORGINAL FILE * A COPY IS MADE WITH A .BAK EXTENISON AND ANOTHER COPY WITH THE * A .DAT EXTENISON IS COPIED BACK TO THE LAN ************************************************************ **** VARIABLES SECTION **** ****Parameters GLOBAL * Path variables are used. * No changes are made. * They are defined in main menu setup. ****Parameters pased to procedure * None ****Parameters Used * lcFormNo * lcBatchN * lcBatchNB * lcPath * lcSkeleton * lnValue * ARRAY * laBatSel1 ****Parameters returned * None *-- PROCEDURE FilesFro *CLOSE ALL WAIT "STARTING FILE COPY TO LAN "WINDOW NOWAIT PRIVATE lnTNHRLocB, lnTNDRLocB, lnTNHRLoc, lnTNDRLoc, llAllReady lnTNHRLocB = 0 lnTNDRLocB = 0 lnTNHRLoc = 0 lnTNDRLoc = 0 llAllReady = .F. *list memo to c:\tempa.txt PRIVATE lcFormNo, lcBatchN, lcBatchNB, lcPath, lcSkeleton, lnValue PRIVATE ARRAY laBatSel1 lcFormNo = FormType() lcPath = gcDrvLoc + gcAQCVIK lcSkeleton = "*.DAT" Value = ADIR(laBatSel1,(lcPath + lcSkeleton)) lcBatchN = ALLTRIM(laBatSel1[1,1]) lcBatchNB = lcBatchN lcBatchNB = STRTRAN(lcBatchNB, ".DAT" , ".BAK" ) COPY FILE (gcDrvLoc + gcAQCVIK + lcBatchN) TO ; (gcDrvLoc + gcAQCVIK + lcBatchNB) *****************************CHECK OF ABOVE COPY*************** DO COUNTREC WITH (gcDrvLoc + gcAQCVIK + lcBatchN), lnTNHRLocB, lnTNDRLocB, llAllReady DO COUNTREC WITH (gcDrvLoc + gcAQCVIK + lcBatchNB), lnTNHRLoc, lnTNDRLoc, llAllReady IF ((lnTNHRLocB = lnTNHRLoc) .AND. (lnTNDRLocB = lnTNDRLoc)) WAIT "The BACK UP File has been copied correctly" WINDOW NOWAIT ELSE WAIT "The BAKUP File DID NOT COPY CORRECTLY CALL SYS ADMIN" WINDOW WAIT "The BAKUP File DID NOT COPY CORRECTLY CALL SYS ADMIN" WINDOW WAIT "ERROR FOUND BY FILES FILESFROM PROGRAM" WINDOW ENDIF ***************************************************************** IF USED("YNFLAGS") SELECT YNFLAGS ELSE SELECT 0 USE (gcDrvLoc + gcAQCVIK + "YNFLAGS.dbf"); ALIAS YNFLAGS ENDIF IF USED("HEADERS") SELECT HEADERS ELSE SELECT 0 USE gcDrvLoc + gcAQCVIK + "HR" + lcFormNo + ".DBF" ALIAS HEADERS ENDIF COPY TO gcDrvLoc + gcAQCVIK + "HEADERS.TXT" TYPE SDF USE ******test stuff tlcPathH = gcDrvLoc + gcAQCVIK + "HEADERS.TXT" tlnNoLnsH = COUNTLNS(tlcPathH) IF tlnNoLnsH = YNFLAGS.NoHeadRecs WAIT "The correct no of header records has been copied." WINDOW NOWAIT WAIT "The no of header records is ->"+ ALLTRIM(STR(tlnNoLnsH)) WINDOW WAIT "The no of header records there should be is ->"+ ; ALLTRIM(STR(YNFLAGS.NoHeadRecs)) WINDOW ELSE WAIT "The correct no of header records HAS NOT!!!! been copied." WINDOW WAIT "The no of header records is ->"+ ALLTRIM(STR(tlnNoLnsH)) WINDOW WAIT "The no of header records there should be is ->"+ ; ALLTRIM(STR(YNFLAGS.NoHeadRecs)) WINDOW ENDIF ******test stuff IF USED("RECORDS") SELECT RECORDS ELSE SELECT 0 USE gcDrvLoc + gcAQCVIK + "RR" + lcFormNo + ".DBF" ALIAS RECORDS ENDIF COPY TO gcDrvLoc + gcAQCVIK + "RECORDS.TXT" TYPE SDF USE ******test stuff tlcPathR = gcDrvLoc + gcAQCVIK + "RECORDS.TXT" tlnNoLnsR = COUNTLNS(tlcPathR) IF tlnNoLnsR = YNFLAGS.NoDataRecs WAIT "The correct no of data recs has been copied" WINDOW WAIT "The no of data records is ->"+ ALLTRIM(STR(tlnNoLnsR)) WINDOW WAIT "The no of data records there should be is ->"+ ; ALLTRIM(STR(YNFLAGS.NoDataRecs)) WINDOW ELSE WAIT "The data recs have not been copied to" WINDOW WAIT " RECORDS.TXT file correctly" WINDOW WAIT "Call sys admin!!!!!!!!!!filesfrom.prg" WINDOW ENDIF ******test stuff IF USED("FRECORDS") SELECT FRECORDS ELSE SELECT 0 USE gcDrvLoc + gcAQCVIK + "FR" + lcFormNo + ".DBF" ALIAS FRECORDS ENDIF COPY TO gcDrvLoc + gcAQCVIK + "FRECORDS.TXT" TYPE SDF USE ******test stuff tlcPathFR = gcDrvLoc + gcAQCVIK + "FRECORDS.TXT" tlnNoLnsFR = COUNTLNS(tlcPathFR) IF tlnNoLnsFR = YNFLAGS.NoDataRecs WAIT "The correct no of FRECORDS has been copied" WINDOW NOWAIT WAIT "The no of FRECORDS is ->"+ ALLTRIM(STR(tlnNoLnsFR)) WINDOW NOWAIT WAIT "The no of FRECORDS there should be is ->"+ ; ALLTRIM(STR(YNFLAGS.NoDataRecs)) WINDOW NOWAIT ELSE WAIT "The FRECORDS have not been copied to" WINDOW WAIT " FRECORDS.TXT file correctly" WINDOW WAIT "Call sys admin!!!!!!!!!!filesfrom.prg" WINDOW ENDIF ******test stuff IF USED("LISR1") SELECT LISR1 USE ENDIF IF USED("LISTR") SELECT LISTR USE ENDIF IF USED("CHECKER") SELECT CHECKER USE ENDIF IF USED("CHECKER1") SELECT CHECKER1 USE ENDIF *open the main flat file STORE FCREATE(gcDrvLoc + gcAQCVIK + lcBatchN , 0 ) TO Main_Handle ************************************************************************** *open headers.txt STORE FOPEN(gcDrvLoc + gcAQCVIK + "HEADERS.TXT") TO Heads_Handle && Open the file STORE FSEEK(Heads_Handle, 0, 2) TO Heads_size && Move pointer to EOF STORE FSEEK(Heads_Handle, 0) TO Heads_top && Move pointer to BOF ************************************************************************** ************************************************************************** *open records.txt STORE FOPEN(gcDrvLoc + gcAQCVIK + "RECORDS.TXT") TO Recs_Handle && Open the file STORE FSEEK(Recs_Handle, 0, 2) TO Recs_size && Move pointer to EOF STORE FSEEK(Recs_Handle, 0) TO Recs_top && Move pointer to BOF Recs_string = FGETS(Recs_Handle, Recs_size) && Store contents to memory ************************************************************************** ************************************************************************** *open frecords.txt STORE FOPEN(gcDrvLoc + gcAQCVIK + "FRECORDS.TXT") TO FRecs_Handle && Open the file STORE FSEEK(FRecs_Handle, 0, 2) TO FRecs_size && Move pointer to EOF STORE FSEEK(FRecs_Handle, 0) TO FRecs_top && Move pointer to BOF FRecs_string = FGETS(FRecs_Handle, FRecs_size) && Store contents to memory ************************************************************************** ************************************************************************** DO WHILE (!FEOF(Heads_Handle)) IF Heads_size <= 0 && Is File empty? WAIT 'This file is empty!' WINDOW TIMEOUT 5 ELSE && If not Heads_string = FGETS(Heads_Handle, Heads_size) && Store contents to memory =FPUTS(Main_Handle, Heads_string) ENDIF *do bugfind DO WHILE .T. IF ((!FEOF(Recs_Handle)) .AND. (SUBSTR(Heads_string, 6 , 8) = SUBSTR(Recs_string, 6 , 8))) IF Recs_size <= 0 && Is File empty? WAIT 'This file is empty!' WINDOW TIMEOUT 5 ELSE && If not =FPUTS(Main_Handle, Recs_string) Recs_string = FGETS(Recs_Handle, Recs_size) && Store contents to memory ENDIF IF ((!FEOF(FRecs_Handle)) .AND. (SUBSTR(Heads_string, 6 , 8) = SUBSTR(FRecs_string, 6 , 8))) IF FRecs_size <= 0 && Is File empty? WAIT 'This file is empty!' WINDOW TIMEOUT 5 ELSE && If not =FPUTS(Main_Handle, FRecs_string) FRecs_string = FGETS(FRecs_Handle, FRecs_size) && Store contents to memory ENDIF ENDIF ELSE *do bugfind EXIT ENDIF ENDDO ENDDO *write the proper records in the proper order to the main flat file *copy the main flat file back to where it came from *close all the files = FCLOSE(Main_Handle) && Close the file ******test stuff tlcPathM = gcDrvLoc + gcAQCVIK + lcBatchN tlnNoLnsM = COUNTLNS(tlcPathM) IF (tlnNoLnsM = (YNFLAGS.NoHeadRecs + (2 * YNFLAGS.NoDataRecs))) WAIT "The no recs in the .dat file is ->"+ ALLTRIM(STR(tlnNoLnsM)) WINDOW WAIT "The no recs in the .dat file be is ->"+ ; ALLTRIM(STR(YNFLAGS.NoHeadRecs + (2 * YNFLAGS.NoDataRecs))) WINDOW ELSE WAIT "THE .DAT FILE HAS BEEN MIS COPIED.!" WINDOW WAIT "THE .DAT FILE HAS BEEN MIS COPIED.!" WINDOW WAIT "CALL SYS ADMIN " WINDOW ENDIF ******test stuff = FCLOSE(Heads_Handle) && Close the file = FCLOSE(Recs_Handle) && Close the file = FCLOSE(FRecs_Handle) && Close the file COPY FILE (gcDrvLoc + gcAQCVIK + lcBatchN) TO ; (gcDrvLan + gcAVIK + gcDATA + lcBatchN) COPY FILE (gcDrvLoc + gcAQCVIK + lcBatchN) TO ; (gcDrvLoc + gcAQCVIK + lcBatchNB) ******test stuff tlcPathM = gcDrvLan + gcAVIK + gcDATA + lcBatchN tlnNoLnsM = COUNTLNS(tlcPathM) IF ((YNFLAGS.NoHeadRecs + (2 * YNFLAGS.NoDataRecs)) = (tlnNoLnsM)) WAIT "The no of ALL records on the lan is ->"+ ALLTRIM(STR(tlnNoLnsM)) WINDOW NOWAIT WAIT "The no of all records there should be on the lan is ->"+ ; ALLTRIM(STR(YNFLAGS.NoHeadRecs + (2 * YNFLAGS.NoDataRecs))) WINDOW NOWAIT ELSE WAIT "The no of rec on the lan is not correct." WINDOW WAIT "The no of rec on the lan is not correct." WINDOW WAIT "Call sys admin!!!!!!!!!!filesfrom.prg" WINDOW ENDIF ******test stuff ******test stuff tlcPathM = gcDrvLoc + gcAQCVIK + lcBatchNB tlnNoLnsM = COUNTLNS(tlcPathM) IF (tlnNoLnsM = (YNFLAGS.NoHeadRecs + (2 * YNFLAGS.NoDataRecs))) WAIT "The no of ALL records in the back up file is ->"+ ALLTRIM(STR(tlnNoLnsM)) WINDOW NOWAIT WAIT "The no of all records there should be in the backup file is ->"+ ; ALLTRIM(STR(YNFLAGS.NoHeadRecs + (2 * YNFLAGS.NoDataRecs))) WINDOW NOWAIT ELSE WAIT "The no of rec IN THE BACK UP FILE is not correct." WINDOW WAIT "The no of rec IN THE BACK UP FILE is not correct." WINDOW WAIT "Call sys admin!!!!!!!!!!filesfrom.prg" WINDOW ENDIF ******test stuff *ERASE(gcDrvLoc + gcAQCVIK + lcBatchN) SET EXCLUSIVE OFF SELECT 0 USE gcDrvLan + gcAvik + gcMod1 + gcD + 'BATCHSEL.DBF' SET EXCLUSIVE ON go top LOCATE FOR lcBatchN $ batchsel.cfilename1 IF RLOCK() REPLACE batchsel.linuse WITH .F. ELSE WAIT "CALL SYS ADMIN PROBLEM IN Procedure FilesFrom" WINDOW ENDIF IF USED("YNFLAGS") SELECT YNFLAGS USE ENDIF ERASE(gcDrvLoc + gcAQCVIK + lcBatchN) ERASE (gcDrvLoc + gcAQCVIK + "HR" + lcFormNo + ".DBF") ERASE (gcDrvLoc + gcAQCVIK + "HEADERS.TXT") ERASE (gcDrvLoc + gcAQCVIK + "FR" + lcFormNo + ".DBF") ERASE (gcDrvLoc + gcAQCVIK + "FRECORDS.TXT") ERASE (gcDrvLoc + gcAQCVIK + "FR" + lcFormNo + ".CDX") ERASE (gcDrvLoc + gcAQCVIK + "RR" + lcFormNo + ".DBF") ERASE (gcDrvLoc + gcAQCVIK + "RECORDS.TXT") ERASE (gcDrvLoc + gcAQCVIK + "RR" + lcFormNo + ".CDX") ERASE (gcDrvLoc + gcAQCVIK + "FH" + lcFormNo + ".DBF") ERASE (gcDrvLoc + gcAQCVIK + "FHEADERS.TXT") ERASE (gcDrvLoc + gcAQCVIK + "LISR1" + lcFormNo + ".DBF") ERASE (gcDrvLoc + gcAQCVIK + "LISTR" + lcFormNo + ".DBF") ERASE (gcDrvLoc + gcAQCVIK + "ELEMCHKD" + ".DBF") ERASE (gcDrvLoc + gcAQCVIK + "ELEMCHKH" + ".DBF") ERASE (gcDrvLoc + gcAQCVIK + "ELEMCHKD" + ".FPT") ERASE (gcDrvLoc + gcAQCVIK + "ELEMCHKH" + ".FPT") ERASE (gcDrvLoc + gcAQCVIK + "ELEMCHD1" + ".DBF") ERASE (gcDrvLoc + gcAQCVIK + "ELEMCHH1" + ".DBF") ERASE (gcDrvLoc + gcAQCVIK + "ELEMCHD1" + ".FPT") ERASE (gcDrvLoc + gcAQCVIK + "ELEMCHH1" + ".FPT") ERASE (gcDrvLoc + gcAQCVIK + "YNFLAGS" + ".DBF") ERASE (gcDrvLoc + gcAQCVIK + "TEMP" + ".DBF") ERASE (gcDrvLoc + gcAQCVIK + "RTEMP" + ".DBF") glAsetrel = .T. WAIT "FILES COPIED TO LAN "WINDOW TIMEOUT 5 RETURN