FastReport: программное изменение формата поля

vislex
Дата: 26.02.2003 22:21:00
Здравствуйте!

С FastReport`ом работаю недавно, подскажите пожалуйста как в отчете при печати каждой строки в MasterData анализировать значение одного поля (Valuta) и в зависимости от него изменять формат отображения значения другого поля (Summa)? Нужно для того, чтобы знать какой знак выводить после суммы - $ или р.

С Уважением,
Алексей
tygra
Дата: 27.02.2003 11:39:01
В каждом Memo-поле есть нижняя часть при редактировании - она является событием OnBeforePrint. Вот там можно проверять и устанавливать все, что нужно.
vislex
Дата: 27.02.2003 18:01:37
Про это событие я в курсе, синтаксис команд я не знаю, все что я пробовал не получается.
tygra
Дата: 27.02.2003 18:57:25
Напиши типа того:
где данные - [имя_поля_с_деньгами][v]

//v - переменная
.. в обработчике
if Поле_Где_ТИп_Валюты = 1 then v := 'руб' else v := 'бакс'
tygra
Дата: 27.02.2003 18:57:55
и точку с запятой в конце строки ;
vislex
Дата: 27.02.2003 22:18:48
Tygra, спасибо за ответы но я пытаюсь сделать немножечько другое. Задача в том что есть поле valuta и summa. И в зависимости от поля valuta (о или 1) менялся формат поля summa. Т.е. мне в обработчике необходимо написать что то типа:

if [DM.Bill_DetailQR."valuta"] =0 then MemoSumma.DisplayFormat:='###,###,##0.00р.';
if [DM.Bill_DetailQR."valuta"] =1 then MemoSumma.DisplayFormat:='###,###,##0.00$';

Т.е. чтобы менялся последний символ (к примеру, если в долларах, то выводится должно 5 123$, если в рублях, то 1 432р.)
Пробовал formatstr, format ничего не получается :(

С Уважением,
Алексей
Dikobrazz
Дата: 28.02.2003 03:19:41
Может быть, лучше в Dataset'е поле форматировать?
Повесь на поле summa событие OnGetText

procedure TForm1.Query1SummaGetText(Sender: TField; var Text: String;
  DisplayText: Boolean);
begin
  Text:=FormatFloat(Sender.Value,'#,##0.00');
  if Query1['valuta'] =0 then Text:=Text+'р.' else Text:=Text+'$';
end;
tygra
Дата: 28.02.2003 10:43:43
А ты уверен, что можно формат менять?

Не проще ли все же эту буковку отдельно подставлять? Какая разница то?
А формат оставь без букв
Shaitan
Дата: 05.03.2003 20:27:12
Если поле "Valuta" может иметь только 2 значения, почему бы не сделать так:
[IF([Табилица."Valuta"] = 0, FORMATFLOAT('#,##0.00 р.', [Таблица."Summa"]), FORMATFLOAT('#,##0.00 $.', [Таблица."Summa"]))]