Редактирование Документа Через Вью

  • Автор темы toli4sky
  • Дата начала
T

toli4sky

Есть у меня такая задумка, она связана с упрощением работы пользователей на удаленных ПК (у которых канал связи очень слаб), но все не найду как ее реализовать, может кто то уже сталкивался.

объясню по простому, у меня есть в базе список докуметов, там максимум 10-15 полей в документе, они все отображаются в представлении примерно по аналогии как это выглядит в Excel, соответственно, для изменения в каждом документе, в одном и том же поле уходит значительное время, это если каждый документ окрывать, поставить пару цифр, сохранить, закрыть, открыть следующий и т.д..

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

немного похожее я смог сделать, на основе "Inviewedit", но все же это муторно получается, и не всегда сразу срабатывает, хотя вещь интересная.
 

erdi

Green Team
20.08.2008
264
17
BIT
0
1) создаешь форму
2) в ней создаешь 2 элемент: внедренное представление и внедренный редактор(упращенная форма с 1 полем и 2-мя кнопками(ОК и ОТМЕНА))
3) в редакторе устанавливаешь имя этого редактора
4) а в свойствах представления в раздел target в оба поля(один клик и двойной клик) указываешь имя редактора
все
соответственно когда кликнешь в документ в представлении - он откроется в этом редакторе, но отобразится только 1 поле. жмешь ок - документ сохраняется только это 1 поле
 
A

alexas

Вам надо отдать на редактирование все 10-15 полей?
Или только одно-два поля?
Это существенно.
 
T

toli4sky

Канешно не получилось, как написал, но получилось немного интереснее (правда не совсем понял как так :( )
я вроде сделал как написано, потом вывел это все во в фреймсете в правую часть, по нажатию в навигаторе на строку, теперь там появляется вместо вьюшки созданная формая, в ней сверху та форма, с помощью которой должен открываться документ (наполовину), а под ним указанное мной представление (тоже на половину) и теперь при выборе любого документа во вьюшке, в этой форме заполняются данные с документа, там же можно взять на редактирование и сохранить, ну вроде прикольно получилось. А тот встроенный редактор, который я делал с полем и двумя кнопки, вообще не знаю куда подевался.

Это немного не то что хотел, но пока попробую так, надеюсь упростит работу, спасибо за идею

alexas
Редактировать все поля, по аналогии как в обычной реляционной бд. Я нашел одну штуку, она как дополнение продается для лотуса, вроде то самое что нужно, но пока проект не внедрен, покупать нет смысла, хотелось бы самому сделать что то такое. А называется она Lotus Notes ActiveX Grid компонента
 

oshmianski

Достойный программист
Lotus Team
25.04.2012
711
59
BIT
8
Toli4sky
Ну уж если activeX рассматриваете, то лучше java applet c JTable внутри.
 
T

toli4sky

хотя нет, ActiveX Grid это не то, что я ожидал, это просто таблица со всякими наворотами внутри документа...
 
A

alexas

Как делю я:
1 Рисуете на MainForm свой интерфейс с редактируемыми полями, соответствующими полям редактируемого дока и кнопкой, положим, "Сохранить".
2 На OnSelect Вашего EmbeddedView:
2а пишете UNID дока, на котором курсор в MainForm,
2б заполняете нужными данными подготовленные поля.

Юзер "бегает" по строкам для редактирования и автоматом прописываются данные из Selected дока в Ваш интерфейс.
Редактирует, что надо и давит кнопу. Или не давит :(
В кнопе - берете сохраненный UNID и по нему пишете данные в док. Всё!

Теперь самое интересное. Как писать данные в MainForm из дока и обратно?
Не используйте UI - данные пишутся последовательно в каждое поле, это не эффективно по времени (если полей много или в них объёмные данные). Работайте в BackEnd.
Используйте промежуточный буфер - временный дос в памяти (типа Set tempDoc = db.CreateDocument)
Далее - записывайте ВСЕ данные в этот буфер, а уже из него, с помощью CopyAllItems( notesDocument,True) за один раз - в форму (или в выделенный дос ). tempDoc не сохраняете. В View, если хотите, можете определить его как глобальную переменную (видимость - только View)
Визуально - данные в форме или в View появляются мгновенно.
Не забывайте про True in CopyAllItems.

Если что не понятно - спрашивайте.
Enjoy!

P.S. Подобными приемами я строю модный нынче интерфес A La WEB (ну почти :( )
P.P.S. For v 8.x and older
 
A

Antigo

1. Во вьюхе на панель действий кидаешь кнопку
2. выбираешь во вьюхе документ и жмешь на эту кнопку (в кнопке код, который через UnprocessedDocuments берет выбранный документ, затем создаем промежуточный документ, привязываем к форме (которая уже заранее создана с нужными полями), туда наследуем нужные поля из документа и выводим ее через workspace.DialogBox)
3. открывается диалоговое окошко с нужными полями, которые меняешь как тебе нужно и жмешь ок. (затем в обратном порядке из промежуточного документа переносим поля в выбранный)
4. изменения попадают в документ представления
 
T

toli4sky

alexas
ну так то у меня то же самое получилось, только без всяких копирований, временных переменных и т.д..
только у меня пользователь может просто перепрыгивать во вьюхе по документам, а в верхней части будет открыта форма, данные постоянно обновляются после перехода, и там он может спокойно редактировать нужные поля...
Antigo
а этот способ я как раз и избегаю))) потому что впринципи по действиям это тоже самое, что выбрать документ, ричем сразу двойным нажатием открыть его, там будут все что надо отредактировать, и нажать сохранить, либо закрыть. Только в твоем варианте, как бы форма проще будет, в виде диалогбокса, а операции: выбрать док, нажать на кнопку, добавятся

Суть результата, что я ищу, это самое что подходит, событие вида "Inviewedit", но оно подтупливает не много, один раз нажал на нужный док и столбик, он раз, через секунду и редактируемый стал, поменял значение, нажал энтер, и все ок

я вот думал, может есть какой-то вариант, типа нажав кнопку в виде откроется форма, в которой, либо список полей, либо табличка, там все легко и просто все разом можно поменять (как в екселе), нажать сохранить, и все сохранится в соответствующие документы...
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
471
все это как-то не юзерфрэндли... ибо нужна смена фокуса (мышою, при эмбедед вью и форме) или модальность
если нужно как в знакомых шняжках - берите JTable (как советовал oshmianski2 )
 
T

toli4sky

Кирилл Шваб
Про Inviewedit я как бы уже два раза писал, спасибо, но малость это не то...

lmike
Если честно, в лотусе нисказать что я чайник, просто еще не все перепробовал, именно с скриптами и разработками баз данных вплотную я начал заниматься только с начала этого года, а в общем знаком с лотусом третий год... поэтому вот до апплетов я еще не добрался, я даже не знаю в какую сторону бежать, что б узнать как это и что это (ну кроме гугла)
 

oshmianski

Достойный программист
Lotus Team
25.04.2012
711
59
BIT
8
поэтому вот до апплетов я еще не добрался, я даже не знаю в какую сторону бежать, что б узнать как это и что это (ну кроме гугла)
можно начать от суда .
если данных не очень много, то можно курить , иначе свои модели с пагинацией.
 
T

toli4sky

oshmianski2
на первую ссылку я успел попасть ранее, но набор кода мне не понять, куда его писать, что это даст... ну и т.д.
а вот по второй ссылке вообще не понял что там:)
у меня в базе впринципи не так все сложно устроено, как это обычно бывает, просто набор документов, он как бы большой, но виден для каждого пользователя по не многу, где то по 15 документов в представлении, и впринципи особо не изменяется (там каждый день происходит копирование все документов в архивную базу). Ну и как апплеты применить к моей хотелке, пока не могу понять... да и в конце рабочего дня уже не соображаю...
Спасибо Всем за отклик, забреду сюда уже только в понедельник
 
A

alexas

* Toli4sky Не то-же самое. Походу Вы не поняли.
Сейчас у Вас в фрейме - View, в другом - открывается док, на котором курсор.
В фрейме док открывается по специальной форме, где нарисованы ТОЛЬКО поля для редактирования.
Юзер редактирует-сохраняет кнопкой-переходит на другой док (открывается автоматом на SingleClick например).
Можете убрать из цепочки "сохраняет кнопкой" - автосохранением - если юзер выбрал другой дос в View (проверка: поля изменились Save, нет просто открываем другой)
Немного ускорит работу.Это по "модернизации" Вашей технологии.
я вот думал, может есть какой-то вариант, типа нажав кнопку в виде откроется форма, в которой, либо список полей, либо табличка, там все легко и просто все разом можно поменять (как в екселе), нажать сохранить, и все сохранится в соответствующие документы...
Я Вам о том и толкую если я правильно понял, что надо редактировать данные построчно.
Как правильно отметил Imike, здесь надо работать в форме (которую я назвал MainForm) в которой лежит Embedded Ваш View - программировать легче в разы и работать будет быстрее. MainForm я бы открывал на DubbleClick View (или акшеном в виде или как хотите) - в модальное окно .
В этой форме ТОЛЬКО те поля, кот. надо редактировать (что Вами и запрошено) и EmbeddedView. Дальнейшая работа описана в предыдущей реплике.
То есть Вы открываете специальную форму для редактирования в модальном окне дабблкликом в Главном виде и спокойно редактируете данные, переходя от дока к доку уже в EmbeddedView MainForm. Можете использовать "автосохранение", как писал выше, а не сохранять кнопкой.
Кнопки в виде для открытия мод.окна тоже сделать не проблема. Только зачем?

Или Вы хотите открыть на редактирования в таблицу в форме данные из ВСЕГО вида ?
* InViewEdit для Вашего случая - Зло. По причине "индусской" логики интерфейса. Но если правильно запрограммировать и заставить юзеров обучиться - работает стабильно и быстро. Лично я не использую очень давно - я юзеров люблю и уважаю :)
* JTable - вариант. Но на мой взгляд - хуже, чем я писал раньше хотя загоните весь вид в таблицу. Пробовал - отказался (У меня медленный интерфейс получался. Может у Вас будет лучше?)
* Можете посмотреть в сторону Xpages если не страшно. С ними в клиенте работать легко. В Xpages редактируемые колонки вида удобны. Или редактируемая динамическая таблица - репитером. Например. Но про модальность и фреймы можно забыть - Xpages в клиенте можно открыть только в отдельном окне. И ещё - первое открытие Xpages медленно. Второе и дальше - нормально.
Открытие апплета тоже медленно. Но всегда.

Но это все мои ИМХО :)

P.S. Кстати, если надо в виде редактировать ВСЮ длинную строку - InViewEdit вполне уместен. Тупит на первой колонке, дальше переходы Табом и Интер - в конце. Все шустро.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 985
611
BIT
471
апплет не нужно... - открывается немодальное окно (topmost) собсно в ём все и редактируется
объект ваще можно сделать синглтоном (надо исследовать) и просто его показывать/сувать ему нужную инфу...
правда, учитывая "опыт" работы с доминой (а с java, полагаю, и того меньше) вариант становится призрачным :)
 
T

toli4sky

alexas
В фрейме док открывается по специальной форме, где нарисованы ТОЛЬКО поля для редактирования
я пытался такую штуку сделать, в итоге получается при открытии я вижу эту Отдельную форму для редактирования, а при выборе любого дока появляется та, с помощью которой обыно и открывается документ, т.е. своя, которая прописана в поле form. а сам вариант тоже хороший, только у меня штото не получилось :mellow:
InViewEdit для Вашего случая - Зло
с этим тоже соглашусь :) , хотя если пользователи поймут што надо делать, то смогут работать без особых проблем, выбрал док, нажал F2, табом перешол куда надо и меняй, ентером сохранил, курсором спустился дальше и т.д., очень удобно получается, этот вариант я оставлю как для "Любителя"
Можете посмотреть в сторону Xpages если не страшно.
вот сюда очень хочу посмотреть, только боюсь, т.к. не сталкивался вообще с вебом :) , слышал, что там как раз таки можно реализовать, то что нужно, редактирование документов в виде таблицы, а такого примера гугл мне не нашел.... если есть где посмотреть пример, буду очень, очень благодарен
учитывая "опыт" работы с доминой (а с java, полагаю, и того меньше) вариант становится призрачным
вот тут ваще в точку :rolleyes: java мне вообще не знакома, разобраться можно, но не так много времени у меня на это, других проектов еще очень много параллельно делаю
 
A

alexas

я пытался такую штуку сделать, ........., только у меня штото не получилось
В течение дня сброшу пример построчного редактирования.
А Xpages бояться - в нотус не ходить :) .
В большинстве случаев, если приглядеться, логика программирования ТАМ не отличается от ст.клиента.
Язык другой, да, но от изучения Java и JavaScript Вам все равно никуда не деться.
 
T

toli4sky

Язык другой, да, но от изучения Java и JavaScript Вам все равно никуда не деться
не спрорю, в наше время надо все знать :)
Логику языка Java и JavaScript я так понял там ничего сложного, просто некоторые вещи позапоминать и можно начать осваивать практику.
А Xpages бояться - в нотус не ходить
надо, надо с этим тоже поковырять...просто меня еще с понедельника в новосиб, в командировку решили отправить.... совсем не успеваю, да и толковый бы источник знаний найти
 
30.06.2006
141
5
BIT
0
На всякий - XPages работает только в полном клиенте, который у IBM называется Notes Standard Configuration.
 
Мы в соцсетях:

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