|
[ sabacc @ 22.04.2009. 10:01 ] @
| Na On Click Događaj imam dva izveštaja. Ne mogu da postavim uslov tako da ako mi štampa prvi ne odštampa i drugi izveštaj i obrnuto (ne štampa prvi štampa drugi izveštaj).
Private Sub Command53_Click()
On Error GoTo Err_Command53_Click
Dim stDocName As String
stDocName = "Prijemno_insp_prikaz"
DoCmd.OpenReport stDocName, acNormal, "Prijemno_insp_prikaz"
stDocName = "Prijem_sav_prikaz"
DoCmd.OpenReport stDocName, acNormal, "Prijem_sav_prikaz"
End Sub
|
[ Scelle @ 22.04.2009. 11:50 ] @
Ne razumijem bas sta hoces da kazes...
Ali ja ovo obicno rjesavam tako sto napravim dva radio button-a, pa korisnik odabere koji izvjestaj zeli da ostampa.
[ sabacc @ 22.04.2009. 12:47 ] @
Da, ali problem je što ja u kodu imam mnogo više izveštaja. U upitu na kom su zasnovani izveštaji dao sam kriterijume štampe, ali potreban je i dodatni uslov u codu (jedan izveštaj ima kriterijum drugi ne pa nije problem da odštampa samo jedan ako upit ne zadovoljava uslov. Problem je ako zadovoljava onda štampa oba, a trebao bi samo taj koji zadovoljava uslov). Pokušavao sam sa If-Then-Else petljom. Bez uspeha...
[ Getsbi @ 22.04.2009. 13:19 ] @
Sve si napisao samo ne i uslov na osnovu čega Access treba da odluči kada da štampa prvi, a kada drugi izveštaj. Ne bitno je da li je "If...Then...Else...Endif" ili "Select Case....End Select" struktura. Bitno je da kriterijum mora da postoji. Scelle ti je dao način kako da spolja (sa forme) kontrolišeš pokretanje izveštaja. Ako je uslov unutrašnji (zavisi od podataka, recimo broja zapisa u tabeli) onda to treba da je kriterijum u gore pominjanim strukturama.
[ sabacc @ 22.04.2009. 13:35 ] @
Private Sub Command45_Click()
On Error GoTo Err_Command45_Click
Dim stDocName As String
Dim uslov As String
If Reports![Prijemno_unu_prikazatc] .Cancel=False Then
stDocName = "Prijemno_unu_prikazatc"
DoCmd.OpenReport stDocName, acPreview, "Prijemno_unu_prikazatc", uslov
Else
stDocName = "Prijemno_unu_prikaz"
DoCmd.OpenReport stDocName, acPreview, "Prijemno_unu_prikaz", uslov
Exit_Command45_Click:
Exit Sub
Err_Command45_Click:
'MsgBox Err.Description & " Za tekući broj ne postoji izveštaj..", vbOKOnly, "Izveštaj"
Resume Next
End If
End Sub
Postavljao sam razne uslove, ali ne funkcioniše. Verovatno grešim u postavci petlje. U prevodu kada izveštaj Prijemno_unu_prikazatc zadovoljava uslov prikaži njega u suprotnom prikaži Prijemno_unu_prikaz.
Izveštaj Prijemno_unu_prikazatc na događaj On no data je postavljen na Cancel=True što znači ne prikazuj ga ako ne zadovoljava uslov
[ Getsbi @ 22.04.2009. 13:52 ] @
Mislim da tačka ispred Cancel treba da bude odmah iza zagrade. Nisam siguran da će Access da "žvaće" ovu proceduru. Poruku svakako neće da pokaže jer uvek ispadne iz procedure pre nego dođe do nje. Za FilterName si napisao naziv izveštaja što svakako ne odgovara. Za WhereCondition si napisao uslov koji je samo inicijalizovan i nije definisan, nema ga u proceduri.
[ Catch 22 @ 22.04.2009. 13:52 ] @
Možda bi moglo ovako (eventualno malo prilagodi svojim potrebama)
Code:
Private Sub Command53_Click()
Dim Msg, Style, Title, Response
Dim stDocName1 As String, stDocName2 As String
stDocName1 = "Prijemno_insp_prikaz"
stDocName2 = "Prijem_sav_prikaz"
On Error GoTo Err_Command53_Click
Msg = "Da li želite da štampate izveštaj:" & stDocName1 &"?"_
& Chr(13) & Chr(13) & "Napomena: Ako odaberete [No] biće odštampan: " & stDocName2
Style = vbYesNo + vbQuestion + vbDefaultButton2 ' Define buttons.
Title = "KOJI IZVEŠTAJ ŽELITE DA ODŠTAMPATE?" ' Define title.
Response = MsgBox(Msg, Style, Title)
If Response = vbNo Then
DoCmd.OpenReport stDocName, acNormal, stDocName2
Exit Sub
Else
DoCmd.OpenReport stDocName, acNormal, stDocName1
End If
End Sub
;)
[ Zidar @ 22.04.2009. 14:42 ] @
AJde da se pridruzim i ja.
Jos uvek nevidimo uslov za stampu u kodu. Sabacc je napisoa ovo:
If Reports![Prijemno_unu_prikazatc] .Cancel=False Then
stDocName = "Prijemno_unu_prikazatc"
DoCmd.OpenReport stDocName, acPreview, "Prijemno_unu_prikazatc", uslov
Iz toga zakljucujem report Reports![Prijemno_unu_prikazatc] moze negda u Open eventu da bude cancelovan, zavisno od nekog uslova koji mi ne nzamo. Lici mi i da je u pitanju NoData event za report. To znaci da se otvaranje drugog reporta kontrolise iz prvog, bukvalno, a ne iz koda na formi. ako bas mora tako, ond aje uzaludno pokusavati na formi da ucinimo nesto.
Covek je zamislio ovako "probam da odstampam report [Prijemno_unu_prikazatc], pa ako se on sam u tom procesu canceluje, onda da probam [Prijem_sav_prikaz]". Ako bas mora tako, onda je mozda bolje u eventu koji canceluje report [Prijemno_unu_prikazatc] staviti
IF Cancel = TRUE then
stDocName = "Prijemno_unu_prikaz"
DoCmd.OpenReport stDocName, acPreview, "Prijemno_unu_prikaz", uslov
End iF
Uh, sad vidim da se koristi promenljiva Uslov, koja je definisana negde van procedure Command45_Click()
kao i da su oba reporta vec otvorena u momentu kad se klikne na Command45. Samo za otvoreni report moze se pisati
Reports![Prijemno_unu_prikazatc]. Reports! ne vidi reporte koji jos nisu otvoreni. Znaci, prvo ide DoCmd.OpenReport pa tek onda moze uradi nesto sa Reports![neki report].
Ovde nesto ne valja. A da nam sabacc kaze koji su reporti i koji su uslovi u pitanju, onako logicki, na srpskom a ne u VB. Ovako nekako:
Report [Prijemno_unu_prikazatc] predstavlja ....
Report [Prijemno_unu_prikaz] predstavlja .....
Zelim da se prikaze [Prijemno_unu_prikazatc] kada je ispunejn uslov <ovde opisi na srpskom kakav je to uslov logiski, ne programski>, a ako nije ispunjen taj uslov da se onda otvori [Prijemno_unu_prikaz] .
[ domaci_a_nas @ 22.04.2009. 18:47 ] @
Zdravo đaci
Dragi sabacc, ja mislim da si ti ovde nešto debelo iskomplikovao. Ako već testiraš da li će report imati podatke, mislim da je najbolje da sačuvaš Query koji ćeš posle izabrati kao RecordSource Reporta, i njega da analiziraš bez otvaranja reporta. Tako ti svojstvo Cancel (koje ja mislim i ne postoji) uopšte neće biti potrebno. Nisam siguran da su oba reporta otvorena, što bi ih otvarao opet ?
[ Zidar @ 22.04.2009. 19:21 ] @
Dragi sabacc, pitanje ocigledno nisi jasno postavio. Jos da se javi Trtko i imas kompletnu trenutno najjacu ekipu na forumu koja pokusava da ti pomogne. Nazalost, ne mozemo pomoci ako ne objasnis tacno sta ti treba, na logickom nivou, ne na nivou koda.
Ako uspes da nam objasnis, onda ces verovatno dobiti 5-6 mogucih resenja, koja ce se manje ili vise razlikovati u nacinu i pristupu, ali ce sva raditi ono sto si trazio. Dobro je videti pet-sest mogucih nacina da se problem resi, jer jednog dana sve to moze zatrebati. To se zove srecan covek, ima 5-6 majstora da mu pomazu
Red je na tebi.
[ Getsbi @ 22.04.2009. 22:20 ] @
Nikola je u pravu. To svojstvo ne postoji u toj kolekciji. sabacc verovatno radi samo pre podne kao savki normalan zdravstveni radnik. 
[ sabacc @ 23.04.2009. 06:49 ] @
Drugari! Hvala na pomoći, probaću da iskoristim vaše savete. Nisam mogao do kraja da ispratim vaša rešenja na forumu. Posao, posao, posao...
[ Trtko @ 23.04.2009. 08:02 ] @
Code:
IF uslov="prazna pivska flaša" then
msgbox " alo konobar, donesi novu"
else
if trt="malo pijan" then
msgbox " alo mala dojdi trtku"
else
msgbox "što ču kućiiiiiiiii tako ranooooooooooooooooo "
endif
Docmd.srk, " do dna "
endif
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|