× 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.



This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.
--
Gerry,

Attached is the dtwsplfb Net.Data macro that we use to do the conversion.
Specifically look at the section starting with "%function(dtw_sql) tblget()
{".  This function reads a file on the 400 created with the cpyspl CL
program I also attached.  The .rtf file header info is gotten from templates
that we created, different ones for different record lengths.  These
templates were created by creating a document in Word and saving as a .rtf
file and then opening that file with a text editor and deleting everything
from the point the actual text in the document starts thus just leaving the
.rtf header info.  I also attached our template files.  If there is anything
you don't understand just let me know and I will be glad to help out.

Scott Mildenberger

> -----Original Message-----
> From: Tucker Gerry [mailto:Gerry.Tucker@technicolor.com]
> Sent: Thursday, February 14, 2002 7:40 AM
> To: rpg400-l@midrange.com
> Subject: RE: Rich-Text-Format
>
>
> Anything would help thanks.
>
> Regards,
>
> Gerry Tucker
> Senior Analyst Programmer
> Technicolor Distribution Services
> Wembley, U.K.
>
>
> -----Original Message-----
> From: Scott Mildenberger [mailto:Smildenber@Washcorp.com]
> Sent: 14 February 2002 14:36
> To: 'rpg400-l@midrange.com'
> Subject: RE: Rich-Text-Format
>
>
> I have a Net.Data macro that does it if you would like.
>
> Scott Mildenberger
>
> > -----Original Message-----
> > From: Tucker Gerry [mailto:Gerry.Tucker@technicolor.com]
> > Sent: Thursday, February 14, 2002 7:05 AM
> > To: rpg400-l@midrange.com
> > Subject: Rich-Text-Format
> >
> >
> > Has anyone got or knows of a FREE utility (including
> source) that will
> > convert a spooled-file to Microsoft Rich Text Format?  I've
> written a
> > command to convert spooled-files to plain-text, HTML or PDF
> files but
> > I'd like to be able to add an RTF option to it.
> >
> > Regards,
> >
> > Gerry Tucker
> > Senior Analyst Programmer
> > Technicolor Distribution Services
> > Wembley, U.K.
> > _______________________________________________
> > This is the RPG programming on the AS400 / iSeries (RPG400-L)
> > mailing list
> > To post a message email: RPG400-L@midrange.com
> > To subscribe, unsubscribe, or change list options,
> > visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
> > or email: RPG400-L-request@midrange.com
> > Before posting, please take a moment to review the archives
> > at http://archive.midrange.com/rpg400-l.
> >
> _______________________________________________
> This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing
> list
> To post a message email: RPG400-L@midrange.com
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
> or email: RPG400-L-request@midrange.com
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/rpg400-l.
>
> _______________________________________________
> This is the RPG programming on the AS400 / iSeries (RPG400-L)
> mailing list
> To post a message email: RPG400-L@midrange.com
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
> or email: RPG400-L-request@midrange.com
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/rpg400-l.
>

--
pgm  parm(&splf &job &usr &nbr &spln &how)

    dcl var(&splf) type(*char) len(10)
    dcl var(&job)  type(*char) len(10)
    dcl var(&usr)  type(*char) len(10)
    dcl var(&nbr)  type(*char) len(6)
    dcl var(&spln) type(*dec) len(15 5)
    dcl var(&how)  type(*char) len(8)


             CRTPF      FILE(QTEMP/RTFTEMP) RCDLEN(200) SIZE(*NOMAX)
             monmsg cpf7302

             CPYSPLF    FILE(&splf) TOFILE(QTEMP/RTFTEMP) +
                          JOB(&NBR/&USR/&JOB) SPLNBR(&SPLN) +
                          TOMBR(*FIRST) MBROPT(&HOW) CTLCHAR(*FCFC)







endpgm
--
%define {
 LIB = "QTEMP"
 RTFFILE = "RTFTEMP"
 rtfhdr080 = "/home/webspool/rtfhdr080.rtf"
 rtfhdr132 = "/home/webspool/rtfhdr132.rtf"
 rtfhdr198 = "/home/webspool/rtfhdr198.rtf"
 hdr = %TABLE
 Table1 = %TABLE
 DTW_PRINT_HEADER = "NO"
 DTW_DEFAULT_REPORT = "NO"
 DTW_REMOVE_WS = "YES"
 CrLf = {@DTW_rHEXTOCHAR("0D25")%}
 FirstPage = "1"
%}
%{  Copy spool file to QTEMP/RTFTEMP            %}

%function (dtw_directcall) cpysplf(In char(10)   p1,
                                   In char(10)   p2,
                                   In char(10)   p3,
                                   In char(6)    p4,
                                   In dec(15, 5) p5,
                                   In char(8)    p6) {
    %exec{CPYSPL.PGM %}
%}

@cpysplf($(SPLF),$(JOB),$(USR),$(NBR),$(SPLN),"*REPLACE")

%macro_function prthdr(inout table) {
 %report {%row{$(V1)%}%}
%}
%function(dtw_sql) tblget() {
SELECT * from $(LIB).$(RTFFILE)
 %report {
    %if ($(WIDTH) == "80")
      @dtw_assign(rcdlen,"80")
    %elif ($(WIDTH) == "198")
      @dtw_assign(rcdlen,"198")
    %else
      @dtw_assign(rcdlen,"132")
    %endif
    @dtw_tb_setcols(Table1,"1") @dtw_assign(Row1,"0")
  %row {
        @dtw_substr(V1,"1","1"," ",PrtCtl)
        @dtw_substr(V1,"2",rcdlen," ",PrtData)
        %if (PrtCtl == "1")
            %if (FirstPage == "1") @dtw_assign(FirstPage,"0")
            %else @dtw_assign(CtlData,"\par \page ") %endif
        %elif (PrtCtl == "+")
            @dtw_assign(y,"0")
            %while (y < rcdlen) { @dtw_add(y,"1",y)
              @dtw_substr(PrtData,y,"1"," ",Chr)
              @dtw_substr(SavData,y,"1"," ",Sav)
              %if (Chr == " " && Sav != " ")
                 @dtw_delstr(PrtData,y,"1",PrtData)
             @dtw_insert(Sav,PrtData,@dtw_rsubtract(y,"1"),"1",PrtData)
              %endif
            %}
        %elif (PrtCtl == " ")
             @dtw_assign(CtlData,"\par ")
        %elif (PrtCtl == "0")
             @dtw_assign(CtlData,"\par \par ")
        %elif (PrtCtl == "-")
             @dtw_assign(CtlData,"\par \par \par ")
        %endif
        %if (CtlData != " ") @dtw_concat(CtlData,PrtData,PrtLine)
        %else @dtw_assign(PrtLine,PrtData) %endif
        @dtw_assign(SavData,PrtData)
        %if (PrtCtl != "+")
           @dtw_tb_appendrow(Table1,"1") @dtw_add(Row1,"1",Row1)
        %endif
        @dtw_tb_setv(Table1,PrtLine,Row1,"1")
  %}
        @dtw_tb_appendrow(Table1,"1") @dtw_add(Row1,"1",Row1)
        @dtw_tb_setv(Table1,"\par }}",Row1,"1")
 %}
%}
%macro_function tblprt(INOUT table) {
 %report {%row{$(V1)%}%}
%}
%if ($(WIDTH) == "80")
  @dtwf_read(rtfhdr080, "ASCIITEXT", " ", hdr)
%elif ($(WIDTH) == "198")
  @dtwf_read(rtfhdr198, "ASCIITEXT", " ", hdr)
%else
  @dtwf_read(rtfhdr132, "ASCIITEXT", " ", hdr)
%endif
%html(macro2.rtf) {
Content-type: application/rtf$(CrLf)
Expires: Fri, 30 Oct 1998 12:00:00 GMT$(CrLf)
Content-encoding: ebcdic$(CrLf)$(CrLf)  @prthdr(hdr)
@tblget() @tblprt(Table1)
\par }}
%}
--
[ rtfhdr080.rtf of type application/rtf deleted ]
--
[ rtfhdr132.rtf of type application/rtf deleted ]
--
[ rtfhdr198.rtf of type application/rtf deleted ]


As an Amazon Associate we earn from qualifying purchases.

This thread ...


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.