![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Печать DBGrid с множественным выбором [D6, Paradox]
Visnuk © (2004-03-17 16:26:00)Кто может помочь такой вот вопрос вычитал в книге и нашел полную ссылку на код:
rocedure TForm1.SelectClick(Sender: TObject);
var
x: word;
TempBookMark : TBookMark;
begin
DBGrid1.DataSource.DataSet.DisableControls;
with Dbgrid1.SelectedRows do
if count > 0 then
begin
TempBookMark := DBGrid1.DataSource.DataSet.GetBookmark;
for x:= 0 to Count - 1 do
begin
if IndexOf(Items[x]) > -1 then
begin
DBGrid1.DataSource.DataSet.Bookmark := Items[x];
end;
end;
end;
DBGrid1.DataSource.DataSet.GotoBookmark(TempBookMark);
DBGrid1.DataSource.DataSet.FreeBookmark(TempBookMark);
DBGrid1.DataSource.DataSet.EnableControls;
end;
Такой вот вопрос мне необходимо распчать выбранные щакладки не могу это произвести.
Кто сталкивался с данной ситуацие помогите
visnuk (2004-03-24 15:19:00) [1]> Анализ свойства SelectedRows достаточно для распечатки только выбранных строк
Я не спорю вот только нашел еще один вариант работы с SelectedRows
var
i: Integer;
begin
if DBGrid1.SelectedRows.Count>0 then
with DBGrid1.DataSource.DataSet do
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
Пишем сдесь что угодно только вот почемуто не получается
Щас розбераться буду
visnuk (2004-03-24 15:17:00) [2]> Что-то не заметно попыток по распечатке.
код распечатки такой вот
var
Items: TstringList;
begin
Items := TStringList.Create;
try
PixelsInInchX := GetDeviceCaps(Printer.Handle, LOGPIXELSX);
TenthsOfInchPixelsY := GetDeviceCaps(Printer.Handle, LOGPIXELSY) div 10;
AmountPrinted := 0;
try
Printer.BeginDoc;
Application.ProcessMessages;
LineHeight := Printer.Canvas.TextHeight('X')+TenthsOfInchPixelsY;
DataModuleLamp.Sklad.First;
While (not DataModuleLamp.Sklad.Eof) or Printer.Aborted do
begin
Application.ProcessMessages;
With Items do
begin
AddObject(DataModuleLamp.Sklad.FieldByName('LampName').AsString, pointer(12));
.....
AddObject(DataModuleLamp.Sklad.FieldByName('Ia4eka').AsString, pointer(10));
end;
PrintLine(Items);
if AmountPrinted + LineHeight > Printer.PageHeight then
begin
AmountPrinted := 0;
if not Printer.Aborted then
Printer.NewPage;
end;
Items.Clear;
DataModuleLamp.Sklad.Next;
end;
if not Printer.Aborted then
Printer.EndDoc;
finally
MainForm.Enabled := True;
end;
finally
Items.Free;
end;
end;
Код PrintLine ниже
var
OutRect: TRect;
Inches: Double;
i: Integer;
begin
OutRect.Left := 0;
OutRect.Top := AmountPrinted;
OutRect.Bottom := OutRect.Top + LineHeight;
With Printer.Canvas do
for i := 0 to Items.Count - 1 do
begin
Inches := Longint(Items.Objects[i]) * 0.1;
OutRect.Right := OutRect.Left + round(PixelsInInchx*Inches);
if not Printer.Aborted then
TextRect(OutRect, OutRect.Left, OutRect.Top, Items[i]);
OutRect.Left := OutRect.Right;
end;
AmountPrinted := AmountPrinted + TenthsOfInchPixelsY*2;
end;
Такой вот код
Anatoly Podgoretsky (2004-03-24 12:23:00) [3]Анализ свойства SelectedRows достаточно для распечатки только выбранных строк
Плохиш (2004-03-24 10:57:00) [4]
> Такой вот вопрос мне необходимо распчать выбранные щакладки
> не могу это произвести
Что-то не заметно попыток по распечатке.
visnuk (2004-03-24 10:51:00) [5]Почему выкинуть а как мне произвести выборку записей помоги
Zacho (2004-03-22 20:20:00) [6]
> Visnuk ©
Книгу, в которой приведен такой код, лучше выкинуть.
visnuk (2004-03-22 13:29:00) [7]тобиш поиск по сайту я уже делал и ничего не выдало
stud (2004-03-22 12:13:00) [8]запусти поиск это неоднократно обсуждалось
visnuk (2004-03-22 10:40:00) [9]Люди помогите