Mike
  I use the SPUT for fixed fields.

  The code is list below.

Buddy

*******Code Starts Here

  SET ERR MESS OFF 
  SET MESS OFF

*( Remove the EOFchar)

   SET EOFChar OFF

   SET WIDTH = 5000
  
   SET VAR VRecord TEXT = (SFIL((CHAR(32)),388))

--This when the coverage will take effect
   SET VAR VEffDate DATE = 09/01/2003

   DEL C:\TEMP\UPMCFile.TXT
   OUT C:\TEMP\UPMCFile.TXT

   SEL COUNT(*) INTO VRows INDIC IVRows FROM HlthIns WHE ASSN IN (SEL ASSN FROM 
ActiveStudents) AND +
     EnrollWaive = 'Enroll' AND Coverage = 'Individual' AND AcademicYear = '2003-2004' 
AND SentToUPMC IS NULL 

--Add header and footer lines to count
   SET VAR VRows = (.VRows + 2)

--Counter for rows actually added to file
   SET VAR VHowmany INTEGER = 0

--This creates the header line   
--H001Record Type
   SET VAR VRecord = (SPUT(.VRecord,'H',1))
--H003 Submitter Name
   SET VAR VRecord = (SPUT(.VRecord,'PITT Med Sch',23))
--H004 Create Date
   SET VAR VRecord = (SPUT(.VRecord,(CTXT(FORMAT(.#DATE,'YYYYMMDD'))),63))
--H005 Record Count includes header and footer
   SET VAR VRecord = (SPUT(.VRecord, (RJS((CTXT(.VRows)),10)),71))

--   OUT C:\TEMP\UPMCFile.TXT APPEND
    WRI .VRecord
--   OUT TERM 

   SET VAR VASSN TEXT, VOBGYN TEXT, VPrac TEXT, VPCP TEXT, VPrac TEXT, +
    VGLName TEXT, VGFName TEXT, VLAddress TEXT, VLCity TEXT, VLState TEXT, +
    VLZip TEXT, VGender TEXT, VDOB DATE,VDivision TEXT,VCLassYear INTEGER

--File must be in SSN order ASC

   DROP CURSOR C#1
   DECL C#1 CURSOR FOR SELECT ASSN,PCPNumber,OBGYNNumber,PracNumb FROM HlthIns WHE +
    EnrollWaive = 'Enroll' AND Coverage = 'Individual' AND AcademicYear = '2003-2004' 
AND SentToUPMC IS NULL +
      ORDER BY ASSN 

   OPEN C#1

   FETCH C#1 INTO VASSN INDIC IVASSN, VPCP INDIC IVPCP, VOBGYN INDIC IVOBGYN, VPrac 
INDIC IVPrac

   WHILE SQLCODE <> 100 THEN
  
    SEL GLNAME,GFNAME,LAddress,LCity,LState,LZip,DateOfBirth,Gender,(IYR(ClassOf)) 
INTO +
      VGLName INDIC IVGLName, VGFName INDIC IVGFName, +
      VLAddress INDIC IVLAddress, VLCity INDIC IVLCity, VLState INDIC IVLState, +
      VLZip INDIC IVLZip,VDOB INDIC IVDOB, VGender INDIC IVGender,VCLassYear INDIC 
IVClassYear +
    FROM ActiveStudents WHE ASSN = .VASSN

    SWITCH (.VClassYear)
     CASE 2004
      --4th Year
        SET VAR VDivision = ('0061693020')
      BREAK
     CASE 2005
      --3rd Year
        SET VAR VDivision = ('0061693020')
      BREAK
     CASE 2006
      --2nd Year
        SET VAR VDivision = ('0061693020')
      BREAK
     CASE 2007
      --1st Year
        SET VAR VDivision = ('0061693020')
      BREAK
      DEFAULT
         SET VAR VDivision = NULL
     ENDSW

    IF SQLCODE <> 0 THEN
      GOTO NxtOne
    ENDIF

--Set var to all spaces
      SET VAR VRecord TEXT = (SFIL((CHAR(32)),387))
--    SET VAR VRecord TEXT = (SFIL((CHAR(255)),387))


--D001 Record Type
   SET VAR VRecord = (SPUT(.VRecord,'D',1))
--D002 Contract Holders SSN
   SET VAR VRecord = (SPUT(.VRecord,.VASSN,3))
--D003 Members SSN
   SET VAR VRecord = (SPUT(.VRecord,.VASSN,13))
--D004 Last Name
   SET VAR VRecord = (SPUT(.VRecord,(LUC(.VGLName)),23))
--D005 First Name
   SET VAR VRecord = (SPUT(.VRecord,(LUC(.VGFName)),37))
--D006 Address Line 1
   IF VLAddress CONTAINS '#' THEN
     SET VAR VLAddress = (SRPL(.VLAddress,'#',' ',0))
   ENDIF
   SET VAR VRecord = (SPUT(.VRecord,(LUC(.VLAddress)),51))
--D013 Birth Date
   SET VAR VRecord = (SPUT(.VRecord,(CTXT(FORMAT(.VDOB,'YYYYMMDD'))),143))
--D014 City
   SET VAR VRecord = (SPUT(.VRecord,(LUC(.VLCity)),151))
--D015 Class
   SET VAR VRecord = (SPUT(.VRecord,'SB',175))
--D019 Division Number
   SET VAR VRecord = (SPUT(.VRecord,.VDivision,191))
--D020 Effective Date
   SET VAR VRecord = (SPUT(.VRecord,(CTXT(FORMAT(.VEffDate,'YYYYMMDD'))),201))

--This will have to be changed next year. No longer using PCPNumbers only Practice 
Numbers

*(
 IF (SLEN(.VOBGYN)) = 6 THEN
  --D029 Alternate Provider Number
   SET VAR VRecord = (SPUT(.VRecord,.VOBGYN,247))
 ENDIF
)
 IF (SLEN(.VOBGYN)) = 4 THEN
  --D030 OBGYN Practice number
   SET VAR VRecord = (SPUT(.VRecord,.VOBGYN,259))
 ENDIF

  IF (SLEN(.VPCP)) = 6 THEN
    --D031 Primary Care Physicians Provider Number
     SET VAR VRecord = (SPUT(.VRecord,.VPCP,263))
  ENDIF

  IF (SLEN(.VPrac)) = 4 THEN
   --D032 Primary Care Physicans Practice Number
    SET VAR VRecord = (SPUT(.VRecord,.VPrac,275))
  ENDIF

--D037 Gender
   SET VAR VRecord = (SPUT(.VRecord,(LUC(.VGender)),295))

--D038 State
   SET VAR VRecord = (SPUT(.VRecord,(LUC(.VLState)),297))

--D046
   SET VAR VRecord = (SPUT(.VRecord,VLZip,363))
   
--   OUT C:\TEMP\UPMCFILE.TXT APPEND
    WRI .VRecord
--   OUT TERM

   SET VAR VHowmany = (.VHowMany + 1)


   UPD  HlthIns SET SentToUPMC = .#DATE WHE +
       ASSN = .VASSN AND AcademicYear = '2003-2004' AND EnrollWaive = 'Enroll' AND +
      Coverage = 'Individual' AND SENTTOUPMC IS NULL

LABEL NxtOne
 
      SET VAR VPCP = NULL
      SET VAR VOBGYN = NULL
      SET VAR VPrac = NULL


    FETCH C#1 INTO VASSN INDIC IVASSN, VPCP INDIC IVPCP, VOBGYN INDIC IVOBGYN, VPrac 
INDIC IVPrac
   ENDWHILE
   DROP CURSOR C#1

--Set var to all spaces
   SET VAR VRecord TEXT = (SFIL((CHAR(32)),388))
   
--Add header and footer lines to howmany added
   SET VAR VHowmany = (.VHowmany + 2)

   SET VAR VDepCount INTEGER = 0

--T001 Record Type
   SET VAR VRecord = (SPUT(.VRecord,'T',1))
--T003 Submitter Name
   SET VAR VRecord = (SPUT(.VRecord,'PITT Med Sch',23))
--T004 Create Date
   SET VAR VRecord = (SPUT(.VRecord,(CTXT(FORMAT(.#DATE,'YYYYMMDD'))),63))
--T005 Record Count includes header and footer
   SET VAR VRecord = (SPUT(.VRecord, (RJS((CTXT(.VHowmany)),10)),71))
--T006 Contract Holder Count
--Subtract header and footer lines to howmany added
   SET VAR VHowmany = (.VHowmany - 2)
   SET VAR VRecord = (SPUT(.VRecord, (RJS((CTXT(.VHowmany)),10)),81))
--T007 Dependent Count
   SET VAR VRecord = (SPUT(.VRecord, (RJS((CTXT(.VDepCount)),10)),91))

--   OUT C:\TEMP\UPMCFILE.TXT APPEND
     WRI .VRecord
--   OUT TERM

--Subtract Header and footer from VRows to compare
 
   SET VAR VRows = (.VRows - 2)


   IF VHowmany <> .VRows THEN
      CLS
      PAUSE 2 USI 'Error.....Counts Not matching please check file' AT CENTER CENTER
   ENDIF
   
   SET EOFChar ON

   SET WIDTH = 79

  OUT TERM

*******Code Ends Here

Reply via email to