Avatar billede no-shit Nybegynder
27. februar 2002 - 18:53 Der er 7 kommentarer og
1 løsning

Udskriv data fra lister så det står fint på siden.

Jeg har oprettet en liste med 13 forskellige attributter og ønsker at kunne udskrive nogle listen som den står på skærmen, men der skal også være mulighed for at kun vælge at printe nogle af oplysningerne. Skal se sådan ud:

Nr      Fornavn      Efternavn      Tlf
1      Lars          Møller        111111111
2      Bent          Hansen        222222222

Jeg er stort set på bar bund.
Avatar billede spiff_21 Nybegynder
27. februar 2002 - 18:56 #1
hvilke program Word/excel/access ??
Avatar billede no-shit Nybegynder
27. februar 2002 - 18:59 #2
Det er en StringGrid i delphi alle data er sat ind i.
Avatar billede no-shit Nybegynder
27. februar 2002 - 19:09 #3
Jeg har oprettet 13 checkbokse som skal håndtere hvilke data som skal printes.
Avatar billede no-shit Nybegynder
27. februar 2002 - 19:55 #4
Jeg har forsøgt mig med en QuickReport men kan ikke få noget data sat ind?
Avatar billede no-shit Nybegynder
27. februar 2002 - 20:20 #5
Kan en QRep kun bruge med en database?
Avatar billede spiff_21 Nybegynder
27. februar 2002 - 20:50 #6
quickreport kan godt bruges uden database. hvilke bands har du på din qrep ?
Avatar billede no-shit Nybegynder
27. februar 2002 - 21:14 #7
Har nu fundet ud af at få printet hele mit StringGrid ud ved hjælp af Canvas. Men hvordan vælger jeg enkelte data ud med hjælp af mine checkboxes? Min kode ser nu sådan ud:

procedure TFormUdskriv.PrintGrid(sGrid: TStringGrid; sTitle: string);
var
  X1, X2: Integer;
  Y1, Y2: Integer;
  TmpI: Integer;
  F: Integer;
  TR: TRect;
begin
  Printer.Title := sTitle;
  Printer.BeginDoc;
  Printer.Canvas.Pen.Color  := 0;
  Printer.Canvas.Font.Name  := 'Times New Roman';
  Printer.Canvas.Font.Size  := 12;
  Printer.Canvas.Font.Style := [fsBold, fsUnderline];
  Printer.Canvas.TextOut(0, 100, Printer.Title);
  if checkbox1.Checked then
  for F := 0 to sGrid.ColCount - 1 do
  begin
    X1 := 0;
    for TmpI := 0 to (F - 1) do
      X1 := X1 + 5 * (sGrid.ColWidths[TmpI]);
    Y1 := 300;
    X2 := 0;
    for TmpI := 0 to F do
      X2 := X2 + 5 * (sGrid.ColWidths[TmpI]);
    Y2 := 450;
    TR := Rect(X1, Y1, X2 - 30, Y2);
    Printer.Canvas.Font.Style := [fsBold];
    Printer.Canvas.Font.Size := 7;
    Printer.Canvas.TextRect(TR, X1 + 50, 350, sGrid.Cells[F, 0]);
    Printer.Canvas.Font.Style := [];
    for TmpI := 0 to sGrid.RowCount - 1 do
    begin
      Y1 := 150 * TmpI + 300;
      Y2 := 150 * (TmpI + 1) + 300;
      TR := Rect(X1, Y1, X2 - 30, Y2);
      Printer.Canvas.TextRect(TR, X1 + 50, Y1 + 50, sGrid.Cells[F, TmpI]);
    end;
  end;
  Printer.EndDoc;
end;
Avatar billede spiff_21 Nybegynder
27. februar 2002 - 22:36 #8
hmm det er lidt svært for mig at se hvad du egentlig vil, men jeg tror du ikke bare lave 0 højde for de rækker/kolonder du ikke vil have vist. ellers send lige dit program til mig på jakob_Lundqvist@mail.tele.dk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester