[ DarkMan @ 18.01.2005. 20:42 ] @
Da bi odstampao neki report iz neke forme pozivam sledece:
Code:
DoCmd.OpenReport "NazivReporta"

Na ovaj nacin se report stampa ali je sve po default vrednostima tj. default stampac, 1 strana itd.
Kako bih mogao da obezbedim da se pre stampe pojavi "Print dialog" gde bi mogao da odaberem stampac i kod kojeg bih mogao da pritisnem Cancel za prekid stampe ?

Pokusavao sam nesto sa
Code:
DoCmd.RunCommand acCmdPrint

u Report_Open eventu ali nisam uspeo.
[ Zidar @ 18.01.2005. 21:27 ] @
Otvori report u Preview modu i onda klikni na Print dugme => dobices print Dialog box.

DoCmd.OpenReport reportName:="NazivReporta",View:=acpreview


[ DarkMan @ 19.01.2005. 16:47 ] @
Taj nacin mi ne odgovara.
Moje forme su sve modalne da bi mogle da rade iznad glavnog access prozora sto uklanja access-ov meni.
Kada se forme tako koriste onda se i report mora postaviti da je modalan da bi bio iznad forme i opet meni nije dostupan.
[ Zidar @ 19.01.2005. 20:37 ] @
Zar bas mor sve da bude modalno? Daj mi malo vremena, potrazicu, na nekom AMERICKOM sajtu ;-)
Moze sigurno preko API funkcija, ali verujem da u 2002 imas direktan pristup PrintDialog boxu kroz programski kod. Daj mi malo vremena pa cu ti naci nesto.

[ Zidar @ 19.01.2005. 20:45 ] @
Eto sto ti je AMERIKA. Odes na AMERICKI sajt i nadjes sve. Evo ti ovde dobra adresa:
http://www.mvps.org/access/reports/rpt0009.htm
Objasnjenja su cni mi se za Access 97 ali ce sve da radi i na 2002, dok ne nadjemo nesto bolje.


;-)
[ Zidar @ 19.01.2005. 21:06 ] @
Kad bolje razmislim, AMERICKI programeri nam ni ne trebaju, posto sve ima u Helpu. probaj ovo:
Code:

Function zListMyPrinters() As String
Dim prn As Printer
Dim strPrinters As String
For Each prn In Application.Printers
    'Debug.Print prn.DeviceName
    strPrinters = strPrinters & prn.DeviceName & ","
Next
zListMyPrinters= Left$(strPrinters, Len(strPrinters) - 1)
End Function

Function zSetPrinter(strPrinterDeviceName As String)
    Application.Printer = Printers(strPrinterDeviceName)
End Function


Napravi formu na kjoj imas list box lstMojiPrinteri. Funkcija zListMyPrintersce ti dati niz printera odvojene zarezom, sto je dobar roow source za lstMojiPrinteri. Kad korisnik izabere printer iz liste, pozoves funkciju
Code:

zSetPrinter(cstr(me!lstMojiPrinteri))
i gotovo.

Nisam testirao sa list boxom, ali mi izgleda obecavajuce. Funkcije rade OK.

:-)
[ DarkMan @ 20.01.2005. 20:53 ] @
Hvala ti sto si se potrudio da mi resis ovaj problem.
Za to sto si mi predlozio vec znam. Znam i za taj sajt (stvarno dobri primeri).
Da mi se to resenje svidja vec bi ga primenio, ali meni se svidja ovaj standardni microsoft-ov print dialog i nisam zadovoljan rucno pravljenim dijalogom.
Ako mi bas bude trebalo napravicu ga a do tada cu traziti neko drugo resenje.

Citat:
Zidar: Zar bas mor sve da bude modalno?


Neko je jednom pitao za fullscreen a odgovor je bio bio samo DoCmd.Maximize.
Pun odgovor bi bio DoCmd.Maximize + Modal.
Uz poruku sam okacio primer svog switchboard-a koji radi u fullscreen-u.
Bez modalne forme ovo nije moguce a ako report nije modalan onda on pobegne u pozadinu.
[ Linux_FreeBSD @ 20.01.2005. 22:23 ] @
E pozdrav team-u i raji , posebno tebi "Zidar" .. Vidim da ste specijalci u ovim oblastima i svaka Vam cast !! -- Ja imam jedno slicno pitanje ovom prethodnom, u vezi stampanja u MS Access-u.. Problem/pitanje je sledece : Kako da iz Access baze stampam izvjestaje po datumima (npr. ako je juce bio 19. januar) da ja kliknem "print" i da mi izvlaci na printer taj izvjestaje koji su napravljeni vec za odredeni datum.. meni fali samo
to kako se prinataju po datumima ne znam to uvezati ?? Pa ako znate i ako ste imali vec ovakvo nesto kao problem , pisite molim !! - Unaprijed zahvalan !'! - VoZdra.....
[ Daks @ 21.01.2005. 11:43 ] @
Citat:
darko79: Uz poruku sam okacio primer svog switchboard-a koji radi u fullscreen-u.
Bez modalne forme ovo nije moguce a ako report nije modalan onda on pobegne u pozadinu.


Switchboard ne radi?
[ DarkMan @ 21.01.2005. 17:10 ] @
Citat:
Daks: Switchboard ne radi?

Mozes li biti malo detaljniji. Koju ti gresku izbacuje ?
Meni switchboard radi. Ne bih ga okacio da ne radi.
[ Linux_FreeBSD @ 21.01.2005. 23:19 ] @
Ovaj doc. radi i sve je okej... ali mozete li dati neka objasnjenja za to.... (kako funkcionise sve) - PoZz.....
[ DarkMan @ 22.01.2005. 16:57 ] @
Ko god da je koristio standardni switchboard bi trebao da zna da koristi i ovaj.
Struktura podataka je ista (osim sto mi je zaostala kolona ReadOnly iz projekta, koja ovde nije potrebna).
Izmene switchboarda su uglavnom kozmetičke (na primer fullscreen prikaz, vreme, datum, simulacija senki itd.) mada ima i neke stvari kao sto je '-' labela koja znaci prazno mesto u meniju

Za izmenu strukture menija moze se koristiti i standardni Switchboard Manager (meni Tools->Database Utilities->Switchboard Manager)
[ Zidar @ 24.01.2005. 13:51 ] @
Darko, mislim da imam nesto sto ti moze zavrsiti posao. U reportu stavis ovaj kod:
Code:

Option Compare Database
Option Explicit

Private Sub Report_Close()
On Error Resume Next
Forms("Switchboard").Visible = True
End Sub

Private Sub Report_Open(Cancel As Integer)
On Error Resume Next
Forms("Switchboard").Visible = False
End Sub


Sta se desava? Kad otvoris report, sakrijes formu. Kad sakrijes formu, onda report ostaje na povrsini i kod mene se pojavljuju sve Accessove ikone, pa i ona za poziv Print dialog boxa. Ako ti se ne dopada kompletan set ikona, mozes za report da napravis customized menu, sa samo dve ikone Close i Print (i mozda Zoom). Kad zatvoris report, forma se ponovo vraca i normalno nstavljas rad.

On Error Resume Next je stavljeno da bi se report mogao otvoriti i kad nije Switchboard aktivan. Moguce je da ti treba malo lepsi error handling. Isto, pre promene vidljivosti forme Switchboard, zgodno je proveriti da li je forma otvorena, esto kao
Code:

If IsFormOpen("Switchboard") then
 forms("Switchboard").visible =.......
endif