Можете выложить базу, на которой эта ошибка воспроизводится ?
Напишите в каком поле отчета стоит неправильная цифра и что там должно быть при правильном округлении ?
В отчетах действительно могут быть ошибки округления. Чтобы это было исправлено, напишите на горячую линию в каких отчетах и какие поля неправильно округляются.
"ПРОТОКОЛ ЭКСПОРТА НАКЛАДНЫХ" - это НЕ отчет FastReport-а (шаблона такого нет), а просто текстовый файл, который формируется программой. Изменить его может только программист.
Вы на рисунке совершенно правильно в правом верхнем углу выделили палитру выравнивания. Ей и надо пользоваться в первую очередь. Выделяете несколько объектов и нажимаете нужную кнопку. Если, например, нажать кнопку "выровнять левые края", то у всех выбранных элементов свойство Left станет таким же, как у ПЕРВОГО отмеченного. Можно ещё использовать клавишу Alt со стрелками для "приклеивания" поля к ближайшему с соответствующей стороны. Например, Alt+"стрелка влево" передвинет текущее выделенное поле таким образом, что его левый край будет выровнен по правому краю ближайшего слева объекта. Масштаб в дизайнере увеличить нельзя. А для того, чтобы случайно мышкой не сдвигать правильно поставленные объекты можно у них в свойстве Restrictions установить галочку "не перемещать".
На демо-базе эта проблема не воспроизводится. Да и отчет всего двухпроходный. Откуда там может взяться 4 и 5 проходов? Лучше напишите этот в хотлайн вместе с базой, на которой можно посмотреть ошибку.
Строку:
DataSet1.Params['cTitleToExcel'] := ''
замените на:
DataSet1.Params['cTitleToExcel'] := FIRM('LBL_NAME') + '###' +
'Сводная оборотная ведомость за период с '+ FORMATDATETIME('dd.mm.yyy',[DataSet1.Params['dBP']]) +
' по ' + FORMATDATETIME('dd.mm.yyy',[DataSet1.Params['dEP']]);
Следующие две строки можно закомментировать, чтобы в отчет не выводились пустые строки:
// DataSet1.Params['cFilterToExcel'] := '';
// DataSet1.Params['cFilterToExcel'] := DataSet1.Params['cFilterToExcel'] + '###';
Получится не совсем красиво - название предприятия будет выводится по центру строки. Можно прижать и к левому краю, но для этого надо дорабатывать фоксовый источник.
База нужна, хотя бы одна. Возможно, что во всех 20 базах одна и та же "особенность". Попробуйте посмотреть, может быть ошибка получается из-за того, что есть разные документы с одинаковыми номерами в файле doc51 (и rsdoc). Если ошибка получается из-за этого, то для исправления пишите в техподдержку: Личный кабинет ВАШ Период оплаты - это поле rsdoc->Nalog_Srok (если Вы работаете в "Финансы 2007").
Для того, чтобы разобраться с задвоением строк нужна Ваша база. Скорее всего здесь проблема в данных, а не в построении запросов.
Не очень понятно какую дату Вы называете "датой КБК", но сейчас отчет формируется по дате операции в проводках. Конечно, есть возможность создать пользовательский источник и пользовательский отчет, который будет делать выборку по тем датам, которые Вас больше устраивают.
Видимо это ошибка FastReport-а при прорисовке отчета. У нас во всех отчетах с картинками свойство "растягиваемый" установлено.
Если размеры картинки увеличить так, чтобы прямоугольник с текстом полностью лежал на картинке, то текст будет виден, но только для первой записи. Может можно в Вашем случае изменить размеры самого объекта "рисунок" таким образом, чтобы с установленным свойством "растягиваемый" рисунок выглядел приемлемо?
1. На стр.5 Вашего отчета по кнопке "Выполнить", есть переменная GlobalMask, которая определяет вывод точности знаков после запятой для стоимостных полей. Вместо текущего значения, укажите следующую строку: GlobalMask := '#,##0.###;; '; Это позволит вывести три знака после запятой, как Вы и хотели.
2.Вывод в Excel "напрямую" в двух словах описать не получится. Можете попробовать сделать по аналогии с каким-нибудь другим отчетом из того же АРМа, если сможете самостоятельно разобраться.
3. Для вывода сортировки по наименованию, у основного источника DataSet1 есть свойство cSorting. Передайте этому свойству значение сортировки, например так : DataSet1.Params['cSorting'] := 'LNM' и вывод данных пойдет по наименованию номенклатуры. Параметры источника устанавливаются по кнопке "Выполнить" на стр.5.
Источник bdf.contract_rep.contract_rep_reestr требует ввод обязательных параметров, таких как Тип_сделки (1-закупка/2-продажа), Дата_начало, Дата_конец. Т.е. источник отработает только по определенному виду сделки и за определенный период. Связь источника с партнером можно осуществить по параметру "Код_контрагента". Для этого нужно передать данному параметру ID партнера. ID партнера можно взять из основного источника отчета "Справочник партнёров" bdf.sprav.sprav_partner. Вн_код_партнера.
В инструкции по FastReport 2 написано, что подтянуть картинку можно через поле таблицы - свойство DataField. Так в БЭСТе и сделано (в шаблоне "Счет на оплату" из приложения Продажи.Клиенты). Другой способ нам (разработчикам) неведом.
Подцепить картинку по указанному пути можно только в FastReport 4. Там есть специальное свойство FileLink и туда прописывается путь к картине, например, "C:\picture.bmp".
Поскольку Вы не написали о каком отчёте конкретно идет речь, то и сказать что-то конкретное тоже затруднительно. Секция мастер дата в шаблоне отчёта привязывается к источнику данных (как правило). Она в отчете будет выводится столько раз, сколько строк в этом источнике. Если поля отчета располагать не на секции MasterData, а на "пустом месте", то они будут выведены один раз только для первой записи того источника, поле из которого привязано к полю отчета.
Можно указать, что MasterData привязан к "виртуальному" источнику. В этом случае жестко задается количество записей этого виртуального источника (то есть сколько раз вывод MasterData будет повторён в отчете). Вполне возможно, что в Вашем примере самый нижний MasterData как раз и привязан к виртуальному источнику с количеством записей = 1. То есть он выведится один раз в конце отчета - это будет подчеркивание внизу таблицы. Пустые секции MasterData иногда используются для вывода отчета, который состоит только из заголовков групп. В этом случае все поля размещаются на секции GroupHeader (GroupFooter), а у MasterData свойство Visible устанавливается в значение False.
А не подойдет такой вариант. Пишите на VFP новый источник, который в параметре будет принимать текстовую строку и в методе OpenArea записывать её в текстовый файл (или в DBF). В шаблоне отчета в методе Click на кнопке Ok устанавливаете требуемое значение этого параметра, а потом открываете (и закрываете) источник. Если в файл надо записать не одну, а много строк, то передачу параметра, открытие и закрытие источника можно сделать в цикле.
Если Вы установили свойство FillColor = clTransparent, то фон будет прозрачным при выводе отчета на Preview или на печать. В самом дизайнере прозрачности Вы не увидите. Это такая особенность работы FastRepotr-а.
1. Проблема невывода в две колонки возникает скорее всего не из-за самого ChildDohod, а из-за программных скриптов в событиях, в которых в Вашем варианте оказывается много чего "лишнего". Всё это "лишнее" надо вычищать.
2. Переход на новую колонку можно организовать при помощи функции NEWCOLUMN() в сочетании с [FREESPACE]. Например в событии OnBeforePrint секции MasterData написать так:
if [FREESPACE] < 300 then begin
NEWCOLUMN();
end;
3. Есть ещё один способ сделать расчётный листок в две колонки. В источнике DS_Head в параметре pNumCols указать значение 2. Тогда у этого источника появится как бы два набора полей (у "вторых" полей имена будут заканчиваться на "_2"). В шаблоне отчёта в этом случае количество колонок указывать не надо, просто продублировать для второй колонки те же поля, что и для первой, но привязать туда поля, оканчивающиеся на "_2". Но источник DS_STR в этом случае придётся продублировать и для каждого из двух DS_STR-ов сделать свой подотчёт, который выводить в соответсвующей колонке. Вообщем, этот способ требует существенной переделки шаблона отчёта.
В языке программирования отчетов БЭСТ функции склонения по падежам фамилий, имён и отчеств нету. Её либо надо писать самостоятельно (но не все фамилии склоняются по правилам склонения), либо (если куплено приложение КАДРЫ) можно найти по ФИО сотрудника в файле KADRY\CARDSSEC.DBF и взять там значения полей FIO_R (родительный) FIO_D (дательный) или FIO_V (винительный).
Теоретически можно, но не видя Вашего отчета трудно посоветовать конкретный способ.
Варианты могут быть следующие:
1. В меню Файл->Параметры страницы->закладка Параметры, можно указать кол-во колонок.
2. В секции MasterData можно установить количество колонок в свойстве Columns и ширину каждой колонки в свойстве ColumnWidth
3. Можно попробовать разбить на колонки при помощи вложенных отчетов: для каждой колонки надо будет сделать свой вложенный отчёт.