Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Администратор :  ИРБИС Irbis
 
Страницы: 12>>
Страница: 1 из 2
запрет редактирования
Пользователь: nwchades (IP-адрес скрыт)
Дата: 05, May, 2010 16:20

Скажите, пожалуйста, можно ли сделать так, чтобы каталогизатор мог только создавать новые записи и не мог редактировать уже созданные? Может нужно что-то в ini-файле подправить?

Re: запрет редактирования
Пользователь: Gena (IP-адрес скрыт)
Дата: 05, May, 2010 17:16

Можно, пример такой настройки приводился тут:

[irbis.gpntb.ru]

Если в краце:
1. Запрет на редактирование и ввод записей в базу данных.
В файле DBNAME.MNU напротив латинского названия БД ставим -
2. Запрет на изменение записи пользователем. При этом есть возможность ввести и сохранить новую запись.
В файл DBNFLC.PFT добавляем в самом начале перед кодом

if (&uf('+0')<>ref(mfn,&uf('+0'))) and (val(mfn)<>val('0000-1')) then '1Корректировка записи запрещена' else

а в конце добавляем

fi



Редактировано 2 раз. Последний раз 05.05.2010 17:25 пользователем Gena.

Re: запрет редактирования
Пользователь: nwchades (IP-адрес скрыт)
Дата: 06, May, 2010 11:40

попробывал - не выходит:

в файле DBNFLC.PFT (конкретной базы) в начале
if (&uf('+0')<>ref(mfn,&uf('+0'))) and (val(mfn)<>val('0000-1')) then '1Корректировка записи запрещена' else
......
.....
в конце
fi

а перед fi надо запятую ставить, когда идет
fi
fi
------
fi,
fi

???

Re: запрет редактирования
Пользователь: Gena (IP-адрес скрыт)
Дата: 06, May, 2010 11:54

Поставьте перед последним Фи запятую, а после слова ЕЛСЕ в первой строчки ОБЯЗАТЕЛЬНО ДОЛЖЕН БЫТЬ ПРОЕБЕЛ. У меня все работает нормально

Re: запрет редактирования
Пользователь: nwchades (IP-адрес скрыт)
Дата: 11, May, 2010 13:22

спасибо. всё работает. дело было в пробеле после else

Re: запрет редактирования
Пользователь: nwchades (IP-адрес скрыт)
Дата: 11, May, 2010 14:07

1-й
if (v200<>ref(mfn,v200)) or (v910<>ref(mfn,v910)) then '1Вы не имеете права корректировать поля 200 и 910' else &uf('6dbnflc') fi
2-й
if (mfn>0) and (&uf('IPRIVATE,FIO,')<>&uf('Av907^B#1)) then '1Вы не меете права корректировать записи, созданные другими пользователями' else &uf('6dbnflc') fi

1-й вариант у меня работает, а вот 2-й почему-то нет.... в чём может быть дело?

Re: запрет редактирования
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 11, May, 2010 14:28

Потому что либо в INI-файле не указан текущий пользователь, либо в первом повторении 907 поля какая-то бяка.

Re: запрет редактирования
Пользователь: nwchades (IP-адрес скрыт)
Дата: 11, May, 2010 14:50

в INI-файле не указан текущий пользователь
это вы про что? про FIO?

Re: запрет редактирования
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 11, May, 2010 15:02

Угу

Re: запрет редактирования
Пользователь: nwchades (IP-адрес скрыт)
Дата: 11, May, 2010 16:30

1. в ини-файле фио: иванов иван
2. про бяку в 907: что значит бяка? к примеру есть документы где 4 разных фамилии идут...
3. а код точно правельный?
if (mfn>0) and (&uf('IPRIVATE,FIO,')<>&uf('Av907^B#1)) then '1Вы не меете права корректировать записи, созданные другими пользователями' else &uf('6dbnflc') fi
4. в ини файле
[Entry]
dbnflc=dbnflc1
в базе соответственно dbnflc1.pft
...
не работает и всё тут!

Re: запрет редактирования
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 11, May, 2010 16:57

Ладно, тогда зайдем "со двора": приведите точное содержание первого повторения поля 907 и точное значение параметра FIO из секции PRIVATE клиентского ини-файла, с которым работает пользователь.

Ну и еще, раз уж на то пошло, то &uf('6dbnflc') рациональнее заменить на &uf('6',&uf('IEntry,dbnflc,')).

А в целом формат корректный.

Re: запрет редактирования
Пользователь: nwchades (IP-адрес скрыт)
Дата: 12, May, 2010 16:14

поле 907: ^CПК^A20100512^BВарников Р.С.

felk_c.ini
[Private]
REGWORK=
NAMEREG=
PODR=
READ=
ETR=ПК
FIO=Фельк Т.Т.

Re: запрет редактирования
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 12, May, 2010 16:51

При таких настройках пользователю при нажатии на кнопку "Сохранить" будет выдано предупреждение о том, что он не может корректировать запись.

А у вас сохраняется что ли? В чем проявляется нерабочесть?

Re: запрет редактирования
Пользователь: nwchades (IP-адрес скрыт)
Дата: 13, May, 2010 08:47

да, у меня сохраняется. никакого предупреждения не выдаёт.

а если первый вариант - на запрет полей 200 и 910, то всё работает!
if (v200<>ref(mfn,v200)) or (v910<>ref(mfn,v910)) then '1Вы не имеете права корректировать поля 200 и 910' else &uf('6dbnflc') fi

Re: запрет редактирования
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 13, May, 2010 11:00

if (mfn>0) and (&uf('IPRIVATE,FIO,')<>&uf('Av907^b#1')) then '1 Вы не имеете права корректировать записи, созданные другими пользователями' else &uf('6',&uf('IEntry,dbnflc,')) fi

Попробуйте вот так. Был пропущен закрывающий безусловный литерал в конструкции &uf('Av907^b#1').



Редактировано 1 раз. Последний раз 13.05.2010 11:00 пользователем Панев Максим.

Re: запрет редактирования
Пользователь: Esil (IP-адрес скрыт)
Дата: 13, May, 2010 12:29

Панев Максим написал(а):
-------------------------------------------------------
> if (mfn>0) and
> (&uf('IPRIVATE,FIO,')<>&uf('Av907^b#1')) then '1
> Вы не имеете права корректировать записи,
> созданные другими пользователями' else
> &uf('6',&uf('IEntry,dbnflc,')) fi
>
> Попробуйте вот так. Был пропущен закрывающий
> безусловный литерал в конструкции
> &uf('Av907^b#1').


Здравствуйте!
Я попробовал ваш формат.Все нормально работает до того когда нужно изменить свою запись,т.е. после корректировки своей записи после того как нажимаешь на Сохранить АРМ завершает работу.На машине в диспетчере задач процесс не остается, а на TCP/IP сервере в списке зарегистрированных клиентов пользователь стоит.
И64,9.1

Re: запрет редактирования
Пользователь: nwchades (IP-адрес скрыт)
Дата: 13, May, 2010 14:54

все работает, спасибо!
(был пропущен закрывающий безусловный литерал в конструкции)

но дело в другом - теперь я сам не могу редактировать тут запись которую создал, как только нажал "сохранить". идея то была в том, что другие пользователи не смогут её редактировать, а я смогу...



Редактировано 5 раз. Последний раз 13.05.2010 15:00 пользователем nwchades.

Re: запрет редактирования
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 13, May, 2010 18:10

Это лишь говорит о том, что данные в поле и в ини-файле действительно не совпадают. Или я уже не знаю, в чем тут ошибка.

Re: запрет редактирования
Пользователь: nwchades (IP-адрес скрыт)
Дата: 17, May, 2010 10:02

я попробывал создать новую запись. и как только я её сохранил, то сразу потерял доступ к редактированию. в чем проблема? сейчас же никаких данных в поле не было ведь запись новая.

Re: запрет редактирования
Пользователь: Gena (IP-адрес скрыт)
Дата: 17, May, 2010 15:16

выложите сюда эту запись в текстовом формате и ВАШ ини файл, а так же какой именно формат вы используете для разграничения прав на редактирование

Re: запрет редактирования
Пользователь: nwchades (IP-адрес скрыт)
Дата: 17, May, 2010 16:31

....вот!

Вложения: felk_c.ini (13KB)   dbnflc1.pft (179 bytes)   dbnflc.pft (12.8KB)  
Re: запрет редактирования
Пользователь: Gena (IP-адрес скрыт)
Дата: 17, May, 2010 16:38

а запись... :)

Re: запрет редактирования
Пользователь: nwchades (IP-адрес скрыт)
Дата: 18, May, 2010 10:04

какую запись?

Re: запрет редактирования
Пользователь: Gena (IP-адрес скрыт)
Дата: 18, May, 2010 10:20

nwchades написал(а):
-------------------------------------------------------
> я попробывал создать новую запись. и как только я
> её сохранил, то сразу потерял доступ к
> редактированию.

выложите эту запись, к которой вы потеряли доступ на редактирование

в чем проблема? сейчас же никаких
> данных в поле не было ведь запись новая.

Re: запрет редактирования
Пользователь: nwchades (IP-адрес скрыт)
Дата: 18, May, 2010 11:29

dbnflc1.pft

if (mfn>0) and (&uf('IPRIVATE,FIO,')<>&uf('Av907^B#1')) then '1Вы не меете права корректировать записи, созданные другими пользователями' else &uf('6',&uf('IEntry,dbnflc,')) fi

Re: запрет редактирования
Пользователь: nwchades (IP-адрес скрыт)
Дата: 20, May, 2010 10:03

...так как быть?

Re: запрет редактирования
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 20, May, 2010 10:44

Дык емае :). Ибо нефиг кастомизировать где не нужно. Сейчас у вас сделано так:
1. В ини-файле в "Entry -> dbnflc" прописан dbnflc1.
2. При вызове его в качестве ФЛК делается проверка и после прохождения опять выполняется файл из "Entry -> dbnflc". Получается зацикливание.

Решения как всегда 2.
1. Убрать предложенную мной доработку &uf('6',&uf('IEntry,dbnflc,')). В таком варианте она должны выглядеть так &uf('6dbnflc'). Получается что мы тут привязываемся к конкретному имени файла. Но что поделать, это доработка. Я ее предложил, не подумав на 2 шага вперед.
2. Вставлять условие проверки непосредственно в dbnflc.pft.
Т.е. в начало файла вставляете
if (mfn>0) and (&uf('IPRIVATE,FIO,')<>&uf('Av907^B#1')) then 
 '1Вы не имеете права корректировать записи, созданные другими пользователями' 
else
а в конец
fi

У меня так все работает.



Редактировано 1 раз. Последний раз 20.05.2010 10:44 пользователем Панев Максим.

Re: запрет редактирования
Пользователь: nwchades (IP-адрес скрыт)
Дата: 20, May, 2010 13:18

а можно сам файлик целиком? у меня всё равно ничего не работает! странно...

Re: запрет редактирования
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 21, May, 2010 00:15

Давайте лучше не так. Лучше вы сюда свой выложите, мы его поправим и будет всем счастье.

Re: запрет редактирования
Пользователь: nwchades (IP-адрес скрыт)
Дата: 21, May, 2010 10:20

вот файлики... :)

Вложения: balkov_c.ini (13KB)   dbnflc.pft (12.9KB)  
Страницы: 12>>
Страница: 1 из 2


Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.