进度查询上的日期处理(查找)

问题描述 投票:0回答:1

我对进度非常陌生(4GL),我正在寻找构建一个函数,该函数将在某些条件下搜索表中的最新信息(由于日期可变)。

在我的表格(ecm_mstr)中,有关于重量,项目编号和历史编号(ID)的信息。一些项目在表中存储了几次,因为它们会更新权重,并且会在新行中进行更新,而不是覆盖。

我受到现有功能的启发,但是没有任何日志错误或控制台来执行我的代码,很难解决问题。可能存在一些结构/语法问题。

我尝试过此操作,但现在不知道该日期的排序方式。。


    FUNCTION GetPdsSFtest2 returns decimal (pArticle as char):
      def var pLevel as char.
      pLevel = substring(pArticle,7,2).
    if pLevel = "PF" or pLevel = "NE" then do:
      find first ecd_det no-lock where ecd_domain = global_domain
                                 and  ecd_part = pArticle no-error.          *'Item_Number*
      if available ecd_det then do:
        find first ecm_mstr no-lock where ecm_domain = global_domain
                                    and  ecm_nbr = ecd_nbr no-error.         *'historical_number
                                    and treatment on the most recent date  *'Searching for a 'sort' of my result to get the first one (so the most recent)*
        if available ecm_mstr then return ecm_cmmt[01].                      *'Return my find
        else return 0.
      end.
    end    
    END FUNCTION.
progress progress-4gl
1个回答
0
投票

我相信这里最简单的解决方案是将date字段添加为ecm_mstr索引的一部分,这样,当您找到第一个记录时,您将拥有最近的记录。如果您不希望在现有索引中使用该索引,则可以创建一个新索引,并明确使用FIND语句中的USE-INDEX粒子使用特定索引。或者,如果不在表中创建索引,请查看BY函数,但随后您必须将FIND转换为FOR FIRST。希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.