Merhaba;
Listviewde seçili olan satırları databaseden verileri alıp word'e yazdırıyorum.
Fakat birden fazla seçili satırı seçtiğimde, her seçilen satırın ayrı, ayır word'e nasıl yazılmasını sağlarım?
Listviewde seçili olan satırları databaseden verileri alıp word'e yazdırıyorum.
Fakat birden fazla seçili satırı seçtiğimde, her seçilen satırın ayrı, ayır word'e nasıl yazılmasını sağlarım?
procedure TForm1.BtnPLPrintersClick(Sender: TObject);
var
MyRect: TRectF;
I, J: Integer;
FDQ: TFDQuery;
Must, Title, Led: String;
begin
if ListView.Selected = Nil then // Seçili değilse çık
Exit;
FDQ := TFDQuery.Create(Nil);
try
Printer.BeginDoc();
try
for I := Pred(ListView.ItemCount) downto 0 do
begin
if ListView.Items[I].Data['Select'].AsInteger = 2 then
begin
FDQ.Connection := FDConnection;
FDQ.Active := False;
FDQ.Close;
FDQ.SQL.Clear;
FDQ.SQL.Add('Select * From Liste Where Id=:Id');
FDQ.ParamByName('ID').AsInteger := ListView.Items[I].Data['Id'].AsInteger;
FDQ.Prepared := True;
FDQ.Open;
Must := FDQ.FieldByName('Must').AsString + #13;
Title := FDQ.FieldByName('Title').AsString + #13;
News := FDQ.FieldByName('Led').AsString;
ListView.Items[I].Data['Select'] := NumberConvert(1); // Seçimi iptal et
MyRect := TRectF.Create(20, 20, Printer.PageWidth, Printer.PageHeight);
Printer.Canvas.Font.Family := 'Calibri';
Printer.Canvas.Stroke.color := TAlphaColorRec.Black;
Printer.Canvas.Font.Style := [];
Printer.Canvas.Font.Size := 75;
Printer.Canvas.FillText(MyRect, Must + Title +Led, False, 1, [], TTextAlign.Leading, TTextAlign.Leading);
end;
end;
finally
Printer.EndDoc;
end;
except
if Printer.Printing then
Printer.Abort();
end;
end;

