Форум: "Базы";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
ВнизПечать DBGrid с множественным выбором Найти похожие ветки
← →
Visnuk © (2004-03-17 16:26) [0]Кто может помочь такой вот вопрос вычитал в книге и нашел полную ссылку на код:
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-22 10:40) [1]Люди помогите
← →
stud © (2004-03-22 12:13) [2]запусти поиск это неоднократно обсуждалось
← →
visnuk © (2004-03-22 13:29) [3]тобиш поиск по сайту я уже делал и ничего не выдало
← →
Zacho © (2004-03-22 20:20) [4]
> Visnuk ©
Книгу, в которой приведен такой код, лучше выкинуть.
← →
visnuk © (2004-03-24 10:51) [5]Почему выкинуть а как мне произвести выборку записей помоги
← →
Плохиш (2004-03-24 10:57) [6]
> Такой вот вопрос мне необходимо распчать выбранные щакладки
> не могу это произвести
Что-то не заметно попыток по распечатке.
← →
Anatoly Podgoretsky © (2004-03-24 12:23) [7]Анализ свойства SelectedRows достаточно для распечатки только выбранных строк
← →
visnuk © (2004-03-24 15:17) [8]> Что-то не заметно попыток по распечатке.
код распечатки такой вот
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;
Такой вот код
← →
visnuk © (2004-03-24 15:19) [9]> Анализ свойства 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]));
Пишем сдесь что угодно только вот почемуто не получается
Щас розбераться буду
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.031 c