选项卡上的新记录按钮有问题吗?

时间:2019-03-28 03:31:30

标签: filemaker

我是这个新手。因此,在按下“新记录”按钮并在“公司”选项卡上创建新记录后,“公司”选项卡上的作业号增加了一个,但问题是“私人”选项卡的作业号也会增加。除非我按下“添加新记录”按钮,否则“作业#专用”选项卡应保持为零。我对他们两个都使用了相同的单步脚本(新记录/请求)。

first Tab(company)

Second tab(Private)

2 个答案:

答案 0 :(得分:1)

如果两个字段都来自同一表,并且使用了“自动输入序列号”,则这两个字段都会递增。 取消选中自动输入序列号,并通过计算最大值+ 1使用脚本增加数字。

答案 1 :(得分:1)

您可以为工作编号创建一个单独的序列表,公用和私有编号存储在单独的记录中。

序列字段:

  • 类型(文本)
  • lastAssignedNumber(NUMBER)

然后创建一个名为 Next Sequence($ type)

的脚本
Set Variable [ $type = Get(ScriptParameter) ]
Go to layout [ Sequence ]
Set Error Capture [ On ]
Perform Find [ type ==$type ]
If [GetLastError]
  Show Custom Dialog [ "Invalid sequence " & Quote( $sequence ) ]
  Halt Script
End If

Loop
  Open Record/Request
  Exit Loop If [ not Get(LastError) ]
  # Error opening record, someone else has a lock on this sequence record
  # Wait a bit and try again
  Pause/Resume Script [ 0.1 ]
End Loop
Set Field [ Sequence::lastAssignedNumber ; Sequence::lastAssignedNumber + 1 ]
Set Variable [ $result = Sequence::lastAssignedNumber ]
Commit Records/Requests
Go to Layout [ original ]
Exit Script [ $result ]

这需要一个参数“类型”,并以该类型的新分配的序列号退出。您需要在“序列”表中创建两个记录,并为其赋予类型值“ PublicJob”和“ PrivateJob”,例如

然后编写两个用于创建作业的脚本

创建公共职位

New Record/Request
Perform Script [ "Next Sequence ( $type )" ; Parameter: "PublicJob" ]
Set Field [ Job#; Get(ScriptResult) ]

创建私人职位

New Record/Request
Perform Script [ "Next Sequence ( $type )" ; Parameter: "PrivateJob" ]
Set Field [ Job#; Get(ScriptResult) ]