Автор | Сообщение |
|
| постоянный участник
|
Пост N: 129
Зарегистрирован: 25.12.07
|
|
Отправлено: 10.03.08 23:53. Заголовок: ANN: Вышел релиз FastReport for [x]Harbour (продолжение)
|
|
|
Ответов - 268
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
All
[только новые]
|
|
|
| постоянный участник
|
Пост N: 1408
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.07.10 13:00. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Уже даже предчувствую, пытаюсь "разжевать": |
| Спасибо большое за понимание ! Коньяк за мной !
|
|
|
|
| постоянный участник
|
Пост N: 393
Зарегистрирован: 25.12.07
|
|
Отправлено: 09.07.10 14:46. Заголовок: Andrey пишет: Спаси..
Andrey пишет: цитата: | Спасибо большое за понимание ! |
| Спасибо, это хорошо. А проверить, как работает и работает ли?
|
|
|
|
| постоянный участник
|
Пост N: 1414
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.07.10 15:24. Заголовок: Сижу делаю ! Сегодня..
Сижу делаю ! Сегодня же сообщу....
|
|
|
|
| постоянный участник
|
Пост N: 1418
Зарегистрирован: 12.09.06
|
|
Отправлено: 11.07.10 16:34. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Спасибо, это хорошо. А проверить, как работает и работает ли? |
| Сделал тестовый пример ! Отправил вам на почту ! Вроде работает без проблем. Пере собрать проект на хХарборе - команда hbmake.exe Frh-Lang.bc
|
|
|
|
| постоянный участник
|
Пост N: 394
Зарегистрирован: 25.12.07
|
|
Отправлено: 14.07.10 00:28. Заголовок: Пересобрал с версией..
Пересобрал с версией 4.9.98 общую сборку. Включен, обсуждавшийся выше новый метод - :SetFormatSettings(nSetting, xValue).
|
|
|
|
| постоянный участник
|
Пост N: 1427
Зарегистрирован: 12.09.06
|
|
Отправлено: 15.07.10 18:35. Заголовок: Sergey Spirin пишет:..
Sergey Spirin пишет: цитата: | Пересобрал с версией 4.9.98 общую сборку |
| Спасибо большое. Скачал, буду подключать к своей системе !
|
|
|
|
| постоянный участник
|
Пост N: 78
Зарегистрирован: 27.07.08
|
|
Отправлено: 16.07.10 20:06. Заголовок: И ещё один вопрос по..
И ещё один вопрос по FastReport, очень важный. Как сделать чтобы сводная таблица разбивалась на несколько подтаблиц по группам. При этом реквизиты группы должны выпечатываться сверху, как в обычном табличном отчёте. Но нужно анализировать цену, которую требуют за задание несколько фирм. Сверху группировка по проектам и родам работ (сантехник, электрик и т.д. и т.п.) И чтобы в строку вылазили не все фирмы, а только те фирмы, которые отвечают за данный род работ. Чтобы было всё как в обычном отчёте, но с повторяющейся парой фирма-цена в одну строку несколько раз. Если удастся сделать то, о чём я прошу, тогда уже покупаем эту библиотеку.
|
|
|
|
| постоянный участник
|
Пост N: 1432
Зарегистрирован: 12.09.06
|
|
Отправлено: 16.07.10 21:29. Заголовок: Dr. Oldwarez пишет: ..
Dr. Oldwarez пишет: цитата: | Если удастся сделать то, о чём я прошу, тогда уже покупаем эту библиотеку. |
| Ну блин, Хотабыча нашли .....
|
|
|
|
| постоянный участник
|
Пост N: 396
Зарегистрирован: 25.12.07
|
|
Отправлено: 17.07.10 00:20. Заголовок: Dr. Oldwarez пишет: ..
Dr. Oldwarez пишет: цитата: | Если удастся сделать то, о чём я прошу, тогда уже покупаем эту библиотеку. |
| Так о чем просишь то? Я что-то не понял. Нужен отчет, так давай, пробуй, ваяй Судя, правда по мутному описанию, ничего сложного нет. Только группировки? Ну так, смотри простой пример с группами в демо, да и вперед Пробуй, спрашивай конкретику, если что не понятно. Ну, и естественно, не надейся, что кто-то что-то сделает за тебя
|
|
|
|
| постоянный участник
|
Пост N: 79
Зарегистрирован: 27.07.08
|
|
Отправлено: 17.07.10 09:08. Заголовок: Сложность в том, что..
Сложность в том, что на элемент DBCrossTab не действуют внешние группировки. Так если кладешь DBCrossTab на полосу MasterData, а сверх того даёшь группировку в полосе GroupHeader, то никакого дополнительного разбиения по группам в перекрёстной таблице не происходит. Можно в самой DBCrossTab делать Subtotals, но при этом условия группировки печатаются сбоку, а число фирм в строке зашкаливает, поскольку на один род работ фирм от силы 5-6, а всего их сотня.
|
|
|
|
| постоянный участник
|
Пост N: 397
Зарегистрирован: 25.12.07
|
|
Отправлено: 17.07.10 11:08. Заголовок: Dr. Oldwarez пишет: ..
Dr. Oldwarez пишет: цитата: | Сложность в том, что на элемент DBCrossTab не действуют внешние группировки |
| Я бы делал без КроссТаба. И все-таки, конкретика, сколько каких таблиц участвуют в отчете? Какие между ними отношения? И т. д.
|
|
|
|
|
| постоянный участник
|
Пост N: 80
Зарегистрирован: 27.07.08
|
|
Отправлено: 17.07.10 14:07. Заголовок: Отношения между табл..
Отношения между таблицами - многоуровневая иерархия, и, соответственно, многоуровневая группировка. На самом верхнем уровне - таблица проектов (капремонт, модернизация и т.д.) по тому или иному зданию. Дальше идёт группировка по профилю работ (сантехник, электрик и т.д. и т.п.) Основная таблица - таблица выполненных работ и расходных материалов. Например: сантехник - замена ванной. Ну и к ней подтаблица - различные фирмы и цены, которые они берут за ту или иную работу. Выбираем минимальную. А сложность заключается в том, что несколько пар фирма-цена нужно выпечатать В ОДНОЙ СТРОКЕ PROJEKT PROFIL_RABOT ==================================================================== POS_NUM POS_TEXT1 FIRMA FIRMA FIRMA .................................... POS_TEXT2 PRICE PRICE PRICE ....................................
|
|
|
|
| постоянный участник
|
Пост N: 398
Зарегистрирован: 25.12.07
|
|
Отправлено: 17.07.10 14:57. Заголовок: Dr. Oldwarez пишет: ..
Dr. Oldwarez пишет: цитата: | А сложность заключается в том, что несколько пар фирма-цена нужно выпечатать В ОДНОЙ СТРОКЕ |
| Ну если владеть инструментом, то ничего особенно уж сложного в этом отчете нет. Во-первых, группировок, по крайней мере в фастовском понимании здесь нет. Здесь типичный Master-Detail-SubDetail: PROJEKT - это мастер. PROFIL_RABOT - детэйл. Как установить MasterDetail отношение, надеюсь, труда не составит. И третий уровень, который будет вычисляемым - subdetail. Итак, третий уровень. Насколько я понимаю, пар "фирма-цена" нужно напечатать конечное количество? Например не более 3-х самых дешевых, это так? Просто в одну строку нельзя же напечатать неопределенное количество информации (вернее, это уже другой тип отчета с вертикальными бэндами). Если все так, то определим UserDataSet для третьего уровняЖ FrPrn:SetUserDataSet("Третий уровень", "POS_NUM;POS_TEXT1;POS_TEXT2;FIRMA1;PRICE1;FIRMA2;PRICE2;FIRMA3;PRICE3",; {|| PrepareData())} ,; {|| PrepareData())},; {|| },; {|| CheckEOF()},; {|cField| GetDSValue(cField)}) Идея понятна? Заведем массив из 9 элементов. Пишем функцию PrepareData() в которой этот массив текущей записи будем заполнять. Пишем функцию GetDSValue(), которая просто по имени поля будет отдавать соответствующий элемент массива. И CheckEOF() которая будет решать, пора ли переходить к следующей записи PROFIL_RABOT или есть еще что "поколбасить" на текущей. Надеюсь, что идея понятна, и не столь сложна в реализации
|
|
|
|
| постоянный участник
|
Пост N: 1433
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.07.10 17:14. Заголовок: Sergey Spirin пишет:..
|
|
|
|
| постоянный участник
|
Пост N: 81
Зарегистрирован: 27.07.08
|
|
Отправлено: 17.07.10 17:28. Заголовок: Я так и думал, что в..
Я так и думал, что всё сведётся к пользовательскому массиву и заполнению его данными на каждой строке. Число элементов на одну строку отчёта формата А4 всё равно жёстко ограничено. Цена имеет формат 10DEC2, плюс зазор в одну строку. А если учесть что длина главной таблицы достигает 5 тыс строк :LOL: то 5 тыс. раз опрашивать постороннюю таблицу - очень замедлит работу. Не проще ли сделать дополнительно поля FIRM1,FIRM2,FIRM3,... и, соотвестственно, PRICE1,PRICE2,PRICE3,.... Иногда ДЕнормализация имеет смысл. Есть ещё такая база данных -4D. Названа так, поскольку помимо классических двухмерных таблиц, поддерживает также вложенную таблицу SUBTABLE. Часто это бывает необходимо. Больше 5 цен всё равно не поместится, поскольку нужно ещё указать реквизиты задания. Печать бисером - не у всех хорошее зрение. ЗЫ. А вот про вертикальные бэнды я бы хотел поподробнее. Интересно, интересно.
|
|
|
|
| постоянный участник
|
Пост N: 1435
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.07.10 19:04. Заголовок: Sergey Spirin пишет:..
|
|
|
|
| постоянный участник
|
Пост N: 399
Зарегистрирован: 25.12.07
|
|
Отправлено: 17.07.10 23:32. Заголовок: Andrey пишет: А в д..
Andrey пишет: цитата: | А в дизайнере, нет такого формата, только (руб.) ! |
| Это вопрос к украинским локализаторам Это просто статичная строка в файле локализации. Смотри файл Ukrainian.frc, Значение ключа "fkNumber4", почему-то они решили оставить рубль Видимо тоскуют по Союзу
|
|
|
|
| постоянный участник
|
Пост N: 400
Зарегистрирован: 25.12.07
|
|
Отправлено: 17.07.10 23:42. Заголовок: Dr. Oldwarez пишет: ..
Dr. Oldwarez пишет: цитата: | Я так и думал, что всё сведётся к пользовательскому массиву и заполнению его данными на каждой строке. Число элементов на одну строку отчёта формата А4 всё равно жёстко ограничено. Цена имеет формат 10DEC2, плюс зазор в одну строку. А если учесть что длина главной таблицы достигает 5 тыс строк :LOL: то 5 тыс. раз опрашивать постороннюю таблицу - очень замедлит работу. |
| Дорогой, все в твоих руках, и это главное Как ты сделаешь доступ к этим данных в этой записи, так и будет. Сделаешь так, что будет тормозить, то виноват будешь только ты, а не FR Разговор же про 5 тысяч строк, которые будут тормозить - слышать смешно, хотя, чего только кривые ручки не добивались Dr. Oldwarez пишет: цитата: | ЗЫ. А вот про вертикальные бэнды я бы хотел поподробнее. Интересно, интересно. |
| Ну смотри, например: http://www.reportingfor.info/ru/news.php?extend.33.4<\/u><\/a>
|
|
|
|
| постоянный участник
|
Пост N: 82
Зарегистрирован: 27.07.08
|
|
Отправлено: 24.07.10 13:53. Заголовок: Так, был у шефа, шеф..
Так, был у шефа, шеф мне объяснил, что пока будет по другому и cross-table выпадает за ненадобностью. Впоследствии будет по-другому - с вертикальной группировкой главной таблицы. Так, что извините за ложную тревогу. А пока что один небольшой вопросик. Можно суммировать по группе, можно суммировать по странице, но при переходе на новую страницу сумма обнуляется. Как сделать, чтобы был перенос, т.е. сумма по всем строкам, печатаемая один раз в конце страницы, а потом, ещё раз - в начале следующей страницы то же значение. Не печатать его только на последней странице группы.
|
|
|
|
| постоянный участник
|
Пост N: 401
Зарегистрирован: 25.12.07
|
|
Отправлено: 26.07.10 14:18. Заголовок: Dr. Oldwarez пишет: ..
Dr. Oldwarez пишет: цитата: | Как сделать, чтобы был перенос, т.е. сумма по всем строкам.... |
| Там опция такая есть в диалоге агрегатов "Нарастающим итогом", в выражение подставляет двоечку третьим параметром. Ну и если нужно еще запоминать и на след. странице печатать, то просто запоминать в своей переменной, типа: var MySum: Variant; procedure Memo14OnAfterPrint(Sender: TfrxComponent); begin MySum := Memo14.Value; end;
|
|
|
Ответов - 268
, стр:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
All
[только новые]
|
|