表格批量导入金蝶专业版销售订单

项目需求

客户整理出一个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

时间: 2024-09-10 01:20:17

表格批量导入金蝶专业版销售订单的相关文章

表格批量导入

从接触编程这份工作开始,就一直在使用thinkjs,之前做过一个批量导入的功能,现在就稍微整理一下,与人方便. 自己所做的“批量导入”表格的程序是:先将现有的表格上传上去,接着再把它导入到数据库,接着展现在页面上. 1. 上传文件需要的HTML代码:(如上!) 2.文件上传的js: 1 'use strict'; 2 3 var Base = require('./base.js'); 4 5 var fs = require('fs'); 6 var path = require('path'

PHP批量导入excell表格到mysql数据库

PHP批量导入excell表格到mysql数据库,本人通过亲自测试,在这里分享给大家 1,下载 php  excell类库 网上搜索可以下载,这里不写地址 2,建html文件 <form method="post" action="http://www.96net.com.cn/index.php?c=good&a=index" name="theForm" onsubmit="return validate()"

Magento 对csv表格的导入功能 高级自定义部分!

magento自己带有导入导出功能 后台system-->import/export-->Advanced Profiles 进入后点击add new profiles 就可以新建一个规则了 Profile Name *是名字 Actions XML *是对应的参数 譬如例子: <action type="dataflow/convert_adapter_io" method="load"> <var name="type&q

3.9 批量导入一揽子采购协议

3.9.1   业务方案描述 一揽子采购协议可以手工维护,也可以批量导入,批量导入一揽子采购协议的功能,以提高价格维护的效率. 采购一揽子协议是区分OU的,不同OU的采购协议需要单独维护. 批量导入一揽子采购协议的功能具体如下: 1) 调价:适用于该供应商已存在采购协议,且在协议中有该物料的价格信息,需要新增某一时间段内的价格. 2) 供应商新增物料报价:适用于该供应商已存在采购协议,在该协议中没有该物料的报价,需要在采购协议中增加记录. 3) 新建采购协议:适用于该供应商没有采购协议,需要新建

AD帐号批量导入导出

一.批量导入帐户 步骤及原理: 1.先用Excel表格做一个简单模版,将其保存为.csv格式! 2.再用For命令结合dsadd 来完成批量创建用户! 使用到的命令:(注:以下命令里参数为笔者做测试,别忘记修改!) for /f  "tokens=1,2,3,4,5 delims=," %a in (D:\USER1.csv) do dsadd user "cn=%c,ou=IT,dc=test,dc=com"  -samid %d -upn %d -ln %a -

C#批量导入Excel或WPS实现方法

批量导入导出Excel,WPS,TXT,可按照系统是否安装OFFICE.WPS情况选择,导出是自动选择. 上效果图 1 /// <summary> 2 /// //获得当前你选择的Excel Sheet的所有名字 3 /// </summary> 4 /// <param name="filePath">文件路径</param> 5 /// <param name="ExcelType">1 Microso

OEOIMP-创建销售订单(R12.2.3)

 创建销售订单(R12.2.3) --US Program:Order Import Short Name:OEOIMP Application:Order Management Executable:Order Import --ZHS 程序:订单导入 简称:OEOIMP 应用产品:订单管理 可执行名称:Order Import PLSQL调用 l_request_id := fnd_request.submit_request( 'ONT', 'OEOIMP', 'Order Impor

【游戏开发】Excel表格批量转换成CSV的小工具

一.前言 在工作的过程中,我们有时可能会面临将Excel表格转换成CSV格式文件的需求.这尤其在游戏开发中体现的最为明显,策划的数据文档大多是一些Excel表格,且不说这些表格在游戏中读取的速度,但就论占用内存来说,同样的数据量Excel表格所占用的内存要远远大于CSV,因此将Excel转换成CSV势在必行.如果单单转换一个Excel表格还好,直接另存为就搞定的,但是如何将一个文件下的N个Execl表格转成CSV呢?今天马三就来和大家一起用Python撸一个Excel表格批量转换CSV的小工具—

EBS OM销售订单接口相关

OM接口相关表: 1. OE_HEADERS_IFACE_ALL 此表为多组织表,用于将销售订单头插入开放接口.    该表存储来自于其他子系统需要导入OM模块的订单头信息,    该表导入时必须输入的字段/条件:    ORDER_SOURCE_ID : Order source id 可选    ORIG_SYS_DOCUMENT_REF: Original system document reference 必须    ORDER_SOURCE : Order source 可选    O