|
I'm glad to see an example of how much easier JAVA is to program in and how
much our productivity
will increase.
Stupid me, when I want the price, I just CHAIN. ;-)
Since JAVA is a code once, run anywhere, sort of deal, I'm sure that this code
will work on all
platforms that support JAVA.
Kalman Shor wrote:
> The following calls an RPG program that passes back a packed numeric field -
> the price.
> It actually works reasonably quickly. Most of the code is just to set up the
> call and convert the data back and forth.
>
> ****************************************************************************
> *******
> try {
> // create program call
> com.ibm.as400.access.ProgramCall pgm = new
> com.ibm.as400.access.ProgramCall();
>
> // identify the program to run
> String progName = "/QSYS.LIB/YOUR.LIB/GETPRCB.PGM";
>
> RLAccess.xx2000201.connectService(com.ibm.as400.access.AS400.COMMAND);
>
> // create parameter list for the program
> com.ibm.as400.access.ProgramParameter[] pList = new
> com.ibm.as400.access.ProgramParameter[3];
>
> // this is for conversion of java String to/from native
> com.ibm.as400.access.AS400Text rtParm = new
> com.ibm.as400.access.AS400Text(1);
>
> // identify fist param
> pList[0] = new com.ibm.as400.access.ProgramParameter(rtParm.toBytes("
>"),
> 1);
>
> // this is used to convert between java(BigDecimal) and Packed
>floating
> point decimal
> com.ibm.as400.access.AS400PackedDecimal cust = new
> com.ibm.as400.access.AS400PackedDecimal(6, 0);
>
> // identify param
> pList[1] = new com.ibm.as400.access.ProgramParameter(cust.toBytes(new
> java.math.BigDecimal(custNumber")), 4);
>
> // this is for conversion of java String to/from native
> com.ibm.as400.access.AS400Text item = new
> com.ibm.as400.access.AS400Text(15);
>
> // identify param
> pList[2] = new com.ibm.as400.access.ProgramParameter(item.toBytes(new
> String(skuNumber)), 15);
>
> // this is used to convert between java(BigDecimal) and Packed
>floating
> point decimal
> com.ibm.as400.access.AS400PackedDecimal pric = new
> com.ibm.as400.access.AS400PackedDecimal(7, 2);
>
> // identify param
> pList[3] = new com.ibm.as400.access.ProgramParameter(pric.toBytes(new
> java.math.BigDecimal("0")), 4);
>
> // set the system to AS/400
> pgm.setSystem(RLAccess.xx2000201);
>
> // set program and parameters
> pgm.setProgram(progName, pList);
>
> // run the program
> if (pgm.run() != true) {
>
> com.ibm.as400.access.AS400Message[] messageList =
>pgm.getMessageList();
> for (int msg = 0; msg < messageList.length; msg++) {
>
> // this is to print error message to standard out
> System.out.println(messageList[msg]);
> }
> } else {
>
> if (((String) (rtParm.toObject(pList[0].getOutputData(),
>0))).equals(" "))
> {
> // get the price
> intPrice = (((java.math.BigDecimal) (new
> com.ibm.as400.access.AS400PackedDecimal(7, 2)).toObject(pList
> [3].getOutputData(), 0)).doubleValue());
>
> // add to the orderPrice;
> OrderDetail.orderPrice = OrderDetail.orderPrice +
>intPrice;
>
> // create number format for displaying the price
> java.text.NumberFormat nf =
>java.text.NumberFormat.getCurrencyInstance();
>
> // set the text
>
>getJLabelOrderPrice().setText(nf.format(OrderDetail.orderPrice));
>
> // set instance variable
> this.childPrice = intPrice;
> }
> }
> } catch (Exception e) {
> e.printStackTrace();
> }
> ***********************************************************************
>
+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.