Horizontalno poravnanje teksta u ćeliji tabele - MS Word

Horizontalno poravnanje teksta u ćeliji tabele - MS Word

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

Пишем програм који користи Excel и Word за креирање извештаја. Потребне објекте и методе сам пронашао на Интернету, примере за VB, које сам само мало синтаксно прилагодио програмском језику са којим радим (Harbour Mini Gui верзија 3.1.1.) и то је исправно радило. На пример, код за вертикално поравнање (центрирање) текста у другом реду табеле изгледа овако:

oTable:Rows(2):Cells:VerticalAlignment := 1

и ово ради добро.
Када сам, аналогно претходном примеру, употребио следећи код

oTable:Rows(2):Cells:HorizontalAlignment := 1

да бих добио и хоризонтално поравнање (опет центрирано), појављује се следећа грешка:

Error WINOLE/1008 No exported variable: HORIZONTALALIGNMENT (DOS Error -2147352570)

Јасно ми је шта та грешка значи, па сам дуго времена тражио по Интернету пример за хоризонтално поравнање текста унутар ћелије (лево, центар, десно) и нисам нашао ништа. Стога бих замолио програмере у VB да ми напишу део кода који врши ХОРИЗОНТАЛНО ПОРАВНАЊЕ ТЕКСТА У ЋЕЛИЈИ ТАБЕЛЕ MS WORDA. А ја ћу лако преправити код да синтаксно одговара мом прог. језику с којим радим. Хвала ! Laughing



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

Ne razumem te baš najbolje, jel radiš sa Harbour-om ili VB?



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

U VB bi to izgledalo ovako:
oTable.Rows(2).Cells.HorizontalAlignment = 1

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

Радим са "HMG 3.1.1." а то значи Harbour + MiniGui (графичка библиотека за Win). Пошто је то бесплатно и опен сорс, нема довољно (скоро никакаво) упутство (списак објеката, метода, функција са све синтаксом и описом како то ради), па се ми, који то користимо, сналазимо како знамо. Зато сам на Интернету нашао у Визуал Бејзику како се користи Excel и Word и то примењујем, уз одговарајуће измене, наравно. На пример, за креирање документа у Word-у нашао сам следећи код у VB:

Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection
objSelection.Font.Name = "Arial"
objSelection.Font.Size = "18"
objSelection.TypeText "Network Adapter Report"
objSelection.TypeParagraph()


Ја ово преводим, да би радило у "HMG 3.1.1.", овако:

objWord := CreateObject("Word.Application")
objWord.Visible := .Т.
objWord:Documents:Add()
objSelection := objWord:Selection()
objSelection:Font:Name := "Arial"
objSelection:Font:Size := 18
objSelection:TypeText( "Трла баба лан, да јој прође дан Razz " )
objSelection:TypeParagraph()


Итд, итд, итд...
Дакле, могу се уочити разлике у синтакси (у VB-у се објекти раздвајају ТАЧКАМА, а у "HMG 3.1.1."-у ДВОТАЧКАМА, итд...
И то све лепо ради... Али, нисам успео да нађем како да извршим хоризонтално поравнавање текста у ћелијама табеле...

Srki_82 је послао овај код: oTable.Rows(2).Cells.HorizontalAlignment = 1 .

Ја сам написао раније да такав код неће да ради, тј, добијам грешку коју сам такође навео у претходној поруци... Тај део кода би у синтакси Харбура изгледао овако:

oTable:Rows(2):Cells:HorizontalAlignment := 1 значи само двотачке уместо тачака.

Мора да је нешто друго у питању... Ако би VB програмери написали парче кода којим се креира табела са "икс" редова и "ипсилон" колона, па онда убацили неки произвољан текст и извршили вертикално и хоризонтално центрирање, па тај код објавили, ја бих онда тачно знао шта да радим... Јбг, уморио сам се, данима копам по Нету и ништа... Crying or Very sad

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

Aha... nisam razumeo pitanje Smile Probaj ovako:
oTable:Rows(2):Cells:VerticalAlignment := 1 oTable:Rows(2):Select() oSelection:ParagraphFormat:Alignment := 1

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:Rows(2):Cells:VerticalAlignment := 1
oSelection:=oTable:Rows(2):Select()
oSelection:ParagraphFormat:Alignment := 1

Јавља се runtime грешка: Error BASE/1004 No exported method: PARAGRAPHFORMAT
Значи, други ред кода је ок, али у трећем јавља да нема тај метод "ParagraphFormat"...

Ај' види још неке варијанте, можда упали Smile ... Одох сад на славу, Св. Трифун, код пријатеља! Smile

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

Napisano: 14 Feb 2013 19:47

Ne, ne... taj oSelection dobijaš onako kako si ga i pre dobijao:
oSelection := oWord:Selection()

Dopuna: 14 Feb 2013 19:48

Funkcija oTable:Rows(2):Select() ne vraća ništa.

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

Ово ради !!!!
Srki_82, МАЈСТОРЕ! ХВАЛА И ЖИВЕО ! Very Happy
(Управо сам дошао са славе, благо поднапит, Smile )

Ko je trenutno na forumu
 

Ukupno su 820 korisnika na forumu :: 7 registrovanih, 0 sakrivenih i 813 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: goxin, Koridor, opt1, stalja, Viktor Petrenko, vukovi, ZrakM89