Определить на каком элементе в Превью сделан Клик
Хочу сделать РанТайм редактирование отчета.
Подумал насчет того что можно сделать клик на превью и определить на каком именно элементе, например TfrxMemoview был сделать клик... И получить на него указатель. Скажите возможно ли это, сделать? И если да то в какую сторону копать?
Подумал насчет того что можно сделать клик на превью и определить на каком именно элементе, например TfrxMemoview был сделать клик... И получить на него указатель. Скажите возможно ли это, сделать? И если да то в какую сторону копать?
Комментарии
void __fastcall TForm1::frxReport1ClickObject(TfrxView *Sender,
TMouseButton Button, TShiftState Shift, bool &Modified)
{
TfrxMemoView * Memo;
if((Memo = dynamic_cast <TfrxMemoView*> (Sender)) != NULL)//вместо этого можно сравнить имя класса Sender->ClassName() с TfrxMemoView
{
ShowMessage(Memo->Name);
Memo->Text = "New Text";
frxReport1->Preview->Refresh();
}
}
Но все равно примного благодарен.
После Report->PrepareReport()
Значения возвращаются. С чем это связано и как этого избежать?
Думаю знаю в чем дела. Вопрос в следующем, как из превью передать отчет обратно в репорт?
Или как добавить элемент в превью?
Задача изменять и добавлять объекты в превью.
void __fastcall TForm1::frxReport1ClickObject(TfrxView *Sender,
TMouseButton Button, TShiftState Shift, bool &Modified)
{
TfrxMemoView * Memo;
if((Memo = dynamic_cast <TfrxMemoView*> (Sender)) != NULL)//вместо этого можно сравнить имя класса Sender->ClassName() с TfrxMemoView
{
ShowMessage(Memo->Name);
Memo->Text = "New Text";
Memo = dynamic_cast<TfrxMemoView *> (frxReport->FindObject(Memo->Name));
Memo->Text = "NewText"
frxReport1->Preview->Refresh();
}
}
или сохраняйте отчет в fp3 формат.
А то я думал что превью отображает текущее в frxReport
void __fastcall TForm1::frxReport1ClickObject(TfrxView *Sender,
TMouseButton Button, TShiftState Shift, bool &Modified)
{
TfrxMemoView * Memo;
if(strcmp(Sender->Name.c_str(),"Memo1") == 0)
{
Memo = new TfrxMemoView(frxReport1->PreviewPages->Page[0]);
Memo->SetBounds(100,100,100,50);
Memo->Text = "MEMO TEXT";
}
frxReport1->Preview->Refresh();
}