项目需求

客户整理出一个excel表格,表格中有订单必需的几个字段。然后把表格批量到导入到金蝶的专业版订单中。

如图:

项目开发思路:用vba代码把这个原表中需要的字段提取出来。然后生成到新的一张excel表格中,订单需要的字段能固定的,都固定写在生成导入表格里,

不能固定的,用vba代码写一个窗体,菜单,让客户可以简单选择。

如图:

项目开发过程及主要代码:

Private Sub UserForm_Initialize()

TextBox1.Text = Format(Date, "yyyy-m-d")

End Sub

Private Sub CommandButton1_Click()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strCn As String, strSQL As String '字符串变量
strCn = "Driver={sql server};" _
& "server=192.168.42.141;" _
& "uid=sa;pwd=sa123456;" _
& "database=AIS20181129203623;" _
& "AutoTranslate=False"

strSQL = "select * from zj1"

cn.Open strCn '打开连接
rs.Open strSQL, cn
Dim i As Integer, j As Integer, sht As Worksheet 'i,j为整数变量;sht 为excel工作表对象变量,指向某一工作表

Set sht = ThisWorkbook.Worksheets("w1")
'sht.Range("a1:a4") = rs("fexplanation")
'循环读取数据并将数据显示到excel中
i = 1
Do While Not rs.EOF '当数据指针未移到记录集末尾时,循环下列操作

i = i + 1
sht.Cells(i, 1) = rs("a1") '把当前记录的字段1的值保存到sheet1工作表的第i行第1列
sht.Cells(i, 2) = rs("a2") '把当前字段2的值保存到sheet1工作表的第i行第2列
sht.Cells(i, 3) = rs("a3") '把当前字段2的值保存到sheet1工作表的第i行第2列
sht.Cells(i, 4) = rs("a4")
sht.Cells(i, 5) = rs("a5")
rs.MoveNext '把指针移向下一条记录

'i = i + 1 'i加1,准备把下一记录相关字段的值保存到工作表的下一行

Loop '循环

rs.Close '关闭记录集,至此,程序将把某数据表的字段1和字段2保存在excel工作表sheet1的第1、2列,行数等于数据表的记录数
Sheet3.Cells(1, 1) = "单位组"
Sheet3.Cells(1, 2) = "单位"
Sheet3.Cells(1, 3) = "名称"
Sheet3.Cells(1, 4) = "单价"
Sheet3.Cells(1, 5) = "代码"
End Sub

Private Sub CommandButton4_Click()
Dim aa, ab As Integer
Dim a1, b1
'循环匹配物料名称和计量单位,单价
For aa = 2 To Sheet1.[b65536].End(3).Row
a1 = Sheet1.Cells(aa, 2).Value
For ab = 2 To Sheet3.[a65536].End(3).Row
b1 = Sheet3.Cells(ab, 3).Value
If b1 = a1 Then
Sheet2.Cells(aa, 12) = Sheet3.Cells(ab, 5)
Sheet2.Cells(aa, 16) = Sheet3.Cells(ab, 4)
Sheet2.Cells(aa, 15) = Sheet3.Cells(ab, 2)
End If
Next
Next
Dim d, t As String
c = Year(Now)
d = Format(Date, "md") '当前年月日
t = Format(Time, "hms") '当前时间
Sheet2.Range("b:b").NumberFormatLocal = "yyyy-m-d"
Sheet2.Range("f:f").NumberFormatLocal = "yyyy-m-d"
Sheet2.Range("t:t").NumberFormatLocal = "yyyy-m-d"
Dim a
For a = 2 To Sheet1.[b65536].End(3).Row
Sheet2.Cells(a, 1) = "SEOR" & c & d & t & a
Sheet2.Cells(a, 2) = TextBox1.Text
Sheet2.Cells(a, 3) = Sheet1.Cells(a, 4) & "/" & Sheet1.Cells(a, 5)
Sheet2.Cells(a, 4) = "人民币"
Sheet2.Cells(a, 5) = "'1"
Sheet2.Cells(a, 6) = TextBox1.Text
Sheet2.Cells(a, 7) = "赊销"

Sheet2.Cells(a, 10) = "'*"

Sheet2.Cells(a, 13) = Sheet1.Cells(a, 2)
'Sheet2.Cells(a, 13) = Sheet1.Cells(a, 4)

Sheet2.Cells(a, 17) = Sheet1.Cells(a, 3)

Sheet2.Cells(a, 18) = "'16"
Sheet2.Cells(a, 19) = "'0"
Sheet2.Cells(a, 20) = TextBox1.Text

Next
End Sub

Private Sub CommandButton5_Click()
For Z = 2 To Sheet2.[b65536].End(3).Row

Next
Application.ScreenUpdating = False
Dim j As Integer
Dim souce As Worksheet
Dim target As Workbook
Set souce = ThisWorkbook.Worksheets("cg1")

Set target = Workbooks.Open(ThisWorkbook.Path & "\销售.xls")
target.Sheets(1).Rows.Delete

souce.Range(souce.Cells(1, 1), souce.Cells(Z - 1, 20)).Copy target.Sheets(1).Range(target.Sheets(1).Cells(1, 1), target.Sheets(1).Cells(Z - 1, 20))

Application.ScreenUpdating = True
ActiveWorkbook.Save
ActiveWorkbook.Close

End Sub

通过以上代码把原来的表格生成以下形式

用到的sql语句

建一个视图,把物料名称,代码单位等筛选出来

CREATE VIEW zj1 AS
select t1.fname as a1 ,t2.fname as a2,t3. fname as a3 ,t3.FOrderPrice as a4 ,t3.FNumber as a5 from
t_unitgroup as t1 ,t_measureunit as t2 ,t_icitem as t3
where t1.funitgroupid =t3.funitgroupid and t2.fitemid=t3.funitid

查询视图看看效果

select* from zj1

如图

最后生成的小程序有3个表组成

如图:

转载于:https://www.cnblogs.com/flyer2018/p/10222767.html

表格批量导入金蝶专业版销售订单相关推荐

  1. 通过Excel表格批量导入数据

    业务场景 批量导入用户数据 依赖 导入操作Excel表格相关依赖 <dependency><groupId>org.apache.poi</groupId>< ...

  2. Excel导入多个HTML,网页表格批量导入到excel表格数据-如何将多个网页上的数据批量导入EXCEL...

    怎么将网页中的表格数据导入Excel 看看这个程序 htt==ps://it365.gitlab.io/zh-cn/table-to-excel/?d59568 上面的链点问题,你先复制了,粘浏览器地 ...

  3. 金蝶K3销售订单数据字典

    字段名称    字段描述 FAreaPS    销售范围: FBillCaption    销售订单 FBillerID    制单: FBillNo    内部订单号: FBrID    制单机构: ...

  4. 金蝶K3销售订单与下游单据后台解耦

    需求:用户已经将销售订单审核并下推生成生产任务单,目前要求删单.系统提示已存在关联的单据数据,不允许删除.原本想从生产任务单环节进行逐一删单处理,发现生产任务单已经下推生产投料变更单,已经无法删除. ...

  5. 将word中表格批量导入到Excel

     如果是一个word中的,复制粘贴. 如果是多个word中的,需要写个代码(如下),或者在网上找一下相关的工具. 此方法适用于多个word文档里面的所有表格: 1.将多个含有表格的word文档放入 ...

  6. 图片按日期批量导入WPS表格

    文章目录 批量获取图片创建日期 批量导入图片 最终效果图 [参考资料] 批量获取图片创建日期 import os import time import xlsxwriterpath = "t ...

  7. SAP SD初阶之VL10A为销售订单创建外向交货单

    SAP SD初阶之VL10A为销售订单创建外向交货单 SAP SD模块中销售订单的外向交货单创建,有很多种方法.其中之一就是使用VL10A这个事务代码. 不过基于个人喜好和操作习惯的原因,VL10A这 ...

  8. Oracle EBS 处理PR无法创建销售订单问题datafix

    PR审批以后,请交"创建内部订单",然后再提交"订单导入"创建内部销售订单. 问题症状: 1. "订单导入"日志输出提示: Order Nu ...

  9. EXCEL批量导入数据MVC

    这里简单实现EXCEL的批量导入 直接看代码,里面有注释 前端页面实现 @{ ViewBag.Title = "批量添加数据"; //Layout = null; } href=& ...

最新文章

  1. Android线程实例讲解
  2. Windows 2003 AD升级到 Windows 2008 AD
  3. PHP date函数参数详解
  4. TCP/IP UDP用户数据报协议 运输层
  5. python02_python常用数据类型字符串
  6. java数字高低呼唤_记录某电话交换台 5 分钟内接到的呼唤次数,则样本空间 S={0,1,2, … ,n, … }_Java答案_学小易找答案...
  7. linux 单显卡一拖二,那些有双显卡的,可以试试用opensuse一拖二(拖机)
  8. android toast通知关闭,Android Toast通知用法实例详解
  9. 【绝知此事要躬行】线性表之链表OJ(下)
  10. 石家庄规划建设智慧城市 三年后城市将大变样
  11. sonarqube+scanner代码质量检查
  12. 用xbrowser登陆linux远程桌面,如何使用Xmanager及VNC登录远程桌面
  13. icns文件_感染phobos家族勒索病毒文件后缀.phobos如何应对处理?
  14. Coding and Paper Letter(八十七)
  15. Pyqt5 多标签_【专访】芬欧蓝泰标签: 升级产品助力细分市 场发展
  16. 使用Ajax传用户信息数据到后端
  17. Oracle GoldenGate 文章集合
  18. 20200228华为手机安装谷歌商店,Download the latest Google Play Store APK
  19. ACL扩展IP访问控制列表配置
  20. 数据库原理和应用(4)—— 三个世界及有关概念、数据模型

热门文章

  1. 日用百货批发行业进销存规范实施要点
  2. PCB之AD导入logo
  3. P2P之NAT穿透原理
  4. cadence之贴片电阻封装绘制
  5. 树莓派+android+盒子,用树莓派做电视盒子,安装Android TV系统
  6. 设备端的超市商品识别
  7. 压汞分析法—专项文献阅读
  8. 《交互媒体专题设计》方案设计
  9. 王道——数据结构——栈和队列(1)
  10. java栈实现--链栈