Перемещение писем в папки

Автор Тема: Перемещение писем в папки  (Прочитано 35992 раз)

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Перемещение писем в папки
« Ответ #15 : 23 Сентябрь 2009, 15:11:17 »
если можете помогите  :'(
уже раз 40 переделываю.......
создана база, в ней поля Name - название папки, Alias - доп.значение
потом в агенте
If (Strcompare(FormName$, "Memo", 1) = 0) Then
Subject$ = Trim$(doc.Subject(0))
'Достаем КОДИФИКАТОР
S1$ = Strleft(Subject$, "-")
S1$ = Trim$(Right(S1$, Len(S1$)-1))

'Достаем КОДИФИКАТОР-2
S2$ = Strright(Subject$, "-")
S2$ = Trim$(Left(S2$, Len(S2$)))
проверяю название письма
далее необходимо найти это название в базе, но никак не могу понят как надо делать

Dim DB As NotesDatabase
Dim Doc As NotesDocument
Set DB = session.GetDatabase ( db.Server, "BВ\\gf.nsf" )
Set DB_DbCodesLookup = DB.GetView("Papki")
Set Doc = DB_DbCodesLookup.GetDocumentByKey(Lcase(Doc.GetItemValue("Alias")(0)))
If Not Doc Is Nothing Then ........

если закончить If Not Doc Is Nothing Then S1$ = Doc.GetItemValue("Alias")(0)
то создается новая папка с подпапкой, а должно было найти нужную папку и в нее переместить
« Последнее редактирование: 23 Сентябрь 2009, 16:02:19 от K85 »

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Перемещение писем в папки
« Ответ #16 : 23 Сентябрь 2009, 18:26:53 »
Второй кусок кода странноватый...

Set DB = session.GetDatabase ( db.Server, "BВ\\gf.nsf" )один слеш лишний
Set DB = session.GetDatabase (db.Server, "BВ\gf.nsf")

Set Doc = DB_DbCodesLookup.GetDocumentByKey(Lcase(Doc.GetItemValue("Alias")(0)))откуда в Doc.GetItemValue("Alias")(0) может быть значение, если вы только ищете этот документ??

Set Doc = DB_DbCodesLookup.GetDocumentByKey(S2$)
If Not Doc Is Nothing Then
  mainfstr = Doc.Alias(0)
End if
для папки
и
Set Doc = DB_DbCodesLookup.GetDocumentByKey(S1$)
If Not Doc Is Nothing Then
  subfstr = Doc.Alias(0)
End if
для подпапки.

далее если заданы mainfstr и subfstr, то
Folder$ = mainfstr + "\" + subfstr

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Перемещение писем в папки
« Ответ #17 : 24 Сентябрь 2009, 10:52:36 »
ViV
Огромное спасибо! Все работает.
Есть еще небольшое дополнение, вдруг кому-то будет надо, перед Folder$ = mainfstr + "\" + subfstr
необходимо опять вернуться в почтовую базу
Set db = s.CurrentDatabase
Set doc=s.DocumentContext
так как иначе папки и подпапки создаются в базе BВ\gf.nsf

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Перемещение писем в папки
« Ответ #18 : 24 Сентябрь 2009, 10:55:27 »
Лучше использовать другую переменную для базы справочника, не db, тогда и возвращаться не прийдется;)

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Перемещение писем в папки
« Ответ #19 : 24 Сентябрь 2009, 13:33:50 »
у меня появился еще один вопрос....
а можно ли как-то или после приема письма обновлять навигатор, чтобы папки сразу добавлялись или  сделать кнопку, при нажатии которой будет происходить обновление папок(возможно это лучше, т.к. не будет постоянно запускаться)

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Перемещение писем в папки
« Ответ #20 : 24 Сентябрь 2009, 14:43:47 »
Попробуйте поставить кнопку с формулой:
@Command( [RefreshWindow] )

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Перемещение писем в папки
« Ответ #21 : 24 Сентябрь 2009, 15:57:55 »
точно! СПАСИБО  :D

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Перемещение писем в папки
« Ответ #22 : 23 Ноябрь 2009, 09:57:27 »
Доброе утро. Помогите, если можете.
Появилась проблема, когда в бд "BВ\gf.nsf" создаю название, которое имеет более 31 символа, то новая папка не создается в виде. Не подскажете почему?

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Перемещение писем в папки
« Ответ #23 : 23 Ноябрь 2009, 10:21:20 »
Доброе утро!
Что значит "папка не создается в виде"? Может просто не создается папка с длинным именем?
Вообще ограничение на имена видов/папок - 64 символа (Domino limits). Возможно из-за русских символов получается 32 символа.

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Перемещение писем в папки
« Ответ #24 : 23 Ноябрь 2009, 10:26:24 »
т.е. с этим я ничего сделать не смогу?!
Папка не отображается в виде, если имеет, например 33 символа, как только делаю короче название папка отображается

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Перемещение писем в папки
« Ответ #25 : 23 Ноябрь 2009, 10:37:24 »
Попробуйте вручную создать папку с таким именем, что на это скажет Lotus Notes?

А зачем такое громадное имя для папки, с ним же не удобно потом работать?

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Перемещение писем в папки
« Ответ #26 : 23 Ноябрь 2009, 10:58:44 »
не подскажете, какой @-формулой можно ограничить количество вводимых символов в поле, т.е. при сохранении, если в поле введено, например больше 38 символов, чтобы писало "нельзя вводить больше 38 символов"

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Перемещение писем в папки
« Ответ #27 : 23 Ноябрь 2009, 11:37:13 »
пробую сделать так:
@If ( @Length (@ThisValue) < 39;  @ThisValue;@Failure("Превышено количество"));
при кол-ве символов больше 38 пишет сообщение в самом поле Превышено количество  :(

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Перемещение писем в папки
« Ответ #28 : 23 Ноябрь 2009, 11:43:59 »
Посмотрите в сторону "input validation"

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Перемещение писем в папки
« Ответ #29 : 23 Ноябрь 2009, 12:49:21 »
в Input Validation формула:
@If(@Length(@text(Name))<10;@Success;@Failure("Количество превысило 38 символов!"));
после ввода неверного значения сначала выскакивает окно с предупреждением, а потом окно: NotesError - field didn't pass validation formula.
Как от этого сообщения избавиться?!