diff --git a/ZHIRONG.Report.DevelopmentCostDetails.py b/ZHIRONG.Report.DevelopmentCostDetails.py deleted file mode 100644 index a778015..0000000 --- a/ZHIRONG.Report.DevelopmentCostDetails.py +++ /dev/null @@ -1,165 +0,0 @@ -#-*- encoding:utf-8 -*- - -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") -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 * - -_sql = "" -FOrg = "" -FGroup = "" - -#初始化 -def Initialize(): - this.ReportProperty.ReportType = ReportType.REPORTTYPE_NORMAL - this.IsCreateTempTableByPlugin = True - this.ReportProperty.IsGroupSummary = True - -#设置标题 -def GetReportTitles(Filter): - reportTitles = ReportTitles() - customFiler = Filter.FilterParameter.CustomFilter - if customFiler: - FStartDate = customFiler["FStartDate"] - FEndDate = customFiler["FEndDate"] - global FGroup - reportTitles.AddTitle("FStartDate",str(FStartDate)) - reportTitles.AddTitle("FEndDate",str(FEndDate)) - reportTitles.AddTitle("FGroup",FGroup) - return reportTitles - -#获取基础资料 -def GetBaseDataNameValue(dyobj): - name = "" - #raise Exception(str(dir(dyobj)))#抛出异常检查调试 - if dyobj is None: - return name - elif dyobj and dyobj.DynamicObjectType.Properties.Contains("Name"): - name = dyobj["Name"].ToString() - else: - for dynbj in dyobj: - if dynbj and dynbj.DynamicObjectType.Properties.Contains("Name") == False: - dynbj2 = dynbj[2] - name = name + ",'" + dynbj2["Name"] + "'" - if name.Length > 0: - name = name.Substring(1,name.Length - 1) - return name - -#获取辅助资料 -def GetAssitantDataNameValue(dyobj): - name = "" - #raise Exception(str(dir(dyobj)))#抛出异常检查调试 - if dyobj is None: - return name - elif dyobj and dyobj.DynamicObjectType.Properties.Contains("DataValue"): - name = dyobj["DataValue"].ToString() - else: - for dynbj in dyobj: - if dynbj and dynbj.DynamicObjectType.Properties.Contains("DataValue") == False: - dynbj2 = dynbj[2] - name = name + ",'" + dynbj2["DataValue"] + "'" - if name.Length > 0: - name = name.Substring(1,name.Length - 1) - return name - -#设置单据列 -def GetReportHeaders(Filter): - header = ReportHeader() - # headerch = ReportHeader() - global _sql - sql = """/*dialect*/SELECT name AS ColumnName FROM sys.dm_exec_describe_first_result_set(N'{0}', NULL, NULL)""".format(_sql) - res = DBUtils.ExecuteDynamicObject(this.Context, sql) - - tempsql = """/*dialect*/SELECT TOP 1 [组织],[科目分类] FROM T_ReportDataSourceDetail""" - data = DBUtils.ExecuteDynamicObject(this.Context, tempsql) - global FOrg - global FGroup - if data.Count>0: - FOrg = data[0]["组织"].ToString() - FGroup = data[0]["科目分类"].ToString() - # FGroup = String.join(",",set(map(lambda x:str(x["科目分类"].ToString()),data))) - for row in res: - ColumnName = row["ColumnName"].ToString().Replace("&","") - if ColumnName in ["日期","凭证号","摘要","科目","科目分类"]: - header.AddChild(row["ColumnName"],LocaleValue("单位名称:"+FOrg+"&"+ColumnName,this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar) - continue - if ColumnName in ["凭证金额"]: - header.AddChild(row["ColumnName"],LocaleValue(row["ColumnName"],this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar) - continue - if(ColumnName.IndexOf("qazxsw/")!=-1 and ColumnName!="qazxsw/"): - headerch = header.AddChild(row["ColumnName"],LocaleValue(ColumnName.Substring(0,ColumnName.IndexOf("qazxsw/")),this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar) - headerch.AddChild(row["ColumnName"],LocaleValue(ColumnName.Substring(ColumnName.IndexOf("qazxsw/")+7),this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar) - - return header - -#创建临时报表 -def BuilderReportSqlAndTempTable(Filter,tableName): - # strFilter = GetFilterWhere(Filter) - strFilter = "" - seqFld = String.format(this.KSQL_SEQ,OrderColumn(Filter)) - - customFiler = Filter.FilterParameter.CustomFilter - FGroupID = "" if customFiler["FGroup"] == None else str(customFiler["FGroup"]["Id"]) - DBUtils.Execute(this.Context, "EXEC P_ReportDataSourceDetail '{0}','{2}',{1},'{3}'".format(str(customFiler["FStartDate"].ToString("yyyy-MM-dd")),str(customFiler["FOrg"]["Id"]),str(customFiler["FEndDate"].ToString("yyyy-MM-dd")),FGroupID)) - global _sql - _sql = """SELECT * FROM T_ReportDataSourceDetail""" - sql = String.format("""/*dialect*/ -SELECT t1.*,{0} - INTO {1} -FROM ( - {3} - {2} -) t1 - - """,seqFld,tableName,strFilter,_sql) - DBUtils.ExecuteDynamicObject(this.Context, sql) - -#获取过滤条件 -def GetFilterWhere(Filter): - customFiler = Filter.FilterParameter.CustomFilter - strwhere = StringBuilder() - strwhere.AppendLine("WHERE 1 = 1 ") - - FYEAR = customFiler["FYear"] - strFilterFYEAR = String.format(" AND T2.FYEAR = '{0}' ",FYEAR) if not String.IsNullOrWhiteSpace(FYEAR) else " " - strwhere.AppendLine(strFilterFYEAR) - - return strwhere.ToString() - -# #设置汇总信息 -# def GetSummaryColumnInfo(Filter): -# lstfield = List[SummaryField]() -# sField = SummaryField("本位币金额",Core.Enums.BOSEnums.Enu_SummaryType.SUM) -# lstfield.Add(sField) -# return lstfield - -#排序 -def OrderColumn(Filter): - OrderBy = "" - datasort = Filter.FilterParameter.SortString.ToString() - if datasort != "": - OrderBy = datasort - else: - OrderBy = " 科目 " - return OrderBy - -#关闭清空临时表 -def CloseReport(): - this.DropTempTable() \ No newline at end of file