0 / 0 / 0
Регистрация: 29.06.2009
Сообщений: 95
|
|
1 | |
Удаление из вида02.07.2009, 12:52. Показов 44714. Ответов 44
Метки нет (Все метки)
Есть вопрос. Возможно ли удаление из вида, если документы в виде разбиты по категориям, необходимо удалять документы не выделяя их, а сразу всю категорию (то есть свернутую)
0
|
02.07.2009, 12:52 | |
Ответы с готовыми решениями:
44
Построить три вида фигуры. На месте вида спереди и вида слева совместить часть вида с частью разреза Построить три вида фигуры. На месте вида спереди и вида слева совместить часть вида с частью разреза - AutoCAD Удаление группы букв вида abcd Программное Удаление Личного Вида Для Пересоздания |
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
|
|
02.07.2009, 18:14 | 21 |
Сообщение от Omh
Пример для 3-х категорий. Поиск документов для удаления по первым двум категориям Код
Dim WS As New NotesUIWorkspace Dim uiview As NotesUIView Dim view As NotesView Dim category(1) As Variant Dim dc As NotesDocumentCollection Dim Session As New NotesSession Dim Db As NotesDatabase Dim Doc As NotesDocument Set DB = Session.CurrentDatabase Set uiview = WS.CurrentView Set Doc = db.GetDocumentByID( uiview.CaretNoteID ) category(0) = Doc.<название поля1>(0) category(1) = Doc.<название поля2>(0) Set View = DB.GetView( <Название вида> ) Set dc = view.GetAllDocumentsByKey( category, True) Call dc.RemoveAll( True ) Call ws.ViewRefresh <Название вида> - вид с 2-мя первыми!!!! отсортированными полями <название поля1>, <название поля2> Если надо удалить все документы по первой категории - то соответственно нужно только одно первое поле исправил пару ошибочек Ну или как сказал Omh - можно использовать db.Serach. тогда из моего примера нужно выкинуть Код
category(0) = Doc.<название поля1>(0) category(1) = Doc.<название поля2>(0)
0
|
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
|
|
02.07.2009, 19:20 | 22 |
GetAll...ByKey иногда взглюкивают (лечится перестройкой load updall -R <db> -T <view>)
но можно жить с Get...ByKey там пригодится Getentry далее от текущей бежим проверяя indentlevel по энтрисам TIA указал - как найти положение выделенной категории
0
|
0 / 0 / 0
Регистрация: 29.06.2009
Сообщений: 95
|
|
05.07.2009, 11:24 | 23 |
извеняюсь, что задаю опять вопрос, но я не могу понять что здесь надо
Код
Dim WS As New NotesUIWorkspace Dim uiview As NotesUIView Dim view As NotesView Dim category As Variant Dim dc As NotesDocumentCollection Dim Session As New NotesSession Dim Db As NotesDatabase Dim Doc As NotesDocument Set DB = Session.CurrentDatabase Set uiview = WS.CurrentView Set Doc = db.GetDocumentByID( uiview.CaretNoteID ) category = Doc.Name(0) не могу понять, теперь удаляется не вся категория с подкатегориями, а при выделении документа удаляется категория
0
|
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 615
|
|
05.07.2009, 12:03 | 24 |
Сообщение от I123321
В дебагере вы можете заметить, что uiview.CaretNoteID содержит нечто, явно не явлющееся NoteID документа. И там же вы обнаружите, что Doc имеет значением( адресует ) Nothyng. Вы ходили по ссылке TIA на итертраст? Там лежит готовое решение по перебору документов в выбранной подкатегории.
0
|
0 / 0 / 0
Регистрация: 29.06.2009
Сообщений: 95
|
|
05.07.2009, 13:22 | 25 |
Код
Dim NUIWS As New NotesUIWorkspace Dim NDC As NotesDocumentCollection Dim NDB As NotesDatabase Dim NVN As NotesViewNavigator Dim ND As NotesDocument Dim strCaretNoteID As String Set NDB = NUIWS.CurrentDatabase.Database Set NVN = NUIWS.CurrentView.View.CreateViewNavFromCategory(NUIWS.CurrentView.CaretCategory) Set ND = NVN.GetFirst.Document Set NDC = view.GetAllDocumentsByKey( ???????, True) Call NDC.RemoveAll( True ) Call NUIWS.ViewRefresh или как мне удалить документы? не получается собрать коллекцию и ее удалить ;)
0
|
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
|
|
05.07.2009, 13:23 | 26 |
I123321 , ты хелп читал?!
0
|
0 / 0 / 0
Регистрация: 29.06.2009
Сообщений: 95
|
|
05.07.2009, 13:47 | 27 |
читал... читаю... но ничего не могу понять
мне просто очень надо, спешу, вот ничего уже и сообразить не могу...... может, если кто-то может, то помогите пожалуйста
0
|
0 / 0 / 0
Регистрация: 29.06.2009
Сообщений: 95
|
|
05.07.2009, 15:58 | 28 |
пытаюсь сделать так, опять не то
Код
Dim NUIWS As New NotesUIWorkspace Dim NDC As NotesDocumentCollection Dim NDB As NotesDatabase Dim NVN As NotesViewNavigator Dim ND As NotesDocument Dim view As NotesView Set NDB = NUIWS.CurrentDatabase.Database Set NVN = NUIWS.CurrentView.View.CreateViewNavFromCategory(NUIWS.CurrentView.CaretCategory) Set ND = NVN.GetFirst.Document category = ND.Name(0) Set NDC = view.GetAllDocumentsByKey( category, True) Call NDC.RemoveAll( True ) Call NUIWS.ViewRefresh
0
|
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
|
|
05.07.2009, 16:27 | 29 |
I123321, слушай, это достаточно простое задание!
Читай внимательно хелп! Почитай
0
|
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
|
|
05.07.2009, 17:27 | 30 |
Мне показалась задачка интересная. Поэтому вот решение.
Немного переделал код с интертраста. Вместо прохода навигатором по всему представлению, сделал переход к нужной категории сразу и рекурсивный обход внутри. Мне кажется, так гораздо быстрее будет. Также пришлось использовать пустую коллекцию. Код
Sub Click(Source As Button) Dim session As New NotesSession Dim db As NotesDatabase Dim dc As NotesDocumentCollection Dim NUIWS As New NotesUIWorkspace Dim NV As NotesView Dim NVN As NotesViewNavigator Dim NVE As NotesViewEntry Dim strCaretCategory As String Set db = session.CurrentDatabase strCaretCategory = NUIWS.CurrentView.CaretCategory Set NV = NUIWS.CurrentView.View Set dc = db.Search({}, Nothyng, 0) Dim ve As NotesViewEntry Set NVN = NV.CreateViewNav() Set NVE = NVN.GetPos(strCaretCategory, ".") Call AddChilds(dc, nvn, nve) Call dc.RemoveAll(True) Call NUIWS.ViewRefresh() End Sub Sub AddChilds(dc As NotesDocumentCollection, nvn As NotesViewNavigator, nve As NotesViewEntry) Dim ve As NotesViewEntry Set ve = nvn.GetChild(nve) While Not (ve Is Nothyng) Messagebox(ve.ColumnValues(Ubound(ve.ColumnValues))) If ve.IsDocument Then Call dc.AddDocument(ve.Document) Call AddChilds(dc, nvn, ve) Set ve = nvn.GetNextSibling(ve) Wend End Sub
0
|
0 / 0 / 0
Регистрация: 15.03.2009
Сообщений: 615
|
|
05.07.2009, 17:37 | 31 |
Сообщение от I123321
1. Добавьте в ваш категоризованный вид первую колонку с формулой @DocNumber. На последней закладке в свойствах колонки взведите галку "Hide Column" 2. Повесьте на кнопку код: Код
Sub Click(Source As Button) Dim NUIWS As New NotesUIWorkspace Dim NV As NotesView Dim NVN As NotesViewNavigator Dim NVE As NotesViewEntry Dim strCaretCategory As String Dim blnContains As Boolean blnContains = False strCaretCategory = NUIWS.CurrentView.CaretCategory Set NV = NUIWS.CurrentView.View Set NVN = NV.CreateViewNav() Set NVE = NVN.GetFirst пустая коллекция: Dim collection As NotesDocumentCollection Set collection = NV.Parent.Search( "" , Nothyng , 0 ) Do While Not(NVE Is Nothyng) If Instr(NVE.GetPosition("."), strCaretCategory)=1 Then blnContains = True добавляем документ в коллекцию: If NVE.IsDocument Then On Error 4469 Resume Next Call collection.AddDocument( nve.Document ) End If Elseif blnContains Then Exit Do End If Set NVE = NVN.GetNext(NVE) Loop if collection.count > 0 then Call collection.RemoveAll( True ) End Sub
0
|
0 / 0 / 0
Регистрация: 29.06.2009
Сообщений: 95
|
|
05.07.2009, 18:04 | 32 |
в этой строке Call AddChilds(dc, nvn, nve) что не определено
0
|
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
|
|
05.07.2009, 18:10 | 33 |
Что?
Скопируй код и вставь в новую кнопку. Всё должно работать.
0
|
0 / 0 / 0
Регистрация: 29.06.2009
Сообщений: 95
|
|
05.07.2009, 18:11 | 34 |
Data not saved due to script error(s)
0
|
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
|
|
05.07.2009, 18:13 | 35 |
Процедура AddChilds описана ниже. Ты скопировал её в кнопку?
0
|
0 / 0 / 0
Регистрация: 29.06.2009
Сообщений: 95
|
|
05.07.2009, 18:26 | 36 |
теперь еще лучше, только нажимаю на кнопку - выдает ошибку Лотуса и закрывается лотус
описана процедура ниже теперь все сохраняется, только Лотус не работает только нажимаю на кнопку - ЛОТУС ВЫРУБАЕТСЯ
0
|
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
|
|
06.07.2009, 09:17 | 37 |
Дебаггером посмотри в каком месте.
0
|
0 / 0 / 0
Регистрация: 29.06.2009
Сообщений: 95
|
|
06.07.2009, 09:58 | 38 |
доходит сюда Set NVE = NVN.GetPos(strCaretCategory, ".") и выбрасывает отом из Лотуса
0
|
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
|
|
06.07.2009, 10:02 | 39 |
Интересно. Какая версия клиента?
Ты добавил первый столбец с формулой @DocNumber?
0
|
0 / 0 / 0
Регистрация: 29.06.2009
Сообщений: 95
|
|
06.07.2009, 10:07 | 40 |
да
версия 7
0
|
06.07.2009, 10:07 | |
06.07.2009, 10:07 | |
Помогаю со студенческими работами здесь
40
Для праздничного чаепития необходимо купить n пирожных. В магазине продается всего два вида пирожных одного вида, причем пирожных одного вида осталось Как скопировать данные из одного вида таблицы в другою иного вида Написать функцию которая по линейныму списку вида ( . a s w c b) строит сложный список вида (.) a) s) w) c) b) Написать функцию которая по линейныму списку вида (a d r g h .) строит сложный список вида (a (d (r (g (h (.) Свод данных с ячеек одного вида таблиц в сводную таблицу другого вида Clojure Написать функцию которая по линейныму списку вида (1 2 3 4 5) строит сложный список вида(1) (2) (3) (4) (5) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |