Проблема с определением параметров страницы
Ситуация следующая:
1. формируется перечень принтеров, установленный в системе
2. Выбранный пользователем принтер устанавливается как текущий
{
ADevice := pchar(ListBox1.SelectedItem);
ADriver := pchar('WINSPOOL');
printer.SetPrinter(ADevice, ADriver, APort, 0);
}
Handele объекта принтер после этих команд действительно принимает другое значение
3. После этого формируем отчет:
{
frxReport1.Clear;
frxReport1.PrintOptions.Printer := ListBox1.SelectedItem;
добавляем источник данных в список доступных для отчета
frxReport1.DataSets.Add(frxDBDataSet1);
добавляем страницу
Page := TfrxReportPage.Create(frxReport1);
создаем уникальное имя
Page.CreateUniqueName;
устанавливаем параметры страницы для выбранного принтера
PAGE.SetDefaults;
}
4. После всех действий frxReport1.DesignReport;
Все дейтсвия - Click кнопки
Собственно проблема:
после определения принтера ПЕРВЫЙ раз отчет формируется с параметрами страницы принтера, который был текущим до переопределения. Все последующие нажатия на эту кнопку приводят к абсолютно верному формированию отчета...
На данный момент приходится выходить из положения слудующим способом:
Printer.BeginDoc;
page.PaperWidth :=GetDeviceCaps(Printer.canvas.Handle, PHYSICALWIDTH)/
GetDeviceCaps (Printer.Canvas.Handle, LOGPIXELSX) * 25.4;
page.PaperHeight := GetDeviceCaps(Printer.canvas.Handle, PHYSICALHEIGHT)/
GetDeviceCaps (Printer.Canvas.Handle, LOGPIXELSY) * 25.4;
Printer.Abort;
Буду очень благодарна за рекомндации по "правильному" использованию метода SetDefaults
С уважением,
Мария
1. формируется перечень принтеров, установленный в системе
2. Выбранный пользователем принтер устанавливается как текущий
{
ADevice := pchar(ListBox1.SelectedItem);
ADriver := pchar('WINSPOOL');
printer.SetPrinter(ADevice, ADriver, APort, 0);
}
Handele объекта принтер после этих команд действительно принимает другое значение
3. После этого формируем отчет:
{
frxReport1.Clear;
frxReport1.PrintOptions.Printer := ListBox1.SelectedItem;
добавляем источник данных в список доступных для отчета
frxReport1.DataSets.Add(frxDBDataSet1);
добавляем страницу
Page := TfrxReportPage.Create(frxReport1);
создаем уникальное имя
Page.CreateUniqueName;
устанавливаем параметры страницы для выбранного принтера
PAGE.SetDefaults;
}
4. После всех действий frxReport1.DesignReport;
Все дейтсвия - Click кнопки
Собственно проблема:
после определения принтера ПЕРВЫЙ раз отчет формируется с параметрами страницы принтера, который был текущим до переопределения. Все последующие нажатия на эту кнопку приводят к абсолютно верному формированию отчета...
На данный момент приходится выходить из положения слудующим способом:
Printer.BeginDoc;
page.PaperWidth :=GetDeviceCaps(Printer.canvas.Handle, PHYSICALWIDTH)/
GetDeviceCaps (Printer.Canvas.Handle, LOGPIXELSX) * 25.4;
page.PaperHeight := GetDeviceCaps(Printer.canvas.Handle, PHYSICALHEIGHT)/
GetDeviceCaps (Printer.Canvas.Handle, LOGPIXELSY) * 25.4;
Printer.Abort;
Буду очень благодарна за рекомндации по "правильному" использованию метода SetDefaults
С уважением,
Мария