Centar za edukaciju-BiH



#11 17.04.2014 09:38
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Redni brojevi, kako izbjeći greÅ¡ku?
Ne znam zapravo Å¡to da kažem. Testirao sam malo prije aplikaciju i namjerno sam mijenjao način plaćanja na viÅ¡e računa i sve je bilo u redu, nije preskočen ni jedan broj.
U originalnoj bazi od početka godine imam 572 rekorda gdje je način plaćanja gotovina i od toga se tri puta dogodilo preskakanje. Taj fiskalni broj za vrijeme ispisa računa upisujem i u jednu drugu tablicu gdje je to primarni ključ i zato dolazi do greÅ¡ke.
Dali ima načina da se nekim kodom ne dozvoli da u tblProdaja upiÅ¡emo FiskalniBroj je vza 2 ili viÅ¡e veči od predhodnog?
Pozdrav
↑  ↓

#12 17.04.2014 10:12
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,642


Predmet:Re: Redni brojevi, kako izbjeći greÅ¡ku?
Citat:
Testirao sam malo prije aplikaciju i namjerno sam mijenjao način plaćanja na viÅ¡e računa i sve je bilo u redu, nije preskočen ni jedan broj.
Nemoze biti ako si mi dao isti kod.
Ukoliko upises nacin placanja te krenes u novi rekord, sto znaci da si taj rekord zapisao i recimom da je on zauzeo br. 8.
Sada kad se vratis na taj isti rekord i izmijenis nacin placanja tvoja procedura prebroji broj rekorda 8 ili pak uzme iz zadnjeg broj a to je opet 8 te na njega doda 1 i sad preko ovog upisanoga 8 upise 9.
To ti se sigurno desava jer ti je na after update procedura na combu nacin placanja.
Znaci onaj kod ce gore pomoci sigurno sto sam ti dao jer nece upisivati novi fiskalni broj sem ako je 0.

Zbog ovoga nemozes niti provjeriti kao sto si gore napisao jer i kod funkcije provjere desilo bi se isto.

Primjer:
Imas 8 rekorda u tabeli.
Podizes formu i na formi se automatski pozicioniras na novi rekord (on jos nije upisan u tabelu).
Odabiramo nacin placanja i automatski pokrecemo proceduru DCount koja prebrojava u tabeli koliko ima redova to jest vraca rezultat 8+1 i upisuje u polje FiskalniBroj vrijednost 9.
Eto popunili smo sta treba i sve je u savrsenom redu i ako napravimo neku proceduru provjere naravno da ce vratiti da je sve uredu.
Sada kliknemo na novi rekor na formi.
Samim klikom na novi rekord zapisali smo postojeci rekord. To je tako kod accessa samo i to se zna cesto puta osvetiti.
Znaci sada u tabeli imamo zapisano 9 rekorda.
Ukoliko se sada ponovo vratimo na predhodni rekord vidjet cemo u polju FiskalniBroj broj 9 i to je uredu.
I sada kada bi napravili neku proceduru za provjeru i pozvali je sve bi bilo uredu.
Idemo sad da promijenimo nacin placanja (necemo promijeniti nego cemo odabrati isti).
Sta ce se desiti?
Opet cemo pokrenuti proceduru koja se nalazi na after update i sad matematika.
Procedura dcount vraca sada vrijednost 9 jer u tabeli sada uistinu ima 9 rekorda.
Sada 9+1=10
Znaci u polje FiskalniBroj ce se upisati vrijednost 10 u deveti rekord.

Ovo se nece desiti ako odaberes neki drugi nacin placanja a ne isti.
Samo je problem ako se odabere isti nacin placanja ponovo.

Probaj provjeri to i uvjerit ces se sam.
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#13 17.04.2014 10:42
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Redni brojevi, kako izbjeći greÅ¡ku?
PreuzmiIzvorni kôd (vbnet):
  1. Private Sub NacinPlacanjaID_AfterUpdate()
  2. Dim I As Integer
  3. Dim criterij As String
  4.  
  5. criterij = "NacinPlacanjaID=" & Me.Fiskal    ' Number
  6. I = DCount("[OrderID]", "tblProdaja", criterij) + 1 'Broji samo rekorde gdje je placanje gotovinom
  7. Me.Rabat.Locked = False
  8. Me.PDV.Locked = False
  9. Select Case Me.Fiskal
  10. Case 1      'Gotovina, fiskalni racun
  11.     Me.FiskalniBroj = I
  12.     Me.FiskalFormat = I & "/" & DLookup("OznakaPP", "Q_Firma") & "/1"
  13.     Me.Rabat = 0.15
  14. Case Else   'Ostali na ini placanja
  15.     Me.FiskalniBroj = 0
  16.     Me.FiskalFormat = " "
  17.     Me.RokPlacanja = 0      
  18. End Select
  19. End Sub
U proceduri imam Case Else pa ako izmijenim način plaćanja umjesto postojećeg broja upiÅ¡e se 0 i obrnuto, a funkcija DCount ne uzima u obzir rekorde gdje je fiskalnibroj=0
Pozdrav
Ovaj post je ureden 1 puta. Posljednja izmjena 17.04.2014 10:44 od strane pmiroslav. ↑  ↓

#14 17.04.2014 10:50
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,642


Predmet:Re: Redni brojevi, kako izbjeći greÅ¡ku?
Hajd ovo probaj kako sam gore opisao pa vidi hoce li preskociti.
1.Znaci upisi novi rekord napr odaberi nacin placanja gotovina.
2. Predji u novi rekord bez zatvaranja forme
3. Vrati se nazad na rekord koji si upisao i ponovo odaberi nacin placanja gotovina
4.Predji u novi rekord te zatvori formu i provjeri u tabeli jeli preskocio.

Citat:
U proceduri imam Case Else pa ako izmijenim način plaćanja umjesto postojećeg broja upiÅ¡e se 0 i obrnuto, a funkcija DCount ne uzima u obzir rekorde gdje je fiskalnibroj=0

Nista ti ovo ne znaci u case else nikad i ne ulazi jer ucombu nemozes ne odabrati nista ili nesto sto bi dalo else jer ti je cobo limitiran na listu.
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#15 17.04.2014 11:29
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Redni brojevi, kako izbjeći greÅ¡ku?
Moja forma je dizajnirana tako da se ne može sa nje preći u novi rekord. Formu otvaram preko forme za izbor kupca tako da se u nju automatski upiÅ¡u podaci o kupcu.
Na glavnoj formi biram samo način plaćanja, a u subformu upisujem artikle i količine. za to vrijeme mogu i promjeniti način plaćanja. Znači kada eventualno promijenim način plaćanja nalazim se joÅ¡ uvijek u istom rekordu
Pozdrav
↑  ↓

#16 17.04.2014 11:56
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,642


Predmet:Re: Redni brojevi, kako izbjeći greÅ¡ku?
Citat:
Moja forma je dizajnirana tako da se ne može sa nje preći u novi rekord. Formu otvaram preko forme za izbor kupca tako da se u nju automatski upiÅ¡u podaci o kupcu.

Zavisi kako si to uradio.
Ako mislis da si samo eliminisao rekord selektor i navigacioni taster opet mozes tastaturom preci.
No nije to tvoj proble.
Citat:
Na glavnoj formi biram samo način plaćanja, a u subformu upisujem artikle i količine. za to vrijeme mogu i promjeniti način plaćanja

Dok predjes na subformu u glavnoj formi se upisao rekord.
Znaci isto je kao da si presao na novi i vratio se.
Ti si zapisao podatke i sada ako se vratis i ponovo ih mijenjas imas gor opisanu stvar.

Neznam kako nemozes ovo da iozvedes da upises dupli ja znam sigurno da se to desava.

Znaci sada je dovoljno da udjes u subformu i da upisaj jedan rekord u njoj sada kada se vratis na glavnu formu i ponovo odaberes isti nacin placanja FiskalniBroj ce ti se uvecati jos za 1.
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#17 17.04.2014 12:20
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Redni brojevi, kako izbjeći greÅ¡ku?
Citiraj zxz:
[quote]Znaci sada je dovoljno da udjes u subformu i da upisaj jedan rekord u njoj sada kada se vratis na glavnu formu i ponovo odaberes isti nacin placanja FiskalniBroj ce ti se uvecati jos za 1.
Eu pravu si izgleda da je tu caka. Sada sam primjetio da ako ovo promjeni fiskalni broj.
Ako uđem u subformu i vratim se pa promjenim način plaćanja za neki drugi sve je u redu, ali ako je bilo gotovinsko pa opet kliknem na gotovinsko fiskalnibroj se promjeni.
Sad kad znamo gdje je proglem može li se kako napraviti da se onemogući dva puta birati gotovinsko plaćanje?
Pozdrav
↑  ↓

#18 17.04.2014 13:15
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,642


Predmet:Re: Redni brojevi, kako izbjeći greÅ¡ku?
Nemozes onemoguciti biranje jer ga onda neces vidjeti.
Probaj ovako.
U proceduri afterupdate na pocetku stavi ovo:
If Me.NacinPlacanjaID.OldValue = Me.NacinPlacanjaID Then GoTo Kraj

A prije endsub napisi:
Kraj:
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#19 17.04.2014 17:48
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Redni brojevi, kako izbjeći greÅ¡ku?
Ja sam u međuvremenu pokuÅ¡ao sa :
PreuzmiIzvorni kôd (vbnet):
  1. Case 1      'Gotovina, fiskalni racun
  2.     Me.FiskalniBroj = I
  3.     Me.FiskalFormat = I & "/" & DLookup("OznakaPP", "Q_Firma") & "/1"
  4. [i][b]Me.FiskalniBroj.Locked = True ' zakljuca se combo box [/b][/i]
  5. End If
  6. Case Else   'Ostali nacini placanja

i to na neki način rijeÅ¡ava problem jer kada jednom izaberem gotovinsko plačanje
Ali čini mi se da je tvoje elegantnije i to ću primjeniti.
Misali da je sada ovaj problem riješen.
Hvala svima na savjetima.

PS.
zašto mi obo bold ne radi aaaaaaa
Pozdrav
Ovaj post je ureden 1 puta. Posljednja izmjena 17.04.2014 17:51 od strane pmiroslav. ↑  ↓

Stranice (2):1,2


Sva vremena su GMT +01:00. Trenutno vrijeme: 1: 34 am.