【金蝶云星空】物料收发汇总表插件二次开发(停更)

本文详细描述了一个基于SysReportBaseService的报表插件的初始化过程,涉及初始化方法、数据操作(如创建表单、设置过滤条件、获取数据和更新删除等),对二次开发有参考价值,代码注释较少,主要针对IT技术中的报表服务和数据处理模块进行解析。
摘要由CSDN通过智能技术生成

一、前言

继承报表服务插件基类:SysReportBaseService

二、方法介绍

1.初始化

(1)Initialize

//初始化

base.Initialize();

//获取/生成核算维度
this.FlexService = BD.Contracts.ServiceFactory.GetSCMServiceForFIN(base.Context);

//
this.AuxArg = this.FlexService.CreateFlexStrValueArg(base.Context, 1);
this.LocArg = this.FlexService.CreateFlexStrValueArg(base.Context, 0);

(2)SetDspInsteadColumns

//基础资料及基础资料替换字段

base.ReportProperty.DspInsteadColumnsInfo.DefaultDspInsteadColumns = new Dictionary<string, string>();

(3)SetDecimalControl

//设置精度

List<DecimalControlField> list = new List<DecimalControlField>();
list.Add(new DecimalControlField
{

        //被控制字段,BuilderReportSqlAndTempTable事件里面的字段
        ByDecimalControlFieldName = "FBASEQCQTY",

        //精度字段,取币别里面的精度,或者其他
        DecimalControlFieldName = "FBASEUNITPRE"
});

(4)GetCanViewAmountOrgIds

//获取可以查看报表金额的组织

(5)IsCanViewAmount

//检查报表金额是否授权

(6)RegisterRptBill

//注册单据

this.lstRptBill.Clear();

InitDefaultPlugIn

//初始化所有单据

GetReportPlugInSets

//获取要统计的单据

SELECT * FROM T_BAS_UPDATESTOCKRPTSET WHERE FRPTTYPE = 'STK_StockSummaryRpt' OR FRPTTYPE = '' OR FRPTTYPE = ' '

GetBillPlugIn

//获取单据 billPlugIn

this.lstRptBill.Add(billPlugIn);

2.创建表单相关

(1)BuildRptTitle

//初始化表头

 ReportTitles reportTitles = new ReportTitles();

(2)ReBuildCurPageTable

构建当前页面表

CreateDataTbl

//创建数据临时表

 this.tmpRptTbl = "表名";

string sqlStr= "Sql语句";

this.tmpRptTbl = DBUtils.CreateSessionTemplateTable(base.Context, this.tmpRptTbl, sqlStr);//执行

CreateFullTbl

//创建全部数据临时表

IDBService service = ServiceHelper.GetService<IDBService>();

 this.tmpFullTbl = service.CreateTemporaryTableName(base.Context);

string sqlStr= "Sql语句";

 using (KDTransactionScope kDTransactionScope = new KDTransactionScope(TransactionScopeOption.Suppress))
 {
     DBUtils.Execute(base.Context, text);
     kDTransactionScope.Complete();
 }

CreateQcpTbl

//创建期初数据临时表

this.tmpQcpTbl = "TM_STK_RPTCOMMONQCP";
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.AppendLine(" ( ");
stringBuilder.AppendLine("     FGUID VARCHAR(36) NULL, ");
stringBuilder.AppendLine("     FIOPRICE DECIMAL(23,10) NULL DEFAULT(0), ");
stringBuilder.AppendLine("     FQCAMOUNT DECIMAL(23,10) NULL DEFAULT(0), ");
stringBuilder.AppendLine("     FDATE VARCHAR(36) NULL, ");
stringBuilder.AppendLine("     FMATERIALID INT NULL DEFAULT(0), ");
stringBuilder.AppendLine("     FLOTNO NVARCHAR(255) NULL DEFAULT(' '), ");
stringBuilder.AppendLine("     FOWNERTYPEID VARCHAR(36) NULL DEFAULT(' '), ");
stringBuilder.AppendLine("     FOWNERID INT NULL DEFAULT(0), ");
stringBuilder.AppendLine("     FKEEPERTYPEID VARCHAR(36) NULL DEFAULT(' '), ");
stringBuilder.AppendLine("     FKEEPERID INT NULL DEFAULT(0), ");
stringBuilder.AppendLine("     FSTOCKORGID INT NULL DEFAULT(0), ");
stringBuilder.AppendLine("     FSTOCKSTATUSID INT NULL DEFAULT(0), ");
stringBuilder.AppendLine("     FAUXPROPID INT NULL DEFAULT(0), ");
stringBuilder.AppendLine("     FSTOCKID INT NULL DEFAULT(0), ");
stringBuilder.AppendLine("     FSTOCKLOCID INT NULL DEFAULT(0), ");
stringBuilder.AppendLine("     FBOMID INT NULL DEFAULT(0), ");
stringBuilder.AppendLine("     FPRODUCEDATE VARCHAR(36) NULL, ");
stringBuilder.AppendLine("     FEXPIRYDATE VARCHAR(36) NULL ");
stringBuilder.AppendLine(" ) ");
this.tmpQcpTbl = DBUtils.CreateSessionTemplateTable(base.Context, this.tmpQcpTbl, stringBuilder.ToString());

(3)CreateListTbl

//创建列表数据临时表

(4)CreateRptTableIndex

//创建索引

 string text= string.Format("sql语句");
 DBUtils.CreateSessionTemplateTableIndex(base.Context, text);

(5)CreateDetialTable

//创建库存报表明细数据临时表

(6)CreatePriceAmountAllTbl

创建金额总价临时表

(7)CreateFullTableIndex

创建临时表索引

(8)GetMoreDeleteSql

多表删除

(9)GetUpdateSql

更新

(10)GetInvGroupField

组织

3.过滤条件相关

(1)SetFilter

//初始化过滤条件

 DynamicObject dynamicObject = filter.FilterParameter.CustomFilter;//获取过滤集合

this.stkOrgIdCollect = dynamicObject["StockOrgId"].ToString();//库存组织

(2)GetClassFilterBillList

//获取过滤条件

 List<KeyValuePair<string, string>> list = new List<KeyValuePair<string, string>>();
 list.AddRange(this.GetBillListPair(filter["CGRKBillSource"].ToString().Split(new char[]
 {
     ','
 }).ToList<string>(), "IN"));

 return list;

(3)GetClassExtFilterString

获取其他过滤条件

(4)GetBillListPair

//获取值

 List<KeyValuePair<string, string>> list = new List<KeyValuePair<string, string>>();
 if (billList != null && billList.Count<string>() > 0)
 {
     foreach (string current in billList)
     {
         list.Add(new KeyValuePair<string, string>(current.ToUpperInvariant(), sFlag));
     }
 }
 return list;

(5)SetMoreFilterFormat

设置更多的过滤条件

(6)FormatMoreFilter

格式化更多过滤条件

GetFilterOperator

获取分隔符

FindLogicOperatorIndex

获取分隔符

(7)GetNewFilter

获取过滤条件

(8)GetExQuickFilter

获取过滤条件

4.数据相关

(1)GetPreFormatSql

更新价格

(2)GetUpdateStkQtySql

更新期初数据

(3)GetQcFieldSql

期初字段

(4)GetUpdateQcPriceSql

更新期初数据

GetQcAvgPriceSql

更新期初平均价格

GetNewInPriceSql

更新入库价格

GetNewOutPriceSql

更新出库价格

(5)GetUpdteQcAmount

更新期初汇总

(6)GetUpdateIoPriceSql

更新出入价格

(7)GetTitleScrope

获取范围

(8)GetQCPriceSource

获取期初价格来源

(9)GetIOPriceSource

获取出入价格来源

(10)GetNextAcctPeriod

获取下一个间隔

(11)GetOrgDate

获取查询日期

GetStkBeginDate

获取物料开始日期

(12)GetNegativeWarnBeginDate

获取查询日期

(13)GetPageDt

//获取页面数据

//这里可以修改数据

List<string> listSql = new List<string>();
string item = string.Format("语句", this.tmpFullTbl);
listSql .Add(item);

DBUtils.ExecuteBatch(base.Context, listSql , listSql.Count);

(14)GetListRecord

获取列表数据 

(15)GetListRecordSimple

获取列表数据 

(16)GetDetailDataSql

获取详细数据

GetRptFieldSql

获取详细数据字段

GetRptValueSql

获取数据值,这里返回的空字符串

(17)GetAllFlexValues

获取核算纬度

(18)GetJoinFelxSql

拼接核算

(19)GetAuxPropExtValues

获取辅助属性

(20)GetStockLocExtValues

获取仓位值

5.工具方法相关

(1)GetDataByKey

获取key

(2)JoinFilterString

组成过滤条件

(3)ShowFieldHasAmount

展示字段

(4)GetKsqlDatetime

日期格式化

SpecialBillListControlUnit

获取特殊单位

SetClassIncludeTransWayData

获取数据

(5)GetMultiItemJoinSql

拼sql

(6)WriteDebugInfo

输出打印

(7)GetYMSqlByRegionDateFormat

获取年月

(8)GetDateFomatArray

日期格式化

(9)RptType

类型枚举

6.更新相关

(1)UpdateOwnerCustSup

更新某些数据

(2)UpdateCreatorName

更新某些数据

7.删除相关

(1)DeleteDataForAccount

根据用户删除数据

(2)DeleteDataForHSAccount

根据多个用户删除数据

(3)DropBuilderSessionTempTable

删除临时表

(4)DropTmpTbl

删除临时表

三、结尾

学习。基本都是源码,没有多少注释,二开过程中,不需要修改太多东西。

  • 12
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 金蝶云星空是一款企业云服务平台,提供了丰富的功能模块和开发工具,支持开发者进行二次开发。以下是一些学习资料,希望能对你有所帮助: 1. 金蝶云星空官方网站:https://www.kingdee.com/cloud/cloudstar/ 2. 金蝶云星空开发者中心:https://developer.kingdee.com/ 3. 金蝶云星空开发手册:https://open.kingdee.com/help/cloudstar/ 4. 金蝶云星空API文档:https://open.kingdee.com/help/cloudstar/#/API 5. 金蝶云星空开发视频教程:https://www.bilibili.com/video/BV1Ef4y1Y7hC 6. 金蝶云星空开发案例分享:https://developer.kingdee.com/showcase 希望以上资料能够帮助到你,祝你学习愉快! ### 回答2: 金蝶云星空是一个基于金蝶云平台的二次开发工具集,旨在帮助开发者高效地进行软件开发。金蝶云星空具有丰富的学习资料,帮助开发者快速掌握二次开发技能。 首先,金蝶云星空提供了详细的开发文档,其中包括了开发环境的搭建、开发流程的介绍以及各个功能模块的详细说明。开发者可以通过文档了解整个开发过程的概述和每个步骤的具体操作方法。 其次,金蝶云星空还提供了丰富的示例代码和案例,这些示例代码覆盖了各个常见的业务场景,开发者可以通过学习和模仿这些代码,快速理解和掌握二次开发的技巧和方法。 此外,金蝶云星空还提供了在线培训课程和视频教程。开发者可以通过参加培训课程或观看视频教程,系统学习金蝶云星空的使用和二次开发的技术点。通过在线培训和视频教程,开发者可以加深入地了解金蝶云星空的各项功能和特性,并能够借助导师或讲师的指导来解决实际的开发问题。 最后,金蝶云星空还提供了开发者社区和技术交流平台,开发者可以在这些平台上与其他开发者进行交流和分享。通过参与社区和技术交流,开发者可以获取多的学习资料和经验分享,进一步提高自己的二次开发能力。 总之,金蝶云星空提供了全方位的学习资料,包括开发文档、示例代码、培训课程、视频教程以及技术交流平台,帮助开发者好地学习和掌握二次开发技能。 ### 回答3: 金蝶云星空是一种企业级的云平台,用于为企业提供全面的业务管理解决方案。对于二次开发学习资料,金蝶云星空提供了丰富的学习资源。 首先,金蝶云星空官方网站上有详细的开发者指南和文档,可以帮助开发者了解平台的基本概念、开发流程以及常用功能的实现方法。这些资料涵盖了从初级到高级的开发知识,适合不同水平的开发者使用。 其次,金蝶云星空还提供了在线视频教程,通过演示和实例的方式,向开发者展示如何在金蝶云星空上进行二次开发。这些视频教程可以帮助开发者好地理解和掌握平台的开发技巧和工具。 此外,金蝶云星空还定期举办开发者培训和交流活动,为开发者提供面对面的学习和交流机会。在这些活动中,开发者可以与金蝶云星空的专业团队和其他开发者分享经验和心得,提升技术水平。 总的来说,金蝶云星空二次开发学习资料非常丰富和全面。无论是通过官方文档、在线视频教程还是参加培训活动,开发者都能够找到适合自己的学习途径,提升在金蝶云星空平台上进行二次开发的能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值