起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 737|回复: 26

【结贴】ExceltoTable主从表

[复制链接]
发表于 2009-11-22 20:21:23 | 显示全部楼层 |阅读模式
建立了两个数据集有主从关系

主表的信息需要输入
从表的是excel导入  
这种情况应该怎么实现?

这两个是在一个业务功能实现的
回复

使用道具 举报

发表于 2009-11-23 08:37:03 | 显示全部楼层
呵呵,不知道楼主是不知道如何导入呢,还是咋的,是哪里不知道怎样实现呢。

根据实际的业务需求,设计一下界面,如何主表输入,从表搞个按钮,用代码导入就可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-23 08:58:14 | 显示全部楼层
我把主从表分别建立的数据集
在按钮事件中提交
导入数据的时候提示说   主从表不在同一个事务中  导入失败
回复 支持 反对

使用道具 举报

发表于 2009-11-23 09:11:43 | 显示全部楼层
不知道楼主具体是怎么做的。
同一个业务信息中的数据集更新,平台中会启动一个事务进行提交的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-23 09:27:48 | 显示全部楼层
。。。
我把两个数据集没放在同一个业务信息下  
我试试放在一个业务信息下
回复 支持 反对

使用道具 举报

发表于 2009-11-23 09:37:53 | 显示全部楼层
哦,那记得反馈结果。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-23 09:53:29 | 显示全部楼层
加到一个业务信息下
代码如下:
procedure TMainForm.Button1Click(Sender: TObject);
var
  lMsg : String;
begin
  TSQLDataSet(cb.DataSet).Open;
  if OpenDialog1.Execute then
  begin
    try
      TSQLDataSet(zb.DataSet).Open;
      TSQLDataSet(zb.DataSet).Append;
      TSQLDataSet(zb.DataSet).FieldByName('ename').AsString:='1';
      TSQLDataSet(zb.DataSet).FieldByName('sal').AsString:='2';
      TSQLDataSet(zb.DataSet).FieldByName('dat').AsString:='3';
      TSQLDataSet(zb.DataSet).Post;
      lMsg := '';
      ExcelToTable1.FileName := OpenDialog1.FileName;
      //ExcelToTable1.DataSource:=TSQLDataSet(cb.DataSet);
      ExcelToTable1.StartRow := 2;
      ExcelToTable1.EndRow := 4;
      ExcelToTable1.FieldMap.Clear;
      //ExcelToTable1.FieldMap.Add('DataSetBZSJJ1.ID = sheet1[1,0]');
      //ExcelToTable1.FieldMap.Add('DataSetBZSJJ1.zd1 = sheet1[1,0]');
      ExcelToTable1.FieldMap.Add('TSQLDataSet(cb.DataSet).zd2 = sheet1[2,0]');
      ExcelToTable1.FieldMap.Add('TSQLDataSet(cb.DataSet).zd3 = sheet1[3,0]');
      if Business.Forms.ExcelFieldMapFunc.ShowFieldMapEditor(ExcelToTable1) then
      if ExcelToTable1.Execute(lMsg) then
      begin
        TSQLDataSet(cb.DataSet).ApplyUpdates;
        //InfoBroker1.Info.ApplyUpdates;
        TSQLDataSet(cb.DataSet).Close;
        TSQLDataSet(cb.DataSet).Open;
      end
      else
        Dialogs.ShowMessage(lMsg);
    except
      Dialogs.ShowMessage(lMsg);
    end;
  end;
end;

最后主表保存了
但是导入的excel数据没有保存  为什么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-23 09:55:18 | 显示全部楼层
数据源是直接在ExcelToTable控件上设置的
指的是cb的数据集
回复 支持 反对

使用道具 举报

发表于 2009-11-23 10:20:05 | 显示全部楼层
呵呵,提交数据是根据TDeltaDataSet,因为导入,TDeltaDataSet这个是空的,所以就没有提交进去
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-11-23 11:08:03 | 显示全部楼层
那我应该怎么做啊?
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-14 04:58 , Processed in 0.035325 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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