起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 129|回复: 6

【结贴】文档打开问题**

[复制链接]
发表于 2008-9-1 14:29:04 | 显示全部楼层 |阅读模式
我在引用 知识中心功能中 有一个打开按钮的代码的时候。
出现下面错误。 功能 编译的时候没有错误。

是不是文档必须是通过这个功能上传的时候 才能用这个打开代码?

代码如下
unit MAINFORM;

interface

uses
  Business.System, Business.Model, Business.Forms, Business.Data,DocLib;

type
    TMAINFORM = class(TForm)

    FuncBroker: TFuncBroker;
    InfoBrokerSWGDXXCX: TInfoBroker;
    PageControl: TPageControl;
    TabSheet: TTabSheet;
    DataSetBroker2: TDataSetBroker;
    ControlBar: TControlBar;
    Label3: TLabel;
    DataSetBroker1: TDataSetBroker;
    DataSetBroker3: TDataSetBroker;
    DocView2: TDocView;
    DataSetBroker4: TDataSetBroker;
    BizToolBar1: TBizToolBar;
    Button1: TButton;
    DataSetdsWDS: TSQLDataSet;
    OpenDialog1: TOpenDialog;
    DataSource1: TDataSource;
    FIELD_dsWDS_FISDIRECTORY: TUserDataField;
   
    procedure Button1Click(Sender: TObject);
  private
    function isFile: Boolean;
    function GetFileName: String;
  public
      property FileName: String read GetFileName;
  end;

implementation

function TMAINFORM.isFile: Boolean;
  begin
      result := DataSetdsWDS.FieldByName('FISDIRECTORY').AsString = 'N';
  end;
function TMAINFORM.GetFileName: String;
begin
  with DataSetdsWDS do
    begin
      if not Active then Open;
      if (RecordCount > 0) then
        result := DataSetdsWDS.FieldByName('Path').AsString
      else result := '';
    end;
end;
      procedure TMAINFORM.Button1Click(Sender: TObject);
var
  lResult: String;
begin
  if not isFile then exit;
  try
    lResult := TUnStructureDocUtils.OpenFile(Context, FileName, TDocAccessKind.akReadOut);
  except
    lResult := TUnStructureDocUtils.OpenFile(Context, FileName, TDocAccessKind.akReadOut);
  end;
  jsDialogs.ShowMsg(lResult, 'OpenFile:');
end;

end.

未命名.gif

977.78 KB, 下载次数: 88

回复

使用道具 举报

发表于 2008-9-1 14:55:59 | 显示全部楼层
1、跟踪看看,执行哪段代码报错?
2、DataSetdsWDS这个数据集有FISDIRECTORY 这个字段吗?
3、该数据集打开了吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-1 15:24:04 | 显示全部楼层
数据集中有这个字段 我测试里面都有数据的

  result := DataSetdsWDS.FieldByName('FISDIRECTORY').AsString = 'N';      是这里报错
回复 支持 反对

使用道具 举报

发表于 2008-9-1 15:33:32 | 显示全部楼层
在这句上设置断点,看看这个数据集的状态(是否没有打开,如果打开了,再检查一下'FISDIRECTORY'字段)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-2 11:49:47 | 显示全部楼层
result := DataSetdsWDS.FieldByName('FISDIRECTORY').AsString = 'N'  运行的时候  数据集没有打开
  后来因为我们的传的都是文档 就没+这个判断  直接result := true; 了  能够打开了

想问一下什么原因数据集没有打开呢
回复 支持 反对

使用道具 举报

发表于 2008-9-2 11:58:09 | 显示全部楼层
这个就不太清楚了,需要跟踪代码看看。
应该与楼主的具体环境有关。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-9-2 14:01:12 | 显示全部楼层
好的 有问题再交流 结帖
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-21 15:42 , Processed in 0.048047 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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