Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FastReport

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93

Открыть новую тему     Написать ответ в эту тему

xy



ХУдератор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gpi
если в цикле делать так:
ColumnHeader := TfrxColumnHeader(Page);
....
Page.PreparePage(false);
ColumnHeader.Clear (или Free) - получаю AccessViolation :-/
 
не подскажете - когда и как правильно удалять бэнды :-?

----------
Счастливые мысли приводят к счастливой клеточной биохимии

Всего записей: 10530 | Зарегистр. 28-05-2003 | Отправлено: 11:12 25-10-2006
EvgenDM

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Очень нужно из отчета переинициализировать Датасет, то есть закрыть его, изменить параметры и открыть. Как это сделать?

Всего записей: 8 | Зарегистр. 21-04-2006 | Отправлено: 11:26 25-10-2006
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EvgenDM
MasterData1.DataSet.Close;
...
MasterData1.DataSet.Open;
xy
Вечером посмотрю. На работе нет Delphi

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 12:58 25-10-2006
EvgenDM

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Переинициализировать уже получилось через OnUserFunction, данные изменились, и MasterData их выводит, только последнюю запись повторяет до количества записей в первом запросе.  
То есть первая инициализация вернула
1
2
3
4
вывелось нормально
Вторая инициализация вернула
6
7
вывелось
6
7
7
7
Как объяснить бэнду, что количество записей изменилось?

Всего записей: 8 | Зарегистр. 21-04-2006 | Отправлено: 15:45 25-10-2006
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xy
перед циклом
frxReport1.EngineOptions.DestroyForms:=False; // чтобы не было AV
цикл
ColumnHeader := TfrxColumnHeader.Create(Page);  
....  
frxReport1.PrepareReport(false);  
ColumnHeader.Clear;  
конец цикла
EvgenDM

Код:
procedure Footer1OnAfterPrint(Sender: TfrxComponent);
begin
      MasterData1.DataSet.Close;
      ...
      MasterData1.DataSet.Open;
      while not MasterData1.DataSet.Eof do
      begin
        Engine.ShowBand(MasterData1);
        MasterData1.DataSet.Next;
      end;
end;

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 23:04 25-10-2006 | Исправлено: gpi, 23:17 25-10-2006
EvgenDM

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
извините, забыл сказать, что версия FastReport 2.54

Всего записей: 8 | Зарегистр. 21-04-2006 | Отправлено: 09:04 26-10-2006 | Исправлено: EvgenDM, 15:51 26-10-2006
EvgenDM

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У кого есть DOA для FastReport 2.54 ?

Всего записей: 8 | Зарегистр. 21-04-2006 | Отправлено: 15:52 26-10-2006
xy



ХУдератор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста можно ли как-то проще, чем через конструкции IIF сделать, чтоб отчет не печатал нули у целых и дробных чисел (просто пусто оставлял)
 
Ячеек много, не хочется в каждую IIF вписывать.. может можно как-то стили настроить :-?

----------
Счастливые мысли приводят к счастливой клеточной биохимии

Всего записей: 10530 | Зарегистр. 28-05-2003 | Отправлено: 13:23 27-10-2006
EvgenDM

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приведи пример, где конкретно нули?
 
Добавлено:
У меня появился еще один вопрос. Как правильно работать с встроенными в FR 2.5 Query? А точнее как туда во время выполнения отчета передать параметр?
типа в 'select :str from dual'  хочу изменить параметр :str

Всего записей: 8 | Зарегистр. 21-04-2006 | Отправлено: 13:37 27-10-2006
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xy
Memo.HideZeros=True
EvgenDM

Цитата:
Вопрос:  Как изменить параметр во встроенном запросе из скрипта?
Ответ
(можно ли написать что-то типа Query1.Params[0].Text := '10'?)  
Нет, но вы можете сопоставить параметру запроса переменную, и менять ее значение. При этом надо закрыть и открыть запрос:
Query1.Close;
MyParam1 := '10';
Query1.Open;

 

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 14:06 27-10-2006
shiko3000



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EvgenDM

Цитата:
 
У меня появился еще один вопрос. Как правильно работать с встроенными в FR 2.5 Query? А точнее как туда во время выполнения отчета передать параметр?  
типа в 'select :str from dual'  хочу изменить параметр :str
 
Хочешь изменить параметр или текст запроса?
Почему спрашиваю? Как мне кажется, параметр это когда 'select * from dual where str = :str'
 
А теперь мой вопрос:
  Нужно при щелчке по объекту типа TfrxMemoView на сформированном отчете изменять текст этого объекта и сохранять это изменение в БД.
У объекта отчета TfrxMemoView на событие OnPreviewClick повешан следующий обработчик:

Код:
 
  with Engine do begin
    mNote.Lines.Text:=TfrxMemoView(Sender).Text; {Заносим текст в объект Memo на форме fm_NoteAssm}
    fm_NoteAssm.ShowModal;
    if fm_NoteAssm.ModalResult = mrYes then begin
      TfrxMemoView(Sender).Text:=mNote.Lines.Text;
      Modified:=True;
      MyExecSQL('update xxx set xxx where xxx');
    end;
  end;
 
 
  Если открываю отчет через дизайнер отчетов (FR3.DesignReport) и делаю просмотр то все Ок!
  Если делаю просмотр через FR3.PreviewReport вылетает с ошибкой.  
Похоже что в этом случае из скипта невозможно обратиться к контролу на скрытой форме fm_NoteAssm. Или както нужно проинициализировать движок FR3 чтобы работало так же как через дизайнер. Может подскажите?
 
 
Добавлено:
Получается монолог Оказывается TfrxDialogPage похоже не предназначен для использования после формирования отчета. Поэтому обращение к диалоговой форме из сформированного отчета вызывает ошибку. Помог пример FastScript. Вот моя реализация, может кому пригодиться:

Код:
 
var
  f:TForm;
  mm:TMemo;
  bYes:TButton;
  bNo:TButton;
 
procedure mNoteAssmOnPreviewClick(Sender: TfrxView; Button: TMouseButton; Shift: Integer; var Modified: Boolean);
begin
  with Engine do begin
    f:=TForm.Create(nil);
    f.Position:=poScreenCenter;
    f.BorderStyle:=bsDialog;
    f.Caption:='Примечание Цеха';
    f.Width:=270;
    f.Height:=177;
 
    mm:=TMemo.Create(f);
    mm.Parent:=f;
    mm.Name:='mm';
    mm.Align:=alTop;
    mm.Height:=121;
    mm.Lines.Text:=TfrxMemoView(Sender).Text;
 
    bYes:=TButton.Create(f);
    bYes.Parent:=f;
    bYes.Name:='bYes';
    bYes.Caption:='Сохранить';
    bYes.Height:=25;
    bYes.Width:=75;
    bYes.Left:=186;
    bYes.Top:=124;
    bYes.ModalResult:=mrYes;
 
    bNo:=TButton.Create(f);
    bNo.Parent:=f;
    bNo.Name:='bNo';
    bNo.Caption:='Отмена';
    bNo.Height:=25;
    bNo.Width:=75;
    bNo.Left:=4;
    bNo.Top:=124;
    bNo.ModalResult:=mrNo;
 
    try
      f.ShowModal;
      if f.ModalResult = mrYes then begin
        TfrxMemoView(Sender).Text:=mm.Lines.Text;
        Modified:=True;
        MyExecSQL('update "vw_Requests" Rqst set Rqst."AssmNote" = '''+mm.Lines.Text+
          ''' where Rqst."ID_Request" ='+IntToStr(Sender.Tag));
      end;
    finally
      f.Free;
    end;
  end;
end;
 
 
procedure mNoteAssmOnBeforePrint(Sender: TfrxComponent);
begin
  with Engine do begin
    Sender.Tag:=<fqr."IDRqst">;
  end;
end;
 

Всего записей: 119 | Зарегистр. 18-06-2002 | Отправлено: 14:42 27-10-2006 | Исправлено: shiko3000, 21:49 27-10-2006
xy



ХУдератор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gpi
Спасибо вам огромное за помощь :)
 
можно еще вопросик:
есть отчет с сабрепортами, которые образуют собой матрицу
каждый сабрепорт имеет свою высоту и для красивой матрицы они организованы в рядки по childbandам
всё бы хорошо, но хочется каждый отчет обвести в рамочку (рамочки должны быть одинаковые по высоте самого высокого отчета
 
тут-то и засада, line и memo, организованные вокруг subreport не растягиваются почему-то при свойстве StretchMode = smMaxHeight
 
что-то я запутался

----------
Счастливые мысли приводят к счастливой клеточной биохимии

Всего записей: 10530 | Зарегистр. 28-05-2003 | Отправлено: 21:26 30-10-2006
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xy
На одном дочернем бэнде расположено несколько сабрепортов или один?

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 23:06 31-10-2006
xy



ХУдератор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gpi

 
Добавлено:
хотелосьбы каждый блок обвести в рамочку

----------
Счастливые мысли приводят к счастливой клеточной биохимии

Всего записей: 10530 | Зарегистр. 28-05-2003 | Отправлено: 23:33 31-10-2006
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xy
У сабрепортов установлено свойство PrintOnParent в True?

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 08:21 01-11-2006
xy



ХУдератор
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gpi
Понял, хэлп изучил.. спасибо!

----------
Счастливые мысли приводят к счастливой клеточной биохимии

Всего записей: 10530 | Зарегистр. 28-05-2003 | Отправлено: 09:42 01-11-2006
HOUPE

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день... али утро... али... вечер...али ночь.
 
Прога отправляет на SQL SErver запрос (время исполнения 1сек). Затем к данным привязывается пара справочников и выводится все в отчет.
 
 А теперь вопрос:
Может ли FR3 из-за этого виснуть? Всмысле данные выводятся нуу оччень уж долго(примерно 10 стр в сек, а всего их более 300) ? Можно ли как-нибудь ускорить этот процесс.  
Зарание спасибо.
 
 

Всего записей: 54 | Зарегистр. 15-08-2006 | Отправлено: 11:26 07-11-2006
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HOUPE

Цитата:
Затем к данным привязывается пара справочников и выводится все в отчет.  

Справочники привязываются уже на этапе формирования отчёта?

Цитата:
10 стр в сек

10 строк или страниц? Если страниц, то вполне нормальная скорость

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 11:52 07-11-2006
HOUPE

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gpi
Справочники привязаны к базе еще до формирования отчета.  
У меня существует два режима отчета: по критерию 1 общее количество страниц -  12(формируются примерно минуту), по критерию 2 - 250 страниц также примерно  минуту.
 
Если крит1=+, то группировка производится только по этому критерию
Если крит2=+, то группировка по крит1 и крит2  
 
количество записей в том и другом случае одинаково, различие в селектах только по сортировке данных.

Всего записей: 54 | Зарегистр. 15-08-2006 | Отправлено: 03:28 08-11-2006
gpi

Alone Wanderer
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HOUPE
А какое количество записей возвращает запрос?
Может лучше группировать данные по критерию 1 в самом запросе

Всего записей: 432 | Зарегистр. 30-05-2004 | Отправлено: 10:30 08-11-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » FastReport


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru