Foxtable(狐表)用户栏目专家坐堂 → 关于录入子项


  共有2899人关注过本帖树形打印复制链接

主题:关于录入子项

美女呀,离线,留言给我吧!
信达
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:183 积分:1320 威望:0 精华:0 注册:2014/11/22 18:33:00
关于录入子项  发帖心情 Post By:2015/2/6 9:19:00 [显示全部帖子]

老师,我想在窗口1中输入项目名和项目号后,录入订单管理表各子项,同时将项目名和项目号也写入各行中,是不是不能用下面这种录入代码?要怎么写?

SystemReady = False
Dim mg As New Merger
mg.SourcePath ="C:\Users\ 订单管理表.xls"
mg.Format = "excel" '指定格式
mg.SourceTableName = " 订单管理表$" '指定要合并的表
mg.DataTableName = "订单" '指定接收数据的表
mg.FieldMaps.Add("委托单位","客户简称")
mg.FieldMaps.Add("车型","项目名称")
mg.FieldMaps.Add("名称","部件名称")
mg.FieldMaps.Add("计划交期","计划交货期")
mg.FieldMaps.Add("车号","车号配置")
mg.FieldMaps.Add("收货人/收货地点","交货地点")
mg.Merge() '开始合并
SystemReady = True

 


 回到顶部
美女呀,离线,留言给我吧!
信达
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:183 积分:1320 威望:0 精华:0 注册:2014/11/22 18:33:00
  发帖心情 Post By:2015/2/6 9:26:00 [显示全部帖子]

是建立新项目(项目名和项目号),然后把项目中订单子项全部录入进来。

 回到顶部
美女呀,离线,留言给我吧!
信达
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:183 积分:1320 威望:0 精华:0 注册:2014/11/22 18:33:00
  发帖心情 Post By:2015/2/6 9:32:00 [显示全部帖子]

是的,然后在子表中每一行都写入同样的项目名称和项目号。

 回到顶部
美女呀,离线,留言给我吧!
信达
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:183 积分:1320 威望:0 精华:0 注册:2014/11/22 18:33:00
  发帖心情 Post By:2015/2/6 9:47:00 [显示全部帖子]

嗯,这个我知道。我只是不知道如何把窗口1中的项目名和项目号写入子项的每一行的代码。

就比如说在下面这个代码里,在合并的时候把项目名和项目号都加上去。

SystemReady = False
Dim mg As New Merger
mg.SourcePath ="C:\Users\ 订单管理表.xls"
mg.Format = "excel" '指定格式
mg.SourceTableName = " 订单管理表$" '指定要合并的表
mg.DataTableName = "订单" '指定接收数据的表
mg.FieldMaps.Add("委托单位","客户简称")
mg.FieldMaps.Add("车型","项目名称")
mg.FieldMaps.Add("名称","部件名称")
mg.FieldMaps.Add("计划交期","计划交货期")
mg.FieldMaps.Add("车号","车号配置")
mg.FieldMaps.Add("收货人/收货地点","交货地点")
mg.Merge() '开始合并
SystemReady = True

 


 回到顶部
美女呀,离线,留言给我吧!
信达
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:183 积分:1320 威望:0 精华:0 注册:2014/11/22 18:33:00
  发帖心情 Post By:2015/2/6 9:58:00 [显示全部帖子]

那是不是就是这段代码?然后怎样把窗口1中的项目名和项目代码加进去呢?

 

Dim Book As New XLS.Book("C:\Users\订单管理表.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("订单").StopRedraw()
Dim Cols1() As String = {"委托单位","名称","图号","计划编号",“数量”,“交货期”}
Dim Cols2() As String = {"客户简称","部件名称","图号","计划编号",“数量”,“交货期”}
For dr1 As Integer = 1 To Sheet.Rows.Count -1
       dr2 =  DataTables("订单").AddNew()
    End If
   For i As Integer = 0 To Cols1.Length - 1
       dr2(Cols2(i)) = sheet(dr1,i).Text
   Next
Next
'Tables("订单").ResumeRedraw()

[此贴子已经被作者于2015-2-6 10:03:23编辑过]

 回到顶部
美女呀,离线,留言给我吧!
信达
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:183 积分:1320 威望:0 精华:0 注册:2014/11/22 18:33:00
  发帖心情 Post By:2015/2/6 10:12:00 [显示全部帖子]

没明白。什么情况?

 回到顶部
美女呀,离线,留言给我吧!
信达
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:183 积分:1320 威望:0 精华:0 注册:2014/11/22 18:33:00
  发帖心情 Post By:2015/2/6 11:43:00 [显示全部帖子]

老师,这个代码有个缺点就是两个表要一一对齐,如果如下图我只取:委托单位、计划编号、名称、图号、计划数量的话,就需要删除多余的列来保持一致,才能正确录入。不像Merger, 不管在哪个位置,有相同的就录进来了。

如果不想对原Excel表做太多的改动,有什么办法可以解决吗?


图片点击可在新窗口打开查看此主题相关图片如下:spximage1.jpg
图片点击可在新窗口打开查看

 回到顶部