Python开发简单账表

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

Python开发简单账表

对于公有云发布.NET插件不方便,用Python脚本开发简单账表服务插件,以便快速开发,快速迭代。

简单账表开发教程可参考:https://wenku.my7c.com/article/1094

简单总结一下,需要用代码拼接SQL拼接来构建报表数据源时,就需要用到用简单账表,对于常用场景,对报表不做其他复杂设置的情况下,简单账表的开发一般就是以下几个步骤就OK。

1.新建->空白对象->简单账表。

2.如果需要的话:添加表头字段。添加报表字段(通常都是在取数服务插件中构建,可以不做)

3.新建过滤界面继承->BOS->应用框架->动态表单->公共过滤

4.开发取数服务插件,看后面的Python脚本参考代码。核心的报表逻辑都在这一步。

5.权限配置。


分享一下如何用Python脚本开发简单账表的取数服务插件。老版本可能不支持,我开发的版本是[V7.6.0.202103],也是比较旧的版本了,高于此版本的环境应该都是可以的。

复制代码,可下载附件

import clr
clr.AddReference("System")
clr.AddReference("Kingdee.BOS")
clr.AddReference("Kingdee.BOS.Core")
clr.AddReference("Kingdee.BOS.DataEntity")
clr.AddReference("Kingdee.BOS.App")
clr.AddReference("Kingdee.BOS.Contracts")
clr.AddReference("Kingdee.BOS.ServiceHelper")
from Kingdee.BOS import*
from Kingdee.BOS.Contracts import*
from Kingdee.BOS.Contracts.Report import*
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Metadata import *
from Kingdee.BOS.Core.Report import*
from Kingdee.BOS.Core.SqlBuilder import*
from Kingdee.BOS.App.Data import*
from Kingdee.BOS.Orm.DataEntity import*
from System import*
from System.ComponentModel import*
from System.Collections.Generic import*
from System.Text import*
from System.Threading.Tasks import*
from Kingdee.BOS.ServiceHelper import *
#初始化
def Initialize():
	this.ReportProperty.ReportType=ReportType.REPORTTYPE_NORMAL;
	this.IsCreateTempTableByPlugin=True;
	this.ReportProperty.IsGroupSummary=True;
#设置标题
def GetReportTitles(Filter):
	reportTitles=ReportTitles();
	#customFiler=Filter.FilterParameter.CustomFilter;
	return reportTitles;
	
#设置单据列
def GetReportHeaders(Filter):
	header=ReportHeader();
	localEid=this.Context.UserLocale.LCID;
	header.AddChild("FNumber",LocaleValue("员工编号",localEid));
	header.AddChild("FID",LocaleValue("员工ID",localEid));
	return header;
#创建临时报表
def BuilderReportSqlAndTempTable(rptfilter,tableName):
	custFilter = rptfilter.FilterParameter.CustomFilter;
	whereFempId="";
	if(custFilter<>None):
		empObj=custFilter["F_ora_EmpId"];
		if(empObj<>None):
			whereFempId=(" and FID={0} ").format(empObj["Id"]);
	##!!!!! FIDENTITYID 一定要从1开始,不然前台显示没数据!!!!
	sql=("""/*dialect*/ 
SELECT FIDENTITYID=row_NUMBer() over(order by t1.FID ASC),t1.*
	INTO {0} 
FROM (
	select FNumber,FID from T_HR_EMPINFO  where 1=1 {1}
) t1 
	""").format(tableName,whereFempId);
	DBServiceHelper.Execute(this.Context,sql);

#关闭清空临时表
def CloseReport():
	this.DropTempTable();


简单账表服务插件示例.rar


Python 开发用什么工具比较好?


为啥什么我只要换一个表就报错,换成采购订单就报

System.ArgumentException: 值“Microsoft.Scripting.Interpreter.InterpretedFrameInfo”不是“System.String”类型,不能在此泛型集合中使用。

参数名: key



大神我想问下,如果要把过滤框的参数传到表头要怎么写


知识点很详细,适合耐心查看学习。打卡签到学习。。。老年卡签到——                 



图片.webp

老师,我按照您上面的复制过去,改成我自己的测试,提示:查询出现异常。Kingdee.BOS.Orm.Exceptions.ORMDesignException: 实体类型Kd977b6a2c7b7ccc8中不存在名为FENTRYID 的属性图片.webp图片.webp


老师,您好,我按照您上面的操作步骤弄,打开报表提示需要配置数据源插件


第4步开发取数服务插件,如果改成统计直接调拨单数据,请教下如何修改


请问第3步,公共过滤框,需要自己把功能添加过来吗?还是这模板自动带出来,我这边按步骤来,打开界面是空的?


在 IronPython.Compiler.Parser.ReportSyntaxError(Int32 start, Int32 end, String message, Int32 errorCode)


难道BOS默默支持了账表插件用python开发了

Python开发简单账表

对于公有云发布.NET插件不方便,用Python脚本开发简单账表服务插件,以便快速开发,快速迭代。简单账表开发教程可参考:https://wenku.my7c...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息