Jag vill skriva ut en Grid och anväder koden nedan. Det är bara det att alla columner blir lika breda i detta exempel. Hur ser koden ut för att få column1 en viss bredd och kolumn2 en annan bredd och så vidare. Hur kan jag göra om följande kod så att man sätter olika bredd på dom olika kolumnerna. HejUtskrift av en Grid
Dim iScaleMode As Integer
Dim iCol As Integer
Dim iRow As Integer
Dim sngRowHeight As Single
Dim sngColWidth As Single
Dim sngLeftMargin As Single
Dim sngTopMargin As Single
Printer.ScaleMode = 7
iScaleMode = Printer.ScaleMode()
Printer.ScaleMode = vbCentimeters
Printer.Font.Name = "Times New Roman"
Printer.Font.Size = 10
Printer.Font.Bold = Grid1.Font.Bold
Printer.Font.Underline = Grid1.Font.Underline
Printer.Font.Strikethrough = Grid1.Font.Strikethrough
sngRowHeight = 0.5!
sngColWidth = 1.7!
sngLeftMargin = 1!
sngTopMargin = 2.5!
For iRow = 0 To (Grid1.Rows() - 1)
Grid1.Row = iRow
Printer.CurrentY = ((sngRowHeight * iRow) + sngTopMargin)
For iCol = 0 To (Grid1.Cols() - 1)
Grid1.Col = iCol
Printer.CurrentX = ((sngColWidth * iCol) + sngLeftMargin)
Printer.Print Grid1.Text();
Next iCol
Next iRow
Printer.EndDocSv: Utskrift av en Grid
Ja att skriva en PrinterRutin det är ett riktigt knåpgöra
med mycket kasserade A4 i papperskorgen.
Du skall kolla in Tab funktionen , exakt hur, är lite svårt att bedömma
för just din applikation. Ett exempel ur en snutt från en av mina printerrutiner.
i = 0
Printer.Print
Do Until i > lstCount
retString = PrintTotal(lstTotal.List(i))
TotalArr = Split(retString, "/")
Printer.Print ; Tab(10); TotalArr(0); Tab(39); _
TotalArr(1); Tab(66); TotalArr(2)
Printer.Print ; Tab(39); TotalArr(3); Tab(66); TotalArr(4)
i = i + 1
Printer.Print
Loop
Printer.EndDoc
mvh
Sven