2017-10-20 134 views
-4

我已经尝试了很多次从RPG(AS400)传递多维数组到Java,但它没有工作, 是否有任何可能性传递多维数组从RPGLE(AS400)到java可以有一个帮助。从RPGLE(AS400)到java的多维数组

+2

[为什么“有人可以帮我吗?”不是一个真正的问题?](https://meta.stackoverflow.com/q/284236/2970947) –

+0

[我低估了,因为“没有工作”不作为问题描述工作](http://idownvotedbecau.se/itsnotworking/)。请包括[mcve],显示您尝试的代码以及**特定的**问题描述。 – EJoshuaS

+0

我知道如何传递一个单一的数组,也许会有所帮助。 – danny117

回答

1

问题是你正试图传递一些非原始的东西。在java中,您只需将该类传递给方法或过程。 RPG几乎局限于传递基元。

所以可能你可以为多维数组创建一个构造函数,它接受一个字符串数组并在java中构建多维数组。

以下是如何传递定义为string []的事件参数。我只通过一个,但你可以通过更多。

h DftActgrp(*NO) ActGrp('Java')          
d xls2csv   pr     extproc(*JAVA     
d          :'XLSX2CSV.XLSX2CSV':'main') 
d          static       
d args       O CLASS(*JAVA:'java.lang.String') 
d          dim(1)       
d          Const       

d inputargs  s    O CLASS(*JAVA:'java.lang.String') 
d          dim(1)       

d crtString  PR    o EXTPROC(*JAVA:     
d            'java.lang.String':  
d            *CONSTRUCTOR)   
d RPGBytes      250A Const Varying     

c  *entry  plist            
c     parm     path   200  

c/free                
    inputargs(1) = crtstring(%trim(path));       
           xls2csv(inputargs);      
    *inlr = *on;          
    return;  

或者你也可以从一个Java类返回一个多维阵列和类传递给Java程序。无论哪种方式,你将不得不建立一个具有创建多维数组类的构造函数的java类。

+0

感谢您的支持 –