Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Отражение данных из формы в FR


Автор: Ateh 22.12.2004, 11:23
Т.е. мне нужно, чтобы данные (напр., из DBLookupComboBox) динамически изменяющиеся в форме отражались в FR. Это легко сделать в Access-е (=Forms!Students![Поле6]), а как это указывается в FR?

Автор: Alex 22.12.2004, 11:32
Код

 frDBDataSet1.RangeBegin:= rbCurrent;
 frDBDataSet1.RangeEnd:= reCurrent;

Автор: Ateh 22.12.2004, 12:11
Sorry, что-то я не понимаю... Где это пишется и нужны ли какие-нибудь дополнительные компоненты ( на форме-источнике или на форме, где находится отчет)? Можно ли передать данные Label ?

Автор: Alex 22.12.2004, 12:30
Вы определитесь, откуда вы хотите данные взять из базы данных или из переменных.

Автор: Ateh 22.12.2004, 12:44
Хм, значение из формы. Условие именно это. Например, в Edit мы ввели, скажем, номер приказа в форме, ShowReport и в FR должен отражается этот номер (не будем хранить в базе). Вот такая задачка.

Автор: Dimich 11.1.2005, 16:10
В программе:
Код

Uses ...., frxVariables;

Var
 Variable : tfrxVariable;

begin
  .....
 Variable := frxReport1.Variables.Add;
 Variable.Name := 'MyNewVar';
 Variable.Value := '''' + Edit1.Text + '''';
  .....
 frxReport1.ShowReport;
  .....
end;
а в отчете как обычно обращаемся к этой переменной: [MYNEWVAR]

Стоит обратить внимание:
Variable.Value := '''' + Edit1.Text + '''';
кавычки нужны для строковых переменных!!!

Автор: Nilek 19.9.2006, 13:49
Цитата(Dimich @ 11.1.2005,  16:10)
В программе:
Код

Uses ...., frxVariables;

Var
  Variable : tfrxVariable;

begin
   .....
  Variable := frxReport1.Variables.Add;
  Variable.Name := 'MyNewVar';
  Variable.Value := '''' + Edit1.Text + '''';
   .....
  frxReport1.ShowReport;
   .....
end;
а в отчете как обычно обращаемся к этой переменной: [MYNEWVAR]

Стоит обратить внимание: 
Variable.Value := '''' + Edit1.Text + '''';
кавычки нужны для строковых переменных!!!

 smile  что то у меня не получется. Объявила переменную в FR (Report\Variable) с именем Title_period. Вывела ее в заголовке - [Title_period].
В Delphi прописала код 
Код

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, frxClass, StdCtrls, DBCtrls, ExtCtrls, ComCtrls, frxDBSet, DB,
  CheckLst, ADODB, frxVariables;

var
  f_Balans: Tf_Balans;
  Variable: TfrxVariable;

procedure Tf_Balans.Button1Click(Sender: TObject);
begin
  Screen.Cursor := crHourGlass ;
     DBLookupComboboxEh1.KeyValue:=Trim(DM.v_N_month.FieldValues['period']);
     DM.v_period.Filter:='period='+
     DM.v_N_month.FieldByName('period').AsString
         +' and t_cwar='+ TRIM(Edit1.Text);
     DM.v_period.Filtered:=True;

   ......

     DM.p_BALANS.Open;

     Variable:=frxReport1.Variables.Add;
     Variable.Name:='Title_period';
     Variable.Value:='''' + DBLookupComboboxEh1.Text + '''';

     frxReport1.ShowReport;

  Screen.Cursor := crDefault ;
end;


.... но видимо где то обшиблась ...  smile  вылетает ошибка при нажатии кнопки запуска отчета из приложения.
 smile 


Автор: RideX 27.9.2006, 09:55
Вот пример:

Код в Delphi
Код

var
  frxDiscount: TfrxVariable;
begin
  frxDiscount := frxReport1.Variables.Add;
  frxDiscount.Name := 'nDiscount';
  frxDiscount.Value := nDiscount;
end;



В текстовых объектах FastReport
Код

// Сумма: memVsego(TfrxMemoView)
[SUM(<frxDBDataset."Цена">)]

// Сумма скидки: memDiscount(TfrxMemoView)
[round(memVsego.Value / 100 * <nDiscount>)]

// Итого: memItog(TfrxMemoView)
[memVsego.Value - memDiscount.Value]


Сразу не заметил, что:
Цитата

Объявила переменную в FR (Report\Variable)

В коде её ещё раз добавляешь, не нужно тогда объявлять её в отчёте.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)