• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Реализация табличной части документа

  • Автор темы nvyush
  • Дата начала
N

nvyush

Возникла новая проблема - при импорте в Лотус все надписи выводятся "крякозябрами". Менял у проекта NetBeens свойство Encoding с "windows-1251" на UTF-8, а также на всякую экзотику типа ISO-8859-x - ничего не помогает. Блокнот нормально понимает надписи только с encoding "windows-
1251". Куда дальше копать - не знаю. Помогите, пожалуйста.

Разобрался. Надо было в параметрах настройки пользователя установить русский профиль
 
L

lmed

Уважаемый nvy,

описанная Вами проблема в настоящее время также очень актуальна и для меня. Однако, прочитав данную тему, к своему великому стыду, могу констатировать, что не совсем улавливаю суть описанного механизма внедрения java контрола в Лотус.

Поскольку Вы уже в этом разобрались, не могли бы Вы несколько поподробнее описать решение задачи? Что то типа инструкции.
А если бы еще выложили демо-базу лотуса - было бы просто чудесно.
 
N

nvyush

Поскольку Вы уже в этом разобрались, не могли бы Вы несколько поподробнее описать решение задачи? Что то типа инструкции.

До ума так пока и не довёл — переключили на другие задачи. Стоит посмотреть здесь: link removed.
Что сделано: форма, на ней кнопка, которой вызывается java-агент. Агент рисует swing-окно с таблицей. В документе таблица хранится в рт-поле в "обрезанном" xml (<table><tr><td></td></tr></table>). В конструкторе окна подстыковывается начало (<?xml version='1.0' encoding='windows-1251'?>) и результат обрабатывается sax-парсером. Парсер "раскладывает" данные в ArrayList - источник данных для JTable.
По кнопке ОК циклом ArrayList собирается обратно в xml и сохраняется в рт-поле документа.
 

Мыш

Lotus Team
12.02.2008
1 220
29
BIT
72
Ой, а можно тут вопрос задам? Ибо задача похожая.
Есть некий массив данных. Каждый элемент массива представляет собой набор полей из первичного Lotus-документа (ПД) и наборы полей из вторичных Lotus-документов (ВД) (что-то типа JOIN в SQL :) И ПД, и ВД могут быть отобраны из самых разных баз. Надо этот массив отобразить в JTable и затем обработать измененные в таблице данные.

Вопрос №1. Как правильно предоставить данные для JTable?
Вариант 1 - создать двумерный массив, в него копировать значения полей и скармливать его TableModel.
Вариант 2 - создать, скажем, свой класс и хранить в нем ПД И ВД как объекты NotesDocument. Или это неизбежно повлечет за собой красные квадраты? К тому же. как я понимаю, при таком подходе TableModel должна "уметь" работать с лотусовыми объектами. Это нормально?

Вопрос №2. Как правильно обработать измененные данные?
Вариант 1 - заставить код ожидать завершения работы с таблицей (ну sleep там какой-нить) и потом раскидывать изменный массив по документам. Кстати подвопрос - а как правильно притормозить код?
Вариант 2 - обрабатывать события таблицы b сразу же обновлять соответствующие документы. Понимаю, что это тупо, ибо пользователь может 10 раз подряд изменить какое-нибудь поле, но все же...

Поскольку в Java :) , заниматься этим поручили именно мне :) Так что прошу сильно ногами не бить. Заранее спасибо за ответы.

Добавлено: ЗЫ. Как делается сейчас. Все поля "одной записи" объединяются в строку с разделителями, далее эти строки скармливаются DLL, в которой все это рисуется и правится. Возвращаются данные так же - построчно.
 
N

nvyush

Начну с конца :). Когда вызывал из документа java-агента, была проблема "немодальности" свингового окна с таблицей, как результат, переоткрывать окно документа приходилось вручную. Тут изыскания по поводу модальности:
link removed
Imike раскритикует за такой подход, но, как говорится, чем могу...
Что касается первого вопроса — как сможете, так и скармливайте. Можно передать строкой unid главного документа и уже в java открывать документы и заполнять модель, там же и сохранять изменения при нажатии ОК.
 
Мы в соцсетях:

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