我是新手。因此,在按下新记录按钮并在公司选项卡上创建新记录后,公司选项卡上的作业#增加1,但问题是私有标签的作业#也会增加。除非我按添加新记录按钮,否则作业#Private选项卡应保持为零。我为它们使用了相同的单步脚本(新记录/请求)。
如果两个字段都来自同一个表,并且您已使用“自动输入序列号”,则它们将同时增加。取消选中自动输入序列并通过计算最大值+ 1使用脚本增加数字。
您可以为作业号创建单独的序列表,公共和私有存储在单独的记录中。
序列字段:
然后创建一个名为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) ]