Centar za edukaciju-BiH



#1 06.06.2012 08:43
Branestan Van mreze
Clan
Registrovan od:07.05.2012
Postovi:114


Predmet:Kako prekinuti izvršavanje naredbe?
Možda ste već opisivali ovaj problem ali ja nisam nigdje uspio pronaći, pa ću otvoriti novu temu.

Imam polje "Kol" u koje unosim količinu robe koju želim prodati. Napisao sam proceduru koja mi vraća raspoloživo stanje odabranog artikla, zatim to stanje uporedim sa količinom koju sam upisao. U slučaju da sam upisao veću količinu od one koja je raspoloživa, vraća mi poruku da smanjim količinu za razliku između zadate količine i stvarnog stanja.

Taj dio mi dobro funkcioniÅ¡e, sad mi je potrebno da dodam dio koji će, u slučaju kada je upisana količina veća od raspoložive, nakon poruke o pogreÅ¡no upisanoj količini prekinuti izvrÅ¡avanje naredbe, količinu vratiti na nulu i zadržati fokus na polju "Kol".

Private Sub Kol_BeforeUpdate(Cancel As Integer)
Dim a As Integer
Dim b As Double
Dim c As Double

a = Me.Izlaz1_Art
b = SaldoPozitivno(a)

c = Kol - b

If Kol > b Then
MsgBox ("Smanji količinu za" & " " & c)
End If

End Sub


Molim vas za pomoć. Samo me malo uputite, a ja ću doći do rjeÅ¡enja.

Kako na forumu postavljate procedure i ostale naredbe da je moguć download?
↑  ↓

#2 06.06.2012 10:58
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,828


Predmet:Re: Kako prekinuti izvršavanje naredbe?
If Kol > b Then
MsgBox ("Smanji količinu za" & " " & c)
me.Kol=0
Me.Izlaz1_Art.setfocus 'ovde dodadi nekoe pole na koe moze da se ima focus
Me.kol.setfocus

End If
↑  ↓

#3 06.06.2012 11:47
Branestan Van mreze
Clan
Registrovan od:07.05.2012
Postovi:114


Predmet:Re: Kako prekinuti izvršavanje naredbe?
Već sam pokuÅ¡avao neÅ¡to slično. Međutim, poÅ¡to je događaj BeforeUpdate u pitanju, odmah mi dio ME.Kol=0 izbacuje kao greÅ¡ku.

Kada umjesto BeforeUpdate koristim AfterUpdate i primijenim gore navedeno tada mi količinu vrati na nulu ali fokus se ne zadrži na polju Kol nego se pomjeri na sledeće polje.
↑  ↓

#4 06.06.2012 13:09
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Kako prekinuti izvršavanje naredbe?
Moželi li poslati neki primjer možda će biti lakÅ¡e.

ili probaj ovako ali After update

If (Kol < b) Then
MsgBox "Upisali ste količinu koja je veča od zalihe!"
Me.Recordset.Delete
End If
Pozdrav
Ovaj post je ureden 1 puta. Posljednja izmjena 06.06.2012 13:15 od strane pmiroslav. ↑  ↓

#5 06.06.2012 13:12
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,828


Predmet:Re: Kako prekinuti izvršavanje naredbe?
pred da ja azuriras kolicinata prvo prefrli go fokusot na drugo pole azuriraj ja kolicinata i vrati go fokusot na poleto stavi ja celata slucka na after update
↑  ↓

#6 06.06.2012 13:25
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,610


Predmet:Re: Kako prekinuti izvršavanje naredbe?
PreuzmiIzvorni kôd (Visual Basic):
  1. Private Sub  Kol_Exit(Cancel As Integer)
  2. Dim a As Integer
  3.  Dim b As Double
  4.  Dim c As Double
  5.  
  6.  a = Me.Izlaz1_Art
  7.  b = SaldoPozitivno(a)
  8.  
  9.  c = Kol - b
  10.  
  11. If Kol > b Then
  12. MsgBox ("Smanji koli
  13. inu za" & " " & c)
  14. Me.kol==Me.kol-c
  15. Cancel=-1
  16.  End If
  17.  
  18.  End Sub

Citat:
Kako na forumu postavljate procedure i ostale naredbe da je moguć download?
Slektujes kod pa na opciju u meniju kod te odaberes kod koji zelis (vb, PHP SQL idt..)
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#7 08.06.2012 10:03
Branestan Van mreze
Clan
Registrovan od:07.05.2012
Postovi:114


Predmet:Re: Kako prekinuti izvršavanje naredbe?
Elegantno rješenje, nema šta.

Hvala!

Postoji li mogućnost da se polje "Kol" zaključa nakon Å¡to ga napustim, ali samo to polje, ne čitava kolona "Kol"? Ono Å¡to sam ja pokuÅ¡avao zaključa mi cijelu kolonu, pa ne mogu vrÅ¡iti unos u sledećem redu.

Ovo pitam zbog sledećeg:
Kada unosim količinu za određeni artikal, sve funkcioniÅ¡e uredno. Prijeđem na sledeće polje (u istom redu), ako ima potrebe da korigujem upisanu količinu vratim fokus na polje "Kol" i upiÅ¡em novu količinu.

Međutim, kada prijeđem u sledeći red, u tabelama iz kojih vraćam raspoloživo stanje neke robe ažurira se prethodni red, nove su količine u pitanju. To nema veze sa novim redom, ali ako se desi slučaj da je potrebno da se vratim u prethodni red i promijenim količinu, tada se deÅ¡ava problem.

PoÅ¡to su nove količine ažurirane, sa lagera mogu skinuti samo preostali iznos (ako je neÅ¡to ostalo) ili nula komada ako sam prethodni puta upisao količinu koja je jednaka raspoloživom stanju.

Ovo nije problem ako ja radim sa bazom ali poÅ¡to će obično neko drugi raditi vjervatno će biti problema.

Konkretno:
1 red raspoloživo=5kom upisao Kol=4kom nakon ažuriranja stanje=1kom

prelaskom u sledeći red stanje se ažurira

iz nekog razloga vraćam se u prvi red da promijenim količinu koju sam ranije upisao, umjesto 5 kom treba biti 4 kom.

kad upiÅ¡em novu količinu i napuÅ¡tam polje izbaci mi poruku da smanjim količinu za 3 kom jer sada vidi da na stanju ima samo jedan komad.

Ima li nekakvo rjeÅ¡enje za ovaj problem ili sam pogrijeÅ¡io negdje ranije pri određivanju relacija?
↑  ↓

#8 08.06.2012 20:05
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,610


Predmet:Re: Kako prekinuti izvršavanje naredbe?
Imas ti tu par nacina.
Prvi je da kucas u to polje napr -3 ili pak da napravis napr. nakon 2 ili 3 pokusaja da te pusti da upises.
Moze se i napraviti procedura koja bi unijela u bazu 0 komada za taj artikl pa ponovo preracunati.
Pitanje je samo sta poslodavac trazi jer uglavnom kada se dese takve stvari vecina poslodavaca neda to da korisnici popravljaju radi kradje, nego samo jave sefu da je pogresno.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

Stranice (1):1


Sva vremena su GMT +01:00. Trenutno vrijeme: 10: 08 am.