FR4: feature list

2

Комментарии

  • отредактировано 16:26
    iTretyak написал:
    Сейчас приходится делать это самому (свой компонент). И уменьшение ширины букв при сохранении высоты дает отличные результаты - все прекрасно читается и влазит на лист.
    Можете выслать код на tz@fast-report.com? Попробую прикрутить.
  • отредактировано September 2006
    > 1. Возможность объединения соседних ячеек, если в них одинаковые данные (полезно при составлении расписания занятий).
    См рис
    >2. Возможность не дублировать одинаковые данные в одной ячейке
    Ячека состоит из 3 "этажей" - предмет, преподаватель, кабинет.
    Строки из БД
    История.Иванов.3114
    История.Петров.3114
    В ячейке д.б.
    История
    Иванов
    Петров
    3114

    а сейчас
    История
    История

    Иванов
    Петров
    3114
    3114

    >3. ЛЕВЫЙ-ВЕРХНИЙ угол
    Что вы все забыли в этом углу?
    НЕКРАСИВО , и несложно сделать
  • отредактировано 16:26
    pasko написал:
    Или опять придется добавлять эти возможности вручную, как я это делаю с FR3 постоянно с новыми релизами ;) И именно по этой причине мы не приобретаем Server.
    To pasko
    Дак вышли код разработчика может они добавят, если это не будет противоречит их возрениям, ну или хотя бы частично добавят.
  • отредактировано 16:26
    1.
    написал:
    3. ЛЕВЫЙ-ВЕРХНИЙ угол
    Что вы все забыли в этом углу?

    Обычный бухгалтерский отчет: Покупатель, номер дата договора, номер и дата партии, номер и дата документа и т.д., и это все без шапки, и объясняй где что. Существуют же еще и правила оформления отчетов. Для такого отчета
    (при большом RowHeader) необходимо также отдельно свойства RepeatRowHeader и RepeatColumnHeader, а не одно общее.

    2. По демо версии в экспорте в Exel (OLE) опять при разделении тысяч экспортируется как текст, а XML и без разделения тысяч текст. Будем надеятся, что это только демо.

  • отредактировано 16:26
    Экспорты пока не менялись - позже.
  • отредактировано 16:26
    Это хорошо что появилось что А3 можно печатать на 2 А4, а будет ли возможность печати А3 на 1ом А4 - это более нужно.
  • отредактировано September 2006
    2AlexTZ
    Так как по поводу CrossTab и HTMLCode?
    Если есть необходимость, могу выслать код.
  • отредактировано 16:26
    AlexTZ написал:
    Экспорты пока не менялись - позже.
    А КОГДА ПРОДАВАТЬ НАЧНЕТЕ - ТО ЭКСПОРТЫ БУДУТ УЖЕ ПОПРАВЛЕНЫ?
    иначе блин на такие грабли наступлю что мало не покажется.. бухгалетра просто убьют ;) не дайте погибнуть
  • отредактировано 16:26
    pasko написал:
    > 1. Возможность объединения соседних ячеек, если в них одинаковые данные (полезно при составлении расписания занятий).
    См рис
    >2. Возможность не дублировать одинаковые данные в одной ячейке
    Ячека состоит из 3 "этажей" - предмет, преподаватель, кабинет.
    Строки из БД
    История.Иванов.3114
    История.Петров.3114
    В ячейке д.б.
    История
    Иванов
    Петров
    3114

    а сейчас
    История
    История

    Иванов
    Петров
    3114
    3114

    >3. ЛЕВЫЙ-ВЕРХНИЙ угол
    Что вы все забыли в этом углу?
    НЕКРАСИВО , и несложно сделать
    Угол и Объединение ячеек сделал. По поводу 2 - все равно не понял, нужен рисунок.
  • отредактировано September 2006
    Результирующая ячейка состоит из нескольких "этажей". Основные - предмет, преподаватель, кабинет. (обведено)
    В БД стоят строки о расписании занятий
    Предмет:Фамилия:Кабинет
    История:Иванов:3114
    История:Петров:3114
    В стандартном варианте Предмет и кабинет попадает в верхний и нижний этаж по 2 раза (или больше, смотря сколько данных расчитано на эту ячейку)
    История
    История
    Иванов
    Петров
    3114
    3114
    А надо чтобы добавлялисьтолько, те данные которые отличаются от уже имеющихся (см. рис)
    История
    Иванов
    Петров

    3114

    я сделал это так
    FShowSame - св-во управляет: надо ли это учитывать повторы
    procedure TfrxCrossMatrix.AddValue(const Rows, Columns, Cells: array of Variant);
    var
      i: Integer;
      Row: TfrxCrossRow;
      Column: TfrxCrossColumn;
      Cell: PfrCrossCell;
      Value, v: Variant;
    begin
      if FRows = nil then Exit;
    
      if FNoColumns then
        Column := FColumns.Column([Null]) else
        Column := FColumns.Column(Columns);
      if FNoRows then
        Row := FRows.Row([Null]) else
        Row := FRows.Row(Rows);
    
      Cell := Row.GetCell(Column.CellIndex);
    
      for i := 0 to FCellLevels - 1 do
      begin
        Value := Cell.Value;
        v := Cells[i];
    
        if FCellFunctions[i] = cfCount then
        begin
          v := Cells[i];
          if v = Null then
            v := 0
          else
            v := 1;
        end;
    
        if Value = Null then
          Cell.Value := v
        else if (TVarData(Value).VType = varString) or (TVarData(Value).VType = varOleStr) then
        begin
          [B]if FShowSame or (pos(#13#10+v+#13#10,#13#10 + Cell.Value+#13#10)=0) then // МОИ
            Cell.Value := Value + #13#10 + v
        end
        else
          Cell.Value := Value + v;[/B]
        Cell := Cell.Next;
      end;
    end;
    
  • отредактировано 16:26
    Наконец то дождались: Заполнение левого верхнего угла у CrossTab.
    2 грида рядом синхронизированно вообще отлично.
    Еще добавить:
    1. Наименования у Cells.
    2. RepeatHeader отдельно для Row и Col (всего то 10 строк)
    3. HideIfSingleDataRecord для TotalRow (приходится в каждый отчет в скрипт проверку вставлять)
    и тогда цены CrossTab не будет.

    Замечания по CrossTab:
    при CelLevels=2, PlanCell=false, по 1 Cell выводить Итого, по 2 Нет
    GrandTotal по строкам обрезает строку по высоте (Не увеличивает высоту строки GrandTotal).

  • отредактировано 16:26
    >Еще добавить: 1. Наименования у Cells.
    Так есть ведь, объект в левом верхнем углу. Делать, как в других репортерах типа RB, когда наименования ячеек идут рядом с каждой ячейкой, не стал - некрасиво.
  • отредактировано 16:26
    Наименования Cells, например колонка разбита на 3 ячейки
    сейчас так:

    : Цех1 : Цех2 : Цех n :
    +
    : : : : : : : : : :
    : : : : : : : : : :
    : : : : : : : : : :

    а нужно так:

    : Цех1 : Цех2 : Цех n :
    +
    : Цена : Кол : Сумма: Цена : Кол : Сумма: Цена : Кол : Сумма:
    : : : : : : : : : :
    : : : : : : : : : :
    : : : : : : : : : :
    в большом отчете без названий тяжело ориентироваться.
  • отредактировано 16:26
    AlexTZ написал:
    Можете выслать код на tz@fast-report.com? Попробую прикрутить.
    Код выслал
  • отредактировано 16:26
    CrossTab два кросса рядом, если у первого кросса высота строк переменная,
    логично было бы у второго кросса синхронизировать высоту строк с 1 кроссом.
    (101.fr3, MaxWidth=50 и таблицы не стыкуются)
  • отредактировано 16:26
    Ну это уже забота разработчика отчета. Зачем нужны два кросса рядом? Либо это совершенно разные таблицы, либо таблицы с одинаковым набором строк и разными столбцами, которые как бы имитируют один кросс. В последнем случае надо устанавливать обоим таблицам одинаковые параметры отображения, чтобы строки у них имели одинаковую высоту.
  • отредактировано 16:26
    CrossTab
    А для чего тогда нужно свойство NextCross
    в 101.fr3, MaxWidth=50 (ширина колонки меньше ширины данных )
    стандартная ситуция, таблицы не стыкуются, что делать?

    В настоящиц мосент данное свойство (NextCross) можно использовать только при фиксированной высоте строк
  • отредактировано 16:26
    Во втором кроссе тоже поставьте MaxWidth = 50.
  • отредактировано 16:26
    AlexTZ написал:
    >Еще добавить: 1. Наименования у Cells.
    Так есть ведь, объект в левом верхнем углу. Делать, как в других репортерах типа RB, когда наименования ячеек идут рядом с каждой ячейкой, не стал - некрасиво.
    1. Я так и не понял есть ли возможность задавать шапки для Rows и Cells у Cross-Tab отчетов.
    2. Было бы неплохо выделить Cells в published свойство, чтобы можно было управлять шириной Cells в desing time. Т. е. если указал, например у этой Cells[Index] ширину 20 то 20 и никаких гвоздей.
    3. Ну нужен мне верхний левый угол - см. п. 1. Необходимо иметь возможность проставить наименования столбцов. Напривмер есть группировка по категориям, группам и товарам. Так вот юзер ОЧЕНЬ хочеть видеть в отчете что это Группа, это Категория, это - Товар. То же самое с Cells - ну ОЧЕНЬ хочет он видеть наименование столбцов, типа: Торгпред, Категория торговых точек, Клиент. Типа без этого помру и все.
    Нельзя ли это сделать?
  • отредактировано 16:26
    3- ну ведь есть же верхний левый угол. Что еще нужно?
  • отредактировано 16:26
    AlexTZ написал:
    3- ну ведь есть же верхний левый угол. Что еще нужно?
    Отлично, ну и п. 2 было бы тоже неплохо.
  • gpigpi
    отредактировано 16:26
    написал:
    Отлично, ну и п. 2 было бы тоже неплохо.
    А как в desing-time у кросса можно заранее определить число столбцов?
  • отредактировано 16:26
    AlexTZ написал:
    >Еще добавить: 1. Наименования у Cells.
    Так есть ведь, объект в левом верхнем углу. Делать, как в других репортерах типа RB, когда наименования ячеек идут рядом с каждой ячейкой, не стал - некрасиво.
    Я, понимаю, что я нудный.
    А нельзя ли мне как программеру решать нужен ли отдельные наименования для каждой Cells или нет. Да и причем в disign-time?
  • отредактировано 16:26
    AlexTZ написал:
    3- ну ведь есть же верхний левый угол. Что еще нужно?
    Скачал Demo для Delphi7.
    1. Убил старый Fastreport 3
    2. Убил пути
    3. Поставил новый.
    4. Создал новый проект.
    4.1. На форму бросил:
    frxReport1: TfrxReport;
    frxCrossObject1: TfrxCrossObject;
    frxDBDataset1: TfrxDBDataset;
    4.2. Связал frxDBDataset1 с источником у которого в дизайне заранее поменял свойства у Fields[Inxex].DispalyLabel на русские наменования (которые мне нужны).
    4.3. Зашел в дизайнер отчета.
    4.4. Добавил frxDBDataset1 в закладке Data
    4.5. Добавил MasterBand и связал его с frxDBDataset1
    4.6. Добавил на MasterBand DB Cross Tab объект
    4.7. Установил галоку в Data Tree -> Data -> Create caption.
    4.8. Накидал поля в DB Cross Tab объект.
    4.9. Сказал Ок.

    Что я вижу:
    1. Свойства Fields[Inxex].DispalyLabel, которые я так долго устанавливал не применились к заголовкам Cells.
    2. Ладно думаю, НЕХОРОШО, конечно, но мы пойдем своим путем. Два раза кликаем на заголовке какого либо Cells и получаем сообщение: Cannot change Visible in OnShow or OnHide. Жмем кнsge Ок. Попадаем в редактор свойства MemoView. Записываем туда что-нибудь. Жмем Ок. Получаем пустаю строку в заголовке. К стати тоже самое получается если щелкнуть в инспекторе объектов по свойству Memo.

    Вопросы
    1. Это фича Demo?
    2. Если это не фича то НАДО исправить.
    3. Стоит подумать о свойствах Fields[Inxex].DispalyLabel при включенной галочке в Data Tree -> Data -> Create caption.

    Все это необходимо пофиксить.


  • отредактировано 16:26
    1) Field.DisplayLabel в FR НЕ используется. Нужны русские имена - будьте добры, заполняйте алиасы у TfrxDBDataSet.
    2) cannot change поправили.
  • отредактировано October 2006
    Ошибка в CrossTab (FR 4 Demo для BDS 2006)

    Если сделать отчет без колонок (только строки и данные), неправильно рисуется заголовок (см. прикрепленный рисунок). Слева - когда колонка есть (все ок), если удалить колонку - получается ошибка (рис. справа)

    А за многострадальный "левый угол" - спасибо, это на самом деле очень нужная весчь!
  • отредактировано 16:26
    AlexTZ написал:
    1) Field.DisplayLabel в FR НЕ используется. Нужны русские имена - будьте добры, заполняйте алиасы у TfrxDBDataSet.
    2) cannot change поправили.
    1) Не очень понятно с чем это связано. По моим понятиям сделать это довольно просто.
    2) А вот это хорошо.
  • отредактировано 16:26
    1. Опять возвращаюсь к наименованиям у Cells, без этого приходится строить дурацкий SQL запрос, больше обычного на кроличетсво Cells в ячейке (в примере как сейчас и как нужно). По моему не сложно если CellLevel>1, то в зависимости от PlainCells добавить строку к ColumnHeader (или RowHeader) и разбить ее на CellLevel.

    2. Не получается изменять высоту строк в ColumnHeader, в 1 строке все в порядке, а на 2 высота увеличивается, если в несколько строк занести данные в GrandTotal, а при изменение CornerMemo высота не изменяется. И не совсем понятно у Header Мемо поля доступны в дизайнере, а ширину и высоту менять не получается.

    3. Пример 67.fr3 у GrandTotal (справа), ставлю галку на растягивание, итоги верхняя строка обрезаются. Если у days не выводить итоги, то обрезаются итоги у Salsry (Внизу)
  • отредактировано 16:26
    Сделал полноценные названия колонок.
  • отредактировано 16:26
    AlexTZ написал:
    Сделал полноценные названия колонок.
    1. Что имееется ввиду?
    2. И нельзя ли подумать о ширине отдельных Cells в design-time?

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.