Avatar billede theplayer.da.ru Nybegynder
04. juni 2003 - 15:57 Der er 7 kommentarer og
1 løsning

Printning af Grid

Hej!

Er der nogen der ved hvordan man kan printe alt den tekst/data man har tilføjet i sit datagrid ud på en printer?

Mvh.
ThePlayer.Dk
Avatar billede martin_moth Mester
05. juni 2003 - 17:34 #1
Loop igennem grid'et og print indholdet af hver celle...

Pseudokode for et 3x2 grid med 5 cm mellem hver celle på papiret:

For i = 1 to 3
  For j = 1 to 2
    Print celle række j kolonne i på koordinaterne (i*5,j*5)
  Next j
Next i

Behøver du "rigtig" kode, eller er ovenstående nok? Hvis det ikke er nok, så sig lige hvad du skal have mere forklaring til :o)
Avatar billede martin_moth Mester
05. juni 2003 - 17:36 #2
PS: Pseudokoden bør nok være

For j = 1 to 2
  For i = 1 to 3
    Print celle række j kolonne i på koordinaterne (i*5,j*5)
  Next i
Next j
Avatar billede theplayer.da.ru Nybegynder
06. juni 2003 - 11:16 #3
Hej Martin

Jeg kan ikke lige få det til at virke. Men meningen er at jeg skal kunne printe alt data der står i datagriddet. Altså tal/tekst.

Mvh.
Theplayer.dk
Avatar billede martin_moth Mester
06. juni 2003 - 15:41 #4
Yep - den er jeg med på. Hvad er det du ikke kan få til at virke?
Avatar billede theplayer.da.ru Nybegynder
08. juni 2003 - 16:20 #5
:-)
Det hele faktisk.
Hvis jeg skal kunne bruge det du har skrive vil jeg forstå det på flg. måde:
For j = 1 to 2
  For i = 1 to 3
    printer.print object.matrix(i*5,j*5)
  Next i
Next j

Men øhh.. :-) det virker ikke, så jeg er bange for at du må skære det ud i pap for mig. Som jeg forstår det, på er (*i*5,j*5) som en celle!
Avatar billede martin_moth Mester
09. juni 2003 - 12:12 #6
Du springer halvdelen over - du fortæller ikke hvor på papiret dine celler skal skrives ud, og du henter de forkerte celler. Prøv at kør i og j igennem og se hvad der "sker" i min pseudo-kode. Ideen er:

Tag første række, start med den venstre celle. Udskriv den på papiret på koordinaterne (5cm, 5 cm), målt fra papirets øvre venstre kant.

Tag næste celle i rækken og udskriv den på (10cm, 5cm)
Tag den sidste i rækken og udskriv på (15cm,5 cm)

Ny række. Gentag, her er "y-koordinaten" blot ændret fra 5cm til 10 cm.

Har ikke lige et datagrid ved hånden, så jeg er ikke 100 på hvordan du henter indholdet af en bestemt celle, men mener at kunne huske at man kan gøre sådan:

  DataGrid1.Row = 2
  DataGrid1.Col = 3
  Msgbox "Række 2 kollonne 3 indeholder " & DataGrid1.Text

Jeg har forudsat at man kan gøre som i ovenstående - er det ikke muligt, må du lige rette til. Muligvis kan man bare skrive Datagrid1.Cell(2,3).Text eller tilsvarende...

Printer.ScaleMode = 6 'millimeter
For j = 1 to 2

  DataGrid1.Row = j
  Printer.CurrentY = j*50

  For i = 1 to 3

    DataGrid1.Col = i
    Printer.CurrentX = i*50
    Printer.Print DataGrid1.Text

  Next i

Next j
Avatar billede theplayer.da.ru Nybegynder
10. juni 2003 - 12:03 #7
Jeg kan stadig ikke få det til at virker. Når den kommer til
Printer.Print DataGrid1.Text
bliver der ikke sendt noget data til printeren.
Avatar billede martin_moth Mester
10. juni 2003 - 12:40 #8
Find ud af hvordan du henter værdien i en enkelt celle. Når du ved det, er det bare at rette koden derefter.

Jeg har ingen database eller noget datagrid, derfor kan je gikke finde det for dig.
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