Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Печать MSFlexGrid Добавлено: 09.01.04 00:53  

Автор вопроса:  Justas  | Web-сайт: justas.newmail.ru | ICQ: 259418212 

Ответить

  Ответы Всего ответов: 23  

Номер ответа: 16
Автор ответа:
 Justas



ICQ: 259418212 

Вопросов: 24
Ответов: 325
 Web-сайт: justas.newmail.ru
 Профиль | | #16
Добавлено: 13.01.04 02:30
Прикольный код , только грид очень длинный (со скролом вниз) и в пикчербокс не влазит :(( Так что неподойдёт...

Ответить

Номер ответа: 17
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #17 Добавлено: 13.01.04 02:42

To Justas: Ну так замени fDC на hDC Printer.hDC  и сразу BitBLT на принтер без промежуточного PictureBox

To Sharp: ну извини, пожалуйста, блин

Ответить

Номер ответа: 18
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #18
Добавлено: 13.01.04 02:46
Бывали случаи, что наезжали и не извинялись, но чтоб не наезжали и извинялись... :)

Ответить

Номер ответа: 19
Автор ответа:
 Justas



ICQ: 259418212 

Вопросов: 24
Ответов: 325
 Web-сайт: justas.newmail.ru
 Профиль | | #19
Добавлено: 13.01.04 02:48
cresta Напиши код пожалуйста. Не очень понятно где и чего менять.

Ответить

Номер ответа: 20
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #20 Добавлено: 13.01.04 03:00
Похоже с принтером я погорячился. А может попробовать отрисовать кусок грида а потом скролить его  и как-нибудь потом слепить эти куски?

Ответить

Номер ответа: 21
Автор ответа:
 Justas



ICQ: 259418212 

Вопросов: 24
Ответов: 325
 Web-сайт: justas.newmail.ru
 Профиль | | #21
Добавлено: 13.01.04 03:00
Кстати, может знаете как содержимое ФлексГрида перекинуть в Ексель? Было-бы неплохо!

Ответить

Номер ответа: 22
Автор ответа:
 cresta



Вопросов: 117
Ответов: 1538
 Профиль | | #22 Добавлено: 13.01.04 03:47

А может не в Exel, a в Word? И там написать макрос, и скопировать макрос в программу? Я так рисовал, но только не грид, а свою таблицу и заполнял значениями из базы данных. И затем оттуда же (из Ворда ) печатал. Правда колонки были одинаковой ширины и если данные не влезали то  ячейка увеличивалась на 1 строку.Но информация не терялась. Конечно Exel наверное лучше, но я с ним не дружу. Никогда не пробовал.

А в Ворде примерно так:

Public Sub WORDDOC(arrCode As Variant, arrProduct As Variant, arrRash As Variant)
On Error GoTo lbl_err
frmMain.MousePointer = 13
Dim i As Long, R As Long, C As Long
Dim strPath As String
Dim Table1 As Object
    i = UBound(arrCode)
    Set WordApplication = CreateObject("Word.Application")
    Set WordApplicationDocuments = WordApplication.Documents.Add
    WordApplication.Visible = True
    With WordApplicationDocuments.Application.Selection.PageSetup
        .LeftMargin = 15
        .RightMargin = 15
        .TopMargin = 15
        .BottomMargin = 15
    End With
    With WordApplication
    .Selection.Font.Name = "Verdana"
Set Table1 = WordApplication.ActiveDocument.Tables.Add(WordApplication.ActiveDocument.Range(), 5 * (Int(UBound(arrCode) / 3) + 1), 3)
    For i = 1 To UBound(arrCode)
        C = (i - 1) Mod 3 + 1
        R = 5 * (Int((i - 1) / 3)) + 1
        .ActiveDocument.Tables(1).Cell(R, C).Select
        .Selection.Font.Bold = wdToggle
        .Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
        Table1.Cell(R, C).Range.Text = "Магазин КОМПтовары"
       
        Table1.Cell(R + 1, C).Range.Text = "Наименование" & vbNewLine & vbNewLine & _
        arrProduct(i)
        .ActiveDocument.Tables(1).Cell(R + 1, C).Select
        .Selection.EndKey
       
        .Selection.MoveLeft wdCharacter, Len(arrProduct(i)), wdExtend
        .Selection.Font.Bold = wdToggle
        .ActiveDocument.Tables(1).Cell(R + 2, C).Select
        Table1.Cell(R + 2, C).Range.Text = "Цена    " & NormalPrice(CStr(arrRash(i)))
        .Selection.EndKey
        .Selection.MoveLeft wdCharacter, Len(NormalPrice(CStr(arrRash(i)))), wdExtend
        .Selection.Font.Bold = wdToggle
        .ActiveDocument.Tables(1).Cell(R + 3, C).Select
        .Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
        Table1.Cell(R + 3, C).Range.Text = arrCode(i)
        .ActiveDocument.Tables(1).Cell(R + 4, C).Select
        .Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
        If Len(CStr(arrCode(i))) = 13 Then
            ФормаКод.Text1.Text = Left$(CStr(arrCode(i)), 12)
            ФормаКод.Command1_Click
            strPath = App.Path & "\EAN-" & ФормаКод.Text1.Text & ".bmp"
            If Dir(strPath) <> "" Then Kill strPath     'If file exists
            SavePicture ФормаКод.picEan.Image, strPath
            .Selection.InlineShapes.AddPicture Filename:=strPath
            Kill strPath
        Else
            Table1.Cell(R + 4, C).Range.Text = "Код не EAN - 13"
        End If
     Next i
   End With
   If Printers.Count <> 0 Then
    WordApplication.PrintOut Filename:="", Range:=wdPrintAllDocument, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
        ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
       PrintZoomPaperHeight:=0
    End If
    WordApplication.ActiveDocument.SaveAs "D:\1.rtf"
    Sleep 2500
    WordApplication.ActiveDocument.Close
    WordApplication.Quit
    WordApplication.Visible = False
    Kill "D:\1.rtf"
lbl_err:
    If err.Number = 429 Then
        MsgBox "Нет доступа к программе WORD", vbInformation
    End If
    frmMain.MousePointer = 0
End Sub

Попробуй, может чего полезного найдешь.

 

Ответить

Номер ответа: 23
Автор ответа:
 Justas



ICQ: 259418212 

Вопросов: 24
Ответов: 325
 Web-сайт: justas.newmail.ru
 Профиль | | #23
Добавлено: 13.01.04 04:20

Пасибо, может чего полезного и найду.

Только мне всё таки, ФлексГрид бы распечатать

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам