Получение данных из другой БД

  • Автор темы Guest
  • Дата начала
G

Guest

Полю надо присвоить значение поля хранящегося в другой БД. При помощи какой команды можно это сделать???
 
G

Guest


Что бы воспользоваться @DbLookup, необходимо что бы пользователь сам ручками нажал на выпадающем списке и выбрал запись. Мне же надо, что бы при открытии формы полю, присваивалось значение поля из другой БД. При помощи какой команды можно это сделать в скрипте?
 
F

fedotxxl

Для: Денис Кириченко
В событии PostOpen находите нужный вам документ через какое-либо представление или же GetDocumentByUNID и забираете от туда значение...
Вообще на @ лучше не писать то, что можно написать на LotusScript'e
 
O

Omh

<!--QuoteBegin-fedotxxl+28:01:2008, 09:26 -->
<span class="vbquote">(fedotxxl @ 28:01:2008, 09:26 )</span><!--QuoteEBegin-->Вообще на @ лучше не писать то, что можно написать на LotusScript'e
[snapback]95276" rel="nofollow" target="_blank[/snapback]​
[/quote]
Спорно.

Хотя скрипт, конечно, погибчее...
 
G

Guest

Для: Денис Кириченко
В событии PostOpen находите нужный вам документ через какое-либо представление или же GetDocumentByUNID и забираете от туда значение...
Вообще на @ лучше не писать то, что можно написать на LotusScript'e

В форме я создал поле, в свойствах которого я прописал @DbColumn. По идеи при открытии в поле уже должно быть контент, который должен был быть получен при помощи @DbColumn. В PostOpen я пишу:

AllAuthPerson = Trim(source.fieldgettext("AllAuthPerson"))


If AllAuthPerson Is Nothing Then
Messagebox "AllAuthPerson is nothing", MB_OK+MB_ICONSTOP,"System Message"
Else
Forall users In AllAuthPerson
.....
End Forall
End if

Условие Если проходит успешно, типа в переменной что-то да есть, а вот на Forall пишет Tipe mismatch. Помогите, подскажите в чем дело?
 
W

wowa

Может
AllAuthPerson = Trim(source.Document.GetItemValue("AllAuthPerson"))


Просто иначе оно вернет стринг, а в forall нужен array, list и т.д.
Если я все правильно понял
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
<!--QuoteBegin-Денис Кириченко+28:01:2008, 12:37 -->
<span class="vbquote">(Денис Кириченко @ 28:01:2008, 12:37 )</span><!--QuoteEBegin-->If AllAuthPerson Is Nothing Then
[snapback]95302" rel="nofollow" target="_blank[/snapback]​
[/quote]
Проверка на Nothing только для объектов.
Правильно так: If AllAuthPerson = "" Then
 
G

Guest

Может
AllAuthPerson = Trim(source.Document.GetItemValue("AllAuthPerson"))
Просто иначе оно вернет стринг, а в forall нужен array, list и т.д.
Если я все правильно понял
AllAuthPerson какого типа должен быть? Varint для Trim(source.Document.GetItemValue("AllAuthPerson")) не подходит, а другие типы для Forall
 
M

morpheus

<!--QuoteBegin-Денис Кириченко+28:01:2008, 11:37 -->
<span class="vbquote">(Денис Кириченко @ 28:01:2008, 11:37 )</span><!--QuoteEBegin-->AllAuthPerson = Trim(source.fieldgettext("AllAuthPerson"))


If AllAuthPerson Is Nothing Then
Messagebox "AllAuthPerson is nothing", MB_OK+MB_ICONSTOP,"System Message"
Else
Forall users In AllAuthPerson
.....
End Forall
End if
[snapback]95302" rel="nofollow" target="_blank[/snapback]​
[/quote]
переделать
Код:
Dim AllAuthPerson as Variant
AllAuthPerson = FullTrim (source.fieldgettext("AllAuthPerson"))
if not IsEmpty(AllAuthPerson) then 
...
else
Forall users In AllAuthPerson
.....
End Forall
enf if
 
S

Sandr

переделать
Код:
Dim AllAuthPerson as Variant
AllAuthPerson = FullTrim (source.fieldgettext("AllAuthPerson"))
if not IsEmpty(AllAuthPerson) then 
...
else
Forall users In AllAuthPerson
.....
End Forall
enf if

ниче не перепутал? :)

Код:
if not IsEmpty(AllAuthPerson) then 
Forall users In AllAuthPerson
.....
End Forall


else
...
enf if
 
M

morpheus

тьфу... ну да ... наоборот условие, или просто not из условия убрать
Код:
Dim AllAuthPerson as Variant
AllAuthPerson = FullTrim (source.fieldgettext("AllAuthPerson"))
if IsEmpty(AllAuthPerson) then 
... ОШИБКА
else
Forall users In AllAuthPerson
.....
End Forall
enf if
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Для: Morpheus
Не будет работать. source.fieldgettext вернет строку. IsEmpty вернет False, т.к. IsEmpty(""). Ну и Forall по первой причине.
 
M

morpheus

Для: Medevic
тысяча чертей , ты прав....
плять ну и понедельик всё из рук валиться...

код сработает не для
source.fieldgettext("AllAuthPerson")

, а для notesDocument.GetItemValue("AllAuthPerson")
 
W

wowa

<!--QuoteBegin-Morpheus+28:01:2008, 13:42 -->
<span class="vbquote">(Morpheus @ 28:01:2008, 13:42 )</span><!--QuoteEBegin-->для notesDocument.GetItemValue("AllAuthPerson")
[snapback]95336" rel="nofollow" target="_blank[/snapback]​
[/quote]
Ну вроде как я и написал
source.Document.GetItemValue("AllAuthPerson")
 
G

Guest

Ну вроде как я и написал
source.Document.GetItemValue("AllAuthPerson")

К сожалению forall не работает, так как загоняет в users (Forall users In AllAuthPerson), не поэлементно, а сразу все строку :) Работает source.fieldgettext("AllAuthPerson"), через

While AllAuthPerson <> ""
User = Strleft(AllAuthPerson,",")
Messagebox User, MB_OK+MB_ICONSTOP,"System Message"
If cur_usr = User Then
AllAuthPerson = ""
Else
AllAuthPerson = Trim(Strright(AllAuthPerson,","))
End If
Wend

Было бы классно если бы заработало forall. Не знает как брать поэлементно?
 
S

Sandr

А как это всю строку? Я понял.. у Вас там поле не многозначное, а все значения идут через запятую...

Сдлайте так
AllAuthPerson = Join(doc.getItemValue("AllAuthPerson")(0), ",")

forall user in AllAuthPerson

... ну, дальше Вы знаете... :)
 
W

wowa

Для: Sandr
может я запутался, может вместо Join нужно Split?
 
Мы в соцсетях:

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