这是问题所在,我需要在下面的变量上创建一个日期范围。
define variable s_date as character format "99/9999" no-undo.
我的数据库中有一个 start_date 列(格式“99/99/9999”(dd/mm/yyyy))输入客户销售订单的日期。
我需要做的是设置变量来创建日期范围,搜索并显示定义的月份和年份的每个销售订单的结果。
PS:我用的是表格,所以用户可以定义月份和年份的范围。
这是问题所在,我需要在下面的变量上创建一个日期范围。
define variable s_date as character format "99/9999" no-undo.
我的数据库中有一个 start_date 列(格式“99/99/9999”(dd/mm/yyyy))输入客户销售订单的日期。
我需要做的是设置变量来创建日期范围,搜索并显示定义的月份和年份的每个销售订单的结果。
PS:我用的是表格,所以用户可以定义月份和年份的范围。
这里有一些东西可以帮助您入门。您将不得不考虑将其转换为适合您的表格。
如果您使用的是没有 ADD-INTERVAL 功能的旧版本,您可以使用 DATE 功能并将 +1 添加到月份(请记住,如果月份是 12 月(12 日),您将拥有改为增加年份并将月份设置为 1)。
DEFINE VARIABLE cFromDate AS CHARACTER NO-UNDO.
DEFINE VARIABLE dtFromDate AS DATE NO-UNDO LABEL "From".
DEFINE VARIABLE dtTomDate AS DATE NO-UNDO LABEL "Tom".
DEFINE VARIABLE iMonth AS INTEGER NO-UNDO.
DEFINE VARIABLE iYear AS INTEGER NO-UNDO.
UPDATE cFromDate FORMAT "99/9999" NO-ERROR.
IF LENGTH(cFromDate) <> 6 THEN DO:
MESSAGE "Invalid format" VIEW-AS ALERT-BOX ERROR.
RETURN ERROR.
END.
ASSIGN
iMonth = INTEGER(SUBSTRING(cFromDate,1,2))
iYear = INTEGER(SUBSTRING(cFromDate,3,4)) NO-ERROR.
IF iMonth < 1 OR iMonth > 12 THEN DO:
MESSAGE "Invalid month" VIEW-AS ALERT-BOX ERROR.
RETURN ERROR.
END.
IF iYear < 1990 OR iYear > 2020 THEN DO:
MESSAGE "Invalid year" VIEW-AS ALERT-BOX ERROR.
RETURN ERROR.
END.
ASSIGN
dtFromDate = DATE(iMonth, 1, iYear)
dtTomDate = ADD-INTERVAL(dtFromDate, 1, "month") - 1.
DISPLAY
dtFromDate FORMAT "9999-99-99"
dtTomDate FORMAT "9999-99-99".