起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: YZQH

新闻公告的导入**

[复制链接]
发表于 2007-4-12 15:25:52 | 显示全部楼层

编译新闻公告导航出现错误

请帮忙看一下

ttt.jpeg

141.16 KB, 下载次数: 123

回复 支持 反对

使用道具 举报

发表于 2007-4-12 16:15:28 | 显示全部楼层
哦,这个不用管它,现在没有用到
回复 支持 反对

使用道具 举报

发表于 2007-4-12 16:24:58 | 显示全部楼层
现在新闻公告可以发,然后用任务中心(新闻公告)也可以看到?

但是工作台还是有问题?看不到
回复 支持 反对

使用道具 举报

发表于 2007-4-13 16:39:19 | 显示全部楼层
是这样的,如果要工作台也可以看到,就要参考“我的客户”来做了,不是简单的屏蔽我的客户,把新闻公告开放就可以的,呵呵

这样就要用到11楼那个资源了,11楼的错误是后续版本一个新控件,你把他换成TDataGrid,就可以了
回复 支持 反对

使用道具 举报

发表于 2007-4-13 17:02:57 | 显示全部楼层
还有一个错误,见图

是不是引用的方法不对呀?

www.jpeg

128.04 KB, 下载次数: 117

回复 支持 反对

使用道具 举报

发表于 2007-4-16 17:19:07 | 显示全部楼层
看来还真是复杂了。
1、把下面这段代码拷贝进去
procedure CopyFields(S, D: TDataSet);
var
  I: Integer;
  F: TDataField;
begin
  for I := 0 to D.FieldCount - 1 do
  begin
    F := S.FindField(D.Fields[I].FieldName);
    if F <> nil then
      D.Fields[I].Assign(F);
  end;
end;

2、屏蔽15楼的代码,被下面的代码替换
var
  S: string;
  I: Integer;
  Q: TSQLDataSet;
  ATaskDataSet: TSQLDataSet;
  SaveReadOnly, SaveFiltered: Boolean;
begin
  ATaskDataSet := DataSetTaskIndex;
  if not ATaskDataSet.Active then
    Exit;

  S := System.String.Join(''', ''', TaskGUID);
  Q := TSQLDataSet.Create(ATaskDataSet.Owner);
  try
    Q.Database.URL := ATaskDataSet.Database.URL;
    Q.SQL.Text := 'select * from TTASK where FGROUPGUID = ''-1'' AND FGUID in (''' + S + ''')';
    Q.SQLFilter := ATaskDataSet.SQLFilter;
    Q.SQLFiltered := ATaskDataSet.SQLFiltered;
    Q.UserFilter := ATaskDataSet.UserFilter;
    Q.Open;
    Q.Order := 'FGUID';
    ATaskDataSet.DisableControls;
    SaveReadOnly := ATaskDataSet.ReadOnly;
    SaveFiltered := ATaskDataSet.Filtered;
    try
      ATaskDataSet.ReadOnly := False;
      ATaskDataSet.Filtered := False;
      ATaskDataSet.First;
      for I := Low(TaskGUID) to High(TaskGUID) do
      begin
        S := TaskGUID[I];
        if ATaskDataSet.Locate('FGUID', [S], []) then
          if Q.FindKey([S]) then
          begin
            ATaskDataSet.Edit;
            try
              CopyFields(Q, ATaskDataSet);
              ATaskDataSet.Post;
            except
              ATaskDataSet.Cancel;
              raise;
            end;
          end
          else
            ATaskDataSet.Delete
        else
          if Q.FindKey([S]) then
          begin
            ATaskDataSet.Append;
            try
              CopyFields(Q, ATaskDataSet);
              ATaskDataSet.Post;
            except
              ATaskDataSet.Cancel;
              raise;
            end;
          end;
      end;
    finally
      ATaskDataSet.Filtered := SaveFiltered;
      ATaskDataSet.ReadOnly := SaveReadOnly;
      ATaskDataSet.EnableControls;
    end;
  finally
    Q.Free;
  end;
// TTaskServices.TaskUpdate(DataSetTaskIndex, TaskGUID);
end;

这样就可以了
回复 支持 反对

使用道具 举报

发表于 2007-4-19 09:46:00 | 显示全部楼层
这个帖子我接了,有问题重新起帖子
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-4 17:59 , Processed in 0.046866 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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