找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

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

用友U8开发大合集

[复制链接]
发表于 2021-3-19 18:08:46 | 显示全部楼层 |阅读模式

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

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

×
本次U8开发合集培训,分别是U8自定义按钮开发、U8控件事件开发、U8单据事件开发、U8嵌入式窗口开发、U8补丁工具打包、UAP单据开发、UAP报表开发、U8API开发培训、用友底层方式API培训、用友凭证导入培训。送用友全模块学习视频。
https://ke.qq.com/course/3385040?tuin=54cfd76f
或者加Q群:293892902


发表于 2021-3-19 18:38:27 | 显示全部楼层
谢谢分享
回复 点赞 拍砖

使用道具 举报

  • 打卡等级:偶尔看看
  • 打卡总天数:57
  • 打卡月天数:20
  • 打卡总奖励:332
  • 最近打卡:2024-11-21 07:02:35
发表于 2021-3-19 21:07:58 | 显示全部楼层
谢谢分享
回复 点赞 拍砖

使用道具 举报

发表于 2021-3-26 23:36:43 | 显示全部楼层
谢谢分享
回复 点赞 拍砖

使用道具 举报

 楼主| 发表于 2021-3-27 21:44:45 | 显示全部楼层
1. 第一章:用友U8二次开发
1.1 用友U8按钮开发
1.1.1 讲解了如何添加自定义按钮,介绍了在销售订单和销售订单列表添加按钮。
1.1.2 讲解如何获取单据界面的数据库链接、登录人员信息、以及表头内容、表体内容,以及如何给单据界面的表头、表体赋值,可以通过一般赋值,或者模拟输入方式赋值。
1.1.3 介绍了三个案例。
第一个是 引采购订单生产销售订单,快速生单。
第二个是 循环表体,根据表体物料编码获取最新单价,更新的含税单价。
第三个是 在列表批改备注 ,会循环列表,识别打勾的行,获取行销售订单号,根据行销售订单号更新 对应备注。
1.2 用友单据控件事件开发
1.2.1 讲解了如何添加单据控件事件开发,介绍了在采购订单表头、表体控件校验后事件,以及表体单击后事件。
1.2.2 介绍了三个案例
第一个 表头选择供应商事件触发,循环表体根据供应商 +存货编码从价格表获取维护单价,赋值给表体的采购单价栏目 。
第二个 表头选择供应商事件触发,循环表体根据供应商 +存货编码从价格表获取维护单价,赋值给表体的采购单价栏目 。
第三个单 击表体,根据表体物料编码查询最近一次的采购价格信息,弹窗显示。
1.3 用友单据事件开发
1.3.1 讲解了如何添加单据事件,介绍了在销售订单添加保存前触发的单据事件开发。
1.3.2 介绍了一个案例
第一个是单据 保存前检查 00001客户不予许销售01000001此类产品,如果检查有此类产品,单据不允许保存,并且提醒用户 。
1.4 用友嵌入式窗口开发
1.4.1 讲解了如何在 U8 添加菜单以及菜单嵌入式窗口。
1.4.2 介绍了一个案例
第一个是 开发嵌入式页签窗口,自定义窗口功能,本窗口功能是输入订单号和行号修改销售订单表体备注信息。
1.5 用友补丁打包
15.1 介绍如何把开发好的 dll 文件打包成 msi 补丁,并且介绍如何部署 msi 补丁。
回复 点赞 拍砖

使用道具 举报

 楼主| 发表于 2021-3-31 12:57:23 | 显示全部楼层
  联查代码 分享  string cmdLine = "";
            cmdLine = "ID:{0}&&&Name:{1}&&&SubSysID:{2}&&&AuthID:{3}&&&CMDLINE:{4}\t{5}";

            cmdLine = string.Format(cmdLine, menuID, menuName, subID, authID, cardNumber, pkFieldValue);
            IPortalCommandOperator portalCommandOperator = new PortalCommandOperator();
            IPortalCommandArgs portalCommandArgs = new PortalCommandArgs(menuID, subID);
            portalCommandArgs.AuthId = string.Empty;
            portalCommandArgs.DocId = string.Empty;
            portalCommandArgs.DocType = string.Empty;
            portalCommandArgs.ID = menuID;
            portalCommandArgs.Name = menuName;
            portalCommandArgs.SubFunction = string.Empty;
            portalCommandArgs.Extenision = string.Empty;
            portalCommandArgs.SubSysID = subID;
            portalCommandArgs.CmdLine = cmdLine;
            portalCommandArgs.FromUserClick = false;
            portalCommandArgs.ExtProperties.Add("recheck", "1");
            portalCommandOperator.RunBusiness(portalCommandArgs);
回复 点赞 拍砖

使用道具 举报

 楼主| 发表于 2021-4-5 18:26:17 | 显示全部楼层
'执行按钮前执行该方法,objVoucher为单据或列表对象
    'VarentValue为在表中预置的cVariant的值。
    'objLogin代表UFToolbar上取得的Login信息
    'objForm代表该Toolbar所在的窗体信息
    'objVoucher代表Toolbar所在窗体上的单据控件对象或者单据列表对象
    'sKey代表该按钮的ButtonKey
    'VarentValue代表数据库预置的Varent值
    Public Function BeforeRunSysCommand(ByVal objLogin As Object, ByVal objForm As Object, ByVal objVoucher As Object, _
                            ByVal sKey As String, ByVal VarentValue As Object, ByRef Cancel As Boolean, ByVal other As String) As Boolean
        Dim cCusCode As String
        Dim cInvCode As String
        Dim sql As String
        Dim Dt_data As New DataTable
        U8SQLHelper.U8DB.connectionString = objLogin.UfDbName
        '保存前检查000001客户不予许销售01000001此类产品,如果检查有此类产品,单据不允许保存,并且提醒用户
        If sKey = "save" Then
            For i = 1 To objVoucher.Rows
                If Not String.IsNullOrEmpty(objVoucher.bodyText(i, "cInvCode")) Then
                    cInvCode = objVoucher.bodyText(i, "cInvCode")
                    cCusCode = objVoucher.headerText("cCusCode")
                    If (cCusCode = "00000001" And cInvCode = "01000001") Then
                        MsgBox("此商品01000001,不能销售给该客户!")
                        Cancel = True
                        Exit Function
                    End If
                End If
            Next
        End If
        Cancel = False
    End Function
回复 点赞 拍砖

使用道具 举报

 楼主| 发表于 2021-4-5 18:26:37 | 显示全部楼层
'执行按钮前执行该方法,objVoucher为单据或列表对象
    'VarentValue为在表中预置的cVariant的值。
    'objLogin代表UFToolbar上取得的Login信息
    'objForm代表该Toolbar所在的窗体信息
    'objVoucher代表Toolbar所在窗体上的单据控件对象或者单据列表对象
    'sKey代表该按钮的ButtonKey
    'VarentValue代表数据库预置的Varent值
    Public Function BeforeRunSysCommand(ByVal objLogin As Object, ByVal objForm As Object, ByVal objVoucher As Object, _
                            ByVal sKey As String, ByVal VarentValue As Object, ByRef Cancel As Boolean, ByVal other As String) As Boolean
        Dim cCusCode As String
        Dim cInvCode As String
        Dim sql As String
        Dim Dt_data As New DataTable
        U8SQLHelper.U8DB.connectionString = objLogin.UfDbName
        '保存前检查000001客户不予许销售01000001此类产品,如果检查有此类产品,单据不允许保存,并且提醒用户
        If sKey = "save" Then
            For i = 1 To objVoucher.Rows
                If Not String.IsNullOrEmpty(objVoucher.bodyText(i, "cInvCode")) Then
                    cInvCode = objVoucher.bodyText(i, "cInvCode")
                    cCusCode = objVoucher.headerText("cCusCode")
                    If (cCusCode = "00000001" And cInvCode = "01000001") Then
                        MsgBox("此商品01000001,不能销售给该客户!")
                        Cancel = True
                        Exit Function
                    End If
                End If
            Next
        End If
        Cancel = False
    End Function
回复 点赞 拍砖

使用道具 举报

  • 打卡等级:无名新人
  • 打卡总天数:1
  • 打卡月天数:0
  • 打卡总奖励:3
  • 最近打卡:2024-10-23 18:41:09
发表于 2023-5-25 17:24:40 | 显示全部楼层
'执行按钮前执行该方法,objVoucher为单据或列表对象
    'VarentValue为在表中预置的cVariant的值。
    'objLogin代表UFToolbar上取得的Login信息
    'objForm代表该Toolbar所在的窗体信息
    'objVoucher代表Toolbar所在窗体上的单据控件对象或者单据列表对象
    'sKey代表该按钮的ButtonKey
    'VarentValue代表数据库预置的Varent值
    Public Function BeforeRunSysCommand(ByVal objLogin As Object, ByVal objForm As Object, ByVal objVoucher As Object, _
                            ByVal sKey As String, ByVal VarentValue As Object, ByRef Cancel As Boolean, ByVal other As String) As Boolean
        Dim cCusCode As String
        Dim cInvCode As String
        Dim sql As String
        Dim Dt_data As New DataTable
        U8SQLHelper.U8DB.connectionString = objLogin.UfDbName
        '保存前检查000001客户不予许销售01000001此类产品,如果检查有此类产品,单据不允许保存,并且提醒用户
        If sKey = "save" Then
            For i = 1 To objVoucher.Rows
                If Not String.IsNullOrEmpty(objVoucher.bodyText(i, "cInvCode")) Then
                    cInvCode = objVoucher.bodyText(i, "cInvCode")
                    cCusCode = objVoucher.headerText("cCusCode")
                    If (cCusCode = "00000001" And cInvCode = "01000001") Then
                        MsgBox("此商品01000001,不能销售给该客户!")
                        Cancel = True
                        Exit Function
                    End If
                End If
            Next
        End If
        Cancel = False
    End Function
回复 点赞 拍砖

使用道具 举报

  • 打卡等级:无名新人
  • 打卡总天数:1
  • 打卡月天数:0
  • 打卡总奖励:3
  • 最近打卡:2024-10-23 18:41:09
发表于 2023-7-14 11:30:18 | 显示全部楼层
'执行按钮前执行该方法,objVoucher为单据或列表对象
    'VarentValue为在表中预置的cVariant的值。
    'objLogin代表UFToolbar上取得的Login信息
    'objForm代表该Toolbar所在的窗体信息
    'objVoucher代表Toolbar所在窗体上的单据控件对象或者单据列表对象
    'sKey代表该按钮的ButtonKey
    'VarentValue代表数据库预置的Varent值
    Public Function BeforeRunSysCommand(ByVal objLogin As Object, ByVal objForm As Object, ByVal objVoucher As Object, _
                            ByVal sKey As String, ByVal VarentValue As Object, ByRef Cancel As Boolean, ByVal other As String) As Boolean
        Dim cCusCode As String
        Dim cInvCode As String
        Dim sql As String
        Dim Dt_data As New DataTable
        U8SQLHelper.U8DB.connectionString = objLogin.UfDbName
        '保存前检查000001客户不予许销售01000001此类产品,如果检查有此类产品,单据不允许保存,并且提醒用户
        If sKey = "save" Then
            For i = 1 To objVoucher.Rows
                If Not String.IsNullOrEmpty(objVoucher.bodyText(i, "cInvCode")) Then
                    cInvCode = objVoucher.bodyText(i, "cInvCode")
                    cCusCode = objVoucher.headerText("cCusCode")
                    If (cCusCode = "00000001" And cInvCode = "01000001") Then
                        MsgBox("此商品01000001,不能销售给该客户!")
                        Cancel = True
                        Exit Function
                    End If
                End If
            Next
        End If
        Cancel = False
    End Function
回复 点赞 拍砖

使用道具 举报

  • 打卡等级:初来乍到
  • 打卡总天数:27
  • 打卡月天数:18
  • 打卡总奖励:68
  • 最近打卡:2024-11-21 08:36:26
发表于 2024-11-13 15:54:42 | 显示全部楼层
谢谢分享
回复 点赞 拍砖

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

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

GMT+8, 2024-11-21 15:43 , Processed in 0.051165 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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