选项卡上的新记录按钮出现问题?

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

我是新手。因此,在按下新记录按钮并在公司选项卡上创建新记录后,公司选项卡上的作业#增加1,但问题是私有标签的作业#也会增加。除非我按添加新记录按钮,否则作业#Private选项卡应保持为零。我为它们使用了相同的单步脚本(新记录/请求)。

first Tab(company)

Second tab(Private)

filemaker
2个回答
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 ]

这将采用参数“type”并以新分配的序列号退出该类型。您需要在Sequence表中创建两个记录,为它们提供类型值“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) ]
© www.soinside.com 2019 - 2024. All rights reserved.