Topic: Открыть форму

Перешерстил уже кучу топиков и всякой прочей инфы но не смог найти следуюющее.
Есть кнопка показать запись где идет переход на форму.
Мне нужно открыть запись но не путем выбора кнопки редактировать а путем процедуры в скрипте - по двойнму клику по записи.
нужен синтаксис процеду показа записи из грда в опредленной форме.

Re: Открыть форму

Не совсем понял. Вам нужно, чтобы при двойном клике на строке таблицы появлялась не та форма, которая для редактирования, а другая?
Если так, то можно сделать ещё одну кнопку, назначить ей нужные действия. Затем скрыть пункт меню Show Record (см. в решебнике пример по замене меню грида. Только для версии 1.47 и новее!) и на свойство OnCellDoubleCliсk нужной таблицы в скрипте прописать <название формы>.<название кнопки>.Click.

Re: Открыть форму

суть такова что есть админы и не админы. если админ то открывается форма как обычно открывается на просмотр записи, если не админ то открывается другая форма.
проще говоря нужна процедура в скрипте которая бы показывала бы запись из грида в форме просмотра (аналог - показать запись).

4 (edited by alex842 2014-12-11 14:55:37)

Re: Открыть форму

Как сделать в версии 1.46 и старше не знаю, поскольку в них нет возможности менять меню грида. А вот для более новых версий мой вышеуказанный метод вполне должен работать. Только надо сделать проверку: в начале работы программы создать глобальную переменную, которая будет запоминать текущего юзера. И тогда в скрипте OnCellDoubleClick нужно будет сделать проверку: если пользователь админ, то срабатывает клик стандартной кнопки редактирования, если не админ, то спецкнопка, которая открывает другую форму.

Re: Открыть форму

Для начала нужно отключить пункт меню у грида, чтобы при двойном клике не вызывалась кнопка для редактирования, как это сделать можно прочитать в этом топике:
http://myvisualdatabase.com/forum/viewtopic.php?id=758



затем создаете две кнопки редактирования, одну для админов, вторую для обычного пользователя, которые лучше скрыть, воспользовавшись свойством Visible


затем создаете еще одну кнопку, которая будет видима для пользователей, и создаете для нее событие OnClick, и уже в этом событии, в зависимости от вида пользователя, открываете нужную форму, вызвав метод Click у нужной кнопки.


примерно так

procedure Form1_Button3_OnClick (Sender: string; var Cancel: boolean);
begin
    if sUser = 'admin' then Form1.Button1.Click else Form1.Button2.Click;
end;



но может быть будет проще использовать одну форму для редактирования, и скриптом скрыть необходимые компоненты, если пользователь не является админом.

Dmitry.