• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Выбор адресной книги

  • Автор темы oleg7
  • Дата начала
O

oleg7

Если есть кнопка, на которой выбирается адресная книга и потом пользователь, и при этом адресные книги и база лежат на одном сервере, а как открыть адресную книгу, которая на другом сервере.
КОд на кнопке:
Код:
view := "Nameview";
title := "Справочник";
prompt := "Выберите ФИО ";
mServer:=@Subset(@DbName;1);

mSerDB:=@Prompt( [OkCancelList];"Cписк справочников";"Выберите адресную книгу";"";"1":"2":"3");
@If( mSerDB="1";mDbName:="names1.nsf";mSerDB="SV 2";mDbName:="names2.nsf";mSerDB="3";mDbName:="names3.nsf";@Failure(""));

mField1:="Username";
mField2:="ControlUsername";
@If(@ServerName = @UserName;@Failure("необходимо подключение к серверу");@Success);
mAltUser := @PickList ([Custom];mServer:mDbName; view; title; prompt; 1 );
REM{"mAltUser := @PickList ([Custom]; mServer:mDbName; view; title; prompt; 1 )"};
REM{"mUser:= @DbLookup ("":"NoCache"; mServer:mDbName; view; mAltUser; 6)"};
mUser:= @DbLookup ("":"NoCache"; mServer:mDbName; view; mAltUser; 6);

@SetField(mField1;mAltUser);
@SetField(mField2;@Name([Canonicalize];mUser));
@Command([ViewRefreshFields] )
3-я адресная книга лежит на другом сервере и выбрать ее невозможно.
Есть возможность сразу указать сервер, на котором лежит адресная книга???
 
A

Akupaka

хм... я так понял у тебя базы завязаны жестко в коде, что тогда мешает там указать нужный сервер, если он определен заранее?..
(хотя это не совсем корректно спроектировано)

Код:
view := "Nameview";
title := "Справочник";
prompt := "Выберите ФИО ";
mServer:=@Subset(@DbName;1);

mSerDB:=@Prompt( [OkCancelList];"Cписк справочников";"Выберите адресную книгу";"";"1":"2":"3");
@If( mSerDB="1";mDbName:="names1.nsf";mSerDB="SV 2";mDbName:="names2.nsf";mSerDB="3";mDbName:="names3.nsf";@Failure(""));
@If(mSerDB = "3"; mServer := "another server name"; "");
...
 
O

Omh

А зачем такое писать на формуле?
На скрипте же удобнее?
 
A

Akupaka

не сбивай человека с пути истинного, пусть сначала одним способом разберется, что ему надо ;)
а то щас еще lmike прискачет на белом свинге начнет говорить, что на яве вообще круче все можно забахать ;)
 
O

Omh

На джаве, несоменно, смачнее получится ;)
Но тут несоменный выбор джедая - лотус, который скрипт
 
K

K-Fire

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

Так что ИМХО, от языка формул нужно отказываться, чем раньше тем лучше.
 
K

K-Fire

Перестают работать формулы когда мбеднутую вью добавляешь в диалоговое окно. Причем забавно, если наводить на имиджи с хотспотами курсор, то вью моргает. Короче у меня создалось впечатление что версия 8.5 в плане поддержки стандартного нотусового функционала хуже чем все предыдущие версии ;)

Вот теперь даже не знаю чего ждать от 8.5.1 ;)
 
H

hosm

K-Fire
а у тебя дефолтные хотспоты юзаются? Может, стоит с акшен хотспот попробовать, с ними мне встречалось чуть меньше глюков...
Akupaka
Ну, ребята, пока еще рано, так как много чего в лотусе можно пока сделать только на формулах ;)
 
O

Omh

Ну вообще, я сторонник отделять мух от котлет (логику от отображения), т.е. всю логику приложения писать именно на скрипте, стараясь не использовать на форме какие-нибудь computed поля, которые производят бешенные вычесления.
Поля служат только для отображения, все расчёты происходят в ф-ии, куда док подаётся как параметр.
Поэтому формулы длинее пяти строк я сильно не долюбливаю.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!