Форум » » Управление форматом вывода » Ответить

Управление форматом вывода

Сергей: При использовании шаблона [%13.10f:summa] или [IF(summa>0; %13.10f:summa; 0] если summa=0 выводит целую очередь нулей, как побороть эту проблему, нужно именно 10 (или от 3 до 10) знаков после запятой, и когда нет данных - пустая строка (запись) P.S. (user=melnik@sat.poltava.ua)

Ответов - 12

galkud: Попробуйте [% 13.10g:amount] Генератор поддерживает форматы %[flags] [width] [.precision] [{h | l | ll | I | I32 | I64}]type Описание в MSDN http://msdn.microsoft.com/en-us/library/56e442dc.aspx flags = blank (' ') Prefix the output value with a blank if the output value is signed and positive; the blank is ignored if both the blank and + flags appear. type = g Signed value printed in f or e format, whichever is more compact for the given value and precision. The e format is used only when the exponent of the value is less than –4 or greater than or equal to the precision argument. Trailing zeros are truncated, and the decimal point appears only if one or more digits follow it. смотрите шаблон formats.sab описание doc\formats.rtf http://genrep.net/formats.htm Формат: [%13.10f:amount*0] Результат: 0.0000000000 Не печатать ноль: %<пробел>.2f (пустая строка) Ведущие нули: %013.10f Если пишем [%<пробел>f:amount] Не печатается ноль, точность по умолчанию 6

Сергей: Весьма благодарен. Помогло [%<пробел>13.10f:amount], параметр g - тоже пригодится. Не обратил внимание на ПРОБЕЛ в описании

Сергей: возможно ли использование [SUM:сумма] в конце каждой страницы, или как можно организовать такой подход в шаблоне


galkud: Реализация подитога на каждой странице специально не предусмотрена. Обычно решается добавлением в запрос нового поля например pageno , заполнением его номером страницы и введением по нему группировки с использованием тега [_page_] для принудительного перевода страницы (страницы придется самому считать) т.е. [<file.dbf] [<pageno] [<Detal] ..... [Detal>] [pageno>] [SUM:сумма] [_page_] [file.dbf>]

Сергей: Спасибо, попробовал, получилось. Но при таком подходе "шапка" не переходит на следующую страницу. Это особенности тега [_page_] или я что-то упустил?

AlexK: Нет просто происходит разрыв таблицы Как вариант вставить новый заголовок после [_page_] также есть проблема с последней страницей

galkud: Genrep поддерживает передачу управляющей последовательности rtf из текстового поля "{bsl}" = "\" "{bsl}page " = "\page " "{bsl}line " = "\line " 1. Для вывода перевода страницы по условию выполняйте перевод страницы из своего поля, например [myPage] в подготовленном DBF заполняйте поле myPage по Вашему условию, например через каждые 20: * Вывод перевода страницы через каждые 20 строк детализации в отчете select myTable i=0 scan all i =i+1 replace myPage with iif( i=20,"{bsl}page ","") if i=20 then i = 0 endifendscan в шаблоне: [<myTable.dbf] [<Detal] [Name] [feild2] [feild3] [feild4] [feild5] [myPage] [Detal>] [myTable.dbf>] 2. Для вывода перевода страницы с использование [_page_] * Вывод перевода страницы через каждые 20 строк детализации в отчете * с использование [_page_] select myTable i=0 p = 1 scan all i =i+1 if i=20 then p = p + 1 i = 0 endif replace myPage with p endscan в шаблоне группировка по myPage: [<myTable.dbf] [<myPage] [<Detal] [Name] [feild2] [feild3] [feild4] [feild5] [Detal>] [_page_] [myPage>] [myTable.dbf>]

Сергей: Попробовал разные варианты. "{bsl}page" не срабатывает, если поле является частью прорисованной в шаблоне таблицы, срабатывает только как самостоятельный параметр. [_page_] нужно прописывать только в шаблоне, но он срабатывает в конце таблицы и если дальше следует ещё какая-то информация, она переноситься на следующую страницу и это не удобно. Пришлось комбинировать оба варианта добавив два поля NumPage и EjectPage. Первый заполняю номером страницы, а второй - перевод страницы через определенное количество строк. select MyTable _Scan=1 _NumPage=1 _LENGTH=60 scan repl NumPage with _NumPage, EjectPage with iif(_Scan=_LENGTH,"{bsl}page","") if _Scan=_LENGTH _Scan=1 _NumPage=_NumPage+1 endscan в шаблоне группировка по NumPage и перевод страницы по моему условию EjectPage: [<MyTable.dbf] [<NumPage] [<Detal] [Name] [field1] [field2] [field3] [field4] [Detal>] * конец страницы или конец таблицы - программирую свои действия [EjectPage] [NumPage>] [MyTable.dbf>] Чтобы "шапка" была на каждой странице её надо повторить после [EjectPage]. Единственный недостаток - она появится и в конце таблицы Если будут какие-то соображения пишите.

Сергей: Возможно ли использование нескольких баз при создании шаблона в Excel? При использовании двух баз в шаблоне Excel у меня выдает ошибку, в MsWord это проходит.

galkud: Сергей пишет: При использовании двух баз в шаблоне Excel у меня выдает ошибку Исправлено

Сергей: Если поле даты в базе пустое в ведомость выводит точки. Есть ли возможность их убрать, или надо прописывать значение даты в символьное поле.

AlexK: Нет ничего для того, чтобы не выводить точки не предусмотрено Можно будет добавить формат для этого, если очень актуально



полная версия страницы