Advertisement

K3Cloud Python插件:获取单据数据与更新值等功能

  • 5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:DOCX


简介:
本段介绍K3Cloud Python插件的功能,包括如何利用该插件轻松实现单据数据的读取、查询及更新等操作。此工具旨在提高开发效率和系统集成能力。 ### K3Cloud Python 插件知识点详解 #### 一、K3Cloud Python插件概述 K3Cloud 是金蝶云星空系列的一款企业管理软件,它提供了丰富的API接口和开发工具来帮助用户进行业务流程定制与扩展。其中,Python插件是K3Cloud提供的一种灵活的扩展方式,允许开发者在不修改原有系统逻辑的基础上,通过编写Python脚本来实现对业务数据的处理和业务流程的扩展。 #### 二、获取单据数据并更新文本字段 在K3Cloud中,可以通过注册Python脚本来实现在特定事件触发时执行自定义逻辑。例如,在录入数量后自动计算特定文本字段的值,并将其更新到相应的文本字段中。 **具体步骤如下:** 1. **进入BOS平台并选择表单插件** - 首先进入BOS(Business Operation System)平台。 - 在平台中找到并点击“表单插件”,这将打开一个新界面用于注册Python脚本。 2. **注册Python脚本** - 在弹出的界面上,点击“注册Python脚本”按钮。 - 输入脚本名称,用于标识此脚本的功能。 - 编写或粘贴Python脚本,该脚本将在表单加载或数据发生变化时执行。 3. **编写Python脚本** - 脚本示例: ```python import clr clr.AddReference(Kingdee.BOS) clr.AddReference(Kingdee.Bos.Core) from Kingdee.BOS.Core import * def DataChanged(e): if e.Key == FQty and e.NewValue != : result = str(this.Model.GetValue(FQty, e.Row)) + this.Model.GetValue(FBillno) if result is not None: this.Model.SetValue(F_ASDQ_TEXT, result, e.Row) ``` - 解析: - `import clr` 和其他引用是为了导入K3Cloud的相关库,使Python能够调用K3Cloud API。 - `DataChanged(e)` 函数会在数据变化时被调用,参数`e`包含了事件信息。 - 判断条件`e.Key == FQty`表示只关注“数量”字段的变化。 - 当“数量”字段发生变化时,获取当前行的“单据编号”和“数量”字段的值,然后将二者拼接起来作为新的值赋给文本字段 `F_ASDQ_TEXT`。 4. **测试脚本效果** - 完成脚本编写后保存并确定,可以在实际业务场景中测试其效果。 #### 三、通过SQL语句操作数据库 除了处理业务逻辑外,Python插件还可以用来执行SQL语句,对数据库进行查询、插入、更新和删除等操作。 **具体方法如下:** 1. **添加必要的引用** - 在Python脚本开头,添加以下引用: ```python import clr clr.AddReference(System) clr.AddReference(System.Core) clr.AddReference(Kingdee.BOS) clr.AddReference(Kingdee.BOS.Core) clr.AddReference(Kingdee.BOS.DataEntity) clr.AddReference(Kingdee.BOS.ServiceHelper) ``` 2. **编写SQL语句** - 示例脚本: ```python def DataChanged(e): if e.Key == FMaterialId and e.NewValue != : sql = insert into tableA(id, AA) values(99, 99) DBUtils.Execute(this.Context, str(sql)) ``` - 解析: - `DataChanged(e)`函数仍然在数据变化时被调用。 - 条件判断`e.Key == FMaterialId`表示当“物料ID”字段发生变化时执行后续操作。 - SQL语句`insert into tableA(id, AA) values(99, 99)`用于向表 `tableA` 中插入一条记录。 - 使用 `DBUtils.Execute()` 方法执行SQL语句。 通过上述步骤,我们可以利用K3Cloud提供的Python插件功能,实现对业务数据的实时处理和数据库操作,进而提高工作效率和业务灵活性。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • K3Cloud Python
    优质
    本段介绍K3Cloud Python插件的功能,包括如何利用该插件轻松实现单据数据的读取、查询及更新等操作。此工具旨在提高开发效率和系统集成能力。 ### K3Cloud Python 插件知识点详解 #### 一、K3Cloud Python插件概述 K3Cloud 是金蝶云星空系列的一款企业管理软件,它提供了丰富的API接口和开发工具来帮助用户进行业务流程定制与扩展。其中,Python插件是K3Cloud提供的一种灵活的扩展方式,允许开发者在不修改原有系统逻辑的基础上,通过编写Python脚本来实现对业务数据的处理和业务流程的扩展。 #### 二、获取单据数据并更新文本字段 在K3Cloud中,可以通过注册Python脚本来实现在特定事件触发时执行自定义逻辑。例如,在录入数量后自动计算特定文本字段的值,并将其更新到相应的文本字段中。 **具体步骤如下:** 1. **进入BOS平台并选择表单插件** - 首先进入BOS(Business Operation System)平台。 - 在平台中找到并点击“表单插件”,这将打开一个新界面用于注册Python脚本。 2. **注册Python脚本** - 在弹出的界面上,点击“注册Python脚本”按钮。 - 输入脚本名称,用于标识此脚本的功能。 - 编写或粘贴Python脚本,该脚本将在表单加载或数据发生变化时执行。 3. **编写Python脚本** - 脚本示例: ```python import clr clr.AddReference(Kingdee.BOS) clr.AddReference(Kingdee.Bos.Core) from Kingdee.BOS.Core import * def DataChanged(e): if e.Key == FQty and e.NewValue != : result = str(this.Model.GetValue(FQty, e.Row)) + this.Model.GetValue(FBillno) if result is not None: this.Model.SetValue(F_ASDQ_TEXT, result, e.Row) ``` - 解析: - `import clr` 和其他引用是为了导入K3Cloud的相关库,使Python能够调用K3Cloud API。 - `DataChanged(e)` 函数会在数据变化时被调用,参数`e`包含了事件信息。 - 判断条件`e.Key == FQty`表示只关注“数量”字段的变化。 - 当“数量”字段发生变化时,获取当前行的“单据编号”和“数量”字段的值,然后将二者拼接起来作为新的值赋给文本字段 `F_ASDQ_TEXT`。 4. **测试脚本效果** - 完成脚本编写后保存并确定,可以在实际业务场景中测试其效果。 #### 三、通过SQL语句操作数据库 除了处理业务逻辑外,Python插件还可以用来执行SQL语句,对数据库进行查询、插入、更新和删除等操作。 **具体方法如下:** 1. **添加必要的引用** - 在Python脚本开头,添加以下引用: ```python import clr clr.AddReference(System) clr.AddReference(System.Core) clr.AddReference(Kingdee.BOS) clr.AddReference(Kingdee.BOS.Core) clr.AddReference(Kingdee.BOS.DataEntity) clr.AddReference(Kingdee.BOS.ServiceHelper) ``` 2. **编写SQL语句** - 示例脚本: ```python def DataChanged(e): if e.Key == FMaterialId and e.NewValue != : sql = insert into tableA(id, AA) values(99, 99) DBUtils.Execute(this.Context, str(sql)) ``` - 解析: - `DataChanged(e)`函数仍然在数据变化时被调用。 - 条件判断`e.Key == FMaterialId`表示当“物料ID”字段发生变化时执行后续操作。 - SQL语句`insert into tableA(id, AA) values(99, 99)`用于向表 `tableA` 中插入一条记录。 - 使用 `DBUtils.Execute()` 方法执行SQL语句。 通过上述步骤,我们可以利用K3Cloud提供的Python插件功能,实现对业务数据的实时处理和数据库操作,进而提高工作效率和业务灵活性。
  • Python爬虫:
    优质
    本教程介绍如何使用Python编写爬虫程序来抓取和分析新浪新闻网站的数据,帮助读者掌握网页数据采集的基本技巧。 爬虫的浏览器伪装原理:当我们尝试抓取新浪新闻首页时会遇到403错误,这是因为目标服务器会对未经许可的爬虫进行屏蔽。为了绕过这种限制并成功获取数据,我们需要让请求看起来像来自一个正常的网页浏览器。 在实践中,实现这一功能通常通过修改HTTP头部信息来完成。具体来说,在访问某个网站后打开开发者工具(通常是按F12键),然后切换到Network标签页,并点击任意一条记录查看其详细信息。在此过程中我们可以注意到Headers下的Request Headers部分中有一个名为User-Agent的字段,该字段用于识别请求来源是浏览器还是爬虫。 下面是一个简单的Python示例代码片段: ```python import urllib.request url = http://weibo.com/tfwangyuan?is_hot=1 headers = {User-Agent: Mozilla/5.0 (Windows NT 10.} request = urllib.request.Request(url, headers=headers) response = urllib.request.urlopen(request) print(response.read().decode(utf-8)) ``` 这段代码设置了请求的`User-Agent`头部信息,使其看起来像是由标准浏览器发送的。这样可以增加成功获取网页内容的可能性。
  • 从网络JSONListView
    优质
    本教程介绍如何从互联网获取JSON格式的数据,并将其动态显示和更新在Android应用中的ListView组件上。 通过URL获取网络资源中的JSON数据,并解析更新到自定义的ListView中,案例中的URL来自于我自己的服务器。
  • 使用Python浪微博
    优质
    本教程介绍如何利用Python编程语言及其相关库来抓取和分析新浪微博的数据,帮助用户深入了解社交媒体信息的处理方法。 Python 是人工智能和大数据领域的重要工具之一,因此我决定学习它。作为初学者,我想从实现一个爬虫开始入手,用来爬取并收集数据。以我在微博上进行的数据抓取为例,并附上了相应的代码,希望能与大家一起交流学习。
  • 通过ADCODE相应GeoJSON至最
    优质
    本项目提供一个实用工具,用于通过ADCODE代码便捷地检索和下载最新的GeoJSON格式地理区域数据,适用于中国各行政级别区域。 下载后请解压并直接打开index.html文件,在其中输入你需要的省市adcode即可获取对应的geoJSON数据,echarts中可直接使用。项目地址:https://github.com/bmsherry/-geoJSON- 欢迎fork star。
  • MyBatis 时的库死锁及连接池待问题
    优质
    本篇文章探讨了使用MyBatis框架进行数据库更新操作时可能遇到的死锁现象以及连接池等待问题,并提供了解决方案和优化建议。 【Mybatis更新数据库死锁与获取数据库连接池等待】是常见的技术问题,涉及数据库事务处理、并发控制以及数据库连接管理。以下详细解释这两个问题及其解决方案。 **1. MySQL 数据库死锁** 在多事务环境中,由于事务间的锁冲突导致双方互相等待对方释放资源时会产生数据库死锁,在InnoDB存储引擎中,行级别的锁定分为共享锁(S)和排他锁(X)。当一个事务持有共享锁并尝试获取排他锁而另一个同时持有的是相反的类型时就会发生这种情况。例如,假设有一个`blog`表,如果事务A先读取id为12的数据行然后加了共享锁,随后事务B试图删除该记录需要排他锁,则会导致后者等待前者释放资源;接着当事务A尝试执行同样的操作(也需要排他锁)时会被阻塞。此时,系统检测到死锁后会回滚其中一个以解除僵局状态。 解决此类问题的方法包括: - 优化事务顺序减少循环依赖。 - 设置合理的超时时间以便自动处理死锁情况。 - 使用间隙锁定策略来降低概率。 - 及早提交或取消未完成的事务避免长时间占用资源。 **2. Mybatis 中的数据库连接池等待** Mybatis通过使用数据库连接池提高性能并优化资源利用。当看到“Opening JDBC Connection”的日志信息时,表示正在尝试获取可用连接;如果所有连接都被其他操作所用,则新请求需要排队直到有空闲连接为止。 导致这种状况的因素可能包括: - 并发测试中大量并发请求超出配置的池容量。 - 事务长时间未提交或回滚占用了过多资源。 - 连接池参数设置不合理,例如最小连接数量不足。 解决方法如下: - 调整最大和最小连接数以及等待超时时间等参数以适应需求变化。 - 确保每次操作结束后正确释放数据库链接或者撤销事务来避免长时间占用问题。 - 定期监控状态并采取相应措施应对异常情况的发生。 理解相关理论知识对于排查及解决这类问题是至关重要的,同时在实际开发中保持良好的编程习惯也可以预防许多此类情形。
  • Python天气
    优质
    本教程介绍如何使用Python编程语言从网络API获取实时天气信息,并解析和展示数据,帮助开发者轻松集成气象服务。 寒假任务是做一个带UI界面的天气预报软件。首先展示最终结果图。其中用到的知识包括:Python网络爬虫、python的xlwt和xlrd库的使用以及PyQt5的应用。 完成过程如下: 一. 爬取天气数据(需要联网) 第一步: 找出合适的URL链接。 第二步: 使用Python的urllib2库来获取对应城市的天气信息。 第三步: 输出爬取到的天气数据。 有了这些思路,开始编写代码: ```python import urllib.request import gzip import json def get_weather_data(): city_name = input(请输入要查询的城市:) ``` 注意,在实际编程时需要确保输入的城市名正确,并且网络连接正常。
  • Python点云
    优质
    本教程介绍如何使用Python编程语言从各种来源获取和处理点云数据,涵盖常用库及工具的应用。 这段代码用于提取点云,并且可以在Python平台上运行,是一个非常不错的代码。
  • jQuery
    优质
    简介:本文介绍了如何使用jQuery库高效地从HTML表单中提取各种类型的数据,并展示了常见代码示例。 这段文字全面讲解了如何使用jQuery获取表单值。