Проблема с новой кнопкой записи на вкладках? - PullRequest
0 голосов
/ 28 марта 2019

Я новичок в этом. Таким образом, после нажатия кнопки «Новая запись» и создания новой записи на вкладке «Компания» число рабочих мест на вкладке «Компания» увеличивается на единицу, но проблема заключается в том, что также увеличивается и количество рабочих мест на вкладке «Компания». Задание # Личная вкладка должно оставаться нулевым, если я не нажму кнопку добавления новой записи. Я использовал один и тот же пошаговый скрипт для них обоих (новая запись / запрос).

first Tab(company)

Second tab(Private)

Ответы [ 2 ]

1 голос
/ 28 марта 2019

Вы можете создать отдельную таблицу Sequence для номеров работ, публичные и частные хранятся в отдельных записях.

Поля последовательности:

  • тип (ТЕКСТ)
  • lastAssignedNumber (NUMBER)

Затем создайте скрипт с именем Следующая последовательность ($ 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 ]

Принимает параметр "тип" и завершает работу с новым назначенным порядковым номером для этого типа. Вам нужно будет создать две записи в таблице 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) ]
1 голос
/ 28 марта 2019

Если оба поля из одной таблицы и если вы использовали автоматический ввод серийного номера, они будут увеличивать оба. Снимите флажок с автоматического ввода серийного номера и увеличьте число, используя скрипт, рассчитав максимум + 1.

...