Python插件学习分享原创
金蝶云社区-帝王K
帝王K
28人赞赏了该文章 146次浏览 未经作者许可,禁止转载编辑于2024年12月17日 14:25:08

客户需求,在自定义单据表头新增两个字段(周,和对应的时间),输入任意时间,自动算出对应的是第几周和对应的那一周的星期1是几月几号。

代码实现,这里参考了论坛其他伙伴的代码计算出周,现在增加计算对应的那周星期一是多少号

import clr

clr.AddReference('System')

clr.AddReference('System.Globalization')

from System import DateTime

from System.Globalization import Calendar

from System.Globalization import *

from System import *

def DataChanged(e):

    # 获取当前字段的键

    key = e.Field.Key.upper()

    if key == "F_JA_FDATE":

        # 获取当前字段的值

        curDate = this.View.Model.GetValue("F_JA_FDATE")

        # 如果当前字段的值不为空

        if curDate is not None:

            # 获取当前年份

            currentYear = DateTime.Now.Year

            # 获取当年的第一天是几号

            firstDayOfYear = DateTime(currentYear, 1, 1)

            # 格式转换为年月日

            formattedDate = firstDayOfYear.ToString("yyyy-MM-dd")

            # 获取当前日期

            currentDate = curDate

            # 获取当前日期是星期几

            dayOfWeek = currentDate.DayOfWeek

            # 获取当前日期的前一天

            dt = currentDate.AddDays(1 - int(dayOfWeek))

            # 获取默认的日历系统

            gc = GregorianCalendar()

            # 获取当前日期所在的周数

            weekOfYear = gc.GetWeekOfYear(curDate, CalendarWeekRule.FirstDay, DayOfWeek.Monday)

            # 将周数更新到对应字段

            this.View.Model.SetValue("F_JA_WEEK", weekOfYear)

            # 将星期1对应日期设置到对应字段

            this.View.Model.SetValue("F_UNW__JA_FDATE_QTR", dt)


        # 返回

        return


图标赞 28
28人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!