Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Печать 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
9-1065980951
Sacred
2003-10-12 21:49
2004.04.18
Помогите разобраться с ошибкой!!! Очень прошу.


14-1079983703
AMogil
2004-03-22 22:28
2004.04.18
Доля рынка, принадлежащая Borland


8-1072167253
Василич
2003-12-23 11:14
2004.04.18
вывод синуса,звука на выход звуковой карты


6-1076473916
_Евгений
2004-02-11 07:31
2004.04.18
Синхронизация времени


1-1080545461
nv-vetal
2004-03-29 11:31
2004.04.18
ShowMessage. Как в появившемся окне нажать кнопку Ок программно?