Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Open Source
Форум программистов > Базы данных и администрирование > Lotus > Lotus - Программирование
Страницы: 1, 2
oshmianski
Замучали пользователи.
Ну сделайте мне такую вьюху, а мне такую... Надоело!!!
Вот склепал с горем пополам.

Не претендую на непогрешимость, но, думаю, что-то в этом есть.
Предложения, замечания можно сюда или в oshmianskiСОБАКАmailТОЧКАru

Да простят меня владельцы сайта, если что-то не так сделал cool.gif

!!!!!!!!!!!!!!Тем, кто первый раз сюда зашел. Смотрите ниже новые версии!!!!!!!!!!!!!!!!
DNT
Для: oshmianski

goog job!
oshmianski
Заранее прошу прощения у всех!!!

Вот список возможностей этой бд:
++отчеты за период
++результаты можно выводить в HTML или Excel
++настраиваются условия отбора документов из источника (до 5-ти условий отбора)
++поиск по неполному совпадению
++любое количество показателей (максимум = количество полей в источнике)
++любая последовательность показателей
++наименование показателей можно править
++предварительный результат поиска = количество найденых документов
++"ручная" правка строки запроса
++высокая скорость работы (при условии нормального функционирования локальной сети)
++при выводе в HTML первый столбец можно сортировать \ не сортировать (быстрее)

Сегодня = пару исправлений + возможность использования формул в значениях условий. Например, @date(@now).
Спасибо Орлову А.Б. за идею с формулами.
oshmianski
Забыл уточнить LD - 6.5 и LN 6.5. На других ситемах пока не тестировалось. Думаю, на семерке проблем не будет.
oshmianski
Ребята и девчата!!!
Кто посмотрел этого зверя, пишите сюда результаты.
Ошибки будем исправлять, дельные предложения будем реализовывать по мере сил.
Max_from_UA
Цитата(oshmianski @ 22:06:2006, 17:33 ) *
Ребята и девчата!!!
Кто посмотрел этого зверя, пишите сюда результаты.
Ошибки будем исправлять, дельные предложения будем реализовывать по мере сил.

Ваш зверьонок составлен с учётом конкретных особенностей 6.5, а для остальных 6.х постарше подойдет?
oshmianski
Цитата(Max_from_UA @ 23:06:2006, 08:45 ) *
Ваш зверьонок составлен с учётом конкретных особенностей 6.5, а для остальных 6.х постарше подойдет?

Про какие имеено особенности Вы говорите?
Писалось и тестировалось в 6.5. Для 5-ки и ниже точно не пойдет, пробовал. Что касается старших из шестой линейки, сегодня протестил в 6.0 - все гут.
Max_from_UA
Ясно
А НТМЛ какого стандарта формируется?
oshmianski
Цитата(Max_from_UA @ 23:06:2006, 09:53 ) *
Ясно
А НТМЛ какого стандарта формируется?

Вообще никакого. HTML формируется как обычный файл, куда ручками пишу HTML строки и просто сохраняю с расширением HTML.
На это "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">" не заостряю внимание. Че там броузер кушает, не знаю. Проверено для IE 6, Opera 7.54 - 9, Mozilla 1.4a - единственная трабла в том, что шрифт иногда криво отображает, если не стоит автоопределение кирилицы.
Честно говоря с этими вещами не заморачивался. Не думаю, что такие вещи будут иметь особое значение для конечного пользователя. Хотя могу и заблуждаться - недостаток образования.
Если это имеет какое-то значение, то просвятите меня, плс.
Max_from_UA
Цитата(oshmianski @ 23:06:2006, 10:24 ) *
... единственная трабла в том, что шрифт иногда криво отображает, если не стоит автоопределение кирилицы.

Впринцине, такое не существенно только в том случае если пользователь немного опытен, а если нет,
то придётся решать проблему.
oshmianski
Цитата(Max_from_UA @ 23:06:2006, 10:45 ) *
Впринцине, такое не существенно только в том случае если пользователь немного опытен, а если нет,
то придётся решать проблему.

Вот исправление
Sub MakeHTMLHeader(file As Variant)
%REM
    /****************************************************/
    
    /****************************************************/
%END REM
    On Error Goto errorhandler    
    Print #file, |<html><title>Отчет | &_
    doc.GetItemValue("MappingName_dsp")(0) & | </title><header>|
    Print #file, |<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Windows-1251">|
    Print #file, |</header><body>|
    Print #file, |
<style>
    .tablecss {
    background-color: #c0c0c0;
    border: 0px solid black;
    font-family: Tahoma;
    font-size: 8pt;
    color: #004F8F;
    width: 100%;
}

    .tablecss th{
    text-align    :    center;
    font-size    :    10px;
    background-color: #ffffff
    color        :    #000000;
}
    .tablecss caption{
    text-align    :    center;
    font-size    :    12px;
    background-color: #ffffff
    color        :    #000000;
}
    .tablecss td{
    text-align    :    center;
    font-size    :    10px;
    color: #004F8F;
    background-color: #ffffff
}

    .tablecss tr{
    text-align    :    center;
    font-size    :    10px;
}
</style>|
    
Ex:
    Exit Sub
errorhandler:
    MsgOk Error, "Error", "Ошибка"
    Resume Ex    
End Sub
Max_from_UA
Скрипты формирующие Ексель-файл будут со старыми версиями Екселя контактировать?
oshmianski
Цитата(Max_from_UA @ 23:06:2006, 13:18 ) *
Скрипты формирующие Ексель-файл будут со старыми версиями Екселя контактировать?

В скриптах используются самые общие мотоды объектной модели Excel.
Тестирование производилось на MS Office 2003 и MS Office 2000. Все гут. Что касается 97 и более древнего, то, имхо, их использование не совсем отвечает современным требования офиса.
Max_from_UA
Согласен.
GROMILA
Цитата(oshmianski @ 23:06:2006, 11:13 ) *
Вот исправление
[

Замечание
Желательно выкладывать шаблоны для обновления!!!
Max_from_UA
Господину Громиле и другим.
Цитата
Замечание
Желательно выкладывать шаблоны для обновления!!!

А почему бы и нам самим, с согласия автора идеи, не принять участие в последующих обновлениях.
Напр., пусть кто-то поделится с автором скриптом формирующим отчёт в хмл или ворд.
А может кто-то захочет перенести систему на линейку ЛН и ЛД 4.х и 5.х,
Ведь следует не только критиковать, но и принимать активное участие в модернизации объекта обсуждения.
oshmianski
Цитата(Max_from_UA @ 23:06:2006, 14:06 ) *
Господину Громиле и другим.
А почему бы и нам самим, с согласия автора идеи, не принять участие в последующих обновлениях.
Напр., пусть кто-то поделится с автором скриптом формирующим отчёт в хмл или ворд.
А может кто-то захочет перенести систему на линейку ЛН и ЛД 4.х и 5.х,
Ведь следует не только критиковать, но и принимать активное участие в модернизации объекта обсуждения.

для Max_from_UA - спасибо за поддержку!
тема = OpenSource!!! ребята, изменяйте, модернизируйте. то, что выложил - это начало. будет продолжение, буду только рад. для этого (ну, и не только) все мы здесь собрались...
а скрипт выложил, чтобы не нужно было скачивать всю бд и наглядно посмотреть. но с Громилой полностью согласен. если уж обновление, то *.ntf.
Попутный вопрос. Хочу развить бд в сторону выгрузки результатов поиска в XML (по просьбам зрителей, так сказать). Только вот загвоздка - а зачем это нужно? Как xml файл потом использовать, для чего? Поделитесь!
nor
для экспорта-импорта данных между: субд, платформами, различными релизами программ, OC, etc.
allex
Еще однин момент по експорту в Excel.
А с другой стороны может и не стоит в Excel выгружать, в html гораздо красивше.

И еще момент такого плана, чтобы данные можно забирать из нескольких форм, а не из одной
oshmianski
Цитата(allex @ 26:06:2006, 07:03 ) *
Еще однин момент по експорту в Excel.
А с другой стороны может и не стоит в Excel выгружать, в html гораздо красивше.

И еще момент такого плана, чтобы данные можно забирать из нескольких форм, а не из одной

Конечно можно и из HTML перегнать все в Excel, но это лишние телодвижения. А для неискушенного пользователя - это почти неподъемно. Excel нужен для использования различных сортировок, автофильтров и т.д., что затруднительно сделать в html.

Забирать из нескольких форм, говорите... Попробуем.
Что касается автоформатирония в Excel (преобразования величин в даты), то и тут попробуем что-нить придумать в скором времени.

Вот последние обновления:
++Исправлено отображение шрифтов в HTML
++Можно использовать кеш кнопки "Поиск". Т.е. "Поиск" ищет, а "... отчет" уже использует ее результаты.
++Показываем пользователю сколько нашли записей и спрашиваем, будем ли строить. На тот случай, если уж очень много записей в отчет случайно попадет.
oshmianski
По поводу кривоты отображения данных в Excel отчетах.
Господа, поделитесь кто как решал такие грабли!!!
Вот мои предложения:
1. в свойстве всех ячеек поставить их формат как текстовый, т.е.
...
xlSheet.Cells.Select
[b].Selection.NumberFormat = "@"[/b]
xlSheet.Cells.EntireColumn.AutoFit
xlSheet.Rows("1:1").Select
.Selection.Font.Bold = True
xlSheet.Range("A1").Select
.Visible=True
...

Здесь была таки замечена грабля с датой. Excel (Office 2003) ее переколбашивал в числовое значение.

2. перед вставкой значения в ячейку добавлять к нему спереди апостроф ('). Excel тогда железно воспринимает значение как текст и ничего не пытается с ним сделать. Для пользователя не заметно, но тогда Excel (Office 2003) сортирует числовые столбцы как текст.
allex
Цитата(oshmianski @ 26:06:2006, 09:37 ) *
Вот последние обновления:
++Исправлено отображение шрифтов в HTML
++Можно использовать кеш кнопки "Поиск". Т.е. "Поиск" ищет, а "... отчет" уже использует ее результаты.
++Показываем пользователю сколько нашли записей и спрашиваем, будем ли строить. На тот случай, если уж очень много записей в отчет случайно попадет.


Вылетает с ошибкой. В ходе эксперементов,выяснилось что в запросе дата должна быть без времени
oshmianski
Цитата(allex @ 26:06:2006, 11:18 ) *
Вылетает с ошибкой. В ходе эксперементов,выяснилось что в запросе дата должна быть без времени

Да, есть такая фигня (была с самого начала). Я оставлял это на откуп FTSearch.
allex
Цитата(oshmianski @ 26:06:2006, 13:49 ) *
Да, есть такая фигня (была с самого начала). Я оставлял это на откуп FTSearch.

А если сделать проверку на тип поля. И если это дата то отсекать пробел и время
oshmianski
Уважаемые, подскажите, плс, как правильно формировать XML файлик, дайте ссылку.
Никогда этим не занимался. Нашел книжку, почитал.
Что у меня получается. В IE 6, Opera 8,5 - 9, Mozilla 1.4a на валидность проходит. В Ms Access 2003 ипортируется как отдельные несвязанные таблицы.
Вот примерное содержание файлика на выходе:

Цитата
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xmlreport [
<!ELEMENT document (unid+, field+)>
<!ELEMENT field (name+, value+)>
]>
<xmlreport>
<document>
<unid>DFE404EB1508B2EFC2256BE400425D0F</unid>
<field>
<name>Subject</name>
<value>PLAN01</value>
</field>
<field>
<name>CreatorFullName</name>
<value>Винцелович Сергей Иванович</value>
</field>
<field>
<name>Vozvrat</name>
<value>4</value>
</field>
...
</document>
...
</xmlreport>


Чего не хватает, что лишнее?
Если чего не так, пишите!
Max_from_UA
Я и сам никогда в хмл не формировал, так что толкового ,к сожалению, не посоветую, но могу предложить спросить на форуме ИнтерТраста ]]>http://www.inttrust.ru/site3/forum.nsf/start?OpenPage]]> . Тут в основном не скупятся на ответы.
Или посетите форум ]]>http://forum.sysadmins.ru/]]> .
Может и там повезти с ответом.
osmor
Спасибо ув. oshmianski за такое полезное начинание.
Очень я вдохновился посмотрев его базу, и решил внести свою маленький вклад.
Вашему вниманию предлагается базка для импотра данных из Excel в Lotus.

Прошу сильно не бить, в Lotus пограммировании я новичок.
Часть кода уперта из базы "отчетов", еще раз спасибо oshmianski :-)
С брагодарностью приму ЛЮБЫЕ замечания, в том числе и по стилю программирования (на до же учиться делать правильно)
Lexa-xa
Ув. oshmianski.

При выборе источника, указывается путь начиная с левого пробела, видимо все что справа отбрасывается.
Т.е. если источник находится по адресу "My Bases\Templates.nsf",
то заносится значение "Bases\Templates.nsf".

Все равно Молодец.
oshmianski
Цитата(Lexa-xa @ 27:06:2006, 10:29 ) *
Ув. oshmianski.

При выборе источника, указывается путь начиная с левого пробела, видимо все что справа отбрасывается.
Т.е. если источник находится по адресу "My Bases\Templates.nsf",
то заносится значение "Bases\Templates.nsf".

Все равно Молодец.

Спасибо, давно хотел переписать. Теперь не откручусь wink.gif
allex
Цитата(osmor @ 27:06:2006, 12:19 ) *
Вашему вниманию предлагается базка для импотра данных из Excel в Lotus.


А что за причина если у меня во вкладке "Соответствие полей" таблицы не видно ни чего
allex
Все разобрался
Дополнение к импорту. Производить импорт выбранного листа в одну форму. И назначить соответствие каждой ячейки для каждого поля
osmor
Цитата(allex @ 27:06:2006, 13:52 ) *
Все разобрался
Дополнение к импорту. Производить импорт выбранного листа в одну форму. И назначить соответствие каждой ячейки для каждого поля


т.е. в весь лист в один документ?
oshmianski
Изменения:
++если тип значения условия "дата", то значение усекается только до даты (событие Exiting поля). если значение = формула, преобразование проопускается.
++XML отчет (пробная версия). пытается открыться в броузере по-умолчанию.
++при построении Excel отчета учитывается тип данных в колонке: чило преобразуется к формату 0,00; все остальные типы - к тексту (есть закомментаренный код для преобразования к формату дата в зависимоти от локализации MS. но у меня все равно иногда кривота, потому как дата бывает 01.2001, а бывает 01.01.2001. если есть соображения, пишите).
++ProgressBar при обработке коллекции документов. Подпись на англицком, потому как русский шрифт криво отображает (если кто знает как побороть, пишите). По завершению выдаем сообщение пользователю.
allex
Так если формула и тип "дата" то все равно же будет со временем показываться
oshmianski
Цитата(allex @ 28:06:2006, 05:43 ) *
Так если формула и тип "дата" то все равно же будет со временем показываться

Да, формулы вычисляются в момент формирования строки запроса. Если только еще и в этот момент делать "обрезание"... А можно поинтересоваться, что мешает сделать примерно вот так @date(@Now)? Вот Вам дата и без времени.

Изменения:
++ProgressBar русифицирован. Огромное спасибо Osmor!!!
++Добавлено на форму ReportTemplate поле RealAuthor, авторское. Были замечены проблемы с доступом. Я всех пользователей в бд пускаю как авторов.
++Удалены неиспользующиеся (думал пригодится, ан нет) виды и форма конфигурации.
++Переписан механизм (на LS) выбора бд в источнике. Спасибо Lexa-xa!!!
Max_from_UA
Планируется ли добавить в Ваш проект графическое отображение данных (диаграммы, графики, гистокраммы, круговые диаграммы) для отчётов?
oshmianski
Цитата(Max_from_UA @ 30:06:2006, 10:06 ) *
Планируется ли добавить в Ваш проект графическое отображение данных (диаграммы, графики, гистокраммы, круговые диаграммы) для отчётов?

что касается Excel, то не вопрос, можно. могут только вопросы возникнуть с разными версиями MS Office.
на выходных запробуем чего-нить нарисовать biggrin.gif
Hedg
Насчёт портирования в MS Word, нарыл когда-то примерчик с использованием шаблонов, единственный минус для каждого типа документа нужно создавать свой шаблон. Нашёл где-то тут ]]>http://www-10.lotus.com/ldd/sandbox.nsf]]>
oshmianski
Цитата(Hedg @ 30:06:2006, 15:38 ) *
Насчёт портирования в MS Word, нарыл когда-то примерчик с использованием шаблонов, единственный минус для каждого типа документа нужно создавать свой шаблон. Нашёл где-то тут ]]>http://www-10.lotus.com/ldd/sandbox.nsf]]>

Спасибо за примерчик. Я вот что думаю... Если таки использовать выгрузку в Excel. Т.е. выгружаем в Excel, потом загружаем Word, копируем в Excel табличку, вставляем Word, закрываем Excel и открываем Word. Плюсы в том, что механизм выгрузки в Excel уже написан. Минусы - съедаем оперативку, механизм миграции таблицы Excel вWord неконтролируем.
Какие соображения будут у почтенной публики?
nor
а зачем ворд вообще нужен?
allex
2 oshmianski
А отбор по нескольким формам реализовать реально ?
oshmianski
Цитата(allex @ 3:07:2006, 06:17 ) *
2 oshmianski
А отбор по нескольким формам реализовать реально ?

Все реально. На сколько это критично? Просто, ребята, сейчас я таки пытаюсь насладиться радостями отпуска. В конце июля думаю, может чего новенького покажу.
allex
Цитата(oshmianski @ 3:07:2006, 12:24 ) *
Просто, ребята, сейчас я таки пытаюсь насладиться радостями отпуска. В конце июля думаю, может чего новенького покажу.

Это святое
Цитата(oshmianski @ 3:07:2006, 12:24 ) *
На сколько это критично?

Необходимо
fedotxxl
Как работа над проектом? Забыта?
У меня несколько предложений, интересно как вы к ним отнесетесь:
1. Забирать документы из вьюка, при помощи NotesViewNavigator
2. Сделать документы - шаблоны, которые будут определять вид отчета (в основном в экселе)

Вобщем-то, от делать нечего, я реализую второе... единственная проблема... Если у меня поменялась настройка отображения столбца, мне нужно зайти в источник, переоткрыть шаблон столбца для какого-либо столбца, сохранить, открыть отчет, переоткрыть в нем источник, сохранить и только тогда изменения приймут силу... Я просто не стал вносить изменения в структуру работы, решил добавить парочку функций в класс... Поэтому все обновляется в бэкэнде...

Что думаете?
oshmianski
Цитата(fedotxxl @ 16:08:2006, 11:24 ) *
Как работа над проектом? Забыта?

Не забыта, но сейчас нет особо свободного времени.
Цитата(fedotxxl @ 16:08:2006, 11:24 ) *
У меня несколько предложений, интересно как вы к ним отнесетесь:
1. Забирать документы из вьюка, при помощи NotesViewNavigator

Я так понял, что в качестве источника предлагается использовать вьюху?
Зачем использовать NotesViewNavigator?
Цитата(fedotxxl @ 16:08:2006, 11:24 ) *
2. Сделать документы - шаблоны, которые будут определять вид отчета (в основном в экселе)

Вобщем-то, от делать нечего, я реализую второе... единственная проблема... Если у меня поменялась настройка отображения столбца, мне нужно зайти в источник, переоткрыть шаблон столбца для какого-либо столбца, сохранить, открыть отчет, переоткрыть в нем источник, сохранить и только тогда изменения приймут силу... Я просто не стал вносить изменения в структуру работы, решил добавить парочку функций в класс... Поэтому все обновляется в бэкэнде...

Что думаете?

Ничего не понял. Как планируется использования шаблона?
fedotxxl
Для: oshmianski
1. Для ориентирования во вьюхе. Можно будет брать несколько категорий первого категоризированного столбца, например.... Также можно будет сделать простой отбор по вьюхе... Будут браться значения не из документов, а из строк вьюхи
2. Я сделал так:
а) Элемент дизайна, который отвечает за отображение столбцов
б) За отображение воркшита.
В целом это документы, которые устанавливают правила оторбажения... а в скрипте, при генерации отчета, происходит их обработка
fedotxxl
Моя версия.... Основное:
  • Шблоны распространяются только на отчет Excel
  • Все данные грузятся "по нажатии на конпку". Нет автомотического подгруза данных
  • Настройки "взаимоподменяемы". Как создается отчет можно наглядно видеть, если задать генерить отчет на 500-600 документов - настройки "накладываются" друг на друга
Пожалуйста все недоработки (там их куча наверняка), ошибки возникающие (в какой строчке... какие данные) пишите.
oshmianski
Цитата(fedotxxl @ 24:08:2006, 13:11 ) *
Моя версия.... Основное:
  • Шблоны распространяются только на отчет Excel
  • Все данные грузятся "по нажатии на конпку". Нет автомотического подгруза данных
  • Настройки "взаимоподменяемы". Как создается отчет можно наглядно видеть, если задать генерить отчет на 500-600 документов - настройки "накладываются" друг на друга
Пожалуйста все недоработки (там их куча наверняка), ошибки возникающие (в какой строчке... какие данные) пишите.

забрал, смотрю
oshmianski
1. в функции SetReportTemplate
...
i.AppendToTextList(docMapping.GetItemValue("n" & Cstr(j))(0) & "|" & docMapping.GetItemValue("n" & Cstr(j))(0) &_
"~" & docMapping.GetItemValue("[b]не n, а t[/b]" & Cstr(j))(0) & "!" & docMapping.GetItemValue("[b]не n, а f[/b]" & Cstr(j))(0))
...

у меня в отчете из-за этого не было данных.
Кроме того, если добавлять условия отбора, то подставляются русские значения полей, которых нет в документах (у меня, по крайней мере) + FTSearch вылетает в NSD.

2. Настройки я бы не прошивал жестко в источниках, а делал бы там ссылки на документы настройки. И в момент построения отчета, все параметры отображения брал бы не из самих документов источников, а из настроек для Excel. Это конечно немного затруднительно будет для задания свойств каждого поля в источнике, но таким образом можно избежать статики.

3. функция ChekFields
мне выскакивает (MsgOk "Ошибка: несоответствие полей c нумерами.", "error", "Ошибка") и я, как пользователь, теряюсь в догадках, доверять мне этому отчету, который таки дальше строится.

4. сразу показывать пользователю Excel мне кажется не совсем разумно. Если машина слабая, то операции форматирования могут выполняться достаточно долго. Кроме того, после формирования отчета, пользователь остается в интерфейсе Excel. Потом, скажем, закрыл отчет и вернулся в Notes, а там ему говорят "Отчет посторен", жмем "Ок", и что у нас получится? У меня ошибка, т.к.
MsgOk "Формирование отчета завершено", "Info", "Построение отчета"
            xlSheet.Cells.Select
        '    xlSheet.Cells.EntireColumn.AutoFit
            xlSheet.Rows("1:1").Select
            .Selection.Font.Bold = True
            xlSheet.Range("A1").Select
            .Visible=True



Вот вроде и все. Спасибо за продолжение.
fedotxxl
1. Да, эту ошибку я заметил давно. Мне почему-то показалось, что её сделал не я, а ты. Я в большинстве случаев копировал код.... Наверно я напудрил...
2. Но ведь у тебя же источник берется не из документа источника, а из документа, из которого строится отчет. Так жить проще...
3. Для отладки
4. Для отладки. Конечно уберем потом

Мне сейчас хочется сделать проверку на корректность заполнения шаблонов... неплохо бы сделать шаблоны по-умолчанию... только как это лучше сделать?...

У меня вопрос... зачем такие конструкции
Цитата
Set i = doc.GetFirstItem("AllVariants")
If i Is Nothing Then
Set i = New Notesitem(doc, "AllVariants", 1)
Else
Set i = New Notesitem(doc, "AllVariants", 1)
Call doc.replaceItemValue("AllVariants", "")
End If
Set i = doc.ReplaceItemValue...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.