Вы можете создать отдельную таблицу Sequence для номеров заданий, публичные и частные хранятся в отдельных записях.
Поля последовательности:
Затем создайте скрипт с именем 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) ]
Необходимо реализовать обработчик предварительных просмотров.
Необходимо записать расширение оболочки, которое реализует IExtractImage2 и извлекает миниатюру для Проводника. О, и это - COM, настолько лучше ожидайте чувствовать себя грязными впоследствии.