[ dejan_m90 @ 16.08.2007. 09:57 ] @
Trebam da napravim u vb 6 program koji bi popunjavao neke obrasce. npr Napravio bi formu sa text box-ovima, zatim bi trebao da napravim komandu print koji bi odstampao odredjen tex box na odredjeno mjesto na papiru

Moze li mi iko pomoci oko toga?

Hvala
[ vipp @ 16.08.2007. 11:16 ] @
Napravi u WORD-u neki šablon za taj dokument. Tamo gde želiš da ti se ispisuju sadržaji textbox-ova unesi neke reči, a zatim u kodu za ispis teksta u WORD, koristi funkciju za zamenu tih reči stvarnim sadržajem tekstbox-a.

Evo ti deo primera pa probaj malo da se poigraš sa time. Imaš sigurno gotovih kodova na Internetu.

Code:

Option Explicit

Public WordApp As Word.Application 'WORD PROGRAM
Public WordDoc As Word.Document    'WORD FAJL
Public WordRange As Word.Range     'WORD RANG, BITAN ZA...
________________________________________________
Public Sub otvoriDokument(ByVal nazivTemp As String, ByVal nazivDoc As String)
'OTVARA WORD DOKUMENT (TEMPLATE) I CUVA GA PO NOVOM IMENU
'PARAMETRI:
'nazivtemp - naziv template-a, SA PUTANJOM!!!
'nazivDoc - naziv novosacuvanog dokumenta , SA PUTANJOM!!!

Set WordApp = CreateObject("Word.Application")
With WordApp
    .Visible = True
    .Activate
    .WindowState = wdWindowStateMaximize
End With
   
Set WordDoc = WordApp.Documents.Open(nazivTemp)
WordDoc.SaveAs (nazivDoc)
WordDoc.Close
Set WordDoc = WordApp.Documents.Open(nazivDoc)
With WordApp
   .Visible = True
   .Activate
   .WindowState = wdWindowStateMaximize
End With


_________________________________________
Public Sub zameni(ByVal staritext As String, ByVal novitext As String)
'FUNKCIJA KOJA U WORD DOKUMENTU MENJA NEKI TEKST NOVIM TEKSTOM
'PARAMETRI:
'staritekst - tekst u templateu koji zelimo da zamenimo
'novitext - tekst u templateu koji dolazi na mesto novog teksta
WordApp.ActiveDocument.Content.Find.Execute FindText:=staritext, replacewith:=novitext
End Sub

_____________________________________________

________________________________________________
POZIVI FUNKCIJA ("DANASNJI_DATUM" i "NAZIV_FIRME" su reči iz WORD šablona koje se menjaju podacima Date i Firma)

Call otvoriDokument(TEMPLATE, FAJL)
    
'ZAMENA STRINGOVA NA ODREDJENIM POZICIJAMA U TEMPLEJTU ODGOVARAJUCIM STVARNIM PODACIMA
Call zameni("DANASNJI_DATUM", Date)
Call zameni("NAZIV_FIRME", firma)

Set WordRange = WordDoc.Sections(1).Range
End Sub




edit: dodati code tagovi

[Ovu poruku je menjao Aleksandar Ružičić dana 22.08.2007. u 15:20 GMT+1]
[ Eurora3D Team @ 17.08.2007. 11:43 ] @
VB 6 forma ima metodu (func) za stampanje svog sadrzaja.
npr. Form1.Print
Pozdrav
[ rgdrajko @ 19.08.2007. 21:29 ] @
Odgovor je veoma prost. Koristi objekat printer i mozes odstampati na bilo kom papiru, gde hoces i sta hoces i kojim fontom hoces...

Code:

Private Sub Form_Load()
    
    Printer.PaperSize = vbPRPSA4 'A4
    Printer.Orientation = vbPRORPortrait 'Uspravno

    
    Printer.Font = "ariel"
    Printer.Font.Bold = True
    Printer.FontSize = 20
    
    Printer.CurrentX = Text1.Left
    Printer.CurrentY = Text1.Top
    
    Printer.Print Text1.Text
    
    
    Printer.Font = "Tahoma"
    Printer.Font.Bold = False
    Printer.Font.Italic = True
    Printer.FontSize = 30
    
    Printer.CurrentX = Text2.Left
    Printer.CurrentY = Text2.Top
    
    Printer.Print Text2.Text
    
    Printer.Font = "Courier New"
    Printer.Font.Bold = True
    Printer.Font.Italic = True
    Printer.FontSize = 50
    
    Printer.CurrentX = Text3.Left
    Printer.CurrentY = Text3.Top
    
    Printer.Print Text3.Text

End Sub
[ goranvuc @ 19.08.2007. 21:37 ] @
I na kraju:
Code:

Printer.EndDoc
[ rgdrajko @ 19.08.2007. 21:48 ] @
Citat:
goranvuc: I na kraju:
Code:

Printer.EndDoc


Da i na kraju koda dodati Printer.EndDoc
Hvala Gorane. Pozdrav.
[ dejan_m90 @ 20.08.2007. 08:54 ] @
Ok,, Hvala na odgovorima. pozzdrav.
[ goran3230 @ 26.08.2007. 14:36 ] @
Mozda ti nesto od ovoga pomogne...mislim da ti je Listbox bolji za to sto ti treba od TextBox-a...

Code:
Private Sub Command2_Click()
Dim wrd As Word.Application
Dim doc As Word.Document

Set wrd = CreateObject("word.application")

With wrd
.Visible = True
.Application.WindowState = wdWindowStateMaximize
.Options.MeasurementUnit = wdMillimeters
Set doc = .Documents.Add
.Options.MeasurementUnit = wdMillimeters
With doc.Sections(1).PageSetup
.PaperSize = wdPaperA4
.RightMargin = 65
.LeftMargin = 75
.TopMargin = 80
.BottomMargin = 65
.GutterPos = wdGutterPosTop
.Gutter = 8
End With
'broj stranice
With doc.Sections(1).Footers(wdHeaderFooterPrimary)
.Range.Font.Name = "times yu"
.Range.Font.Size = 12
.Range.InsertDateTime
.Range.InsertAfter (" -----------------software by Goran ,2004.----------------- ")
Dim vreme As String
vreme = Time()
.Range.InsertAfter vreme
.Range.Paragraphs.Alignment = wdAlignParagraphCenter
.PageNumbers.Add PageNumberAlignment:=wdAlignPageNumberRight
End With
'masinski fakultet nis
With doc.Sections(1).Headers(wdHeaderFooterPrimary)
.Range.Font.Name = "times yu"
.Range.Font.Size = 12
.Range.Font.Bold = True
.Range.InsertAfter ("**************************************************************************")
.Range.Paragraphs.Alignment = wdAlignParagraphCenter
End With

With wrd.Selection
'ovde unosi'
'*******************************************************************************************************
'*******************************************************************************************************
Dim n As Integer
n = List1.ListCount
i = -1
Do
i = i + 1
List1.ListIndex = i - 1

Label34.Caption = List1.Text
.EndKey
.InsertParagraphAfter
.EndKey
.InsertAfter List1.Text
.EndKey
.InsertParagraphAfter
Loop Until i = n
.InsertParagraphAfter
.EndKey

Label33.Caption = aaa

'*********************************************************************************************************
'*******************************************************************************************************

.Font.Name = "times yu"
.Font.Size = 11
.Text = "-Podaci o optere}enju:"
.InsertParagraphAfter
.EndKey



.InsertAfter aaa
.EndKey
End With


End With


EDIT: Dodati code tagovi

[Ovu poruku je menjao Marko_L dana 26.08.2007. u 18:23 GMT+1]