commit b32a21128a6f127fe6a9ff59b9b5df8ae1d22114 Author: liqionghai <1> Date: Fri Jul 11 16:33:08 2025 +0800 1 diff --git a/.vs/ZHIRONG.Report/FileContentIndex/2eace544-8118-4fd3-b296-6b56b88f9889.vsidx b/.vs/ZHIRONG.Report/FileContentIndex/2eace544-8118-4fd3-b296-6b56b88f9889.vsidx new file mode 100644 index 0000000..70aef67 Binary files /dev/null and b/.vs/ZHIRONG.Report/FileContentIndex/2eace544-8118-4fd3-b296-6b56b88f9889.vsidx differ diff --git a/.vs/ZHIRONG.Report/FileContentIndex/2f5f1c87-cec0-4b86-9ede-6946dd68c95d.vsidx b/.vs/ZHIRONG.Report/FileContentIndex/2f5f1c87-cec0-4b86-9ede-6946dd68c95d.vsidx new file mode 100644 index 0000000..0cdefca Binary files /dev/null and b/.vs/ZHIRONG.Report/FileContentIndex/2f5f1c87-cec0-4b86-9ede-6946dd68c95d.vsidx differ diff --git a/.vs/ZHIRONG.Report/FileContentIndex/50fd0f2f-3812-466e-8779-337a133a586e.vsidx b/.vs/ZHIRONG.Report/FileContentIndex/50fd0f2f-3812-466e-8779-337a133a586e.vsidx new file mode 100644 index 0000000..70aef67 Binary files /dev/null and b/.vs/ZHIRONG.Report/FileContentIndex/50fd0f2f-3812-466e-8779-337a133a586e.vsidx differ diff --git a/.vs/ZHIRONG.Report/FileContentIndex/61effe16-861e-4d72-8f91-29eec2f9d611.vsidx b/.vs/ZHIRONG.Report/FileContentIndex/61effe16-861e-4d72-8f91-29eec2f9d611.vsidx new file mode 100644 index 0000000..70aef67 Binary files /dev/null and b/.vs/ZHIRONG.Report/FileContentIndex/61effe16-861e-4d72-8f91-29eec2f9d611.vsidx differ diff --git a/.vs/ZHIRONG.Report/FileContentIndex/642a9d89-b645-443e-80d4-b95e833bb912.vsidx b/.vs/ZHIRONG.Report/FileContentIndex/642a9d89-b645-443e-80d4-b95e833bb912.vsidx new file mode 100644 index 0000000..969aaf1 Binary files /dev/null and b/.vs/ZHIRONG.Report/FileContentIndex/642a9d89-b645-443e-80d4-b95e833bb912.vsidx differ diff --git a/.vs/ZHIRONG.Report/v17/.suo b/.vs/ZHIRONG.Report/v17/.suo new file mode 100644 index 0000000..862e806 Binary files /dev/null and b/.vs/ZHIRONG.Report/v17/.suo differ diff --git a/.vs/ZHIRONG.Report/v17/DocumentLayout.backup.json b/.vs/ZHIRONG.Report/v17/DocumentLayout.backup.json new file mode 100644 index 0000000..cc2eb1c --- /dev/null +++ b/.vs/ZHIRONG.Report/v17/DocumentLayout.backup.json @@ -0,0 +1,58 @@ +{ + "Version": 1, + "WorkspaceRootPath": "D:\\source\\repos\\ZHIRONG.Report\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{D1ABF5B5-E4AD-4D3C-B74D-3E2E4589B62B}|ZHIRONG.Report\\ZHIRONG.Report.pyproj|D:\\source\\repos\\ZHIRONG.Report\\ZHIRONG.Report\\ZHIRONG.Report.DevelopmentCostSum.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{D1ABF5B5-E4AD-4D3C-B74D-3E2E4589B62B}|ZHIRONG.Report\\ZHIRONG.Report.pyproj|solutionrelative:ZHIRONG.Report\\ZHIRONG.Report.DevelopmentCostSum.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{D1ABF5B5-E4AD-4D3C-B74D-3E2E4589B62B}|ZHIRONG.Report\\ZHIRONG.Report.pyproj|D:\\source\\repos\\ZHIRONG.Report\\ZHIRONG.Report\\\u8C03\u8BD5.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{D1ABF5B5-E4AD-4D3C-B74D-3E2E4589B62B}|ZHIRONG.Report\\ZHIRONG.Report.pyproj|solutionrelative:ZHIRONG.Report\\\u8C03\u8BD5.py||{8B382828-6202-11D1-8870-0000F87579D2}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 2, + "Children": [ + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "\u8C03\u8BD5.py", + "DocumentMoniker": "D:\\source\\repos\\ZHIRONG.Report\\ZHIRONG.Report\\\u8C03\u8BD5.py", + "RelativeDocumentMoniker": "ZHIRONG.Report\\\u8C03\u8BD5.py", + "ToolTip": "D:\\source\\repos\\ZHIRONG.Report\\ZHIRONG.Report\\\u8C03\u8BD5.py", + "RelativeToolTip": "ZHIRONG.Report\\\u8C03\u8BD5.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABYAAAAkAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-06-27T03:57:50.149Z", + "IsPinned": true + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{5a4e9529-b6a0-46b5-be4f-0f0b239bc0eb}" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "ZHIRONG.Report.DevelopmentCostSum.py", + "DocumentMoniker": "D:\\source\\repos\\ZHIRONG.Report\\ZHIRONG.Report\\ZHIRONG.Report.DevelopmentCostSum.py", + "RelativeDocumentMoniker": "ZHIRONG.Report\\ZHIRONG.Report.DevelopmentCostSum.py", + "ToolTip": "D:\\source\\repos\\ZHIRONG.Report\\ZHIRONG.Report\\ZHIRONG.Report.DevelopmentCostSum.py", + "RelativeToolTip": "ZHIRONG.Report\\ZHIRONG.Report.DevelopmentCostSum.py", + "ViewState": "AgIAACwAAAAAAAAAAAAiwD8AAAAGAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-07-04T10:02:13.723Z", + "EditorCaption": "" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/.vs/ZHIRONG.Report/v17/DocumentLayout.json b/.vs/ZHIRONG.Report/v17/DocumentLayout.json new file mode 100644 index 0000000..cc2eb1c --- /dev/null +++ b/.vs/ZHIRONG.Report/v17/DocumentLayout.json @@ -0,0 +1,58 @@ +{ + "Version": 1, + "WorkspaceRootPath": "D:\\source\\repos\\ZHIRONG.Report\\", + "Documents": [ + { + "AbsoluteMoniker": "D:0:0:{D1ABF5B5-E4AD-4D3C-B74D-3E2E4589B62B}|ZHIRONG.Report\\ZHIRONG.Report.pyproj|D:\\source\\repos\\ZHIRONG.Report\\ZHIRONG.Report\\ZHIRONG.Report.DevelopmentCostSum.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{D1ABF5B5-E4AD-4D3C-B74D-3E2E4589B62B}|ZHIRONG.Report\\ZHIRONG.Report.pyproj|solutionrelative:ZHIRONG.Report\\ZHIRONG.Report.DevelopmentCostSum.py||{8B382828-6202-11D1-8870-0000F87579D2}" + }, + { + "AbsoluteMoniker": "D:0:0:{D1ABF5B5-E4AD-4D3C-B74D-3E2E4589B62B}|ZHIRONG.Report\\ZHIRONG.Report.pyproj|D:\\source\\repos\\ZHIRONG.Report\\ZHIRONG.Report\\\u8C03\u8BD5.py||{8B382828-6202-11D1-8870-0000F87579D2}", + "RelativeMoniker": "D:0:0:{D1ABF5B5-E4AD-4D3C-B74D-3E2E4589B62B}|ZHIRONG.Report\\ZHIRONG.Report.pyproj|solutionrelative:ZHIRONG.Report\\\u8C03\u8BD5.py||{8B382828-6202-11D1-8870-0000F87579D2}" + } + ], + "DocumentGroupContainers": [ + { + "Orientation": 0, + "VerticalTabListWidth": 256, + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 2, + "Children": [ + { + "$type": "Document", + "DocumentIndex": 1, + "Title": "\u8C03\u8BD5.py", + "DocumentMoniker": "D:\\source\\repos\\ZHIRONG.Report\\ZHIRONG.Report\\\u8C03\u8BD5.py", + "RelativeDocumentMoniker": "ZHIRONG.Report\\\u8C03\u8BD5.py", + "ToolTip": "D:\\source\\repos\\ZHIRONG.Report\\ZHIRONG.Report\\\u8C03\u8BD5.py", + "RelativeToolTip": "ZHIRONG.Report\\\u8C03\u8BD5.py", + "ViewState": "AgIAAAAAAAAAAAAAAAAAABYAAAAkAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-06-27T03:57:50.149Z", + "IsPinned": true + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{5a4e9529-b6a0-46b5-be4f-0f0b239bc0eb}" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "ZHIRONG.Report.DevelopmentCostSum.py", + "DocumentMoniker": "D:\\source\\repos\\ZHIRONG.Report\\ZHIRONG.Report\\ZHIRONG.Report.DevelopmentCostSum.py", + "RelativeDocumentMoniker": "ZHIRONG.Report\\ZHIRONG.Report.DevelopmentCostSum.py", + "ToolTip": "D:\\source\\repos\\ZHIRONG.Report\\ZHIRONG.Report\\ZHIRONG.Report.DevelopmentCostSum.py", + "RelativeToolTip": "ZHIRONG.Report\\ZHIRONG.Report.DevelopmentCostSum.py", + "ViewState": "AgIAACwAAAAAAAAAAAAiwD8AAAAGAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.002457|", + "WhenOpened": "2025-07-04T10:02:13.723Z", + "EditorCaption": "" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/ZHIRONG.Report.sln b/ZHIRONG.Report.sln new file mode 100644 index 0000000..0ed9c4a --- /dev/null +++ b/ZHIRONG.Report.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.12.35506.116 d17.12 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "ZHIRONG.Report", "ZHIRONG.Report\ZHIRONG.Report.pyproj", "{D1ABF5B5-E4AD-4D3C-B74D-3E2E4589B62B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D1ABF5B5-E4AD-4D3C-B74D-3E2E4589B62B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1ABF5B5-E4AD-4D3C-B74D-3E2E4589B62B}.Release|Any CPU.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/ZHIRONG.Report/ZHIRONG.Report.DevelopmentCostDetails.py b/ZHIRONG.Report/ZHIRONG.Report.DevelopmentCostDetails.py new file mode 100644 index 0000000..ca340fb --- /dev/null +++ b/ZHIRONG.Report/ZHIRONG.Report.DevelopmentCostDetails.py @@ -0,0 +1,165 @@ +#-*- 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 diff --git a/ZHIRONG.Report/ZHIRONG.Report.DevelopmentCostSum.py b/ZHIRONG.Report/ZHIRONG.Report.DevelopmentCostSum.py new file mode 100644 index 0000000..c5eea79 --- /dev/null +++ b/ZHIRONG.Report/ZHIRONG.Report.DevelopmentCostSum.py @@ -0,0 +1,133 @@ +#-*- 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 = "" + +#³õʼ»¯ +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"] + FUnit = customFiler["FUnit"] + FOrg = GetBaseDataNameValue(customFiler["FOrg"]) + reportTitles.AddTitle("FStartDate",str(FStartDate)) + reportTitles.AddTitle("FEndDate",str(FEndDate)) + reportTitles.AddTitle("FUnit",FUnit) + reportTitles.AddTitle("FOrg",FOrg) + 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 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) + for row in res: + ColumnName = row["ColumnName"].ToString() + if(ColumnName.IndexOf("qazxsw/")!=-1 and ColumnName!="qazxsw/"): + headerch = header.AddChild(ColumnName,LocaleValue(ColumnName.Substring(0,ColumnName.IndexOf("qazxsw/")),this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar) + headerch.AddChild(ColumnName,LocaleValue(ColumnName.Substring(ColumnName.IndexOf("qazxsw/")+7),this.Context.UserLocale.LCID),SqlStorageType.Sqlvarchar) + continue + header.AddChild(row["ColumnName"].ToString(),LocaleValue(row["ColumnName"].ToString().Replace("qazxsw/",""),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 + DBUtils.Execute(this.Context, "EXEC P_ReportDataSource '{0}','{2}',{1},{3}".format(str(customFiler["FStartDate"].ToString("yyyy-MM-dd")),str(customFiler["FOrg"]["Id"]),str(customFiler["FEndDate"].ToString("yyyy-MM-dd")),customFiler["FUnit"])) + global _sql + _sql = """SELECT * FROM T_ReportDataSource""" + 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 diff --git a/ZHIRONG.Report/ZHIRONG.Report.pyproj b/ZHIRONG.Report/ZHIRONG.Report.pyproj new file mode 100644 index 0000000..fa7cdc0 --- /dev/null +++ b/ZHIRONG.Report/ZHIRONG.Report.pyproj @@ -0,0 +1,38 @@ + + + Debug + 2.0 + d1abf5b5-e4ad-4d3c-b74d-3e2e4589b62b + . + ZHIRONG.Report.DevelopmentCostDetails.py + + + D:\source\repos\ZHIRONG.Report\ZHIRONG.Report\ZHIRONG.Report.py + . + ZHIRONG.Report + ZHIRONG.Report + False + + + true + false + + + true + false + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ZHIRONG.Report/调试.py b/ZHIRONG.Report/调试.py new file mode 100644 index 0000000..e275f05 --- /dev/null +++ b/ZHIRONG.Report/调试.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +import sys +sys.setdefaultencoding('utf-8') +clr.AddReference('IronPython') +from IronPython.Hosting import Python + +def wrap_d(f): + func_name = f.__name__ + del f + def wrapper(e): + engine = Python.CreateEngine({'Debug': True}) + scope = engine.CreateScope() + scope.SetVariable('this', this) + engine.CreateScriptSourceFromFile(r'D:\source\repos\ZHIRONG.Report\ZHIRONG.Report\ZHIRONG.Report.DevelopmentCostDetails.py').Execute(scope) + return getattr(scope, func_name)(e) + return wrapper + +def wrap_a(f): + func_name = f.__name__ + del f + def wrapper(e,a): + engine = Python.CreateEngine({'Debug': True}) + scope = engine.CreateScope() + scope.SetVariable('this', this) + engine.CreateScriptSourceFromFile(r'D:\source\repos\ZHIRONG.Report\ZHIRONG.Report\ZHIRONG.Report.DevelopmentCostDetails.py').Execute(scope) + return getattr(scope, func_name)(e,a) + return wrapper + + +@wrap_a +def BuilderReportSqlAndTempTable(e,a): + pass + +@wrap_d +def GetReportHeaders(e): + pass + +@wrap_d +def GetReportTitles(e): + pass + + +