Poslao: 14 Feb 2013 08:44
|
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. А ја ћу лако преправити код да синтаксно одговара мом прог. језику с којим радим. Хвала !
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
|
Poslao: 14 Feb 2013 12:43
|
offline
- Srki_82
- Moderator foruma
- 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
|
|
|
|
Poslao: 14 Feb 2013 15:06
|
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( "Трла баба лан, да јој прође дан " )
objSelection:TypeParagraph()
Итд, итд, итд...
Дакле, могу се уочити разлике у синтакси (у VB-у се објекти раздвајају ТАЧКАМА, а у "HMG 3.1.1."-у ДВОТАЧКАМА, итд...
И то све лепо ради... Али, нисам успео да нађем како да извршим хоризонтално поравнавање текста у ћелијама табеле...
Srki_82 је послао овај код: oTable.Rows(2).Cells.HorizontalAlignment = 1 .
Ја сам написао раније да такав код неће да ради, тј, добијам грешку коју сам такође навео у претходној поруци... Тај део кода би у синтакси Харбура изгледао овако:
oTable:Rows(2):Cells:HorizontalAlignment := 1 значи само двотачке уместо тачака.
Мора да је нешто друго у питању... Ако би VB програмери написали парче кода којим се креира табела са "икс" редова и "ипсилон" колона, па онда убацили неки произвољан текст и извршили вертикално и хоризонтално центрирање, па тај код објавили, ја бих онда тачно знао шта да радим... Јбг, уморио сам се, данима копам по Нету и ништа...
|
|
|
|
Poslao: 14 Feb 2013 16:06
|
offline
- Srki_82
- Moderator foruma
- 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 Probaj ovako:
oTable:Rows(2):Cells:VerticalAlignment := 1
oTable:Rows(2):Select()
oSelection:ParagraphFormat:Alignment := 1
|
|
|
|
Poslao: 14 Feb 2013 18:50
|
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"...
Ај' види још неке варијанте, можда упали ... Одох сад на славу, Св. Трифун, код пријатеља!
|
|
|
|
Poslao: 14 Feb 2013 19:48
|
offline
- Srki_82
- Moderator foruma
- 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.
|
|
|
|
Poslao: 15 Feb 2013 02:51
|
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, МАЈСТОРЕ! ХВАЛА И ЖИВЕО !
(Управо сам дошао са славе, благо поднапит, )
|
|
|
|