起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 270|回复: 16

【结帖】树形-无效常量**

[复制链接]
发表于 2007-11-30 11:12:44 | 显示全部楼层 |阅读模式
我做了一个简单的表,里面只有4个字段,树形结构的。
窗体里面2个tab页面,tab1是 dataTreeView,tab2是4个DataEdit,字典和信息层没有任何的代码,没有自动填充和查找、排序等等。。。功能层有点代码
现在的问题是:在运行的时候,增加第一条记录(当表是空的)没问题,当运行下面的时候就报错。在post的时候报错,报错信息:“无效的常量”。。。不知道什么原因。我用的版本是2827,印象中以前在2611这么写没问题。。。很简单的东西,请快速帮我解决,谢谢!!!

123.jpg

9.55 KB, 下载次数: 167

回复

使用道具 举报

 楼主| 发表于 2007-11-30 11:19:10 | 显示全部楼层
function TMainForm.GetGYSBH: Integer;
begin
  Query.Close;
  Query.CommandText := 'Select Max(ID) from YKS';
  Query.Open;

  Result := Query.Fields[0].AsInteger + 1;
end;

procedure TMainForm.BizFormShow(Sender: TObject);
begin
  DatasetBroker.DataSet.Open;
  PageControl1.ActivePageIndex:=0;
end;

procedure TMainForm.DataNavigator1BeforeAction(Sender: TObject; var Accept: Boolean);
var i:integer;
begin
  if TBizDataSetAction(Sender).ID in
      [BizActnConsts.ActionDataSetInsert,
       BizActnConsts.ActionDataSetCopyInsert,
       BizActnConsts.ActionDataSetAppend,
       BizActnConsts.ActionDataSetCopyAppend] then
     begin
       PageControl1.ActivePageIndex:=1;
       if DatasetBroker.DataSet.IsEmpty then
       begin
         DatasetBroker.DataSet.Append;
         DatasetBroker.DataSet.FieldByName('ID').AsInteger:=100;
         DatasetBroker.DataSet.FieldByName('FU_ID').AsInteger:=0;
         DatasetBroker.DataSet.Post;
       end
       else
       begin
         i:= DatasetBroker.DataSet.FieldByName('ID').AsInteger;
         DatasetBroker.DataSet.Append;
         DatasetBroker.DataSet.FieldByName('ID').AsInteger:=GetGYSBH;
         DatasetBroker.DataSet.FieldByName('FU_ID').AsInteger:=i;
         DatasetBroker.DataSet.Post;
       end;
       Accept:=False;
     end;
end;

代码是上面的部分,一共就这点,我做这个的目的就是测试为什么会出现这种错误(无效常量)
回复 支持 反对

使用道具 举报

发表于 2007-11-30 13:28:37 | 显示全部楼层
窗体里面2个tab页面,tab1是 dataTreeView,tab2是4个DataEdit,
请问:
1、tab1 和 tab2 连接的是一个表吗?
2、直接 预览 tab1 和 tab2 这两个表,进行数据的增加、修改、保存动作正常吗?如果正常,测试数据集,进行增、删、改、保动作看看是否正常

另外,你说报错信息:“无效的常量”,你跟踪过吗?执行哪句报出来的?或者屏蔽掉2楼的所有代码,正常吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-30 14:17:09 | 显示全部楼层
to atiger
1、2个tab'连接的是一个表,用的是一个datasetbroker,一个是台帐,一个是明细
2、删除,修改没问题,就是增加的时候报错,报错的语句在 DatasetBroker.DataSet.Post;  下面的post就是添加的时候,不是根节点,或者说是数据库里面有值,然后继续添加的时候报错
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-30 14:26:49 | 显示全部楼层
to atiger

http://bbs.justep.com/forum.php? ... 7%B5%C4%B3%A3%C1%BF

这个也是你回得帖子,我所搜无效常量出来的。。那个发贴人也是遇到同样的问题,他好像开始是数字,后来改成整数也不行,最后才是字符的就可以,我也实验过,字符也可以,可是我现在需求用的是整数,就不行拉。。。。。你最后写的你测试了可以,我不知道是不是我做的不对。。。我想会不会还是因为版本的问题啊。。因为我2611这么做没问题。。还是我这么作不对。。。你能帮我看一下吗
回复 支持 反对

使用道具 举报

发表于 2007-11-30 14:50:18 | 显示全部楼层
你如果不用dataTreeView,用DataGrid就正常吗?

稍等,我在2827上测试看一下。
回复 支持 反对

使用道具 举报

发表于 2007-11-30 15:18:59 | 显示全部楼层
我在2827上已经做个测试是可以了,见附件有个例子,你导入进去看看是否正常,如果正常,你对比一下设置有啥区别

tree.rar

1.15 MB, 下载次数: 64

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-30 15:49:41 | 显示全部楼层
atiger
我导入的时候选择创建表 就报错 没有定义主键,我想不选择创建数据表,导入以后我自己生成,结果导入是成功了,可是字典,信息,功能都是空的,模块是都出来了,里面没有任何内容,是不是因为你没有嵌入啊
回复 支持 反对

使用道具 举报

发表于 2007-11-30 16:10:11 | 显示全部楼层
o,Sorry。

tree例子.rar

1.16 MB, 下载次数: 67

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-30 16:26:48 | 显示全部楼层
呵呵,atiger ,你做的也不行,在 treeview 里面点击 新建 保存就报错,还是 无效的常量
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-5 01:44 , Processed in 0.039147 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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