Sample to make word report in VFP usint table in microsoft word..
CLEAR
SET TALK OFF
SET CONSOLE OFF
DIMENSION woArray1(6), woArray2(6), woArray3(6)
STORE 1.17 TO woArray1(1)
STORE 0.16 TO woArray1(2)
STORE 0.29 TO woArray1(3)
STORE 0.75 TO woArray1(4)
STORE 3.56 TO woArray1(5)
STORE 0.94 TO woArray1(6)
STORE 0.70 TO woArray2(1)
STORE 2.81 TO woArray2(2)
STORE 0.38 TO woArray2(3)
STORE 1.12 TO woArray2(4)
STORE 1.13 TO woArray2(5)
STORE 0.74 TO woArray2(6)
oRow = 53 - oKeyEnter
oWord = CREATEOBJECT("Word.Application")
oWord.Documents.Add
owRange = oWord.Activedocument.Range()
woTable = oWord.Activedocument.Tables.Add(owRange, oRow, 6)
owRange.pagesetup.LeftMargin = oWord.InchesToPoints(1) && Margin kiri
owRange.pagesetup.RightMargin = oWord.InchesToPoints(0.50) && Margin Kanan
owRange.pagesetup.TopMargin = oWord.InchesToPoints(0.25) && Margin Atas
owRange.pagesetup.BottomMargin = oWord.InchesToPoints(0.50) && Margin Bawah
owRange.pagesetup.PaperSize = 7 && Menentukan ukuran kertas A4
** Setting table pertama
FOR i = 1 TO 6 && Row 1 s/d 6 disimpan dalan variabel i
FOR j = 1 to 32 && column 1 s/d 31 disimpan dalam variabel j
woTable.Cell[j, i].Width = oWord.InchesToPoints(woArray1(i)) && Pembentukan lebar row yg disimpan dalam arrray
ENDFOR
ENDFOR
** Setting table kedua
FOR k = 1 TO 6 && Row 1 s/d 6 disimpan dalan variabel k
FOR l = 33 to oRow && column 1 s/d 31 disimpan dalam variabel l
woTable.Cell[l, k].Width = oWord.InchesToPoints(woArray2(k))&& Pembentukan lebar row yg disimpan dalam arrray
ENDFOR
ENDFOR
** Start of heading
WITH woTable
.Cell(1, 6).Merge(woTable.Cell(4, 6))
oWord.Activedocument.Shapes.AddPicture("c:\temp\logo2.jpg")
.cell[1, 1].range.InsertAfter(ALLTRIM(M.OLD_PT_DES))
.Cell(1, 1).Merge(woTable.Cell(1, 5))
* .cell[1, 6].range.Shapes.AddPicture("c:\temp\logo2.jpg")
.Cell[1, 1].range.ParagraphFormat.Alignment = 1
.Cell[1, 1].range.Font.Name = "Optima"
.Cell[1, 1].range.Font.Size = 28
.Cell[1, 1].range.Font.Bold = 1
.cell[2, 1].range.InsertAfter("JLN. PENGADAIAN NO. 1101 BUKIT BESAR, PALEMBANG - INDONESIA")
.Cell(2, 1).Merge(woTable.Cell(2, 5))
.Cell[2, 1].range.ParagraphFormat.Alignment = 1
.Cell[2, 1].range.Font.Name = "Optima"
.Cell[2, 1].range.Font.Size = 9
.cell[3, 1].range.InsertAfter("Tel.(0711)878625(Hunting) - Fax(0711)854684")
.Cell(3, 1).Merge(woTable.Cell(3, 5))
.Cell[3, 1].range.ParagraphFormat.Alignment = 1
.Cell[3, 1].range.Font.Name = "Optima"
.Cell[3, 1].range.Font.Size = 9
.cell[5, 1].range.InsertAfter("SURAT KEPUTUSAN" )
.Cell(5, 1).Merge(woTable.Cell(5, 6))
.Cell[5, 1].range.ParagraphFormat.Alignment = 1
.Cell[5, 1].range.Font.Bold = 1
.Cell[5, 1].range.Font.UnderLine = 1
.cell[6, 1].range.InsertAfter("No. " + ALLTRIM(M.LETTER_ID))
.Cell(6, 1).Merge(woTable.Cell(6, 6))
.Cell[6, 1].range.ParagraphFormat.Alignment = 1
.cell[7, 1].range.InsertAfter("Tentang")
.Cell(7, 1).Merge(woTable.Cell(7, 6))
.Cell[7, 1].range.ParagraphFormat.Alignment = 1
.cell[9, 1].range.InsertAfter(ALLTRIM(M.LETTER_DES))
.Cell(9, 1).Merge(woTable.Cell(9, 6))
.Cell[9, 1].range.ParagraphFormat.Alignment = 1
.Cell[9, 1].Range.Font.Bold = 1
.cell[11, 1].range.insertAfter("Menimbang")
.cell[11, 2].range.InsertAfter(":")
.Cell[11, 4].Range.InsertAfter("Bahwa dalam rangka penyempurnaan organisasi perusahaan dan membenahi formasi tenaga kerja di " + ALLTRIM(m.new_ou_des) + " " + ALLTRIM(m.new_pt_des))
.Cell(11, 4).Merge(woTable.Cell(11, 6))
.Cell[11, 4].range.ParagraphFormat.Alignment = 3
.cell[13, 1].range.insertAfter("Mengigat dan Memperhatikan")
.cell[13, 2].range.InsertAfter(":")
.cell[13, 3].range.InsertAfter("1.")
.Cell[13, 4].Range.InsertAfter("Masa Kerja saudara (NIK. " + ALLTRIM(m.old_emp_num) + " di perusahaan sejak " + ALLTRIM(DTOC(m.join_dte)) + " dengan jabatan terakhir sebagai " + ALLTRIM(m.old_job_des) + " " + ALLTRIM(m.old_ou_des) + " " + ALLTRIM(m.old_pt_des))
.Cell(13, 4).Merge(woTable.Cell(13, 6))
.Cell[13, 4].range.ParagraphFormat.Alignment = 3
.cell[14, 3].range.InsertAfter("2.")
.Cell[14, 4].Range.InsertAfter("Syarat - syarat kerja yang dibutuhkan pada posisi/jabatan yang ada dikebun" + ALLTRIM(m.new_ou_des) + " " + ALLTRIM(m.new_pt_des))
.Cell(14, 4).Merge(woTable.Cell(14, 6))
.Cell[14, 4].range.ParagraphFormat.Alignment = 3
.cell[15, 3].range.InsertAfter("3.")
.Cell[15, 4].Range.InsertAfter("Usulan yang telah disetujui oleh manajemen")
.Cell(15, 4).Merge(woTable.Cell(15, 6))
.cell[17, 1].range.InsertAfter(ALLTRIM(m.letter_des1))
.Cell(17, 1).Merge(woTable.Cell(17, 6))
.cell[17, 1].range.paragraphFormat.Alignment = 1
.Cell(17, 1).Range.Font.Bold = 1
.cell[19, 1].range.insertAfter("Menetapkan")
.cell[19, 2].range.InsertAfter(":")
.Cell[19, 4].Range.InsertAfter("Terhitung mulai tanggal " + ALLTRIM(DTOC(mutasi_dte)))
.Cell(19, 4).Merge(woTable.Cell(19, 6))
.cell[20, 4].range.insertAfter("Saudara")
.cell[20, 5].range.InsertAfter(": " + ALLTRIM(m.emp_nme))
.cell[21, 4].range.insertAfter("NIK")
.cell[21, 5].range.InsertAfter(": " + ALLTRIM(m.new_emp_num))
.cell[23, 1].range.InsertAfter(ALLTRIM(m.letter_des2))
.Cell(23, 1).Merge(woTable.Cell(23, 6))
.cell[23, 1].range.paragraphFormat.Alignment = 1
.Cell(23, 1).Range.Font.Bold = 1
.cell[24, 4].range.insertAfter("Ke")
.cell[24, 5].range.InsertAfter(": " + ALLTRIM(m.new_ou_des))
.cell[25, 4].range.insertAfter("Jabatan")
.cell[25, 5].range.InsertAfter(": " + ALLTRIM(m.new_job_des))
.cell[27, 4].range.insertAfter("Tunjangan - tunjangan dan jaminan sosial diberikan sesuai dengan ketentuan peraturan perusahaan yang berlaku")
.Cell(27, 4).Merge(woTable.Cell(27, 6))
.Cell[27, 4].range.ParagraphFormat.Alignment = 3
.cell[29, 4].range.insertAfter("Keputusan ini berlaku terhitung mulai tanggal " + ALLTRIM(DTOC(m.mutasi_dte)) + " dan apabila dikemudian hari ternyata terdapat kekeliruan, akan diubah sebagai mana mestinya")
.Cell(29, 4).Merge(woTable.Cell(29, 6))
.Cell[29, 4].range.ParagraphFormat.Alignment = 3
.cell[33, 4].range.insertAfter("Dikeluarkan di")
.cell[33, 5].range.insertAfter(": Palembang")
.cell[34, 4].range.insertAfter("Pada tanggal")
.cell[34, 5].range.insertAfter(": " + ALLTRIM(DTOC(m.letter_dte)))
.cell[35, 4].range.insertAfter(ALLTRIM(m.old_pt_des))
.Cell(35, 4).Merge(woTable.Cell(35, 5))
.cell[35, 4].range.font.bold = 1
.cell[40, 4].range.insertAfter(ALLTRIM(m.rec_nme))
.Cell(40, 4).Merge(woTable.Cell(40, 5))
.cell[40, 4].range.font.bold = 1
.cell[40, 4].range.font.underline = 1
.cell[41, 4].range.insertAfter(ALLTRIM(m.jab_des))
.Cell(41, 4).Merge(woTable.Cell(41, 5))
.cell[41, 4].range.font.bold = 1
.Cell[42, 1].Range.InsertAfter("c.c : ")
.cell[42, 2].range.insertAfter(ALLTRIM(m.letter_cc1))
.cell[44, 1].range.insertAfter(ALLTRIM(m.initi))
.Cell(44, 1).Merge(woTable.Cell(44, 2))
.cell[oRow - 1, 1].range.InsertAfter("isikan footer anda ke 1")
.Cell(oRow - 1, 1).Merge(woTable.Cell(oRow - 1,6))
.Cell[oRow - 1, 1].range.ParagraphFormat.Alignment = 1
.Cell[oRow - 1, 1].range.Font.Name = "Optima"
.Cell[oRow - 1, 1].range.Font.Size = 8
.cell[oRow, 1].range.InsertAfter("isikan footer anda ke 2")
.Cell(oRow, 1).Merge(woTable.Cell(oRow,6))
.Cell[oRow, 1].range.ParagraphFormat.Alignment = 1
.Cell[oRow, 1].range.Font.Name = "Optima"
.Cell[oRow, 1].range.Font.Size = 8
ENDWITH
WITH oWord
For Each aTable In .ActiveDocument.Tables && Format all tables.
aTable.Borders(-1).LineStyle = 0 && Top border.
aTable.Borders(-2).LineStyle = 0 && LeftaTable.Borders(-3).LineStyle = 1 && Bottom
aTable.Borders(-4).LineStyle = 0 && Right
aTable.Borders(-5).LineStyle = 0 && Horizontal
aTable.Borders(-6).LineStyle = 0 && Vertical
aTable.Borders.Shadow = 0
ENDFOR
ENDWITH
oFile = "c:\temp\" + LEFT(ALLTRIM(m.letter_id), 3) + " " + ALLTRIM(m.letter_des) + " " + RIGHT(ALLTRIM(m.letter_id), 4) + ".doc"
oWord.ActiveDocument.SaveAs(oFile)
MESSAGEBOX("Data telah diconvert ke Word cek di c:\temp\" + LEFT(ALLTRIM(m.letter_id), 3) + " " + ALLTRIM(m.letter_des) + " " + RIGHT(ALLTRIM(m.letter_id), 4) + ".doc")
oWord.Quit()
release owRange, oWord
Monday, September 17, 2007
Make word automation by vfp (Using table in Word)
Posted by
Alpix
at
7:47 PM
Labels: Visual Foxpro
Subscribe to:
Post Comments (Atom)

0 comments:
Post a Comment