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

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

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

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

Queryaddtobinder и Getbinderbyid

  • Автор темы SkinGreek
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

SkinGreek

Всем добрый вечер.

Сново столкнулся с непонятной проблемой.
В Document manager есть нечто подобие событий и возможность их обработки. Я пытаюсь обработать событие QueryAddToBinder(ddoc As DocDocument, BinderID As String, Continue As Integer).
Казалось бы задача проста, BinderID передается, метод GetBinderById существует у объекта библиотеки, в общем проблем не ожидается... как и обычно и бывает)) Но лотус оказался хитрее и вывел сообщение о не найденной подшивке в данном коде.
Код:
  Set theCurrentBinder = theLibrary.GetBinderById(BinderID)
после часа мучений всеж решился вывести всю библиотеку
Код:
	For i =0 To theLibrary.Cabinets.Count	
Set cabinet = theLibrary.Cabinets.ItemByIndex(i)
Print "cabinet: ID=" & cabinet.id & " Title=" & cabinet.Title & " index=" & i
For j =0 To cabinet.Binders.Count-1
Dim binder As Variant
Set binder = theLibrary.Cabinets.ItemByIndex(i).Binders.ItemByIndex(j)
Print "	  binder: ID=" & binder.id & " Title=" & binder.Title
Next
Next
и оказалось что binder.id на самом деле равен cabinet.id & BinderID. то есть binder.id == cabinet.id & BinderID
где BinderID - передаваемый параметр в обработчик события QueryAddToBinder
Как определить нормальный BinderID который необходимо для GetBinderById я не нашел потому и прошу помощи
попытался посмотреть полный BinderID через DocDocument.ParentBinderID, но как и ожидалось он вернул мне 0(событие всеж Query)
как в примере хелпа предполагают текущую секцию (Cabinet) мне не нравится, ибо по Title определять cabinet.id, мне кажеться слишком сурово (не уверен, но предполагаю что Title у секции не уникален)

Собственно вот, суть проблемы изложил.надеюсь не сильно запутанно:$
Есть у кого идеи как бороться с этим совершенно неожиданной проблемой?
 
A

Akupaka

ну, если BinderID это строка постоянной величины, то можно взять кол-во символов
Right(binderID, BinderLength)
 
S

SkinGreek

нет, в том то и дело что BinderID, передаваемый мне в качестве параметра это лишь часть полного ID подшивки. Опытным путем я увидел, что полный ID подшивки(который и необходим методу GetBinderById в качестве параметра) равняется ID секции(cabinet) + BinderID(fullBinderID = CabinetID + BinderID).Видно что данных они пожалели при передаче параметров в обработчик события. В примере к QueryAddToBinder СabinetID получают весьма извращенным способом через Title секции. Я не думаю что это серьезно, так как уверен что Title секции не может быть уникальным(исхожу их обычной пользовательской логики)
 
A

Akupaka

ой, сори, я видать запутался во всех тех binderId :rolleyes: в Вашем предыдущем посте...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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