天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 1740|回复: 4

如何通过宏脚本调用本地dll文件

[复制链接]
xxychao 发表于 2011-5-26 17:37:01 | 显示全部楼层 |阅读模式
本帖最后由 shary 于 2011-6-29 18:54 编辑

视例中的通过宏脚本调用本地dll文件不够细,有没有示例,或都给讲的详细一点。
 楼主| xxychao 发表于 2011-5-26 18:25:20 | 显示全部楼层
本帖最后由 xxychao 于 2011-5-30 15:28 编辑

应用起动时,必须调用函数对DLL所用到的资源进行初始化,以便分配相关句柄,这个初始化怎么理解?要如何实现呢?
在一次调用中如果有两个或两个以上的函数需要调用,比如说事务开始函数、事务提交函数、事务回滚函数,这三个里面要调用二个函数,要如何实现?

var doc = $CURRDOC.getCurrDoc();
var name= doc.getItemValueAsString("类名");
var funname= doc.getItemValueAsString("llei");
if(name==null || ""==name){
   return "";
}else{
       var array = new Array();
        var e = new Packages.exampleinfo.Testdellinfo();
       var result=e.calldll(array,name,funname);
       var item = doc.findItem("返回值");
         item.setValue(result);
}

var ttt=getItemValue("返回值");
if(ttt==0){
      var name1= doc.getItemValueAsString("类名");
      var funname1= doc.getItemValueAsString("cs");
       var v1 = doc.getItemValueAsDouble("状态");
       var v2 = doc.getItemValueAsString("XzqyCode");
       var v3 = doc.getItemValueAsString("Grbh");
       var v4 = doc.getItemValueAsString("住院编号");
       var v5 = doc.getItemValueAsString("入院日期");
       var v6 = doc.getItemValueAsString("出院日期");
       var v7 = doc.getItemValueAsString("Zyts");
       var v8 = doc.getItemValueAsString("Ryks");
       var v9 = doc.getItemValueAsString("RyksName");
       var v10 = doc.getItemValueAsString("Zdys");
       var v11 = doc.getItemValueAsString("Ryzt");
       var v12 = doc.getItemValueAsString("Ryzd");
       var v13 = doc.getItemValueAsString("Cyks");
       var v14 = doc.getItemValueAsString("CyksName");
       var v15 = doc.getItemValueAsString("Cyzt");
       var v16 = doc.getItemValueAsString("Cyzd");
         if(name1==""){
       return "";
  }else{
       var array = new Array();
        array[0]=v1;
        array[1]=v2;
        array[2]=v3;
        array[3]=v4;
        array[4]=v5;
        array[5]=v6;
        array[6]=v7;
        array[7]=v8;
        array[8]=v9;
        array[9]=v10;
        array[10]=v11;
        array[11]=v12;
        array[12]=v13;
        array[13]=v14;
        array[14]=v15;
        array[15]=v16;


        var e = new Packages.exampleinfo.Testdellinfo();
       var result=e.calldll(array,name1,funname1);
       var item = doc.findItem("返回值1");
         item.setValue(result);
}

把这段代码直接写在按钮的操作后执行可以不可以?
shary 发表于 2011-5-31 09:55:15 | 显示全部楼层
您好。平台中的 var e = new Packages.exampleinfo.Testdellinfo();这个类只是我们做调用本地dll专门写的一个java类。如果您需要用到其他的方法。您可以自己去写个java类放在平台的包下面进行调用。
 楼主| xxychao 发表于 2011-6-1 09:31:47 | 显示全部楼层
本帖最后由 xxychao 于 2011-6-1 09:33 编辑

这个类是不是可以把数组中的参数值传递给DLL文件的函数?也就是说我上面的代码能否实现传递参数给DLL文件中指定函数的功能?
shary 发表于 2011-6-23 15:56:12 | 显示全部楼层
您好,需要您自己写一个java类根据您自己的业务需求。调用你写好的java类就可以实现了。

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 14:13

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表