Kako dobiti ovo: tekst iznad tabele + tabela + tekst ispod tabele u MS Wordu

Kako dobiti ovo: tekst iznad tabele + tabela + tekst ispod tabele u MS Wordu

offline
  • Miroslav R. Maričić
  • diplomirani inženjer mašinstva, profesor
  • Pridružio: 06 Jun 2012
  • Poruke: 229
  • Gde živiš: Hajdučica, Banat, Srbija

Искрсао ми је још један проблем. Потребно ми је следеће: на почетку документа да имам пар редова текста, онда би следила табела, па онда опет пар редова текста. Написао сам следећу функцију:

STATIC PROCEDURE MsWord()
LOCAL oWord, oText, oRange, oTable, x

oWord := CreateObject( "Word.Application" )
oWord:Documents:Add()
oWord:Caption := "Пробни рад - вежба"
oText := oWord:Selection()

oText:Font:Name := "Lucida Console"
oText:Font:Size := 10
oText:Font:Bold := .F.

// Tekst IZNAD tabele:

oText:TypeText( "Први ред текста..." )
oText:TypeParagraph()

oText:TypeText( "Други ред текста..." )
oText:TypeParagraph()

oText:TypeText( "Трећи ред текста..." )
oText:TypeParagraph()

// Kreiranje tabele:

oRange := oWord:ActiveDocument:Range()
oTable := oWord:ActiveDocument:Tables:Add( oRange, 2, 3)

x:=2
oTable:Rows:Add()
oTable:Rows:Add()
oTable:Rows:Add()
oTable:Cell(x, 1):Range:Font:Bold = .T.
oTable:Cell(x, 1):Range:Text := "Мирослав"
oTable:Cell(x, 2):Range:Text := "Раде"
oTable:Cell(x, 3):Range:Text := "Маричић"

x:=3
oTable:Cell(x, 1):Range:Font:Bold = .T.
oTable:Cell(x, 1):Range:Text := "Мирослав"
oTable:Cell(x, 2):Range:Text := "Раде"
oTable:Cell(x, 3):Range:Text := "Маричић"

oTable:Columns(1):Width := 40
oWord:Selection:Rows(1):Shading:Texture := 100

oTable:Rows(2):Cells:VerticalAlignment := 1
oTable:Columns(2):Cells:VerticalAlignment := 1
oTable:Columns(3):Select()
oText:ParagraphFormat:Alignment := 1

// Tekst ISPOD tabele:

oText:TypeText( "Овај текст би требало да буде ИСПОД табеле..." )
oText:TypeParagraph()

oWord:Visible := .T.
oWord:WindowState := 1

RETURN

Ова функција коју сам приказао не даје текст ИЗНАД табеле, сама табела је у реду, а текст који би требало да буде ИСПОД табеле, налази се у Cell( 1, 3 ).
Како би требало да изгледа код да бих добио изглед документа који желим?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Nažalost, ne znam jezik koji koristiš, ali možda bi ovo moglo da proradi:
STATIC PROCEDURE MsWord() LOCAL oWord, oText, oRange, oTable, x oWord := CreateObject( "Word.Application" ) oWord:Documents:Add() oWord:Caption := "Пробни рад - вежба" oText := oWord:Selection() oText:Font:Name := "Lucida Console" oText:Font:Size := 10 oText:Font:Bold := .F. // Tekst IZNAD tabele: oText:TypeText( "Први ред текста..." ) oText:TypeParagraph() oText:TypeText( "Други ред текста..." ) oText:TypeParagraph() oText:TypeText( "Трећи ред текста..." ) oText:TypeParagraph() // Kreiranje tabele: oTable := oWord:ActiveDocument:Tables:Add( oText, 2, 3) x:=2 oTable:Rows:Add() oTable:Rows:Add() oTable:Rows:Add() oTable:Cell(x, 1):Range:Font:Bold = .T. oTable:Cell(x, 1):Range:Text := "Мирослав" oTable:Cell(x, 2):Range:Text := "Раде" oTable:Cell(x, 3):Range:Text := "Маричић" x:=3 oTable:Cell(x, 1):Range:Font:Bold = .T. oTable:Cell(x, 1):Range:Text := "Мирослав" oTable:Cell(x, 2):Range:Text := "Раде" oTable:Cell(x, 3):Range:Text := "Маричић" oTable:Columns(1):Width := 40 oWord:Selection:Rows(1):Shading:Texture := 100 oTable:Rows(2):Cells:VerticalAlignment := 1 oTable:Columns(2):Cells:VerticalAlignment := 1 oTable:Columns(3):Select() oText:ParagraphFormat:Alignment := 1 oText:EndKey(6) oText:TypeParagraph() // Tekst ISPOD tabele: oText:TypeText( "Овај текст би требало да буде ИСПОД табеле..." ) oText:TypeParagraph() oWord:Visible := .T. oWord:WindowState := 1 RETURN



offline
  • Miroslav R. Maričić
  • diplomirani inženjer mašinstva, profesor
  • Pridružio: 06 Jun 2012
  • Poruke: 229
  • Gde živiš: Hajdučica, Banat, Srbija

Пробао сам твој пример и неће да ради. Јавља следећу грешку:

Error WINOLE/1007 Argument error: ADD (DOS Error -2147352571)

Грешка је у следећој линији кода:
oTable := oWord:ActiveDocument:Tables:Add( oText, 2, 3)

На месту ове линије је пре био следећи код:
oRange := oWord:ActiveDocument:Range()
oTable := oWord:ActiveDocument:Tables:Add( oRange, 2, 3)

Да није проблем у оном "oRange" ?...

Иначе, користим "HMG 3.1.1.", тј. Harbour + Mini Gui граф. библиотека за Win (написао сам то у претходним постовима, кад си ми решио проблем у хоризонталном пораванању текста у табели).
Поззз

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

oRange treba da bude oWord:Selection(). Koliko mi se čini oText je baš to.

offline
  • Miroslav R. Maričić
  • diplomirani inženjer mašinstva, profesor
  • Pridružio: 06 Jun 2012
  • Poruke: 229
  • Gde živiš: Hajdučica, Banat, Srbija

Пробао сам поново са кодом: oTable := oWord:ActiveDocument:Tables:Add( oText, 2, 3) и неће да ради, јавља горе наведену грешку. Али, снашао сам се. После много њушкања по Нету, написао сам овако нешто, и то ради добро:
...
...
nEnd:=oWord:ActiveDocument:Paragraphs(7):Range:End
oRange := oWord:ActiveDocument:Range( nEnd-1, nEnd-1 )
oTable := oWord:ActiveDocument:Tables:Add( oRange, 2, 3)
...
...
Текст испод табеле се појављује како треба, захваљујући оном што си ми написао у примеру:
oText:EndKey(6)
oText:TypeParagraph()

Тако да је и овај проблем решен...
Позз и хвала!

Ko je trenutno na forumu
 

Ukupno su 1294 korisnika na forumu :: 48 registrovanih, 5 sakrivenih i 1241 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., Atomski čoban, bigfoot, bojcistv, darkangel, DeerHunter, Dežurni pod palubom, Dragan1998, Frunze, Georgius, ikan, ivan979, kinez88, kunktator, kybonacci, Litostroton, LUDI, Luka Blažević, mercedesamg, milenko crazy north, milos.cbr, misa1xx, nebkv, Nemanja.M, nemkea71, nenad81, Neretva, oganj123, oldtimer, panonski mornar, panzerwaffe, ruger357, sap, sasa87, shone34, Sirius, slonic_tonic, srbijaiznadsvega, stalja, stegonosa, Tvrtko I, vathra, vladaa012, voja64, wolf1, zlaya011, 125, 79693