Bosna i Hercegovina



#1 06.06.2012-08:43
Branestan Offline
Clan
Registrovan/a od: 07.05.2012-20:02
Komentari: 65


Subject: 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 Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,488


Subject: 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 Offline
Clan
Registrovan/a od: 07.05.2012-20:02
Komentari: 65


Subject: 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 Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,354


Subject: 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 komentar je mijenjan 1 puta. zadnja izmjena 06.06.2012-13:15 od strane pmiroslav. ↑  ↓

#5 06.06.2012-13:12
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,488


Subject: 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 Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,721


Subject: Re: Kako prekinuti izvršavanje naredbe?
DownloadIzvorni kod (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..)
Pozdrav
↑  ↓

#7 08.06.2012-10:03
Branestan Offline
Clan
Registrovan/a od: 07.05.2012-20:02
Komentari: 65


Subject: 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 Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,721


Subject: 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.
Pozdrav
↑  ↓

Stranice (1): 1


All times are GMT +01:00. Current time: 19.07.2018-14:30.