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

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

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

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

Глобальная переменная

  • Автор темы NataliGinger
  • Дата начала
N

NataliGinger

Здравствуйте.

Помогите, пожалуйста, новичку.

Как передать значение переменной, определяемой процедурой одной формы, процедуре другой формы?

Спасибо.
 
M

morpheus

Для: NataliGinger
несколько варантов

Через
Поля
Environment
Профильный документ
через гл. переменную LS

ОПишитика свою задачу подробнее
 
N

NataliGinger

Дочернему документу переназначается родительский.
Для этого я выясняю #Ref будущего родительского в момент, когда документ выбран во view по кнопочке в форме.
Затем во view выбирается дочерний и ему переназначается родительский, используя тот самый #Ref, значение которого храниться в переменной тоже по кнопочке в форме.

Логичнее, конечно, сделать кнопочки в самом view. Там возникает ошибка.
Код на кнопке:

Dim session As New NotesSession
Dim db As NotesDatabas
Dim doc As NotesDocument
Set ws = New NotesUIWorkspace
Set uidoc = ws.CurrentDocument

Set doc = uidoc.Document
"Object variable not set"


Ref1= Cstr(doc.GetItemValue("$REF")(0))
Messagebox Ref1

В Globals Declarations view: Public Ref1 As String
 
M

morpheus

<!--QuoteBegin-NataliGinger+26:09:2007, 11:37 -->
<span class="vbquote">(NataliGinger @ 26:09:2007, 11:37 )</span><!--QuoteEBegin-->Для этого я выясняю #Ref будущего родительского в момент, когда документ выбран во view по кнопочке в форме.
[snapback]79588" rel="nofollow" target="_blank[/snapback]​
[/quote]
ниче не понял так во вью или в форме?

<!--QuoteBegin-NataliGinger+26:09:2007, 11:37 -->
<span class="vbquote">(NataliGinger @ 26:09:2007, 11:37 )</span><!--QuoteEBegin-->Object variable not set"
[snapback]79588" rel="nofollow" target="_blank[/snapback]​
[/quote]
Читать тут

В Globals Declarations view: Public Ref1 As String - вобще никчему
 
N

NataliGinger

Вообщем, я пробовала сначала в форме, а теперь остановилась на вью.
Я ограничена во времени, тороплюсь, поэтому и мечусь.
Спасибо за ссылку. Помогло.

Теперь другая проблема.
Когда переназначаю родителя:

Call doc.MakeResponse(db.GetDocumentByID(Ref1))

Ругается:

"Parent Document is required to make a response Document"
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Для: NataliGinger
Не понятно зачем тебе поле $Ref ?
Сразу по-нормальному через документы нельзя сделать?
 
N

NataliGinger

Документ уже существует и у него уже есть родительский, а теперь мне нужно определить ему другой родительский.

Подскажите, как по-нормальному, если родительский уже есть.
Спасибо.
 
I

IsAvailable

Видимо, ситуация такая:

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

Вроде бы при выборе из вьюхи возвращается String... Тогда можно возвращать унид документа, по нему в бд искать документ (NotesDocument) и потом уже выполнять MakeResponse.

Думаю, как-то так...
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Для: NataliGinger
На кнопочках код какой?

<!--QuoteBegin-IsAvailable+26:09:2007, 13:58 -->
<span class="vbquote">(IsAvailable @ 26:09:2007, 13:58 )</span><!--QuoteEBegin-->Вроде бы при выборе из вьюхи возвращается String... Тогда можно возвращать унид документа, по нему в бд искать документ (NotesDocument) и потом уже выполнять MakeResponse.
[snapback]79611" rel="nofollow" target="_blank[/snapback]​
[/quote]
Надо использовать метод notesUIWorkspace.PickListCollection. И всё будет просто.
 
I

IsAvailable

Для: Medevic
А, ну да, точно. Тогда без всяких унидов - сразу можно NotesDocument получить и родителем назначить.
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Код:
Dim ws AS New NotesUIWorkspace
Dim pdoc As NotesDocument
Dim rdoc As NotesDocument

Set pdoc = ws.PickListCollection(...).GetFirstDocument
Set rdoc = ws.PickListCollection(...).GetFirstDocument

If Not (pdoc is Nothing Or rdoc Is Nothing) Then
Call rdoc.MakeResponse(pdoc)
Call rdoc.Save(True, True)
End If
 
D

Duedev

<!--QuoteBegin-Constantin A Chervonenko+26:09:2007, 14:25 -->
<span class="vbquote">(Constantin A Chervonenko @ 26:09:2007, 14:25 )</span><!--QuoteEBegin-->Последнее (между разными формами) невозможно.
[snapback]79619" rel="nofollow" target="_blank[/snapback]​
[/quote]

А если переменную объявить в библиотеке общей для этих форм? :)
 
D

Duedev

<!--QuoteBegin-Constantin A Chervonenko+27:09:2007, 01:47 -->
<span class="vbquote">(Constantin A Chervonenko @ 27:09:2007, 01:47 )</span><!--QuoteEBegin-->Это прокатывает только для двух субформ одной формы
[snapback]79696" rel="nofollow" target="_blank[/snapback]​
[/quote]

Объяснишь, почему это невозможно для двух отдельных форм?
 
M

morpheus

Для: Duedev
я был не прав, а Константин канечно же оказался прав...
очень просто разные формы инициализируют библиотеку каждая от себя - результат в памяти две библиотеки и двойной набор переменных хоть и глобальных
 
D

Duedev

<!--QuoteBegin-Morpheus+27:09:2007, 15:20 -->
<span class="vbquote">(Morpheus @ 27:09:2007, 15:20 )</span><!--QuoteEBegin-->очень просто разные формы инициализируют библиотеку каждая от себя - результат в памяти две библиотеки и двойной набор переменных хоть и глобальных
[snapback]79819" rel="nofollow" target="_blank[/snapback]​
[/quote]

Мне вот этот момент очень интересен.... не ужели нельзя что то вроде кэша в оперативной памяти создать?
 
M

morpheus

Для: Duedev
угу... а в какой памяти? лотус та .. того мультиплатформенный ... а могёт и через Web
 
Мы в соцсетях:

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