На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
15 мая "Исходники.РУ" отмечают 20-летие присутствия в сети!
Поздравляем всех причастных и неравнодушных с юбилеем сайта!
И огромное спасибо всем, кто был с нами все эти годы!
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> FastReport, Вопросы новичка
    Я с FastReport раньше не работал, но уже понемногу начинаю разбираться. Хотя до решения задачи еще далеко.
    В папке Demos\PrintStringGrid лежит пример, который как раз выполняет такую задачу какую мне нужно. Но у меня появилось несколько вопросов:
    1. Заполнение отчета из StringGrid'a происходит в событии frxReport1BeforePrint. Тип данных, которые по умолчанию передаются в отчет - числовой. Как только пытаюсь передать вместо числа строку, то ругается на несоответствие типов между числовым и строковым. Скорее всего как-то надо тип значения ячейки выставить. Как это сделать?
    2. Мне нужно в некоторых ячейках (в хедере) сделать вертикальное расположение текста. Точно знаю что FastReport поддерживает такую возможность. Только опять же, как добраться до этого свойства?
    3. Как можно объединить некоторые ячейки таблицы?
    Если решение этих вопросов где-нибудь уже рассматривалось, ткните носом. Обыскал немало сайтов, но нигде не нашел.

    Добавлено
    P.S. моя задача - составить отчет из данных, которые находятся в StringGrid (базу данных не использую)
    Бывают такие минуты, когда все решают секунды и длится это часами...
      сходу:
      2. У мемок есть св-во Rotation

      Добавлено
      в примере, в кросс-отчёт передаются строки со стринггрида в чём грабли не понятно...
        1. Передавай строковые значения в кавычках
        "- Welcome to the United States!
        - Сэнк ю вэри мач!......вот уроды!" :)
          С этими вопросами разобрался, спасибо. Есть еще один вопрос.
          У меня в отчете заполняется таблица. У таблицы есть заголовок. Этот заголовок я заполняю так же как и другие ячейки таблицы. Как правильно делается с помощью FastReport, чтобы если таблица размещается на 2х и больше страницах, то чтобы заголовок таблицы отображался на каждой странице?
          Бывают такие минуты, когда все решают секунды и длится это часами...
            У заголовка есть параметр PrintOnNewPage кажется. Значение его поставить истина.
              Скорее всего я несовсем правильно построил отчет. Хидэр таблицы должен быть отдельным компонентом (frxCrossView). У меня же все данные выводяться в один и тот же компонент (см. изображение). Правильно я понимаю, нужно хидэр в отдельный компонент выводить?

              user posted image
              Бывают такие минуты, когда все решают секунды и длится это часами...
                Paul_K, спасибо, разобрался. Надо было добавить еще один бэнд и на него добавить кросс и выставить правильные свойства.
                Бывают такие минуты, когда все решают секунды и длится это часами...
                  Shad0FF Да не за что.
                    У меня тут еще один вопрос появился. Строю таблицу и в событии OnPrintCell изменяю свойства Memo.Frame.LeftLine.Color чтобы убрать линию у всех ячеек, которые слева у таблицы. А вот как можно убрать правую линию у всех ячеек, которые справа. Для этого надо знать количество столбцов, чтобы сравнить его с переменной ColumnIndex. Как лучше всего узнать количество столбцов таблицы?
                    Бывают такие минуты, когда все решают секунды и длится это часами...
                      Скрин для наглядности. Слева линию убрал, т.к. знаю индекс столбца (индекс равняется 0), а вот справа индекса последнего столбца незнаю, т.к. количество столбцов может быть разное.

                      user posted image
                      Сообщение отредактировано: Shad0FF -
                      Бывают такие минуты, когда все решают секунды и длится это часами...
                        а вы её что динамически строите, таблицу?
                          Цитата Игорь Акопян @
                          а вы её что динамически строите, таблицу?

                          Динамически. Но я уже догадался, как это можно сделать. Для этого нужно у всех ячеек изменить свойство Memo.Frame.RightLine.Color = clWhite;
                          Появился еще один вопрос. Строю таблицу отдельно и на каждом листе вывожу ее заголовок (исп. PageHeader), если она не влазит на один лист. Но иногда ширина одного из столбцов таблицы выставляется автоматически, т.к. текст ячейки не вмещается в заданную ширину. А эта же колонка в таблице-хэдэре остается прежней по ширине. Как можно уже после построения первой таблицы и во время построения второй (хэдэра) узнать ширину нужной мне колонки в 1й таблице?
                          Бывают такие минуты, когда все решают секунды и длится это часами...
                            Всем привет. Прошу помощи в следующем вопросе. Есть форма Form4, на ней Button1, frxReport1, frxDialogControls1.
                            Код в Delphi следующий
                            ExpandedWrap disabled
                              unit Unit4;
                               
                              interface
                               
                              uses
                                Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
                                Dialogs, frxDCtrl, frxClass, StdCtrls;
                               
                              type
                                TForm4 = class(TForm)
                                  Button1: TButton;
                                  frxReport1: TfrxReport;
                                  frxDialogControls1: TfrxDialogControls;
                                  procedure Button1Click(Sender: TObject);
                                private
                                  { Private declarations }
                                public
                                  { Public declarations }
                                end;
                               
                              var
                                Form4: TForm4;
                               
                              implementation
                               
                              {$R *.dfm}
                               
                              procedure TForm4.Button1Click(Sender: TObject);
                              begin
                                 frxReport1.ShowReport();
                              end;
                               
                              end.


                            в FastReport (v.4.9), соответственно, тоже форма и кнопка. Код следующий
                            ExpandedWrap disabled
                              procedure Button1OnClick(Sender: TfrxComponent);
                              begin
                                ShowMessage('Hello world!');  
                                DialogPage1.ModalResult:=mrOk;                                                
                              end;
                               
                              begin
                                DialogPage1.ShowModal;
                                Engine.StopReport;                                        
                              end.

                            при вызове диалога кнопка не реагирует, обработчик не срабатывает. Если убрать в FastReport-е строку Engine.StopReport, тогда при закрытии формы она снова появляется, и обработчик УЖЕ РАБОТАЕТ.
                            Может я чего-нибудь не так делаю. Пишу сие для вызова из DLL. Пробовал на C++Buildere - тоже самое. Спасибо.
                              Цитата Syslik @

                              Вопрос закрыт, проблема была в версии FastReport. Поставил 4.12, заработало. Спасибо.
                              1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                              0 пользователей:


                              Рейтинг@Mail.ru
                              [ Script Execution time: 0,1170 ]   [ 15 queries used ]   [ Generated: 26.05.20, 08:39 GMT ]