标题:vfp调用IE后,IE会自动弹出文件后,怎样保存此文件到指定的位置
只看楼主
xqmxqm01
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2020-9-28
得分:0 
因10年前就转型管理岗,此次因特殊原因,需要自己动手写个小助手,不过这个问题想办法解决了,现在我把思路分享给大家:
1. 用delphi去写个带参数的传入型号,然后利用delphi去下载下来,因返回的json文件,文件名也可以跟着参数去设定,这样下载下来后就不会混淆。
2. 如果下载成功,delphi返回值给vfp
3. vfp根据返回的成功值,用VFP写个函数解json文件,转换成想要的数据到grid1里面。

delphi最初的测试源码如下(文件名变量需要去设置),注意要用URLMon和ShellApi(uses  URLMon, ShellApi):

function DownloadFile(SourceFile, DestFile: string): Boolean;
begin
try
Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0;
except
Result := False;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
SourceFile:string;
DestFile:string;
begin
   SourceFile:='http://xxxx/Receive/GetBarcodeData?pdnum=PD06210195';
   DestFile:= 'd:\xx\temp\indata\pd06210195.json';
  if DownloadFile(SourceFile, DestFile) then
  begin
    ShowMessage('Download succesful!');
ShellExecute(Application.Handle,PChar('open'),PChar(DestFile),PChar(''),nil,SW_NORMAL)
  end
  else
  ShowMessage('Error while downloading' + SourceFile)
end;
2020-10-13 15:19
xqmxqm01
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2020-9-28
得分:0 
因10年前转管理岗,最近因工作需要,需要做个小助手。碰到这个难题,不过想了一个笨方法去解决这个问题,vfp传递需要调用webapi接口的料号给delphi,delphi再用这参数去设置文件名,下载到指定位置,如果下载成功,返回参数给vfp,vfp收到成功下载的返回值后,写个函数去解读接收到的json文件,显示在grid1里面,虽然有点烦杂,不过最终结果是解决了下载问题

测试的delphi的最初源码如下(测试用就没有设置参数,另注意需要使用URLMon和ShellApi,uses  URLMon, ShellApi):

function DownloadFile(SourceFile, DestFile: string): Boolean;
begin
try
Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0;
except
Result := False;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
SourceFile:string;
DestFile:string;
begin
   SourceFile:='http://xxxx/Receive/GetBarcodeData?pdnum=PD06210195';
   DestFile:= 'd:\xx\temp\indata\pd06210195.json';
  if DownloadFile(SourceFile, DestFile) then
  begin
    ShowMessage('下载成功');
ShellExecute(Application.Handle,PChar('open'),PChar(DestFile),PChar(''),nil,SW_NORMAL)
  end
  else
  ShowMessage('下载出错:' + SourceFile)
end;



2020-10-13 15:41
chinesetank
Rank: 2
等 级:论坛游民
威 望:2
帖 子:12
专家分:13
注 册:2020-10-26
得分:0 
感觉二楼的办法挺靠谱的
2020-10-27 09:47



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-503411-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.132748 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved