[ minickg @ 24.02.2010. 06:02 ] @
Kako da zadam da se text box u Writeru ne stampa, znaci treba da se odstampa text koji sam uneo ali ne i text box?
Ujedno napravim Push Button i kako da odradim da kad kliknem to dugme dobijem prazne text boxove.
[ Goran Rakić @ 24.02.2010. 12:38 ] @
Zdravo Marko,

U opcijama štampača moguće je isključiti štampanje kontrola, biće odštampan samo tekst. Datoteka > Štampaj, dugme Opcije u donjem levom uglu, isključiti Kontrole u odeljku Sadržaj.

Alternativno, kao što ti je sigurno poznato postoji opcija da se napravi tekstualno polje bez okvira (u režimu uređivanja desni klik na kontrolu, iz menija Kontrola, na kartici stavka Ivica prebaciti na Bez ivice). Moguće je definisati makro na događaj štampanja koji bi privremeno isključio okvire.


Kako da se iz makroa napravi novo tekstualno polje nisam ni ja znao, ali tu je dokument koji je napisao sjajni Andrew Pitonyak. Za uvod, polje se sastoji od dva objekta: kontrole i oblika. Oblik je ono što vidimo u dokumentu i ima širinu, visinu, poziciju. Kontrola je ono čemu pristupamo iz makroa da očitamo vrednost ili šaljemo na server/bazu kada šaljemo obrazac i ima svojstva model, ime i vrednost.

Code:

Sub DodajPolje (oEvent as Object) 
  Dim oForm, oControl, oShape as Object
  Dim aPos as new com.sun.star.awt.Point 
  Dim aSize as new com.sun.star.awt.Size

  ' Pravimo kontrolu 
  oControl = ThisComponent.CreateInstance("com.sun.star.form.component.TextField")
  oControl.DataField = "NAME"
  oControl.Name = "txtNAME"
 
  ' Pravimo oblik
  oShape = ThisComponent.createInstance("com.sun.star.drawing.ControlShape") 

  ' Dimenzije
  aSize.Width = 5000
  aSize.Height = 800
  oShape.Size = aSize

  ' Položaj
  aPos.X = 5000
  aPos.Y = 7000
  oShape.Position = aPos

  oShape.Control = oControl

  ' Dodajemo kontrolu formi u kojoj se nalazi dugme, izvor događaja
  oForm = oEvent.Source.Model.Parent    
  oForm.insertByIndex(0, oControl) 

  ' Dodajemo oblik u dokument radi prikaza
  ThisComponent.getDrawPage().add(oShape)
  
End Sub


E sada zavisno od potrebe možda i nije potrebno praviti nove kontrole na klik već se postojeće mogu prikazati ili u njih omogućiti unos.

Pozdrav za sve korisnike paketa OpenOffice.org u RZZO.
[ minickg @ 24.02.2010. 16:42 ] @
Svaka cast :)))))))))))))
[ minickg @ 25.02.2010. 05:59 ] @
Cek jos nesto :)

Treba mi Push Button koji ce da dodeli vrednost text boxovima = " " ili ti prazan string.


[ Goran Rakić @ 25.02.2010. 12:07 ] @
To je već lako. Nađemo formu u kojoj je dugme, zatim kontrolu po imenu i promenimo tekst.

Code:

Sub PromeniTekst(Event as Object)
  Dim Form, Control as Object

  ' Nadjemo objekat forme odakle je poslat klik kao i prošli put
  Form = Event.Source.Model.Parent

  ' Nađemo kontrolu koju želimo da promenimo po njenom nazivu
  Control = Form.getByName("naziv_polja") 

  ' Upišemo novi tekst
  Control.Text = "Zdravo svete!"

End Sub


U jednom redu: Event.Source.Model.Parent.getByName("naziv_polja").Text = "Zdravo svete!". Ukoliko je polje vezano za neki izvor podataka onda treba pozvati .BoundedField.updatestring(...).

E sada da očistimo sva polja može jedno po jedno po imenu ili da kroz petlju prođemo kroz sva polja i očistimo ona koja su tekstualna.
Code:

Sub OcistiTekst(Event as Object)

  Dim Form, Control as Object
  Dim i as Integer

  Form = Event.Source.Model.Parent

  ' Za svaku kontrolu u formi
  For i = 0 To Form.getCount()-1
    Control = Form.getByIndex(i)

    ' Ako je kontrola tekstualno polje
    If Control.supportsService("com.sun.star.form.component.TextField") Then
       Control.Text = ""
    End If
  Next
  
End Sub


[Ovu poruku je menjao Goran Rakić dana 25.02.2010. u 13:26 GMT+1]
[ minickg @ 26.02.2010. 18:57 ] @
Kada unesem tekst u text box , dechekiram u print>options>controls i ne odstampa mi niti text box niti tekst koji sam uneo u kontrolu tekst box. Meni je naravno bitno da mi odstampa samo tekst koji sam uneo u text box kontrolu.
E sad jos jedna stvar, ovu proceduru (kod) sto si mi napisao treba da unesem gde?

[ minickg @ 26.02.2010. 19:24 ] @
Ako ti ne oduzimam mnogo vremena ne bi bilo lose da odradis video da ga izbacis na youtube i da mi das link. Ujedno ce posluziti mnogima.
Znaci nekoliko tekstualnih polja i jedno dugme koje ce da pocisti tekst unesen u tekstualna polja (text boxove).


Hvala unapred. Poz
[ Goran Rakić @ 26.02.2010. 19:59 ] @
Slabo mi ide to sa snimanjem videa, ali evo potrudiću se rečima.

Dakle kao i prethodne, funkcija PromeniTekst je napisana u OpenOffice.org bejzik makro jeziku. Makroi mogu biti sačuvani u dokumentu ili na računaru (vidljivi iz svih dokumenata) i organizovani su u biblioteke. Biblioteka ima module, a svaki modul sadrži funkcije/makroe. Bibliotekama pristupamo iz menija „Alatke > Makroi > Organizuj makroe > OpenOffice.org bejzik“.



U prozorčetu u grupi „Moji makroi“ nalazimo podrazumevanu biblioteku „Standard“ i njen modul „Modul 1“. Novi modul možemo da napravimo klikom na dugme „Nov“, a modul otvaramo za uređivanje klikom na dugme „Uredi“. Modul će se otvoriti u bejzik uređivaču:



Ovde treba ubaciti kod funkcija. Sve funkcije prikazuju se u prethodnom prozorčetu organizatora kao sadržaj modula.

Napravimo obrazac. Prikažemo paletu „Kontrole obrasca“ preko menija „Prikaz > Palete alatki“. Dokument podrazumevano prelazi u režim uređivanja obrasca. Kliknemo na šestu ikonicu u paleti „Polje za tekst“ i potom razvučemo polje u dokumentu. Potvrdimo akciju klikom sa strane (polje izlazi iz fokusa) i ponovimo po potrebi. Na isti način dodamo i dugme.

Preostaje da povežemo da klik na dugme pozove funkciju iz našeg modula. Kliknemo desnim na dugme, i odaberemo „Kontrola“ da otvorimo prozorče sa postavkama. (Prozorče uvek prati izabranu kontrolu, slučajan klik sa strane može da prebaci prozorče na uređivanje neke druge kontrole) Na kartici „Događaji“ pored „Izvrši akciju“ kliknemo na dugme i zatim u novom prozorčetu kliknemo na desno dugme „Makro“ ispod teksta Dodeli. Izaberemo našu biblioteku, modul i na kraju makro OcistiTekst.



Testirajmo obrazac. Kliknimo na drugu ikonicu na paleti „Kontrole obrasca“ da isključimo režim uređivanja. Upišimo tekst, kliknimo na dugme i tekst će biti obrisan.

Štampa. Da, u pravu si. Ona opcija ne štampa ni vrednost polja. Možeš na kartici „Opšte“ prozorčeta gde smo ranije postavili događaj postaviti da se kontrola ne štampa (Za štampu: Ne) za dugme, a onda isključiti ivicu polja. Obično se za štampu tih unapred zadatih vrednosti koristi „Polje za oznaku“, a ne „Polje za tekst“. Oznaka nema ivicu, ali ni korisnik ne može da ukuca oznaku. Ostaje i mogućnost da se pre štampe isključe svi okviri polja (ručno na kartici „Opšte“, opcija „Ivica“ na „Bez okvira“) i tako ostavi samo tekst koji bi se onda štampao.


Ako imaš volje da ovo pretočiš u video uputstvo koje bi bilo od pomoći drugim korisnicima ili da opišeš konkretan primer kako ti ova funkcionalnost pomaže u radu, rado ću to postaviti na http://sr.openoffice.org
[ minickg @ 27.02.2010. 10:47 ] @
Nema frke :P