Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FastReport

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93

Открыть новую тему     Написать ответ в эту тему

Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ramazan
Можно наследование применить. В базовом шаблоне весь основной функционал, а в наследниках только локализация.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 15:47 21-02-2017
Ramazan



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
Очень хочется избежать умножения шаблонов. Если в общем: задача - максимальное удобство сопровождения цикла жизни отчетов и их локализаций (т.е. шаблон отчета должен быть один), способ - изъятие всех локализуемых строк из отчета во внешнюю среду для перевода и заливка переведенных значений в шаблон перед генерацией. Проблема: все локализуемые строки в общем случае получить невозможно.  
Пока в голову лезут мысли переписать механизм XML-сериализации FastReport

----------
Per rectum ad...

Всего записей: 359 | Зарегистр. 13-04-2002 | Отправлено: 20:17 21-02-2017
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ramazan
Наверно в этот механизм можно добавить хуков, особенно если есть исходники фаста, но зачем? У вас есть готовый файл с XML, почему бы его просто не распарсить? Правда, в результате вы будете делать ровно то же, что делают наследники с родительским шаблоном.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 11:20 22-02-2017 | Исправлено: Frodo_Torbins, 11:22 22-02-2017
Ramazan



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
Да если бы этот XML был plain text! У разработчиков FastReport-a стояла задача сохранить и считать данные шаблона отчета. Published-свойства прекрасно сериализируются в XML-атрибуты, но что делать со свойствами, определенными через DefineProperty/DefineBinaryProperty? Просто в XML-узел такое не запихнешь, они и сделали запись таких свойств в поток, преобразовали этот поток в HEX-строку и обозвали все это атрибутом PropData. А там внутри лежат, например для TfrxChartView, описания серий, всякие Text-ы, Title-ы и Caption-ы, к которым и в runtime доступ получить непросто, не то что из файла. Вот и получается, что нужно как-то избавляться от PropData на уровне сохранения отчета, либо для всех сохраняемых объектов реализовывать некий интерфейс списка локализуемых свойств. И неизвестно, что хуже по трудозатратам.

----------
Per rectum ad...

Всего записей: 359 | Зарегистр. 13-04-2002 | Отправлено: 14:21 22-02-2017 | Исправлено: Ramazan, 14:22 22-02-2017
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ramazan
Если что то можно сохранить на форме, то его и в текст перевести можно: http://docwiki.embarcadero.com/CodeExamples/Berlin/en/ComponentToString_(Delphi) Я думал фасты на этом механизме сериализацию построили.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 17:29 22-02-2017
Ramazan



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
Именно на этом принципе я и думаю переписать сохранение/загрузку. Раз уж более-менее стандартными средствами решить не получается

----------
Per rectum ad...

Всего записей: 359 | Зарегистр. 13-04-2002 | Отправлено: 18:16 22-02-2017
Buldozer_and_Co



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вопрос к знающим: при загрузке отчета из блоб поля через LoadFromStream
прописываю название отчета в Report.FileName. Так вот если загружать отчет, а потом открывать дизайнер, то все нормально, (название отчета в "Caption" дизайнера пишется) но если загрузить другой отчет из дизайнера по событию OnLoadReport и поменять Report.FileName, то Caption дизайнера не меняется - то есть остается от предыдущего отчета. Или тоже из дизайнера сохранить как... , сохраняем в таблицу подставляем Report.FileName новое название, то опять же в Caption формы дизайнера все остается по старому. Как быть?
 
Добавлено:
`'
Цитата:
При построении отчёта вылетает  
 
Були виявлені наступні помилки:  
Memo: Помилка у вираженні ''КОМП'ЮТЕР'': ';' expected  
   
Как побороть апостроф в тексте из базы??  

 
Да тоже была проблема решил просто: заменил апостров на "`"- символ где тильда

Всего записей: 237 | Зарегистр. 10-01-2003 | Отправлено: 10:12 09-03-2017
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
С апострофом поможет AnsiQuotedStr. А баг с названием файла можно обойти, если через Screen.Forms найти окно дизайнера, и поправить заголовок самостоятельно.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 15:37 09-03-2017
Buldozer_and_Co



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
А баг с названием файла можно обойти, если через Screen.Forms найти окно дизайнера, и поправить заголовок самостоятельно.

Не баг, разобрался.

Всего записей: 237 | Зарегистр. 10-01-2003 | Отправлено: 20:34 10-03-2017
mo144

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток. Столкнулся с проблемой, может кто-то поможет? Есть программное обеспечение в которое интегрирован модуль FastReport (4.10.16). Прога установлена (стандартной утилитой установки программ на сервер) на Windwos Server 2008 R2, установлен сервер терминалов. Есть n-ое количество пользователей. Пользователь заходит на удаленку, запускает прогу, генерирует отчет, сохраняет в *.fp3. Время от времени приходится редактировать ранее сохраненные документы, а вот здесь возникает проблема. ПО преобразует свои чертежи в *.wmf, которые в последствии подтягиваются в отчет FR. Суть проблемы в том, что когда открываешь сохраненный файл *.fp3 в превью ВМФ-ка отображается, но при попытке редактировать в дизайнере пропадает, если сохранить, то пропадает и в превью. Но... если скопировать файл (на флешку, с удаленки на комп) и открыть к примеру в среде Windows 7 (XP), то ВМФ-ка отображается и в превью и в дизайнере. Может есть какие-то мысли/решения? Буду благодарен всем не равнодушным.

Всего записей: 2 | Зарегистр. 01-04-2013 | Отправлено: 00:11 14-03-2017
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
wmf - это формат зависимый от текущих настроек графики. Но как его сохраняет ваше ПО я не в курсе. Может он просто не совместим с текущими настройками RDP-клиента. Я бы советовал сохранять/конвертировать в PNG, с ним проблем будет в разы меньше.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 20:20 14-03-2017
sergavens

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток!
Столкнулся с проблемой округления НДС в FastReport: сумма построчно не совпадает на несколько копеек с суммой, вычисленной от итога, вычисленной как (Итог/118*18).
Проблема баянистая.  
Чаще всего её решают подгоном - подгоняя последнее значение, вычисляя его как разницу.
Как красиво это решить в FastReport?

Всего записей: 24 | Зарегистр. 04-01-2006 | Отправлено: 11:23 15-03-2017 | Исправлено: sergavens, 19:18 16-03-2017
exteris

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Как красиво это решить в FastReport?

В общем случае задача никак не решается, имхо.

Всего записей: 382 | Зарегистр. 14-04-2003 | Отправлено: 12:22 15-03-2017
Dronton2

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как красиво это решить в FastReport?

Я итоговую сумму вычисляю в хранимой процедуре на сервере БД.
Подгонка значений в последней строке опасна тем, что в этой строке может оказаться самый дешёвый товар. И после коррекции, его НДС будет сильно отличаться от 18%

Всего записей: 460 | Зарегистр. 27-06-2005 | Отправлено: 16:27 15-03-2017
mo144

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
как его сохраняет ваше ПО я не в курсе

 
Frodo_Torbins спасибо! Вы меня натолкнули на мысль. Все дело в том, что в WMF-ке присутствует текст. Как только я поменял кириллический шрифт на латинский - проблема решилась.

Всего записей: 2 | Зарегистр. 01-04-2013 | Отправлено: 00:29 19-03-2017
FunCode



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Доброго времени суток!  
Столкнулся с проблемой округления НДС в FastReport: сумма построчно не совпадает на несколько копеек с суммой, вычисленной от итога, вычисленной как (Итог/118*18).  
Проблема баянистая.  
Чаще всего её решают подгоном - подгоняя последнее значение, вычисляя его как разницу.  
Как красиво это решить в FastReport?

 

Цитата:
Подгонка значений в последней строке опасна тем, что в этой строке может оказаться самый дешёвый товар. И после коррекции, его НДС будет сильно отличаться от 18%

 
 
Решили ли проблему?
 
Если нет, то может рассмотреть вариант при первом проходе просчитать сумму НДС всех строк и запомнить строку с максимальным значением НДС. На втором проходе вычислить разницу между НДС в итоговой строке и подсчитанной суммой НДС в первом проходе. Скорректировать значение НДС в строке с максимальным НДС, вычисленным на первом проходе, на эту разницу.

Всего записей: 182 | Зарегистр. 22-10-2006 | Отправлено: 13:34 11-04-2017
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sergavens
Возможно у Вас проблема с округлением стандартным в среде. В Borland подобных средах используется банковское округление (даже при использовании форматирования), а не арифметическое округление. После замены на арифметическое округление проблемы не вижу в итогах у себя.
Хотя иногда это банковское округление дает пользу, чем минус.  
Например можете почитать вот тут - http://www.delphikingdom.com/asp/viewitem.asp?catalogID=1217
 
И да, расчет итогов советую все же переносить на сервера, меньше проблем будет.


----------
Холодильники мы

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 13:44 11-04-2017 | Исправлено: Cryogen2003, 13:49 11-04-2017
Dronton2

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cryogen2003
Проблема, как я понимаю, в следующем:
Пример:
покупатель купил 4 наименования товара.
чистая стоимость (без НДС) каждого товара = 99 коп.
НДС для каждого товара равна 99*0,18 = 17,82 коп. После округления = 18 коп.
Общая стоимость покупки без НДС = 99*4=396 коп.
Сумма НДС = 18*4=72 коп.
Общая стоимость покупки с НДС = 396+72=468 коп.
Проверяем, какой должна быть НДС от суммы 468 коп: 468/118*18=0,713898305084746. После округления = 71 коп. А это не равно сумме НДС по строкам (72 коп).
Причём, в данном примере все товары имеют одинаковую цену и стоимость. Какую строку подгонять - непонятно, т.к. будет видно, что при одинаковой стоимости всех наименований товаров, НДС одного товара будет отличаться от остальных.

Всего записей: 460 | Зарегистр. 27-06-2005 | Отправлено: 13:36 12-04-2017 | Исправлено: Dronton2, 13:44 12-04-2017
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Dronton2
Ну либо хранить больше, чем  2 знака после запятой. Либо как читал на каком-то сайте с решением примерно такой-же задачи, что округлять одну строку вверх, а другую вниз.  
Если нужна обязательная точность с точностью до копейки, то вариант только один - хранить все с точностью до трех, а лучше четырех знаков после запятой

----------
Холодильники мы

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 15:08 12-04-2017
Shaman2

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Если нужна обязательная точность с точностью до копейки, то вариант только один - хранить все с точностью до трех, а лучше четырех знаков после запятой

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

Всего записей: 358 | Зарегистр. 18-07-2003 | Отправлено: 00:04 13-04-2017
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FastReport


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru