Bosna i Hercegovina



#16 24.05.2019-10:56
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,405


Subject: Re: Custom Menu dozvole
Radim to sada ali samo amo direktno imenujem formu

Forms!frmPristup.Form.RecordSource = (StrSQL)

a u obliku
Dim ImeObjekta As String
ImeObjekta = "frmPristup"
Forms!imeObjekta.Form.RecordSource = (StrSQL)

ili

frm.RecordSource = (StrSQL)

ne radi
Pozdrav
↑  ↓

#17 24.05.2019-20:14
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,935


Subject: Re: Custom Menu dozvole
Citat:
Case 1 'Otvori formu
DoCmd.OpenForm ImeObjekta, , , , , acIcon
Set Frm = Forms(ImeObjekta)
Frm.SetFocus
Frm.RecordSource ="SELECT * FROM tblOperatori WHERE KorisnikID=" _
& M_Oper.OperID)
DoCmd.Restore

Ovo treba da radi
Pozdrav
↑  ↓

#18 26.05.2019-09:35
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,405


Subject: Re: Custom Menu dozvole
Još se mučim sa ovim.
Ovakva je stvar
Imam menu Administracija i Knjiženje
Kod administracije Tag = 1 ; Parameter = 1
Kod Knjiženje Tag = 1; Parametar = 2

Tag = 1 određuje da je objekt koji otvara formu
Parametar = 1 određuje da se otvara forma frmPristup
Parametar = 2 određuje da se otvara forma frmDokumenti

Kod frmPristup je svu redu
ali kod frmDokumenti ne radi mi kako treba.
Imama tri subMenia
-Međuskladišna
-Povratnica
-Revers

Otvaranje formi je u redu, međutim brojeve dokumenta ne odradi kako treba

Međuskladišna treba biti MS/0001/19 itd
Povratnica          PO/0001/19 itd
Revers              RV/0001/19 itd

Primjer sa macroima je uredu ali sa procedurom nije.

Ovaj dio coda je problem. Gdje ga staviti?
DownloadIzvorni kod (vb.net):
  1.         ElseIf PRMT = 2 Then
  2.            
  3.             Status = DLookup("[Status]", "tblTransakcijeVrsta", "[IDdokumenta] =" & ID)
  4.             Prefix = DLookup("[Prefix]", "tblTransakcijeVrsta", "[IDdokumenta] =" & ID)
  5.             Naziv = DLookup("[Dokument]", "tblTransakcijeVrsta", "[IDdokumenta] =" & ID)
  6.             BrojD = BrojDokumenta(Prefix)
  7.             Frm.IDdokumenta.DefaultValue = ID
  8.             Frm.BrojDok.DefaultValue = "'" & BrojD & "'"
  9.             Frm.Caption = UCase(Naziv)
  10.             DoCmd.Restore
  11.         End If


Prilozi:
Informacije o fajlu: rar  Proba MenuMP2.rar
Preuzimanja: 7
Veličina: 94.60 KB


Pozdrav
↑  ↓

#19 27.05.2019-23:27
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,935


Subject: Re: Custom Menu dozvole
Citat:
Još se mučim sa ovim.
Ovakva je stvar
Imam menu Administracija i Knjiženje
Kod administracije Tag = 1 ; Parameter = 1
Kod Knjiženje Tag = 1; Parametar = 2
Nemas ovdje nista upisano i ne treba po meni.
To je samo naziv menija i kad kliknes da se otvori meni.

U stavkanma menija trebas napisati nazive sta je sta.
U property tog menija
U tag samo id iz tabele Lmeni lista a u polje on action upises funkciju koju pozivas a to je OtvoriM()
Tu vise niosta ne treba pisati
Sda se na osnovu id pokrece sql:
SELECT * FROM L_MeniLista " _
& " WHERE ID=" & ID

Znaci uslov je ID i to je jedan red podataka:
Sve podatke mozes iscitati iz tog reda kada koristis tabelu.
Ako ne koristis tabelu onda bi ,orao pisati jos stosta u Property,

Trebao si uzeti moj primjer ali nema veze sad.

Ovako cemo:
Napisi ti u ova 2 menija sve sta treba da bude i ostalo sta treba za nuju.

Primjer:
Meni1: Administracija
Satvke:
Logovanje--> Forma ime forme i caption i sql ako treba neki

Meni2: Knjizenje
Stavke:
Medjuskladista ime forme je: Capion je: Sql:
Povratnica Ime forme je Caption je sql je.

Kad to napises ja cu ti odraditi primjer a ostalo sto ne treba pobrisati da te ne zbunjuje
Pokusat cu to uraditi sutra navecer
Ima tu jos nedostataka.
napr.
modul operatori
Funkcija:
Function SifraID()
If M_Oper.OperID = 0 Then
UcitajOper
End If
Sif=M_Oper.OperIDraID
End Function

Nije ti potrebna nijedna od ovih pri logovanju sve se to upise i poslije samo citas iz klase M_oper.
Sif=M_Oper.OperIDraID

a tamo gdje imas msgbox Niste logovani treba i da podize popup formu za logovanje tako da nemoze nista raditi.

Ok popravit cemo to.

alo bolje je jedno po jedno da bi razumio.
Idemo meni rijesiti i to sa tabelom LMeni lista.
Ako ovo dobro proucis dat cu ti kod koji pravi sam meni na osnovu ove tabele.
Pozdrav
↑  ↓

#20 28.05.2019-11:23
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,405


Subject: Re: Custom Menu dozvole
Ja sam u međuvremenu uspio srediti funkciju i ona mi sada radi točno ono što sam želio.
Jedino sada ako ti želiš da je eventualno dotjeraš i pojednostaviš.
DownloadIzvorni kod (vb.net):
  1. Function Otvori()
  2.  
  3. Dim ID As Integer
  4. Dim PRMT As Integer
  5. Dim Db As Database
  6. Dim Rs As Recordset
  7. Dim StrSQL As String
  8. Dim Frm As Form
  9. Dim Uslov As Integer
  10. Dim ImeObjekta As String
  11. Dim Tip As Integer
  12. Dim Prava As Integer
  13. Dim Status As Integer
  14. Dim BrojD As String
  15. Dim Prefix As String * 3
  16. Dim Naziv As String
  17.  
  18. On Error Resume Next
  19.  
  20. ID = Application.CommandBars.ActionControl.Tag 'Menu properties Tag
  21. PRMT = Application.CommandBars.ActionControl.Parameter 'Menu properties Parametar
  22.  
  23. On Error GoTo Kraj
  24.  
  25. Set Db = CurrentDb()
  26. If ID < 1 Then: GoTo Kraj
  27. If PRMT = 1 Then
  28.     StrSQL = "SELECT * FROM tblOperatori WHERE KorisnikID=" _
  29.             & M_Oper.OperID
  30.     Set Rs = Db.OpenRecordset(StrSQL)
  31.  
  32.         ImeObjekta = "frmPristup"
  33.         Tip = Rs!Sifra
  34.         Prava = Rs!PravaPristupa '1,2,3
  35.        
  36.             If Prava = 1 Then
  37.                 StrSQL = "SELECT * FROM tblOperatori"
  38.             ElseIf Prava = 2 Then
  39.                 StrSQL = "SELECT * FROM tblOperatori WHERE KorisnikID=" _
  40.                     & M_Oper.OperID
  41.             ElseIf Prava = 3 Then
  42.                  MsgBox "Kao gost" & vbCr & "nemate pravo koristiti ovu formu", vbOKOnly, "Upozorenje!"
  43.                 GoTo Kraj
  44.             End If
  45.            
  46. ElseIf PRMT = 2 Then
  47.     StrSQL = "SELECT *  FROM A_MenuLista " _
  48.             & "  WHERE ID=" & ID
  49.     Set Rs = Db.OpenRecordset(StrSQL)
  50.            
  51.         ImeObjekta = Format$(Rs!Ime)
  52.         Tip = Rs!Tip
  53.         Prava = Rs!Grupa '1,2,3
  54.        
  55.             Status = DLookup("[Status]", "tblTransakcijeVrsta", "[IDdokumenta] =" & ID)
  56.             Prefix = DLookup("[Prefix]", "tblTransakcijeVrsta", "[IDdokumenta] =" & ID)
  57.             Naziv = DLookup("[Dokument]", "tblTransakcijeVrsta", "[IDdokumenta] =" & ID)
  58.             BrojD = BrojDokumenta(Prefix)
  59. End If
  60.                         '------- OTVARANJE FORME -------
  61.   Select Case Tip
  62.  
  63.   Case 1
  64.             DoCmd.OpenForm ImeObjekta, , , , , acIcon
  65.             Set Frm = Forms(ImeObjekta)
  66.        
  67.     If PRMT = 1 Then
  68.         With Frm
  69.             .RecordSource = (StrSQL)
  70.             .Caption = "Korisni
  71. ki podaci: " & UCase(tkoRadiIme) & " " & UCase(tkoRadiPrezime)
  72.         End With
  73.             DoCmd.Restore
  74.            
  75.     ElseIf PRMT = 2 Then
  76.         With Frm
  77.             .DataEntry = True
  78.             .IDdokumenta.DefaultValue = ID
  79.             .BrojDok.DefaultValue = "'" & BrojD & "'"
  80.             .Caption = UCase(Naziv)
  81.         End With
  82.             DoCmd.Restore
  83.         End If
  84. Case Else
  85.           Beep
  86.             MsgBox "Objekt  <<" & ImeObjekta & ">> ne postoji " & vbCr & "ili je pogrešno unesen tip", vbExclamation + _
  87.             vbOKOnly, vbDefaultButton1
  88.            GoTo Kraj
  89.     End Select
  90.    
  91.  
  92.                             '------ NA IN OTVARANJA FORME ------
  93. Select Case Prava
  94.    
  95.     Case 1 'Ispravke
  96.             With Frm
  97.                 .FirstName.Enabled = True
  98.                 .LastName.Enabled = True
  99.                 .FormHeader.BackColor = 12632256
  100.                 .Detail.BackColor = 11916754
  101.                 .FormFooter.BackColor = 12632256
  102.                 .ScrollBars = False
  103.                 .RecordSelectors = False
  104.                 .NavigationButtons = True
  105.                 .DataEntry = False
  106.                 .AllowDeletions = True
  107.                 .AllowEdits = True
  108.                 .AllowAdditions = True
  109.             End With
  110.  
  111.     Case 2 'Pregled
  112.            With Frm
  113.                 .FirstName.Enabled = False
  114.                 .LastName.Enabled = False
  115.                 .Combo_Prava.Enabled = False
  116.                 .InsideHeight = Frm.Detail.Height
  117.                 .Detail.BackColor = 5950882
  118.                 .ScrollBars = False
  119.                 .RecordSelectors = False
  120.                 .NavigationButtons = False
  121.                 .DataEntry = False
  122.                 .AllowDeletions = False
  123.                 .AllowEdits = False
  124.                 .AllowAdditions = False
  125.             End With
  126.            
  127.     Case 3
  128.        
  129.     Case 4 'Meuskladišna
  130.             With Frm
  131.                 .Detail.BackColor = 7044491
  132.                 .Label_Partner.Caption = "Konsignator:"
  133.                 .IDdokumenta.Enabled = False
  134.                 .BrojDok = "'" & BrojD & "'"
  135.             End With
  136.                 DoCmd.Restore
  137.                
  138.     Case 5 'Povratnica
  139.             With Frm
  140.                 .Detail.BackColor = 9961471
  141.                 .Label_Partner.Caption = "Robu vratio:"
  142.                 .Skladiste_Label.Caption = "Ulaz u skladište:"
  143.                 .Skladiste_2.Visible = False
  144.                 .StovaristeID.Visible = False
  145.                 .IDdokumenta.Enabled = False
  146.             End With
  147.                 DoCmd.Restore
  148.                
  149.         Case 6 'Revers
  150.             With Frm
  151.                 .Detail.BackColor = 12177407
  152.                 .Skladiste_2.Visible = False
  153.                 .Label_Partner.Caption = "Robu preuzeo:"
  154.                 .StovaristeID.Visible = False
  155.                 .IDdokumenta.Enabled = False
  156.             End With
  157.                 DoCmd.Restore
  158.            
  159.         Case 7
  160.  
  161.  MsgBox "Greška poziva" & vbCr & "Br:" & Err.Number, vbExclamation + vbOKOnly + _
  162.     vbDefaultButton1, "Greska!!!"
  163.    
  164. End Select
  165.  
  166. Otvori = True
  167. Izlaz:
  168. Exit Function
  169. Kraj:
  170. Otvori = False
  171. End Function

Bio mi je problem kako otvoriti frmDokumenti na tri načina
u formi se mijenja podatak u Combu IDdokumenta

SELECT tblTransakcijeVrsta.IDdokumenta, tblTransakcijeVrsta.Dokument, tblTransakcijeVrsta.Status FROM tblTransakcijeVrsta ORDER BY tblTransakcijeVrsta.Dokument;

Upisuje se brojDok (MS/0001/19; PO/0001/19 ili RV/0001/19)

To određuje Function BrojDokumenta

I još je promjenjivo dali se videili ne pojedini textBox-ovi, te se kod svake varijante mijenja boja pozadine radi lakšek snalaženja.

Prilozi:
Informacije o fajlu: rar  Proba MenuMP3.rar
Preuzimanja: 5
Veličina: 129.93 KB


Pozdrav
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 28.05.2019-11:26 od strane pmiroslav. ↑  ↓

#21 30.05.2019-17:15
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,935


Subject: Re: Custom Menu dozvole
Ono sto si zamislio zahtijeva puno rada i razmisljanja ali stremi ka profesionalizmu.
Evo ja sam ti napravio kako bi trebalo to izgledati.
Ako nesto nije jasno bolje pitaj da ne lutas i ponovo pravis.
Imas klasu M_Oper i u njoj imas variable kojim je doseg cijela app.
Kada upises neki podatak ostaje sve dok ne izadjes iz programa ili se pojavi neka greska koju nisi predvidio pa bi trebalo da se ponovo podize forma za logovanje.
Napravio sam ti i da se forme podizu u red onli modu ako se loguje gost.
Imaju tu i tasteri na formi koji mozda gost ne smije kliknuti.
Mozes to rijesiti unoseci vrijednost u tag svake kontrole
Mogu ti to bolje objasniti.
E sad ako imas puno ovoga onda je najbolje napraviti dvije tabele, jednu za popis formi i operacija nad njima a drugu za kontrole relacijski vezano za ovu formi.

I to mogu ako se odlucis pojasniti.
Neke stavri moze rijesiti i na nivou forme kao sto je bilo ovo u tvom slucaju a ne na nivou menija.
Ukoliko se neke stvari odnose samo na jedan objekat onda je bolje to rijesiti na nivou tog objekta.
Ko tebe je to forma frm dokumnenti.
Mogao si na on load forme na osnovu id napraviti sve ove promjene.
Jedino ako se radi o vise objekata koji zahtijevaju iste promjene onda to rjesavas na nivuo ove procedure za otvaranje forme.

Ja sam koristio tabelu L_MeniLista i nisam tvoju htio dirati.
Isto tako sam otvorio i novi modul zxzMenu.
Ostalo nisam nista koristio sem ove klase M_oper tako da ostalo mopzes brisati ako tebi ne treba.

Prilozi:
Informacije o fajlu: zip  Proba MenuMP3_zxz.zip
Preuzimanja: 9
Veličina: 380.02 KB


Pozdrav
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 30.05.2019-17:16 od strane zxz. ↑  ↓

#22 31.05.2019-12:04
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,405


Subject: Re: Custom Menu dozvole
Hvala na ovome ali malo si mi zakomplicirao život. U cijelu ovu priču krenuo sa zbog toga da otvorim formu frmDokumenti sa Menia na tri načina.
Međuskladišna
Povratnica
Revers
Bio sam to riješio sa Makroima iz kojih se poziva funkcija "otvoriF", ali kako baš ne volim Makroe pokušavao sam tu funkciju pozvati direktno sa Menia. Sada sam naučio kako se to radi i još dosta novog.
Ovaj tvoj dio sa provjerom ispravnog logiranja je super
DownloadIzvorni kod (vb.net):
  1. If Format$(M_Oper.PravaO) = "" Then
  2. MsgBox "Niste logovani"
  3. GoTo LOG
  4. End If
i to ću svakako koristiti jer mi se već dešavalo da mi se iz nekog razloga isprazni memorija pa dolazi do greške u izvršavanju nekih procedura.
Što se tiče ovog tvog rješenja opet mi se ne otvaraju forme sa ispravno unesenom Vrstom i brojem dokumenta. Svaki puta upiše Revers i kod broja dokumenta RV. Trebalo bi biti kao na slici koje šaljem u prilogu.
Pokušavam ja to nekako pozvati sa OnLoad forme ali stalno mi negdje zapinje.

Ikona prilozene slike:
Formr_Razlike.jpg
Tip fajla: Informacije o fajlu: jpg jpg
Preuzimanja: 9
Veličina: 117.00 KB
Veličina slike: 454 x 900 Pixels


Pozdrav
↑  ↓

#23 31.05.2019-21:07
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,935


Subject: Re: Custom Menu dozvole
probaj ovako:
Na on load forme stavi ovaj kod.
DownloadIzvorni kod (Visual Basic):
  1. Private Sub Form_Load()
  2. Dim Prefiks As String
  3. Dim Db As DAO.Database
  4. Dim Rs As DAO.Recordset
  5. Dim SQL As String
  6. Set Db = CurrentDb
  7. SQL = "SELECT Prefix FROM tblTransakcijeVrsta WHERE idDokumenta=" & IDD
  8. Set Rs = Db.OpenRecordset(SQL)
  9. Prefiks = Rs!Prefix
  10. SQL = "SELECT *FROM tblDokumenti WHERE BrojDok Like'" & Prefiks & "*'"
  11. Me.RecordSource = SQL
  12. End Sub

a na on current ovo.
DownloadIzvorni kod (Visual Basic):
  1. Private Sub Form_Current()
  2. Dim I As Integer
  3. Dim Prefiks As String
  4. Dim Db As DAO.Database
  5. Dim Rs As DAO.Recordset
  6. Dim SQL As String, BrojStr As String
  7. Dim Broj As Integer, DuzB As Integer
  8.  
  9. Set Db = CurrentDb
  10. SQL = "SELECT Prefix FROM tblTransakcijeVrsta WHERE idDokumenta=" & IDD
  11. Set Rs = Db.OpenRecordset(SQL)
  12. Prefiks = Rs!Prefix
  13. SQL = "SELECT max(Int(Mid(BrojDok,4,4))) as  Br FROM tblDokumenti WHERE BrojDok Like'" & Prefiks & "*'"
  14. Set Rs = Db.OpenRecordset(SQL)
  15. If Format$(Rs!Br) <> "" Then
  16. Broj = Rs!Br
  17. End If
  18. Broj = Broj + 1
  19. DuzB = 4 - Len(Format$(Broj))
  20. For I = 1 To DuzB
  21. BrojStr = BrojStr & "0"
  22. Next I
  23. BrojStr = Prefiks & BrojStr & Format$(Broj) & "/" & Format(Date, "YY")
  24. Me.BrojDok.DefaultValue = "'" & BrojStr & "'"
  25. Me.IDdokumenta.DefaultValue = IDD
  26. End Sub

e sad ostalo ti je jos izmjene labela ali to stavi na on load.
Pozdrav
↑  ↓

#24 01.06.2019-17:07
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,405


Subject: Re: Custom Menu dozvole
Ovo bi trebalo raditi ali mi je problem ova varijabla IDD koja nije nigdje dimenzionirana

SQL = "SELECT Prefix FROM tblTransakcijeVrsta WHERE idDokumenta=" & IDD
SQL = "SELECT Prefix FROM tblTransakcijeVrsta WHERE idDokumenta=" & IDD

Odakle da je povučem?
Pozdrav
↑  ↓

#25 01.06.2019-23:00
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,935


Subject: Re: Custom Menu dozvole
uf zaboravio sam objasniti.
To je stara id pa sam je proglasio globalnom ali posto imas id stavio sam idd

DownloadIzvorni kod (Visual Basic):
  1. Option Compare Database
  2. Option Explicit
  3. Global IDD As Integer
  4. Function OtvoriM()
  5.  
  6. On Error Resume Next
  7. IDD = Application.CommandBars.ActionControl.Tag 'Menu properties Tag
  8. 'On Error GoTo Kraj
  9. Call Otvori_frm(IDD)
  10. Exit Function
  11. Kraj:
  12. On Error Resume Next
  13. Err.Clear
  14. End Function
u modulu zxzMenu
na vrhu stavi ovu globalno kao sto je u primjeru
a proceduru OtvoriM prekopiraj ili izmijeni
Pozdrav
↑  ↓

#26 02.06.2019-06:31
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,405


Subject: Re: Custom Menu dozvole
To je to. Puno hvala.
Idem sada dotjerivati moju aplikaciju pa ako bude još nekih problema javim se.
Pozdrav.
Pozdrav
↑  ↓

#27 03.06.2019-06:27
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,405


Subject: Re: Custom Menu dozvole
Evo sada sam primjetio jedan problem. U mojoj Aplikaciji mi ne radi komanda za logiranje
Menu -Log On/Off
Primjetio sam da je problem u slijedećem:
DownloadIzvorni kod (vb.net):
  1. If ID < 1 Then: GoTo Kraj
  2. If Format$(M_Oper.PravaO) = "" Then
  3. MsgBox "Niste logovani"
  4. GoTo LOG
  5. End If

Naime uočio sam da kada uđem u aplikaciju sa Shift (bez logiranja) da mi se u
klasi M_Oper.PravaO upiše 0, a trebalo bi biti prazno (" ")
Zbog toga mi gornji dio koda ne odradi kako treba.
U primjeru sa kojim smo radili se to ne događa.

___________
Evo naknadno sam primjetio da je kod mene
Public PtavaO As Integer
a ti si to izgleda promjenio u String.

Ikona prilozene slike:
Prava.jpg
Tip fajla: Informacije o fajlu: jpg jpg
Preuzimanja: 3
Veličina: 231.34 KB
Veličina slike: 598 x 478 Pixels


Pozdrav
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 03.06.2019-06:38 od strane pmiroslav. ↑  ↓

#28 03.06.2019-08:27
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,935


Subject: Re: Custom Menu dozvole
Ako je variabla dimenzionisana kao string bit ce prazan string a ako je dimenzionisana kao broj onda je po defaultu 0.

Mozes promijeniti tip variable ili napisati ovako:
If ID < 1 Then: GoTo Kraj
If Format$(M_Oper.PravaO)<1 Then
MsgBox "Niste logovani"
GoTo LOG
End If
Pozdrav
↑  ↓

#29 03.06.2019-09:18
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,405


Subject: Re: Custom Menu dozvole
Promijenio sam već u međuvremenu u String i sada je OK. Hvala
Pozdrav
↑  ↓

Stranice (2): 1, 2


All times are GMT +01:00. Current time: 26.06.2019-04:54.