2011-04-22 113 views
1

问题:有没有办法在执行脚本时创建出口订单?如果可能的话,我更喜欢FileMaker-native或FileMaker--称为AppleScript解决方案。FileMaker:有没有办法在脚本中构建出口订单?

项目:该项目是一个报告工具,通过用户可选择的标准,如:周,季度,年份,位置,产品,供应商等总结销售信息(单位,价格,成本)。根据用户选择的标准在运行时指定导出。

例如:如果一个用户选择的单位销售的每季度供应商总结我希望能够有脚本选择:

组方:

  1. 季度
  2. 供应商

出口订单

  1. 季度
  2. 单位汇总季度
  3. 供应商
  4. 单位汇总由供应商

很显然,许多排列,因此,在设置为每个单独的出口的出口为每组选项是不可行的。

回答

0

基于米哈伊尔和查克的建议,我认为这个特定项目的最佳方法是在全局字段中创建.csv的内容,然后导出字段内容。我在做什么的基本轮廓:

Go to the first record 
Loop 
    WriteTheRows (see below), comma delimited, to a global field 
    Set $thisGroup to the count of records summarized by this summary field 
    Exit Loop If Get (CurrentRecord) + $thisGroup >= Get (FoundCount) 
    Go to record [Get (CurrentRecord) + $thisGroup] 
End Loop 
Export Field Contents [global field] 

WriteTheRows是一个自定义函数,执行以下操作: 我想写的输出可以由7个不同的标准,同时进行排序时间(例如:我可以概括季度销售供应商或我总结了供应商季度销售额)

Compare the highest level sort field's value to the last value we found for the highest level sort field. 
    If they're different WriteALine to the global field for this sort field, the next sort field, all sort fields down to the lowest level. 
    If they're the same, compare the (highest level sort field - 1) to the stored value for the (highest level sort field - 1) 
     If they're the same, WriteALine to the global field for the (highest level sort field - 1) on down to the lowest level sort field 
     ... repeat until we're down to the lowest sort field 

WriteALine是另一个自定义功能,增加了相应的标签,逗号和使用GetSummary值(revenueSumma ry;评估(“summaryField”& summaryFieldNumber),正如Chuck在他的回答中所暗示的那样。

1

如果目标格式是基于文本(即制表符或逗号分隔),那么我会导出到XML并编写一个XSLT以根据需要对其进行汇总。要将参数传递给XSLT,我通常会将一个小XML文件导出到同一个文件夹。

+0

我对FileMaker的XML/XSLT导出不是很熟悉,但我的关注点是限制最终用户可以访问的数据。比如说,我们希望与供应商分享我们销售的产品的单位数量,但不是我们在他们的产品上获得多少收入。如果我有一个通用的XML导出,那么这两个数据点都将在XML文件中。似乎可以通过XSLT隐藏它们,但一个聪明的供应商可以查看XML值。是否有办法进一步过滤输出,以便数据不仅仅隐藏,而且实际上不存在? – pft221 2011-04-22 13:10:19

+0

对不起,迟到的答案。这不是问题:在导出到XML时,FileMaker不会保留原始XML,而只是转换的结果。没有任何地方可以从中恢复信息。 – 2011-04-28 08:51:46

1

我能想到的解决方案是导出计算而不是原始字段。通过你给出的例子,假设用户最多可以导出两个字段。您创建两个计算字段和两个文本字段。文本字段存储要导出的字段的名称,计算字段使用Evaluate(或GetField)来获取字段的内容。如果您也在导出日期和时间字段,它会变得复杂,但它仍然可行。如果您需要在导出中包含字段名称,则会创建一个额外的记录并对该记录进行计算以包含用户选择的字段的名称。

不平凡,但仍有可能。

+0

这是一个好主意。我遇到的问题是,因为我使用汇总数据,所以我必须为每个可能的排序条件(最多7个)和每个可能的导出值(最多4个)提供一个计算字段。 )(所有这些数值都是这样的,我可以用第一个问题中的示例,除了每个供应商在该季度的单位汇总值之外,还可以为整个季度提供单位的汇总值。) – pft221 2011-04-23 14:09:46

相关问题