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

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

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

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

Формирование имени поля документа

Kizarek86

Green Team
20.07.2007
871
7
BIT
40
Сразу пардон за название темы, незнал как обозвать)
В общем следующий вопрос, возможно ли как то формировать имя поля для обращения к нему путём неявного ввода.
Например есть поля:
поле1,поле2....полеN
Сейчай обрабатываю так:
doc.Поле1=....
doc.Поле2=....
.........
doc.Поле3=....
Хотелось бы сделать так чтобы не обращаться к каждому полю выделяя на это новую строчку кода, а формировать имя поля по формуле и обрабатывать в цикле например, в данном случае у нас имя полей отличаются только цифрой это было бы удобно)
 
G

Gor

если я правильно понял

For i = 1 To 999
nam = "поле"+ Fulltrim(Str(i)) 'имя поля

znac = uidoc.FieldGetText(nam) 'значение поля. Можно через doc.getitemvalue

Next

??
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Я стормозил. Конечно же NotesDocument.ReplaceItemValue и @SetField. ;)
 
M

morpheus

Для: Gor
Код:
For i = 1 To 999
nam = "field"+ Str(i) 'имя поля 
znac = uidoc.Document.ReplaceItemValue(nam, "NEW_VALUE")
Next
 

Kizarek86

Green Team
20.07.2007
871
7
BIT
40
Чёт у мну сёня день мистики)))или тупки)

Names = "Поле" + Cstr(i)
Tmp=doc.GetItemValue(Names)
Messagebox(Tmp) или Messagebox(Cstr(Tmp)) <----Тут ругается на несоответствие типов данных...

Для: Gor
Для: Medevic
Для: Morpheus
Спасибо
 
M

morpheus

Для: kizarek
Tmp=doc.GetItemValue(Names)(0)

Tmp - это строка по всей видимости а GetItemValue - это массив значений
 

Kizarek86

Green Team
20.07.2007
871
7
BIT
40
Для: Morpheus
Угу пасип, разобрался, там в зависимости от типа поля возвращаемое значение может быть и массив и число и текст)
 
M

morpheus

Для: kizarek
ну да, тольк GetItemValue это всегда Array(0 ... n)
 

Kizarek86

Green Team
20.07.2007
871
7
BIT
40
Вот опять залип:
For i = 1 To 999
nam = "field"+ Str(i) 'имя поля
znac = uidoc.Document.ReplaceItemValue(nam, "NEW_VALUE")
Next

тут ругаемся)
ReplaceItemValue присваивает полю "nam" значение "NEW_VALUE", и возврашает NotesItem (не пойму зачем нужен)
так вот, на конструкцию типа
znac = docST.ReplaceItemValue(Name2, ms)
ругается.
где Name2 - поле числовое, ms - число.
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Для: kizarek
Млин. Я кратко написал. Еще Call нужен.
Call docST.ReplaceItemValue("Name2", ms)
 
M

morpheus

Для: kizarek
просто

Call uidoc.Document.ReplaceItemValue("Name2", ms)
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
<!--QuoteBegin-kizarek+23:01:2008, 12:29 -->
<span class="vbquote">(kizarek @ 23:01:2008, 12:29 )</span><!--QuoteEBegin-->А вот и не надо там кавычки
[snapback]94681" rel="nofollow" target="_blank[/snapback]​
[/quote]
Ну так телепатов здесь нету. :)
 

Kizarek86

Green Team
20.07.2007
871
7
BIT
40
Кстати вот ещё проблемка возникла интересная. Переполняется стек при создании массива.
Причем если создавать просто кнопку на форме, то всё отлично, если кнопку с тем же кодом поместить на панель действий, получаем ошибку о переполненном стеке( кто нить сталкивался?
 
M

morpheus

Для: kizarek
а код можо привести, бо телепатом и вправду тут нету
скорее всего у Вас где то бесконечный цикл
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
<!--QuoteBegin-Medevic+23:01:2008, 12:31 -->
<span class="vbquote">(Medevic @ 23:01:2008, 12:31 )</span><!--QuoteEBegin-->телепатов здесь нету
[snapback]94682" rel="nofollow" target="_blank[/snapback]​
[/quote]
:)
 

Kizarek86

Green Team
20.07.2007
871
7
BIT
40
Для: Morpheus
Ошибка возникает именно при инициализации массива, причём в 1 случае работает нормально, в другом нет.
Код:
Dim Detal(40,20,2) As String 'собраные из док. за месяц данные
Dim VybDet(800,2) As String 'вспомогательный массив

ругается на вторую строчку. Если интересует могу и весь код выложить)

причём ещё и не всегда ругается)) как на скрипте программно стек почистить?))
 
Мы в соцсетях:

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