Open Source

  • Автор темы oshmianski
  • Дата начала
A

allex

2 oshmianski
А отбор по нескольким формам реализовать реально ?
 
O

oshmianski

2 oshmianski
А отбор по нескольким формам реализовать реально ?
Все реально. На сколько это критично? Просто, ребята, сейчас я таки пытаюсь насладиться радостями отпуска. В конце июля думаю, может чего новенького покажу.
 
F

fedotxxl

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

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

Что думаете?
 
O

oshmianski

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

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

Что думаете?
Ничего не понял. Как планируется использования шаблона?
 
F

fedotxxl

Для: oshmianski
1. Для ориентирования во вьюхе. Можно будет брать несколько категорий первого категоризированного столбца, например.... Также можно будет сделать простой отбор по вьюхе... Будут браться значения не из документов, а из строк вьюхи
2. Я сделал так:
а) Элемент дизайна, который отвечает за отображение столбцов
б) За отображение воркшита.
В целом это документы, которые устанавливают правила оторбажения... а в скрипте, при генерации отчета, происходит их обработка
 
F

fedotxxl

Моя версия.... Основное:
  • Шблоны распространяются только на отчет Excel
  • Все данные грузятся "по нажатии на конпку". Нет автомотического подгруза данных
  • Настройки "взаимоподменяемы". Как создается отчет можно наглядно видеть, если задать генерить отчет на 500-600 документов - настройки "накладываются" друг на друга
Пожалуйста все недоработки (там их куча наверняка), ошибки возникающие (в какой строчке... какие данные) пишите.
 

Вложения

  • Reports.rar
    126,7 КБ · Просмотры: 212
O

oshmianski

Моя версия.... Основное:
  • Шблоны распространяются только на отчет Excel
  • Все данные грузятся "по нажатии на конпку". Нет автомотического подгруза данных
  • Настройки "взаимоподменяемы". Как создается отчет можно наглядно видеть, если задать генерить отчет на 500-600 документов - настройки "накладываются" друг на друга
Пожалуйста все недоработки (там их куча наверняка), ошибки возникающие (в какой строчке... какие данные) пишите.
забрал, смотрю
 
O

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


Вот вроде и все. Спасибо за продолжение.
 
F

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...
 
O

oshmianski

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

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

У меня вопрос... зачем такие конструкции
Set i = doc.ReplaceItemValue...
Где-то когда-то на каком-то форуме, на интертрасте что ли, читал сабж по этому поводу и решил, что буду использовать конструкции типа ReplaceItemValue и GetItemValue. Видишь ли, если использовать упрощенные конструкции, то можно запутаться, ибо наименоване полей могут совпадать (или почти совпадать) с различными стандартными методами и свойствами. Кроме того, считаю, что это более грамотным с точки зрения красивости программировани. Но, как и все смертные, часто ленюсь link removed.
 
F

fedotxxl

Где-то когда-то на каком-то форуме, на интертрасте что ли, читал сабж по этому поводу и решил, что буду использовать конструкции типа ReplaceItemValue и GetItemValue. Видишь ли, если использовать эти упрощенные конструкции, то можно запутаться, ибо наименоване полей могут совпадать (или почти совпадать) с различными стандартными методами и свойствами. Кроме того, считаю, что это более грамотным с точки зрения красивости программировани. Но, как и все смертные, часто ленюсь link removed.

Ничего не понял... Тебе проще и красивее написать
Код:
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("AllVariants", "")
 
O

oshmianski

Ничего не понял... Тебе проще и красивее написать
Код:
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("AllVariants", "")
честно? не помню, почему я так делал. возможно это есть и избыточность. а сравнивал я две конструкции в предыдущем посте: doc.GetItemValue("FieldName")(0) и doc.FieldName(0)
 
O

oshmianski

!!!Если в отчете поперемещать показатели вверх-вниз, то в Excel отчете заголовки столбцов путаются!!!
 
A

allex

У меня не лучшие впечатления.
Теже ошибки что перечислил ув. oshmianski 25:08:2006, 12:46
Идея сама по себе хорошая. Но зачем было делать алиасы для полей (по ним же отбор не идет)
И все же хотелось бы увидеть в данном проекте отбор по нескольким формам.
Я думаю,что сначала нужно сделать скелет а потом бантики прикручивать (это не моя критика, просто считаю так было бы лучше).


У меня не лучшие впечатления.
Теже ошибки что перечислил ув. oshmianski 25:08:2006, 12:46
Идея сама по себе хорошая. Но зачем было делать алиасы для полей (по ним же отбор не идет)
И все же хотелось бы увидеть в данном проекте отбор по нескольким формам.
Я думаю,что сначала нужно сделать скелет а потом бантики прикручивать (это не моя критика, просто считаю так было бы лучше).
 
O

oshmianski

...
И все же хотелось бы увидеть в данном проекте отбор по нескольким формам.
...
начал работу. завтра (если не случиться ничего сверхъестественного) выскажу основные соображения по этому поводу.
 
F

fedotxxl

Для: allex
Теже ошибки что перечислил ув. oshmianski 25:08:2006, 12:46
Часть исправлена, часть оставлена
Но зачем было делать алиасы для полей (по ним же отбор не идет)
Если это то, что я думаю - для отображения в хидере
И все же хотелось бы увидеть в данном проекте отбор по нескольким формам.
Мое мнение - unreal. По мне проще сделать отображение по вьюку. Там и форм сколько угодно, и настраивать проще...

Для: oshmianski
Я вот думаю, зачем тип столбца? Я бы лучше сделал функцию воздействия на информацию @ функциями... Предположим у нас альт имена... мы на инфу @names([CN];...)... Только как... Evaluate?
 
O

oshmianski

Для: oshmianski
Я вот думаю, зачем тип столбца? Я бы лучше сделал функцию воздействия на информацию @ функциями... Предположим у нас альт имена... мы на инфу @names([CN];...)... Только как... Evaluate?
Не путай тип, который используется для организации отбора, и тип для отображения данных.
Согласен, проект можно развивать дальше на предмет настройки отображения данных в отчетах.
Первая необходимость уже есть - форматирование данных. А еще что-нибудь на ум приходит?
 
F

fedotxxl

Обновленная версия... Исправил ошибку 1, "ошибку" 3. Небольшие эстетические усовершенствования. Сделал наброски для отбора по представлению (генерацию Excel отчета не трогал).
!!!Если в отчете поперемещать показатели вверх-вниз, то в Excel отчете заголовки столбцов путаются!!!
Проверь плс в этой версии
 

Вложения

  • Reports.rar
    136,5 КБ · Просмотры: 233
Мы в соцсетях:

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