|
![]() |
#1 |
Участник
|
Можно попробовать реализовать с.о.
1. Создаете табличку (salesTableLock), в которой поля: SalesId, UnitId (1, 2:Заказы\Закупки), createdBy, createdDate, createdTime 2. На примере Заказов: Перегружаете в форме salesTable метод active, в котором: 2.1 Делаете проверку на наличие в SalesTableLock записи с salesId == SalesId из текущего курсора, и, если находите, то на форме д.б. метод editsales (я в 2.5 работаю). Вызываете его с параметром false. Посмотрите методы datasource формы AlowEdit, AllowCreate, AllowDelete... Можете выдавать сообщение пользователю. 2.2 Удаляете все записи из табличке salesTableLock, у которых createdBy == curUserId() и, сот-но, модуль == 1:заказы 2.2 Вставляете запись в salesTableLock, salesId из текущего курсора, UnitId = 1 Это навскидку, изврат конечно. Наверняка есть подводные камни. Например пользователь может перезагрузить комп, и тогда запись зависнет в таблице. Тогда нужно определять пакет, который будет чистить "подвисшие" записи, а идентифицировать их, ну, скажем по времени захвата. Сколько времени Заказ может быть захвачен? Решать вам. Да, и лочить запись нужно так же в момент создания. 3. В форме SalesCreateOrder в конце метода initvalue. В противном случае, пока пользователь создает новую запись, другой вошедший в форму "Заказы" может ее заблокировать. |
|
Теги |
ax3.0 |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|