如何把PDA中文本文档导出到电脑PC中?基于Java平台

    技术2022-05-19  23

    如何把PDA中的文本文档导出到电脑PC中呢?而且是基于JAVA平台的,网上的例子和能够参考的资料,几乎为零

    但是在高手的指点下,这个难题也被额给攻破了喽……^^

     

    进入正题,PDA我在这里就不做太多的说明了,简单的说,就是一个掌上电脑,和一般的电脑相比,就是小点,我现在用的这个

    操作系统是windows mobile,如果还想了解PDA,请自己找“百”老师(www.baidu.com)

     

    先看下效果图吧!!

    当点击上面的这个按钮时,执行的操作就是从PDA中读取相应位置上的文本文档,并把文本文档copy到电脑上

    前提先说明一下,由于本人技术上不到火候,说的可能有漏洞,请大虾们不要建议啊^^

    废话不多说,看前台代码吧!

    当点击按钮时,首先执行的是fromPDA()这个方法

     

    function fromPDA(){        //点击按钮时执行方法          bar.FileUse("c://filelist.txt","c://S_1_D_send.txt|//My Documents//send//S_1_D_send.txt|0|","utf-8","^");          Run('file:///C:/Program Files/hubeiyidong/copytopc.exe');          fileImport();}        function fileImport(){       var id = setTimeout("fileImport();",500);       var fso=new ActiveXObject("Scripting.FileSystemObject");       if(fso.fileExists("c://S_1_D_send.txt")){               clearTimeout(id);               readdata();            

            }

     }    function readdata(){         //调用导入方法        var success_num;        var fail_num;        var fail_card_no;        var error;        var assets=bar.TEST_file("c://S_1_D_send.txt");               //读取指定文本文档        var url = '<%=path%>/rb-assetManageServices.do';        jQuery.ajax({                                  //利用jQuery的ajax向后台发送请求                type: "POST",                                                    url: url,                                                   data: encodeURI(encodeURI('method=getInfoFromPDA()&assets=' + assets)),                  success: function(data){

                              alert("哥成功啦!");                       }        });         if("0"!=assets){                  //如果当时指定的文本文档存在,进行备份                  var fso,f1;                       fso=new ActiveXObject("Scripting.FileSystemObject");                   if(!fso.FolderExists("C://bak")){                          fso.CreateFolder ("C://bak");                    }                   f1  =   fso.GetFile( "c://S_1_D_send.txt");                      f1.Copy("c://bak//S_1_D_send.txt");                        f1.Delete();           }   }       function Run(strPath){           //把PDA中文本copy到电脑PC中              try {                           var objShell=new ActiveXObject("wscript.shell");                           objShell.Run(strPath);                         objShell=null;                    }catch(e){                        alert(e) ;                   }          }  

     

     

    解释:

    第一个方法fromPDA()中各项参数说明

                    //第一个参数是写文本文件的路径  第二个参数是写文本文件的内容。

                    //第三个参数是文本文档中的编码格式 第四个参数是在PDA中文档内容的分隔符

             //竖线分割后第一个是电脑上文件的位置 ,第二个是PDA文件上的位置。         //1 和 0 是 接收成功以后删除不删除 PDA里的文件。具体是1是删除 0是不删除

    第二个方法fileImport()首先判断指定的文件是否存在,如果存在再进行读取操作

    第三个方法readdata()就是读取本地电脑PC上的指定文件

     

    在这过程中会出现的错误!!!!

    1、IE还会报"bar"未定义

    这个,当然了,你看,在上面的文档中哪里有对bar的定义呢???你找到了吗?反正我是没找见……嘿嘿

    当然,这个需要在服务器端jsp页面中添加相应的控件啦,

     

     <OBJECT           classid="clsid:9DD2E7D1-599A-47D5-AB22-4B47A71EA34B"           codebase="http://localhost:8080/eamstatic/ems/utils/eactocx/PRINTDLLtest.inf#version=1,0,42,0"              id=bar           width=0           height=0          align=center          hspace=0          vspace=0  >

     

     仔细看这个id= bar,这里定义了上面方法中的变量bar

     还需要注意的是,这里的codebase的值,这里我用的是自己的电脑进行开发的,所以写成了localhost:8080,根据自己的需求进行修改

     还有这个eamstatic/ems/utils/eactocx/PRINTDLLtest.inf 

     这是个什么东东啊?说实话,我也不知道,^^ 这是高手封装好的一个文件,直接拿来用就OK了,

    eamstatic/ems/utils/eactocx  指的是这个PRINTDLLtest.inf的路径,根据需求进行修改……

    这个文件在我的资源中可以进行下载……

     

     2、IE还会报"缺少对象,Automaction不能创建对象"?这呀呀的,IE怎么老报错!!!

      这个是因为你调用new ActiveXObject("Scripting.FileSystemObject")时没有进行scrrun.dll文件的注册

      进行注册吧!!!

      cmd ----regsvr32 scrrun.dll

      OK,搞定……

    3、什么,IE还报"找不到指定程序"?

     当然了,你没有安装所需要的EXE文件,它当然会报错啦!!!

     这个copytopc.exe 在我的资源里可以下载……

     

    4、还报!IE报"加载动态库失败"?

    嗯,这个问题比较的严重了……

    看看吧!需要用到一个wshom.ocx的控件,如果你系统里没有,从我的资源里可以进行下载……

    另外,可能你的系统不是很完整,和我的一样,少了很多的动态链接库文件,导致错误不能解决,

    这个问题好解决,我资源里有一个EXE文件,可以专门来查询一个控件所需要的dll文件……

     

     5、还报啊?IE报“对象不支持此属性或方法”?

     嗯,这个是因为浏览器没有找到你系统中的PRINTDLLtest.inf文件,

     <1> 这个文件的路径没有写对

     <2> 路径写对了,但没有把服务器端加入到可信站点中

     如何按照常理来说,当客户端第一次浏览这个“导出PDA数据”时,会自动弹出一个页面,提示加载inf文件

     但是有些情况是一直弹不出这个窗口,我就遇到了这个情况,呀呀的,后来请高手帮忙,写了一个bat批处理文件,搞定

     这个批处理文件在我的资源 里可以下载……

     

     6、还报"Object error"错误?

     这个是因为你在页面中没有加入<OBJECT>控件或者是inf文件路径没有写对的原因……

     

    最后,嘿嘿,问题都解决了,导出吧……

    祝你早是解决难题^^

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     


    最新回复(0)