Auf das API bin ich vorher schon im Internet aufmerksam geworden.
Ich möchte ja nur einen Text ausgeben, aber das API benötigt ja paar Parameter mehr die ich nicht anzeigen möchte:
DMsgBox pr extpgm('QUILNGTX')
D LngTxt 65535A
D TextLen 10i 0 const
D TxtTitle 7a
D TxtMsgF 20a
D ErrCode 16a
Mein Programm das ich mal ausprobiert habe:
Code:
Hdftactgrp(*no) actgrp('QILE')
Hoption(*srcstmt:*nodebugio)
D*
DDSPTXTMSG PR
D InString 65535A
D InTitle 27 options(*nopass)
DDSPTXTMSG PI
D InString 65535A
D InTitle 27 options(*nopass)
DMsgBox pr extpgm('QUILNGTX')
D LngTxt 65535A
D TextLen 10i 0 const
D TxtTitle 7a
D TxtMsgF 20a
D ErrCode 16a
d Text s 65535A inz(*blank)
d String s 65535A inz(*blank)
d Title s 7a inz(*blank)
d MessageF s 20a inz(*blank)
d Error s 16a
dTitleString s 27 varying inz(*blank)
d tx s 2 0
dBlankString s 27 inz(*blank)
D JobType S 1
DRtvJobA pr extpgm('QUSRJOBI')
D rtv_Data 100a
Drtv_Length 10i 0const
Drtv_Format 8a
D rtv_Job 26a
Drtv_IntJob 16a
D p_Rcvr S 100
D p_Format S 8 INZ('JOBI0100')
Dp_ThisJob S 26 INZ('*')
D p_IntJob S 16
/FREE
title = *blanks;
messagef = *blanks;
IF %parms = 1;
String = inString;
ENDIF;
IF %parms = 2;
String = inString;
TitleString = %trim(inTitle);
ENDIF;
IF TitleString <> *blank;
IF %len(titlestring)< 27;
tx = ((27-%len(titlestring))/2);
titlestring =%subst(blankstring:1:tx) + titlestring;
titlestring = titlestring
+%subst(blankstring:1:%len(titlestring));
IF%subst(titlestring:1:1)=*blank;
%subst(titlestring:1:1)='[';
endif;
IF%subst(titlestring:27:1)=*blank;
%subst(titlestring:27:1)=']';
ENDIF;
title=%subst(titlestring:1:7);
messageF=%subst(titlestring:8:20);
ENDIF;
ENDIF;
Text=%trim(String);
Error='';
RtvJoba( p_Rcvr: %len(p_Rcvr): p_Format:p_ThisJob: p_IntJob);
JobType = %SUBST(P_Rcvr : 61 :1);
//* B/atch I/nteractive P/restart?
IF JobType = 'I';
Text=%trim(String);
Error='';
MsgBox(Text: %len(Text): Title:MessageF: Error);
ENDIF;
RETURN;
/END-FREE
Ist es möglich den Aufruf wie folgt zu gestalten?
MsgBox(Text:Title);
Bookmarks