Poslao: 15 Feb 2013 23:12
|
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.
|
|
Poslao: 15 Feb 2013 23:41
|
offline
- Srki_82
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Moderator foruma
- 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
|
|
|
|
Poslao: 16 Feb 2013 08:20
|
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 (написао сам то у претходним постовима, кад си ми решио проблем у хоризонталном пораванању текста у табели).
Поззз
|
|
|
|
Poslao: 16 Feb 2013 16:31
|
offline
- Srki_82
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Moderator foruma
- 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.
|
|
|
|
Poslao: 16 Feb 2013 20:45
|
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()
Тако да је и овај проблем решен...
Позз и хвала!
|
|
|
|