× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



I've got a program that I used the indentation feature on, and it's giving 
me the error "Indentation Mismatch occurred".  But I don't see the 
problem.  I'll post the code now, and perhaps someone can copy/paste and 
see if they get the same thing.  I've double checked my if's and do's but 
to no avail... perhaps I'm losing it... it is possible.

     H Dftname(Streets) Datedit(*YMD) Option(*Srcstmt:*NoDebugIo)
     H Dftactgrp(*NO) Actgrp('QILE')
     FStreetgarbuf   e           k Disk
     FStreet05  if   e           k Disk
     F                                     Rename(Streetsr:Streets5)
     F                                     Prefix($)
     FStreet03  if   e           k Disk
     F                                     Rename(Streetsr:Streets3)
     F                                     Prefix(#)
     FCgararea  o    e           k Disk    Usropn
     FWpuschedleo    e           k Disk    Usropn
     FList88    o    f  132        Printer
     F                                     Oflind(*InOf)
    ? //
     D tabtm           s              3    Dim(12) Ctdata Perrcd(1)
     D tabac           s              2    Dim(12) Alt(Tabtm)
    ? //
     D f1t             s             34    Varying
    ? //
     D pos             s              2  0
     D end_pos         s              2  0
     D result          s             34    Varying
     D len             s              2  0
     D f1_Key          s             30
     D f1_Work         s             30
     D counter         s              4  0
     D rec_Count       s              4  0
     D totals          s             40
     D charDate        s              8
     D strnm_Trimmed   s             30
     D strnm_100a      s            100
     D strnm_100b      s            100
     D strnm_100c      s            100
     D Cmd             s            300A   Inz
      //-Define constant 
fields--------------------------------------------------------
     D area1           c                   const('AREA 1')
     D area2           c                   const('AREA 2')
     D area3           c                   const('AREA 3')
     D area4           c                   const('AREA 4')
     D area5           c                   const('AREA 5')
     D dontdo          c                   const('DON''T DO')
     D residents       c                   const('(Residents')
     D civic_no        c                   const('(Civic')
      //--------------------------------------------------
      // Procedure name: GetDate
      // Purpose:        Reformat the date
      // Returns:
      //--------------------------------------------------
     D GetDate         PR                  LIKE(charDate)
     D  inDate                             LIKE(Date1)
      //--------------------------------------------------
      //--------------------------------------------------
      // Procedure name: Get_Comments
      // Purpose:        Gets the street commments
      // Returns:        Street comments
      //--------------------------------------------------
     D Get_Comments    PR            40A
     D  inStreet                    300A
      //--------------------------------------------------
      // Procedure name: Qcmdexc
      // Purpose:        To allow the running of CL commands
      // Returns:
      // Parameter:      Cmd => Command to run
      // Parameter:      CmdLen => Length of command to run
      //--------------------------------------------------
     D QCmdExc         PR                  EXTPGM('QCMDEXC')
     D  Cmd                        3000A   Const Options(*VARSIZE)
     D  CmdLen                       15P 5 Const
     D  Cmddbcs                       3A   Const Options(*NOPASS)
      //--------------------------------------------------
    ? //
      /FREE
       *InOf    = *On;
       // Clear out the existing data that may be in the files
       Cmd = 'CLRPFM FILE(WPUSCHEDLE)';
       CallP(E) QCmdExc(Cmd:%Len(Cmd));
       Cmd = 'CLRPFM FILE(CGARAREA)';
       CallP(E) QCmdExc(Cmd:%Len(Cmd));
       Open Wpuschedle;
       Open Cgararea;
       // Loop thru all the records in the file
       Read Streetgarb;
       Dow Not %Eof(Streetgarb);
         f1_Work = strnm;
         rec_Count = rec_Count + 1;
         // Check for '- P' and remove everything after
         pos = 0;
         pos = %Scan( '- P' : f1_Work:1 );
         If pos > 1;
           f1t = %trim(f1_Work);
           len = (pos - 1);
           result =  %Subst(f1_Work:1:len);
           f1_Work = result;
         EndIf;
         // Check for '-  P' and remove everything after
         pos = 0;
         pos = %Scan( '-  P' : f1_Work:1 );
         If pos > 1;
           f1t = %trim(f1_Work);
           len = (pos - 1);
           result =  %subst(f1_Work:1:len);
           f1_Work = result;
         EndIf;
         // Check for '-  p' and remove everything after
         pos = 0;
         pos = %Scan( '-  p ' : f1_Work:1 );
         If pos > 1;
           f1t = %Trim(f1_Work);
           len = (pos - 1);
           result =  %Subst(f1_Work:1:len);
           f1_Work = result;
         EndIf;
         // Check for '-P' and remove everything after
         pos = 0;
         pos = %Scan( '-P' : f1_Work:1 );
         If pos > 1;
           f1t = %Trim(f1_Work);
           len = (pos - 1);
           result =  %Subst(f1_Work:1:len);
           f1_Work = result;
         EndIf;
         // Check for '-  ped' and remove everything after
         pos = 0;
         pos = %Scan( '-  ped' : f1_Work:1 );
         If pos > 1;
           f1t = %Trim(f1_Work);
           len = (pos - 1);
           result =  %Subst(f1_Work:1:len);
           f1_Work = result;
         EndIf;
         // Check for '- (p' and remove everything after
         pos = 0;
         pos = %Scan( '- (p' : f1_Work:1 );
         If pos > 1;
           f1t = %Trim(f1_Work);
           len = (pos - 1);
           result =  %Subst(f1_Work:1:len);
           f1_Work = result;
         EndIf;
         // Check for '- (pe' and remove everything after
         pos = 0;
         pos = %Scan( '- (ped' : f1_Work:1 );
         If pos > 1;
           f1t = %Trim(f1_Work);
           len = (pos - 1);
           result =  %Subst(f1_Work:1:len);
           f1_Work = result;
         EndIf;
         // Check for '(p' and remove everything after
         pos = 0;
         pos = %Scan( ' (p' : f1_Work:1 );
         If pos > 1;
           f1t = %Trim(f1_Work);
           len = (pos - 1);
           result =  %Subst(f1_Work:1:len);
           f1_Work = result;
         EndIf;
         // Check for '(M' and remove all after
         pos = 0;
         pos = %Scan( '(M' : f1_Work:1 );
         If pos > 1;
           f1t = %Trim(f1_Work);
           len = (pos - 1);
           result =  %Subst(f1_Work:1:len);
           f1_Work = result;
         EndIf;
         // Check for '(A' and remove all after
         pos = 0;
         pos = %Scan( '(A' : f1_Work:1 );
         If pos > 1;
           f1t = %trim(f1_Work);
           len = (pos - 1);
           result =  %Subst(f1_Work:1:len);
           f1_Work = result;
         EndIf;
         // Check for '- (' and remove all after
         pos = 0;
         pos = %Scan( '- (' : f1_Work:1 );
         If pos > 1;
           f1t = %Trim(f1_Work);
           len = (pos - 1);
           result =  %Subst(f1_Work:1:len);
           f1_Work = result;
         EndIf;
         // Check for '(G' and remove everything after
         pos = 0;
         pos = %Scan( '(G' : f1_Work:1 );
         If pos > 1;
           f1t = %Trim(f1_Work);
           len = (pos - 1);
           result =  %Subst(f1_Work:1:len);
           f1_Work = result;
         EndIf;
         // Check for ' (' and remove everything after
         pos = 0;
         pos = %Scan( ' (' : f1_Work:1);
         If pos > 1;
           f1t = %Trim(f1_Work);
           len = (pos - 1);
           result = %Subst(f1_Work:1:len);
           f1_Work = result;
         EndIf;
         // See what we can do about getting a street number for it
         f1_Key = f1_Work;
         Chain f1_Key Streets5;
         If %Found(Street05);
           cgstreet# = $cstret;
           cgstseq# = 0;
           cgstname = $cstact;
           cgstext = *blanks;
           cgcivics = *blanks;
           cgcivice = *blanks;
           cgstrcom = Get_Comments(strnm);
           cgsp05a = Stid;
           If area <> dontdo;
             cggarbarea = %subst(area:6:1);
           Else;
             cggarbarea = *Blanks;
           EndIf;
           Write(E) Cgararear;
           Dow %Error;
             cgstseq# += 1;
             Write(E) Cgararear;
           EndDo;
           pos = 0;
           pos = %Scan(civic_no:strnm);
           If pos > 1;
             strnm_100a = %Subst(strnm:1:100);
             strnm_100b = %Subst(strnm:101:100);
             strnm_100c = %Subst(strnm:201:100);
             If *Inof;
               Except Header;
             EndIf;
             Except CivicDet;
           EndIf;
           If area <> dontdo;
             Exsr Sched;
           EndIf;
         Else;
           Chain f1_Key Streets3;
           If %Found(Street03);
             cgstreet# = #cstret;
             cgstseq# = 0;
             cgstname = #cstact;
             cgstext = *blanks;
             cgcivics = *blanks;
             cgcivice = *blanks;
             cgstrcom = Get_Comments(strnm);
             cgsp05a = Stid;
             If area <> dontdo;
               cggarbarea = %subst(area:6:1);
             Else;
               cggarbarea = *Blanks;
             EndIf;
             Write(E) Cgararear;
             Dow %Error;
               cgstseq# += 1;
               Write(E) Cgararear;
             EndDo;
             pos = 0;
             pos = %Scan(civic_no:strnm);
             If pos > 1;
               strnm_100a = %Subst(strnm:1:100);
               strnm_100b = %Subst(strnm:101:100);
               strnm_100c = %Subst(strnm:201:100);
               If *Inof;
                 Except Header;
               EndIf;
               Except CivicDet;
             EndIf;
             If area <> dontdo;
               Exsr Sched;
             EndIf;
           Else;
             counter = counter + 1;
             If *InOf;
               Except Header;
               *InOf = *Off;
             EndIf;
             strnm_Trimmed = %Subst(strnm:1:30);
             Except Detail;
           EndIf;
         EndIf;
         Clear Cgararear;
         f1_Key = *Blanks;
         f1_Work = *Blanks;
         Read Streetgarb;
       EndDo;
       Totals = %Char(counter) + ' ' + 'Records-
        not found on STREETS file.';
        If *Inof;
          Except Header;
        EndIf;
       Except Total_Line;
       Close Wpuschedle;
       Close Cgararea;
       *InLr = *On;
       
//---------------------------------------------------------------------
       // Build pickup schedule file
       BegSr Sched;
         Wpuyear = 2005;
         Wpuarea = %subst(area:6:1);
         Wpustr# = Cgstreet#;
         Wpucnt11 = 1;
         Wpuap#11 = 1;
         Wpumax11 = 75;
         Wpucnt12 = 1;
         Wpuap#12 = 1;
         Wpumax12 = 75;
         Wpucnt13 = 1;
         Wpuap#13 = 1;
         Wpumax13 = 75;
         Wpucnt21 = 1;
         Wpuap#21 = 1;
         Wpumax21 = 75;
         Wpucnt22 = 1;
         Wpuap#22 = 1;
         Wpumax22 = 75;
         Wpucnt23 = 1;
         Wpuap#23 = 1;
         Wpumax23 = 75;
         Wpucnt31 = 1;
         Wpuap#31 = 1;
         Wpumax31 = 75;
         Wpucnt32 = 1;
         Wpuap#32 = 1;
         Wpumax32 = 75;
         Wpucnt33 = 1;
         Wpuap#33 = 1;
         Wpumax33 = 75;
         Wpusp30a = *blanks;
         Wpusp20a = *blanks;
         Wpusp10a = *blanks;
         Wpusp05a = Stid;
         Wpusp01a = *blanks;
         Wpusp92s = 0;
         Wpusp72s = 0;
         Wpusp52s = 0;
         Wpusp90s = 0;
         Wpusp70s = 0;
         Wpusp50s = 0;
         Wpusp30s = 0;
         Wpusp10s = 0;
         //
         Select;
         When area = area1;
           Wpufrdte10 = 20050621;
           Wputodte10 = 20050630;
           charDate = GetDate(Date1);
           Wpupudte11 = %Int(charDate);
           charDate = GetDate(Date2);
           Wpupudte12 = %Int(charDate);
           Wpupudte13 = 0;
           Wpufrdte20 = 20050801;
           Wputodte20 = 20050805;
           charDate = GetDate(Date3);
           Wpupudte21 = %Int(charDate);
           Wpupudte22 = 0;
           Wpupudte23 = 0;
           Wpufrdte30 = 20050906;
           Wputodte30 = 20050909;
           charDate = GetDate(Date4);
           Wpupudte31 = %Int(charDate);
           Wpupudte32 = 0;
           Wpupudte33 = 0;
           //
         When area = area2;
           Wpufrdte10 = 20050606;
           Wputodte10 = 20050617;
           charDate = GetDate(Date1);
           Wpupudte11 = %Int(charDate);
           charDate = GetDate(Date2);
           Wpupudte12 = %Int(charDate);
           Wpupudte13 = 0;
           Wpufrdte20 = 20050725;
           Wputodte20 = 20050729;
           charDate = GetDate(Date3);
           Wpupudte21 = %Int(charDate);
           Wpupudte22 = 0;
           Wpupudte23 = 0;
           Wpufrdte30 = 20050829;
           Wputodte30 = 20050902;
           charDate = GetDate(Date4);
           Wpupudte31 = %Int(charDate);
           Wpupudte32 = 0;
           Wpupudte33 = 0;
           //
         When area = area3;
           Wpufrdte10 = 20050524;
           Wputodte10 = 20050603;
           charDate = GetDate(Date1);
           Wpupudte11 = %Int(charDate);
           charDate = GetDate(Date2);
           Wpupudte12 = %Int(charDate);
           Wpupudte13 = 0;
           Wpufrdte20 = 20050718;
           Wputodte20 = 20050722;
           charDate = GetDate(Date3);
           Wpupudte21 = %Int(charDate);
           Wpupudte22 = 0;
           Wpupudte23 = 0;
           Wpufrdte30 = 20050822;
           Wputodte30 = 20050826;
           charDate = GetDate(Date4);
           Wpupudte31 = %Int(charDate);
           Wpupudte32 = 0;
           Wpupudte33 = 0;
           //
         When area = area4;
           Wpufrdte10 = 20050509;
           Wputodte10 = 20050520;
           charDate = GetDate(Date1);
           Wpupudte11 = %Int(charDate);
           charDate = GetDate(Date2);
           Wpupudte12 = %Int(charDate);
           Wpupudte13 = 0;
           Wpufrdte20 = 20050712;
           Wputodte20 = 20050715;
           charDate = GetDate(Date3);
           Wpupudte21 = %Int(charDate);
           Wpupudte22 = 0;
           Wpupudte23 = 0;
           Wpufrdte30 = 20050815;
           Wputodte30 = 20050819;
           charDate = GetDate(Date4);
           Wpupudte31 = %Int(charDate);
           Wpupudte32 = 0;
           Wpupudte33 = 0;
           //
         When area = area5;
           Wpufrdte10 = 20050426;
           Wputodte10 = 20050506;
           charDate = GetDate(Date1);
           Wpupudte11 = %Int(charDate);
           charDate = GetDate(Date2);
           Wpupudte12 = %Int(charDate);
           Wpupudte13 = 0;
           Wpufrdte20 = 20050704;
           Wputodte20 = 20050708;
           charDate = GetDate(Date3);
           Wpupudte21 = %Int(charDate);
           Wpupudte22 = 0;
           Wpupudte23 = 0;
           Wpufrdte30 = 20050808;
           Wputodte30 = 20050812;
           charDate = GetDate(Date4);
           Wpupudte31 = %Int(charDate);
           Wpupudte32 = 0;
           Wpupudte33 = 0;
           //
         EndSl;
         // write bulk record
         Wpgtype = 'B';
         Write(e) Wpuschedlr;
         // write metal record
         Wpgtype = 'M';
         Wpumax11 = 50;
         Wpumax12 = 50;
         Wpumax13 = 50;
         Wpumax21 = 50;
         Wpumax22 = 50;
         Wpumax23 = 50;
         Wpumax31 = 50;
         Wpumax32 = 50;
         Wpumax33 = 50;
         Write(e) Wpuschedlr;
       EndSr;
       
//---------------------------------------------------------------------
      /END-FREE
     OList88    e            Header         2  1
     O                                           55 'Streets not found on 
STREE-
     O                                              TS file'
      //
     O          e            Header         1
     O                                            5 'Rec #'
     O                                           19 'Actual Field'
     O                                           54 'Key Value'
      //
     O          e            Header         1
     O                                            5 '_____'
     O                                           42 
'__________________________-
     O                                              ________'
     O                                           75 
'__________________________-
     O                                              ____'
      //
     O          e            Detail         1
     O                       rec_Count     k      6
     O                       strnm_Trimmed       42
     O                       f1_Work             75
      //
     O          e            CivicDet       1
     O                                              'Civics to be entered 
for'
     O                                           +1 'street: '
     O          e            CivicDet       1
     O                       strnm_100a         130
     O          e            CivicDet       1
     O                       strnm_100b         130
     O          e            CivicDet       1
     O                       strnm_100c         130
      //
     O          e            Total_Line  2
     O                                            6 'Total:'
     O                       Totals              40

      //--------------------------------------------------
      // Procedure name: GetDate
      // Purpose:        Reformat the date
      // Returns:
      //--------------------------------------------------
     P GetDate         B
     D GetDate         PI                  LIKE(charDate)
     D  inDate                             LIKE(Date1)
      // Local fields
     D charMonth       s              3
     D charDay         s              2
     D retField        S                   LIKE(charDate)
      /FREE
       charMonth = %Subst(inDate:1:3);
      /END-FREE
     C     charMonth     LookUp    tabtm         tabac                    
99
      /FREE
       charDay = '00';
       EvalR charDay = %trim(%subst(inDate:5:2));
       retField = '2005' + tabac + charDay;
       Return retField;
      /END-FREE
     P GetDate         E
      //--------------------------------------------------
      // Procedure name: GetDate
      // Purpose:        Reformat the date
      // Returns:
      //--------------------------------------------------
     P Get_Comments    B
     D Get_Comments    PI            40A
     D  inStreet                    300A
      // Local fields
     D retField        S             40A
      /FREE
       pos = 0;
       pos = %Scan(residents:inStreet);
       If pos > 1;
         end_pos = %Scan(')':inStreet:pos);
         result = %Subst(inStreet:pos+1:end_pos-(pos+1));
         retField = %Trim(result);
       Else;
         retField = *Blanks;
       EndIf;
       Return retField;
      /END-FREE
     P Get_Comments    E
**
JAN01
FEB02
MAR03
APR04
MAY05
JUN06
JUL07
AUG08
SEP09
OCT10
NOV11
DEC12 



And the indent list with the problem is as follows for the section:
                        If pos > 1;
                         end_pos = %Scan(')':inStreet:pos);
                         result = %Subst(inStreet:pos+1:end_pos-(pos+1));
                         retField = %Trim(result);
                         Else;
                         | retField = *Blanks;
                         EndIf; 

The If doesn't line up with anything....

TIA,

Ron Power
Programmer
Information Services
City Of St. John's, NL
P.O. Box 908
St. John's, NL
A1C 5M2
Tel: 709-576-8132
Email: rpower@xxxxxxxxxx
Website: http://www.stjohns.ca/
___________________________________________________________________________
Success is going from failure to failure without a loss of enthusiasm. - 
Sir Winston Churchill

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.