|
Hey no offense taken. That code is partly "ripped off" a colleague here, and I added some extra stuff to it and converted it to free format. If you are referring to the bunch of "IF" statements one after the other, that's the old code. I'd rework it if I had time, but alas... My code is the couple of procedures, and I'm "new" to them so... It is ugly though, I agree. But it's just a one time conversion program too... 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 "Wilt, Charles" <CWilt@xxxxxxxxxxxx> Sent by: wdsci-l-bounces@xxxxxxxxxxxx 2005/07/12 04:36 PM Please respond to Websphere Development Studio Client for iSeries <wdsci-l@xxxxxxxxxxxx> To "Websphere Development Studio Client for iSeries" <wdsci-l@xxxxxxxxxxxx> cc Subject RE: [WDSCI-L] Indentation issue or I'm losing my mind? Ron, Not trying to offend...just offer a little constructive criticism.... But didn't I just see a post from you on the RPG list saying how you liked being able to use procedures? IMHO, you really, really should consider breaking this down. The current complexity of this is enormous. Respectfully, Charles Wilt -- iSeries Systems Administrator / Developer Mitsubishi Electric Automotive America ph: 513-573-4343 fax: 513-398-1121 > -----Original Message----- > From: wdsci-l-bounces@xxxxxxxxxxxx > [mailto:wdsci-l-bounces@xxxxxxxxxxxx]On Behalf Of RPower@xxxxxxxxxx > Sent: Tuesday, July 12, 2005 2:24 PM > To: wdsci-l@xxxxxxxxxxxx > Subject: [WDSCI-L] Indentation issue or I'm losing my mind? > > > 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 > -- > This is the Websphere Development Studio Client for iSeries > (WDSCI-L) mailing list > To post a message email: WDSCI-L@xxxxxxxxxxxx > To subscribe, unsubscribe, or change list options, > visit: http://lists.midrange.com/mailman/listinfo/wdsci-l > or email: WDSCI-L-request@xxxxxxxxxxxx > Before posting, please take a moment to review the archives > at http://archive.midrange.com/wdsci-l. >
As an Amazon Associate we earn from qualifying purchases.
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.