2016-02-26 78 views
0

我有許多公司的一組數據。例如,Acme公司的小部件的數量。每條記錄都包含每天所做的金額,並且我將其列入摘要部分,以便我們可以查看整個月內製作了多少個,並比較所有不同公司的產出。FileMaker Line Delimited Array Manipulation

我需要完成的是添加一個過濾器,以便從列表中刪除一些公司,如果他們的月產量低於一定數量。我們不需要爲Acme公司打擾自己,如果他們只生產2個小部件,整個月平均爲20個。

我目前正在努力工作的方式是將所有的值合併到一個自定義的陣列。到目前爲止我使用了兩個自定義函數。 FindInList會告訴我一個公司是否已經存在於行分隔數組中,並且ArrayValue會告訴我如果我提供索引,數組中的值是什麼。我缺乏的是當我提供一個索引時能夠使用這個列表並在數組中編輯一行。如果我明白了,那麼我可以輕鬆地將公司的每月總計加起來,找出哪些在某個點以下,然後將其過濾出來。任何人都知道如何做到這一點?

我不是這種方法。如果有人知道更好的方法來完成這項任務,我會非常樂意考慮它。

回答

1

恕我直言,最簡單的方法是按公司對記錄進行排序,按彙總字段降序+重新排序(總金額)。然後做:

Go to Record/Request/Page [ First ] 
Loop 
    # IF CURRENT GROUP DOESN'T MEET THE CRITERIA... 
    If [ GetSummary (YourTable::sTotalAmount ; YourTable::Company) < 0 ] 
     # ... OMIT REMAINING RECORDS 
     Omit Multiple Records [ No dialog; Get (FoundCount) - Get (RecordNumber) + 1 ] 
    Else 
     # JUMP TO NEXT GROUP 
     Go to Record/Request/Page [ No dialog; Get (RecordNumber) + GetSummary (YourTable::sCount ; YourTable::Company) ] 
    End If 
    Exit Loop If [ Get (RecordNumber) = Get (FoundCount) ] 
End Loop 

注:

  • sCount是定義爲一個彙總字段:Count of [ any field that cannot be empty ]
  • 在此示例中,0是報告中顯示的一個組的最小子摘要數量,其值爲 。

圖片來源:改編自Mikhail Edoshin的「快速總結」技術。

+0

「GetSummary(YourTable :: sTotalAmount; YourTable :: Company)」這就是我所缺少的。我不知道爲什麼我沒有想到這一點。非常感謝!只要我能確認過濾器的工作,我會立即標記你的問題。 –