Tdbcrossview

отредактировано 11:26 Раздел: FastReport 4.0
надо напечатать график работы
выглядит это так: слева фамилии, сверху число месяца, в ячейкеах кол-во рабочих часов.

делаю так:
procedure DBCross1Cell0OnBeforePrint(Sender: TfrxComponent);
begin
  if strtoint(trim(TfrxMemoView(sender).text)) = 0 then                                         
    TfrxMemoView(sender).text := <frxDBDataset1."PWC_ALPHA_CODE">;
end;
всё бы ничего но когда кол-во часов = 0 вместо 0 нада подставлять "В" и тут компонента начинает ругатся, что это не число.


есть ли какойто вариант обхода?

+ дополнительный вопрос
прибегнул к такой конструкции
написал:
strtoint(trim(TfrxMemoView(sender).text)) = 0
изза того, что TfrxMemoView(sender).text возвращает строку с переносом.
следовательно TfrxMemoView(sender).text = '0' не применимо...

это глюк или так будет всегда?

Комментарии

  • gpigpi
    отредактировано 11:26
    Установите для ячейки агрегатную функцию=None
  • отредактировано 11:26
    subdigger написал: »
    + дополнительный вопрос
    прибегнул к такой конструкции изза того, что TfrxMemoView(sender).text возвращает строку с переносом.
    следовательно TfrxMemoView(sender).text = '0' не применимо...

    это глюк или так будет всегда?

    Да, так и должно быть.
  • отредактировано 11:26
    написал: »
    Да, так и должно быть.
    а собственно зачем, если не секрет?
  • отредактировано 11:26
    gpi написал: »
    Установите для ячейки агрегатную функцию=None
    это где?

    немогу найти
  • gpigpi
    отредактировано 11:26
    В редакторе кросса
  • отредактировано 11:26
    gpi написал: »
    В редакторе кросса
    нашёл . сделал так.
  • gpigpi
    отредактировано 11:26
    Может быть в ячейке установлено форматирование для числа?
    Выложите шаблон отчёта.
  • отредактировано 11:26
    gpi написал: »
    Может быть в ячейке установлено форматирование для числа?
    Выложите шаблон отчёта.
    это типа *.fr3?
  • gpigpi
    отредактировано 11:26
    да
  • отредактировано 11:26
    вот
    +
    как віглядит запрос
  • отредактировано 11:26
    procedure DBCross1Cell0OnBeforePrint(Sender: TfrxComponent);
    var
    Val: String;
    begin
    Val := trim(TfrxMemoView(sender).text);
    if ValidInt(Val) then
    if strtoint(Val) = 0 then
    TfrxMemoView(sender).text := <frxDBDataset1."PWC_ALPHA_CODE">;
    end;
  • отредактировано 11:26
    написал: »
    procedure DBCross1Cell0OnBeforePrint(Sender: TfrxComponent);
    var
    Val: String;
    begin
    Val := trim(TfrxMemoView(sender).text);
    if ValidInt(Val) then
    if strtoint(Val) = 0 then
    TfrxMemoView(sender).text := <frxDBDataset1."PWC_ALPHA_CODE">;
    end;
    заработало.
    я так понял проблема была не в присвоении а в сравнении...

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

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