Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/178: Рейтинг темы: голосов - 178, средняя оценка - 4.80
MMm

Перебор в переборе

28.07.2010, 16:20. Показов 32796. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулся с проблемой перебора документов во вьюхе

LotusScript
1
2
3
4
5
6
7
8
9
10
11
12
13
    Set viewX = CS_GetCurrentDb.GetView( "EmployeeByNameWork" )
Set docX = viewX.GetFirstDocument
While Not(docX Is Nothyng)
Set view=CS_GetCurrentDb.GetView("(AllPerson)")
Set telDoc=view.GetFirstDocument
 
While Not telDoc Is Nothyng
 
Set telDoc=view.GetNextDocument(telDoc)
Wend
 
Set docX = viewX.GetNextDocument(docX)
Wend
вылетает на строке
Set docX = viewX.GetNextDocument(docX)
The Document is not in View EmployeeByNameWork

если из кода выкинуть
While Not telDoc Is Nothyng

Set telDoc=view.GetNextDocument(telDoc)
Wend
то все проходит отлично.
В чем проблема ?? Перебор в переборе разве нельзя делать ??

Переменные вроде не пересекаются.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.07.2010, 16:20
Ответы с готовыми решениями:

Перебор Документов В Коллекции
Доброго времени суток. Прошу помощи по такому вопросу: есть вид, в нем отобраны документы по условию SELECT (Form = "FIRST" |...

Перебор Файлов Excel
Нужно реализовать скриптом: Есть папка с кучей файлов Excel, нужно пройтитсь агентом по все этим файлам, взять из каждого значение из...

Полный перебор и сокращенный перебор, путем исключения одного цикла
1) Разработать на основе метода полного перебора программу razmen1 для решения задачи о способах размена купюры достоинством 100 условных...

28
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 615
28.07.2010, 17:26
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от MMN
переделал на AllEntries все заработало, спасибо.
и все-таки:


Цитата Сообщение от turumbay
P.S. telDoc из второго цикла не может в какой-то момент указывать на тот же документ, что и docX?
0
0 / 0 / 0
Регистрация: 28.06.2009
Сообщений: 1,567
28.07.2010, 17:33
Цитата Сообщение от xalet
одинаковые доки в них встречаются или нет
тема старейшин - кэширование доков в циклах для некоторых случаев (агенты, экшены) и невозможность указатель переместить из-за этого...
реальная тема - изменение текущего дока каким-то образом (явно или каким-то фоновым агентом во время выполнения) и как следствие - потеря указателя
0
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
28.07.2010, 17:53
Цитата Сообщение от ToxaRat
куда правильнее писать так
Ой, я смеялся )) Тоха в своем стиле.



Цитата Сообщение от Klido
а что за скобки тут???
А скобки лучше оставить - смотрится эстетичнее, да и вероятность ошибки меньше в некоторых случаях.

MMN
А, если не жаль времени, верни цикл как был и допиши так:

LotusScript
1
2
3
4
5
...
Set telDoc=view.GetFirstDocument
msgbox cstr(isarray(telDoc.items))
While Not telDoc Is Nothyng
...
И отпиши, что грит
0
MMm
29.07.2010, 11:02
Цитата Сообщение от Akupaka
И отпиши, что грит
True

Добавлено:


Цитата Сообщение от turumbay
P.S. telDoc из второго цикла не может в какой-то момент указывать на тот же документ, что и docX?
возможно что дело в этом, хотя переменные разные и документы только перебираются, никаких манипуляций с ними не происходит
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
29.07.2010, 11:20
Цитата Сообщение от MMN
True
а ошибка, при этом, в этой же, в первой же, итерации происходит?
что-то тут не так... ))

а если так?

LotusScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
on error goto errh
dym i as long
 
Set view=CS_GetCurrentDb.GetView("(AllPerson)")
Set telDoc=view.GetFirstDocument
i = 0
While Not telDoc Is Nothyng
 
Set telDoc=view.GetNextDocument(telDoc)
i = i + 1
Wend
 
exit sub
errh:
msgbox Error & ": " & cstr(i) & ", " & cstr(isarray(telDoc.Items))
exit sub
0
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 615
29.07.2010, 12:12
Цитата Сообщение от MMN
возможно что дело в этом, хотя переменные разные и документы только перебираются, никаких манипуляций с ними не происходит
Klido ссылку дал как раз про этот случай.
Документ (i) помнит из какой он вьюхи, (ii) синглтон и (iii) кэшируеца на клиенте. Это сочетание и привело к наблюдаемому эффекту:
Если tellDoc в какой-то момент ссылаеца на docX, то docX "забудет" свою вьюху и будет считать что он из "(AllPerson)". ( ибо клиент не будет держать в памяти два объекта для одного и того же документа )
0
0 / 0 / 0
Регистрация: 08.08.2009
Сообщений: 178
29.07.2010, 13:47
Цитата Сообщение от turumbay
ибо клиент не будет держать в памяти два объекта для одного и того же документа
По-моему, и из этого правила есть исключение. Если создать второй объект базы данных, то через него можно получить второй объект документа.
0
Tyo
29.07.2010, 13:51
Цитата Сообщение от turumbay
P.S. telDoc из второго цикла не может в какой-то момент указывать на тот же документ, что и docX?
90% что в этом дело.
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
29.07.2010, 14:19
Цитата Сообщение от turumbay
Документ (i) помнит из какой он вьюхи, (ii) синглтон и (iii) кэшируеца на клиенте. Это сочетание и привело к наблюдаемому эффекту
Клева
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.07.2010, 14:19

Присвоение при переборе коллекции
Можно ли в List.ForEach() применить каким-либо образом операцию присвоения существующих значений в новую переменную. ...

Исключение симметрии в переборе вариантов
Перебираю варианты и записываю их в массив. Задача в том что бы не было симметричных значений. К примеру (1 и 2) а в другом (2 и 1).

Как извлечь данные в переборе?
День добрый! Недавно занялся jQuery, подскажите плиз.. Есть элемент <div data-part="Color"..... ...

NullReference в при переборе компонентов в WebBrowser
private static void click(string name) { Form1 f1 = new Form1(); foreach (HtmlElement link in...

Нереальная задержка при переборе записей БД
Подскажите плз, почему может быть нереальная задержка при исполнении приведенного ниже кода(даже если в цикле перебора записей нет никаких...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru