{{Aspfm.sysUserName}} 我的消息 设置 退出登录
调用exe程序

1、在表单中,“数据库操作”-“存储过程”,创建exe调用命令。

exeApplication/ImageToPdf/ImageToPdf.exe 【aaa】

命令规则:文件夹/exe程序名称   参数列表(空格分开)

详细,请看表单中的【exe调用说明】tab页。

2、生成调用的JS

Aspfm.Data.aaa='';
$.when(onBwebSave("sqllite_imgtopdf")).done(function(resdata){
//执行成功
});

3、在表单中,拖入一个按钮组件

并把步骤2生成的JS,放在按钮组件中。。并设置要传入exe程序的参数(【aaaa】)的值。

Aspfmfun.onBtn@Aspfm-Id = onBtn@Aspfm-Id;
Aspfm.loading@Aspfm-Id=false;
function onBtn@Aspfm-Id() {
Aspfm.Data.aaa='123';
$.when(onBwebSave("sqllite_imgtopdf")).done(function(resdata){

//接收exe程序返回的JSON对象。详细取值说明请看《5、exe返回的序列化对象要求

alert(resdata.BWebResult[0].Result.Values.exeReturn);

});

}

4、exe程序例子


5、exe返回的序列化对象要求

1、允许dataset,datatable,Hashtable、string   4种类型。

如果确定要Hashtable对象,那么Hashtable中不允许再添加复杂类型(dataset,datatable,自定义的实体对象)等等。

2、JS取值对应

1、exe返回dataset     接收exe程序返回的JSON对象      使用(对象):     resdata.BWebResult[0].WebDataSet
2、exe返回datatable        使用(对象):     resdata.BWebResult[0].WebDataSet[0]

3、exe返回Hashtable      使用(对象):      resdata.BWebResult[0].Result.Values

4、exe返回string           使用(具体的值):resdata.BWebResult[0].Result.Values.exeReturn


6、源码参考示例


在aspfm表单开发系统的开源代码中,【ImageToPdf】工程是最直接的例子。


7、序列及反序列化函数


        //对象序列化到文件
        public static void ToFile<T>(T obj, string fullfile)
        {
            if (File.Exists(fullfile))
            {
                File.Delete(fullfile);
            }
            FileStream fs = new FileStream(fullfile, FileMode.Create);
            BinaryFormatter bf = new BinaryFormatter();
            bf.Serialize(fs, obj);
            fs.Close();
        }
        //文件反序列化成对象
        public static T FromFile<T>(string fullfile)
        {
            T tempobj = default(T);
            if (File.Exists(fullfile))
            {
                FileStream fs = new FileStream(fullfile, FileMode.OpenOrCreate);
                BinaryFormatter bf = new BinaryFormatter();
                tempobj = (T)bf.Deserialize(fs);
                fs.Close();
            }
            return tempobj;
        }