找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 21026|回复: 35

[技巧] 跨年度查询出入库流水帐

    [复制链接]
发表于 2009-4-10 15:45:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
本帖最后由 maxiwen 于 2009-4-10 16:37 编辑

在用友ERP企业平台中查询出入库流水帐,只可查到本年度的,
但有时想查某个存货编码的所有出入库流水帐,在平台中就有些不方便了,
最近研究出了,通过EXCEL文档VBA+SQL成功写了出入库流水帐EXCEL外挂查询程序
这样的外挂还可以写:采购到货未完成、现存量查询、生产订单领料查询等等
因为办公室人员一般都用EXCEL,报表调节方便简单,通过VBA+SQL的EXCEL程序查询出入库流水帐不需要登录用友企业平台,打开一个EXCEL文档即可查询,这样不受用友ERP的用户登录名额限额,运行速度也快!

特别方便! 有兴趣的或VBA爱好者 交流交流 QQ:335622269

根据公司实际情况写的代码如下:

Sub OutInlistQuery() '出入库流水帐查询
    Dim row_Dst As Long, txt_Msg As String, tmp_Ans As VbMsgBoxResult
    Sheet20.Visible = True
    Sheet20.Select
    Range("a1").Select
    Sheet20.Range("a1:iv65536").ClearContents
    Dim cnPubs As ADODB.Connection
    Set cnPubs = New ADODB.Connection
    Dim strConn As String
    strConn = "PROVIDER=SQLOLEDB;"
    strConn = strConn & "DATA SOURCE=服务器名或IP地址;INITIAL CATALOG=数据库帐套名称;"
    strConn = strConn & "User Id=sa Password=sa密码; "
    cnPubs.Open strConn
    Dim rsPubs As ADODB.Recordset
    Set rsPubs = New ADODB.Recordset
            Range("a1") = "类别"
            Range("b1") = "日期"
            Range("c1") = "单据号"
            Range("D1") = "存货编码"
            Range("E1") = "存货名称"
            Range("F1") = "单位"
            Range("G1") = "数量"
            Range("H1") = "标识"
            Range("I1") = "备注"
            Range("J1") = " 销售订单号"
            Range("K1") = "生产订单号"
            Range("L1") = "代号"
    Select Case tmp_Case
        Case 1
            'a.cinvcode like '%" + str_CEA001 + "%' and G.Csocode like '%" + str_CAB001_Begin + "%' and convert(char(10),b.ddate,121) like '%" + str_RBA004_Begin + "%'
            With rsPubs
                .ActiveConnection = cnPubs
                .CursorType = adOpenForwardOnly
                .LockType = adLockReadOnly
                .Open "select (case when b.cvouchtype='34'then'系统转结'else b.cbustype end )as 单据类型,convert(char(10),b.ddate,121) AS 日期,b.ccode AS 单号," & _
                      "a.cinvcode as 存货编码,c.cinvname as 存货名称,d.cComunitName as 单位,a.iquantity AS 数量," & _
                      "(case when b.brdFlag=1 then'入库'else'出库'end) as 类别 ,b.cmemo AS 备注,G.Csocode as 销售单号," & _
                      "isnull(b.cOrderCode,b.cmpocode) as 采购或生产订单号,b.cvouchtype" & _
                 " From rdrecords as a inner join " & _
                      "rdrecord as b on a.id=b.id left join " & _
                      "inventory as c on a.cinvcode=c.cinvcode left  join " & _
                      "computationUnit as d on c.ccomunitCode=d.cComunitCode left  join " & _
                      "so_sodetails as g on g.ISOSid=a.isodid " & _
                "where  G.Csocode like '%" + str_CAB001_Begin + "%'  " & _
                "GROUP BY  (case when b.cvouchtype='34'then'系统转结'else b.cbustype end ),convert(char(10),b.ddate,121),b.ccode,a.cinvcode,c.cinvname,d.cComunitName,a.iquantity," & _
                      " (case when b.brdFlag=1 then'入库'else'出库'end)," & _
                      " b.cmemo,G.Csocode,isnull(b.cOrderCode,b.cmpocode),b.cvouchtype  " & _
                "ORDER BY  convert(char(10),b.ddate,121),b.cvouchtype,b.ccode,(case when b.cvouchtype='34'then'系统转结'else b.cbustype end ),a.cinvcode,c.cinvname,d.cComunitName,a.iquantity," & _
                      " (case when b.brdFlag=1 then'入库'else'出库'end)," & _
                      " b.cmemo,G.Csocode,isnull(b.cOrderCode,b.cmpocode)  "
                 Sheet20.Range("A2").CopyFromRecordset rsPubs
                .Close
            End With
          Case Else
            txt_Msg = "当前查询条件的程序未完成!"
            tmp_Ans = MsgBox(txt_Msg, vbExclamation, "条件错")
    End Select
    cnPubs.Close
    Set rsPubs = Nothing
    Set cnPubs = Nothing
    Range("a2").Select
End Sub

评分

参与人数 1威望 +10 金币 +30 魅力 +1 收起 理由
uf_fans + 10 + 30 + 1 技术贴,支持一下

查看全部评分

发表于 2019-6-17 08:55:59 | 显示全部楼层
请问站长可否给一个U8  12.0的出入库流水账SQL查询导出语句?
回复 点赞 拍砖

使用道具 举报

发表于 2009-4-10 16:10:23 | 显示全部楼层
你这个太复杂,直接在用友的自定义报表下面就可以弄出来,而且方便
发表于 2009-4-10 16:11:32 | 显示全部楼层
很不错的技术贴!支持楼主!
 楼主| 发表于 2009-4-10 16:36:34 | 显示全部楼层
本帖最后由 maxiwen 于 2009-4-10 16:38 编辑

可否详细说说你的方法~

我感觉在用友企业平台中的报表里查询,不能跨年查询出入库流水帐!

因为办公室人员一般都用EXCEL,报表调节方便简单,通过VBA+SQL的EXCEL程序查询出入库流水帐不需要登录用友企业平台,打开一个EXCEL文档即可查询,这样不受用友ERP的用户登录名额限额,运行速度也快!

点评

我觉的也是如此,这样的查询,不如自定义报表,从数据库里面直接查询,还可以设置更多的过滤条件,相当于WHERE ,报表-自定义报表下面,老站长,支持支持你。。。。  详情 回复 发表于 2012-9-26 23:33
老站长么?  详情 回复 发表于 2012-9-26 23:23
发表于 2009-4-10 16:51:02 | 显示全部楼层
好东西,收藏了
发表于 2009-4-10 17:19:19 | 显示全部楼层
看到有这么多的字母  还有命令 感觉是好东西 收藏以后应该用得上 谢谢楼主
发表于 2009-4-11 10:42:14 | 显示全部楼层
直接在用友的自定义报表怎样设置才能弄出来呢?
发表于 2009-4-14 14:10:13 | 显示全部楼层
好东西,但是现在还不熟悉VBA。这个最大的好处就是可以减少查询的站点数。
发表于 2009-4-14 14:34:47 | 显示全部楼层
很不错的技术贴!支持楼主
发表于 2009-4-15 09:45:59 | 显示全部楼层
收藏了,感谢楼主的技术分享
发表于 2009-4-15 22:56:33 | 显示全部楼层
不懂,先学习了再说
发表于 2009-4-16 09:29:33 | 显示全部楼层
楼主太牛了,谢谢分享!!
发表于 2009-4-20 09:50:52 | 显示全部楼层
正好用到了,看看先,谢谢。
  • 打卡等级:无名新人
  • 打卡总天数:1
  • 打卡月天数:0
  • 打卡总奖励:1
  • 最近打卡:2024-10-08 22:34:25
发表于 2009-4-20 13:13:59 | 显示全部楼层
好东西,不过看得有点闷。,
发表于 2009-4-23 21:57:47 | 显示全部楼层
楼主现在混得不错了啊!
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-11-25 10:34 , Processed in 0.084113 second(s), 14 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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