BOS金蝶云星空开发简单账表

article/2025/8/26 20:53:55

一.BOS创建简单账表:

1.左键单击左上角文件->新建。
右键左上方,
2.选择简单账表,输入名称,编号,点击确定,创建简单账表。
在这里插入图片描述
3.选择过滤条件框,输入名称,编号,点击确定。
在这里插入图片描述

二.Visual Studio编辑服务插件,案例如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Kingdee.BOS;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Contracts.Report;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Core.Report;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;

namespace SY.BH.K3Cloud2k
{
[Kingdee.BOS.Util.HotUpdate]
[Description(“报表名称”)]
public class BasePaperWarehousingReport : SysReportBaseService
{

    public override void Initialize(){base.Initialize();//简单账表类型:普通,树形,分页this.ReportProperty.ReportType = ReportType.REPORTTYPE_NORMAL;//报表名称this.ReportProperty.ReportName = new LocaleValue("报表名称", base.Context.UserLocale.LCID);this.IsCreateTempTableByPlugin = true;this.ReportProperty.IsUIDesignerColumns = false;this.ReportProperty.IsGroupSummary = false;this.ReportProperty.SimpleAllCols = false;this.ReportProperty.IsDefaultOnlyDspSumAndDetailData = true;//设置精度控制List<DecimalControlField> list = new List<DecimalControlField>();this.ReportProperty.DecimalControlFieldList = list;}public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName){base.BuilderReportSqlAndTempTable(filter, tableName);//拼接过滤条件:filterDynamicObject dyFilter = filter.FilterParameter.CustomFilter;//获取过滤器所有属性var keySet = dyFilter.DynamicObjectType.Properties;string FDate = dyFilter["FDate"] == null ? "" : ((DateTime)dyFilter["FDate"]).ToString("yyyy-MM-dd");  //该月最近1年string FAType = dyFilter["FAType"] == null ? "" : (dyFilter["FAType"]).ToString();  //A类string FBType = dyFilter["FBType"] == null ? "" : (dyFilter["FBType"]).ToString();  //B类string FNumber = dyFilter["FNumber"] == null ? "" : (dyFilter["FNumber"]).ToString();  //物料编码string FName = dyFilter["FName"] == null ? "" : (dyFilter["FName"]).ToString();  //物料名称string FSupplierNumber = dyFilter["FSupplierNumber"] == null ? "" : (dyFilter["FSupplierNumber"]).ToString();  //供应商物料编码string FSupplier = dyFilter["FSupplier"] == null ? "" : ((DynamicObject)dyFilter["FSupplier"])["Name"].ToString();  //供应商string FSpecification = dyFilter["FSpecification"] == null ? "" : (dyFilter["FSpecification"]).ToString();  //型号StringBuilder fiterSql = new StringBuilder();//循环过滤框,拼接sql过滤条件foreach (var key in keySet){//if (dyFilter[key] != null && dyFilter[key].ToString().IsNullOrEmptyOrWhiteSpace() == false) continue;if (dyFilter[key] != null && !string.IsNullOrEmpty(dyFilter[key].ToString())){//A类if (key.Name.Equals("FAType", StringComparison.OrdinalIgnoreCase) && !FAType.Equals("")){fiterSql.Append($" and c.F_ADD_TEXT11 like '%{FAType}'%");}//B类if (key.Name.Equals("FBType", StringComparison.OrdinalIgnoreCase) && !FBType.Equals("")){fiterSql.Append($" and c.F_ADD_TEXT12 like '%{FBType}%'");}//物料编码if (key.Name.Equals("FNumber", StringComparison.OrdinalIgnoreCase) && !FNumber.Equals("")){fiterSql.Append($" and c.FNUMBER like '%{FNumber}%'");}//物料名称if (key.Name.Equals("FName", StringComparison.OrdinalIgnoreCase) && !FName.Equals("")){fiterSql.Append($" and c1.FNAME like '%{FName}%'");}//供应商物料编码if (key.Name.Equals("FSupplierNumber", StringComparison.OrdinalIgnoreCase) && !FSupplierNumber.Equals("")){fiterSql.Append($" and c.F_add_Text3 like '%{FSupplierNumber}%'");}//供应商if (key.Name.Equals("FSupplier", StringComparison.OrdinalIgnoreCase) && !FSupplier.Equals("")){fiterSql.Append($" and h.FNAME = '{FSupplier}'");}//型号if (key.Name.Equals("FSpecification", StringComparison.OrdinalIgnoreCase) && !FSpecification.Equals("")){fiterSql.Append($" and c1.FSpecification like '%{FSpecification}%'");}}}// 默认排序字段:需要从filter中取用户设置的排序字段// string seqFld = string.Format(base.KSQL_SEQ, "FSOBillNo ");string filterString = filter.FilterParameter.FilterString == "" ? "" : "and" + filter.FilterParameter.FilterString;//自行编辑你需要的sql内容,必须包含一个FIDEntityID列作为一值string resultSql = $"select FIDENTITYID,* into {tableName} from Table";DBUtils.ExecuteDynamicObject(this.Context, resultSql.ToString());}//编辑报表单据头public override ReportHeader GetReportHeaders(IRptParams filter){//return base.GetReportHeaders(filter);ReportHeader header = new ReportHeader();var FFIDEntryID = header.AddChild("字段1", new LocaleValue("字段名1"));var FNUMBER = header.AddChild("字段2", new LocaleValue("字段名2"));var FSupplierNumber = header.AddChild("字段3", new LocaleValue("字段名3"));var FSupplier = header.AddChild("字段4", new LocaleValue("字段名4"));//复合单据头header.AddChild("SH01", new LocaleValue("01月&地区1"));header.AddChild("DG01", new LocaleValue("01月&地区2"));header.AddChild("HG01", new LocaleValue("01月&地区3"));header.AddChild("HJ01", new LocaleValue("01月&1月合计"));return header;}//数据列汇总//public override List<SummaryField> GetSummaryColumnInfo(IRptParams filter)//{//    var result = base.GetSummaryColumnInfo(filter);//    result.Add(new SummaryField("列名", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));//    result.Add(new SummaryField("列名", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));//    return result;//}//报表头赋值public override ReportTitles GetReportTitles(IRptParams filter){var result = new ReportTitles();DynamicObject dyFilter = filter.FilterParameter.CustomFilter;result.AddTitle("报表头字段名", dyFilter["过滤框字段名"].ToString());return result;}}

}

三.BOS配置服务插件和条件过滤框:

1.在简单账表界面的“过滤窗口业务对象(报表)”中填写上面创建的过滤框的唯一标识。
在这里插入图片描述

2.点击服务插件,选择注册自己编辑的报表插件。
在这里插入图片描述
3.操作完成,保存即可。


http://chatgpt.dhexx.cn/article/xGsKVPI5.shtml

相关文章

金蝶插件开发理解

&#xff08;1&#xff09;金蝶软件 金蝶是一家从事企业管理&#xff0c;从事财务&#xff0c;供应链&#xff0c;仓库等等的软件公司 金蝶的软件可以分成两部分&#xff1a; 1,BOS模块&#xff0c;配置开发模块 2&#xff0c;前端界面模块 3,后端可以通过配置和写插件的形式开…

金蝶二开感受

小白感受篇 最近换工作&#xff0c;公司使用金蝶系统来作为公司的财务中台&#xff0c;因此与金蝶云星空结缘。 说说我的感受、以及对金蝶二开的理解。后面我应该也会不定时更新我对金蝶的看法以及新的感受。 在我没有真正接触金蝶前&#xff0c;我只知道有些比较知名的软件…

金蝶EAS开发 第一弹:了解开发工具与基本使用(上)

毕业前夕,我来到了一家物流公司实习,为本公司做系统.我被分配的是用金蝶做财务系统的二次开发,没有文档的帮助真的让我头皮发麻,还好同事很热心,一直在帮助我,不然要上手这玩意还真的很有难度.入职已经两个星期了,我觉得好记性不如烂笔头,今天开始我准备尽量将学到的知识记录下…

金蝶插件开发

1、报表开发 报表开发需要表头表体两个插件&#xff0c;表头继承AbstractReportFormPlugin类&#xff0c;表体继承AbstractReportListDataPlugin类&#xff0c;其中列表的数据需要显示&#xff0c;则主要靠的是AbstractReportListDataPlugin子类实现query&#xff08;&#xf…

金蝶BOS开发入门

金蝶BOS开发入门 金蝶BOS开发工具介绍 解决方案相当于一个JAVA项目&#xff0c;而BOS开发工具是开发解决方案的技术平台。它可以新建一个解决方案&#xff0c;或者从本地或者远程导入一个已有的解决方案&#xff0c;具体操作后续会讲到。 界面介绍和简单使用 简单&#xff…

金蝶EAS开发笔记

1.界面介绍 1. 新建业务单位&#xff0c;若无需求&#xff0c;默认选用财务组织。 2. 在项目路径下的\metadata\com\kingdee\eas\custom\bill 可改单据名称。 3. 标准&#xff1a;默认先在用户自定义下面建立报表(rpt)、基础资料(basedata)和业务单据(bill)&#xff0c;即在…

测试用例设计方法——因果图法

1.因果图  1.1考虑所有输入/输出条件的相互制约关系以及组合关系  1.2考虑输入条件之间的依赖关系&#xff1b;  1.3再根据分析的关系来转化为判定表的规则 2.条件与结果之间的关系  2.1恒等  2.2非&#xff08;~&#xff09;  2.3或&#xff08;V&#xff09;  2.4与 3…

实验4、黑盒测试:因果图法及测试用例设计

实验4、黑盒测试&#xff1a;因果图法及测试用例设计 一、实验目的 1、掌握因果图的概念。 2、掌握因果图测试用例设计法。 二、实验任务 以下三个任务、至少完成一个 1、某软件规格说明书包含这样的要求&#xff1a;第一列字符必须是A或B&#xff0c;第二列字符必须是一…

【测试入门】测试用例经典设计方法 —— 因果图法

01、因果图设计测试用例的步骤 1、分析需求 阅读需求文档&#xff0c;如果User Case很复杂&#xff0c;尽量将它分解成若干个简单的部分。这样做的好处是&#xff0c;不必在一次处理过程中考虑所有的原因。没有固定的流程说明究竟分解到何种程度才算简单&#xff0c;需要测试…

【测试】根据因果图法设计饮料售卖机的测试用例

【测试】根据因果图法设计饮料售卖机的测试用例 因果法设计测试用例的步骤&#xff1a; ① 分析所有可能的输入和可能的输出 ② 找出输入与输出之间的对应关系 ③ 画出因果图 ④ 把因果图转换成判定表 ⑤ 把判定表对应到每一个测试用例 产品说明&#xff1a; 有一个处理单价为…

软件测试用例设计方法-因果图法

边界值法是等价类划分法的补充&#xff0c;所以&#xff0c;它们是一对搭档。 那么&#xff0c;判定表法有没有它的搭档呢&#xff1f; 答案是&#xff0c;有的。那就是本篇文章分享的用例设计方法—— 因果图法 。 定义 因果图法&#xff1a; 用来处理等价类划分和边界值考…

测试用例设计方法---因果图法

学习目标 掌握因果图法的核心 掌握因果图的基本符号了解因果图的画法 1、什么是因果图法 因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适用于检查程序输入条件的各种组合情况 2、因果图法的核心 因 、 果 1、所谓的原因就是输入,所谓的结果就…

因果图法设计测试用例

等价类划分法、边界值分析法及错误推断法在对输入条件的考虑中并未重视输入条件的组合。事实上&#xff0c;当输入条件存在若干种可能的组合时&#xff0c;必须对这些组合加以考虑&#xff0c;以证实测试程序在某种输入组合的情况下恩能否完成规格说明书中预先规定的功能&#…

通俗的讲,Java后端到底是干什么的?语言工程师到底是啥?你是工程师吗?

新手程序员通常会走入一个误区 就是认为学习了一门语言&#xff0c;就可以称为是某某语言工程师了。但事实上真的是这样吗&#xff1f;其实并非如此。 今天我们就来聊一聊&#xff0c;Java 开发工程师到底开发的是什么东西。准确点来说&#xff0c;Java后端到底在做什么&…

Web开发从前端、后端、编程语言、到框架的初学指南

[导读] 作为一篇Web开发初学者指南&#xff0c;本文从学习什么出发到如何专攻。从前端、后端&#xff0c;到编程语言&#xff0c;再到框架&#xff0c;或许对打算进军Web开发的您有所帮助。如果你正在阅读这篇文章&#xff0c;你可能是对Web开发有某种兴趣&#xff0c;甚至你开…

数据库与后端语言

什么是数据库 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期储存在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 什么是后端语言 后端语言&#xff0c;在Web应用中实际上就是向前端提供需要显示网页内容的数据&#xff0c;这些数据大多…

前端和后端分别是什么?

从技术工具来看&#xff1a; 前端&#xff1a;常见的 html5、JavaScript、jQuery... 后端&#xff1a;spring、tomcet、JVM&#xff0c;MySQL... 毕竟&#xff0c;如果这个问题问一个老后端&#xff0c;他掰掰手指可以给你罗列出一堆的名词来&#xff0c;比如设计模式、数据库…

前端 语言

前端语言 名称简介用法网址CSSCSS 是一种描述 HTML 文档样式的语言。CSS 描述应该如何显示 HTML 元素https://www.w3school.com.cn/css/index.aspCSS3CSS3 是最新的 CSS 标准。操作https://www.runoob.com/css3/css3-tutorial.htmlScss/SassScss是CSS的预处理器&#xff0c;一…

前后端语言简析

目录 什么HTML语言? 什么是CSS语言&#xff1f; 什么是Javascript语言&#xff1f; 什么是PHP语言&#xff1f; 什么是Mysql语言&#xff1f; 什么HTML语言? 作用&#xff1a;定义的是【网站显示的内容】。 表现形式&#xff1a;<标签名>内容</标签名> …

聊聊开发中经历的几种后端语言

前言 谈这个话题&#xff0c;没有任何语言之争&#xff0c;只是个人开发的经历。 适合 开发语言的选择只是当时条件下适合每个项目或者每个团队乃至每个公司的最佳选择&#xff0c;并不是说XXX公司也用这个我们用这个肯定没问题。 当时还在某手机公司&#xff0c;有次跟某公…