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

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

NataliGinger

Гость
#1
Здравствуйте.

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

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

Спасибо.
 

morpheus

скриптописец
07.08.2006
3 915
1
34
Украина, Киев
#2
Для: NataliGinger
несколько варантов

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

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

NataliGinger

Гость
#3
Дочернему документу переназначается родительский.
Для этого я выясняю #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
 

morpheus

скриптописец
07.08.2006
3 915
1
34
Украина, Киев
#4
<!--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

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

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

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

Ругается:

"Parent Document is required to make a response Document"
 
N

NataliGinger

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

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

IsAvailable

Гость
#8
Видимо, ситуация такая:

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

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

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
36
Россия, Калуга
#9
Для: 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

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
36
Россия, Калуга
#13
Код:
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

Гость
#14
<!--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

Гость
#17
<!--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]

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

morpheus

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

Duedev

Гость
#19
<!--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]

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