TfrxMemoView - как изменить текст?
vitaly_l
Винница, Украина
В ряде случаев мне надо изменить текст ячейки.
Например если определенное поле базы данных пустое (IsNull), то мне надо написать в отчете "откл.".
В FR2.5 я это УСПЕШНО делал в обработчике самого отчета:
void __fastcall TArcReportForm::Fr1BeforePrint(TStringList *Memo, TfrView *View)
{
if(!Memo->Count) return;
if(View->Memo->Text.Pos("TEMPER") && frDBDataSet1->DataSet->FieldByName("TEMPERATURE")->IsNull )
Memo->Text = " откл."
}
Теперь в FR3 сам обработчик изменился, и хотя я могу доступиться к нужному мне объекту, но НЕ МОГУ ИЗМЕНИТЬ значение ячейки:
void __fastcall TArcReportForm::Fr1BeforePrint(TfrxReportComponent *Sender)
{
TfrxMemoView *MyMemoView = dynamic_cast<TfrxMemoView *>(Sender);
if(!MyMemoView) return;
if(MyMemoView->DataField.IsEmpty()) return;
if(MyMemoView->DataField.Pos("TEMPER") &&
frxDBDataset1->DataSet->FieldByName("TEMPERATURE")->IsNull )
{
MyMemoView->Text = "откл";
//MyMemoView->Memo->Text = "откл";
}
Как мне переопределить текст выводимой ячейки?
Например если определенное поле базы данных пустое (IsNull), то мне надо написать в отчете "откл.".
В FR2.5 я это УСПЕШНО делал в обработчике самого отчета:
void __fastcall TArcReportForm::Fr1BeforePrint(TStringList *Memo, TfrView *View)
{
if(!Memo->Count) return;
if(View->Memo->Text.Pos("TEMPER") && frDBDataSet1->DataSet->FieldByName("TEMPERATURE")->IsNull )
Memo->Text = " откл."
}
Теперь в FR3 сам обработчик изменился, и хотя я могу доступиться к нужному мне объекту, но НЕ МОГУ ИЗМЕНИТЬ значение ячейки:
void __fastcall TArcReportForm::Fr1BeforePrint(TfrxReportComponent *Sender)
{
TfrxMemoView *MyMemoView = dynamic_cast<TfrxMemoView *>(Sender);
if(!MyMemoView) return;
if(MyMemoView->DataField.IsEmpty()) return;
if(MyMemoView->DataField.Pos("TEMPER") &&
frxDBDataset1->DataSet->FieldByName("TEMPERATURE")->IsNull )
{
MyMemoView->Text = "откл";
//MyMemoView->Memo->Text = "откл";
}
Как мне переопределить текст выводимой ячейки?
Комментарии
if(MyMemoView->DataField.Pos("TEMPER") &&
frxDBDataset1->DataSet->FieldByName("TEMPERATURE")->IsNull )
{
MyMemoView->DataSet = NULL;
MyMemoView->Text = "откл";
//MyMemoView->Memo->Text = "откл";
}