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

一、前言

继承报表服务插件基类: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
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值