>PROCEDURE PostProcessReportToAsciiOutput( prmFN ) > >LOCAL fp, vrida, outf, cFn >cFN = m.TEMPDIR + SYS(2015)+'.txt' >outf = fcreate( m.cFN ) >if m.outf<0 > ERROR 'Cannot create file ' + m.cFN > return > endif > >fp = fopen( m.prmFN ) >if fp<0 > ERROR 'Cannot open file ' + m.prmFN > fclose( m.outf ) > dele file (m.cFN) > return > endif > >do while !feof( m.fp ) > vrida = fgets( m.fp, 8000 ) > > do case > case '*:RAW' $ m.vrida && output uncahnged > fputs( m.outf, strt(m.vrida, '*:RAW', '') ) > > CASE LEFT(m.vrida,LEN('*:PADR') )='*:PADR' > > * *:PADRnnn padding > fputs( m.outf, PADR( ConvertPercent( SUBSTR(m.vrida,LEN('*:PADR')+3+1) ), ; > VAL( SUBSTR(m.vrida,LEN('*:PADR')+1,3) ) )) > > case !empty(m.vrida) and alltr(m.vrida)#chr(12) > fputs( m.outf, ConvertPercent( chrt( m.vrida, chr(12), '' ) ) ) > endcase > enddo > >fclose( m.outf ) >fclose(m.fp) >dele file (m.prmFN) >rename (m.cFN) to (m.prmFN) >ENDPROC > >* convert hex codes to special characters >FUNCTION ConvertPercent( tcInput ) > >LOCAL lnPcntPos, lcOutput >lcOutput="" > >DO WHILE !EMPTY( m.tcInput) > lnPcntPos=AT("%%%", m.tcInput) > IF lnPcntPos>0 > lcOutput= m.lcOutput+LEFT( m.tcInput, ; > lnPcntPos-1)+CHR(EVAL('0x'+SUBSTR(m.tcInput,m.lnPcntPos+1+2,2))) > tcInput=SUBSTR( m.tcInput, m.lnPcntPos+3+2) > ELSE > lcOutput= m.lcOutput+ m.tcInput > tcInput="" > ENDIF > ENDDO >RETURN m.lcOutput >>
SELECT *, ; >>> ICASE( INLIST(ObjType,1,2,3,4,9,10), ; >>> '1'+TRANSFORM(RECNO(),'@L 999999'),; >>> INLIST(ObjType,5,6,7,8), ; >>> '2'+TRANSFORM(999999 - HPos,'@L 999999'), ; >>> '3'+TRANSFORM(RECNO(),'@L 999999')) ; >>> AS cOrder ; >>> FROM oldreport.frx ; >>> ORDER BY cOrder ; >>> INTO TABLE newreport.frx ; >>> WHERE platform='WINDOWS' >>>