Prikazi cijelu temu 06.05.2012 11:28
zxz Na mrezi
Administrator
Registrovan od:03.02.2009
Lokacija:Tuzla


Predmet:Re: Radni nalog na osnovu dnevnog prometa
Evo Procedura.
Opet napominjem da je ovo ludost sto radis.
Ovo je ono kada od kobasice hoces napraviti bika.
Procedura ce raditi dobro ukoliko su procenti priblizno tacni i iznos tacan na osnovu kolicina.
Raskini vezu tblRadniNalog i TblradniNalogStavke te pobrisi podatkke iz njih i onda napravi RdniNalogID autonuber.
Poslije ponovo napravi relaciju i to sa kaskadnim brisanjem.
PreuzmiIzvorni kôd (Visual Basic):
  1. Function RadniNalog(Datum As Date)
  2. Dim Db As Database
  3. Dim Rs1 As Recordset, Rs2 As Recordset
  4. Dim SQL As String, DatumS As String
  5. Dim Suma As Currency, K As Currency, Ostatak As Currency
  6. Dim ID As Integer
  7. Dim Iznos As Single, Procenat As Single, Cijena As Single
  8. Dim BrKomada As Integer
  9.  
  10.  
  11. DoCmd.SetWarnings False
  12. DatumS = Format(Datum, "mm-dd-yyyy")
  13. SQL = "SELECT Sum( Razduzenje) AS Suma FROM tblPromet " _
  14.       & "WHERE DatumK=#" & DatumS & "#"
  15. Set Db = CurrentDb
  16. Set Rs1 = Db.OpenRecordset(SQL)
  17. Suma = Rs1!Suma
  18. Rs1.Close
  19. SQL = "SELECT * FROM TblRadniNalog WHERE Datum=#" & DatumS & "#"
  20. Set Rs1 = Db.OpenRecordset(SQL)
  21.  
  22. If Rs1.RecordCount > 0 Then
  23. Dim R As String
  24. R = MsgBox("Za datum:" & Datum & vbCrLf & "Nalog vec postoji." & vbCrLf _
  25. & "Hoete eli da uradite ponovo?  ", _
  26. vbYesNo + vbExclamation + vbApplicationModal + vbDefaultButton1, "NAPOMENA")
  27.  If R = vbYes Then
  28. SQL = "DELETE  * FROM TblRadniNalog " _
  29.  & "WHERE Datum=#" & DatumS & "#"
  30.  DoCmd.RunSQL (SQL)
  31.  ElseIf vbNo Then
  32.  Rs1.Close
  33.  GoTo Izlaz:
  34.  End If
  35. End If
  36. Rs1.AddNew
  37. Rs1!Datum = Datum
  38. ID = Rs1!RadniNalogID
  39. Rs1.Update
  40. Rs1.Close
  41. SQL = "SELECT * FROM tblArtikli ORDER BY MPC DESC"
  42. Set Rs1 = Db.OpenRecordset(SQL)
  43. Set Rs2 = Db.OpenRecordset("TblRadniNalogStavke")
  44. Do While Not Rs1.EOF
  45. Procenat = Rs1!ProcenatIsk
  46. Cijena = Rs1!MPC
  47. Iznos = Suma * Procenat + Ostatak
  48. K = Iznos / Cijena
  49. BrKomada = K
  50. Ostatak = K - BrKomada
  51. Unos:
  52. Rs2.AddNew
  53. Rs2!RadniNalogID = ID
  54. Rs2!PC = Rs1!PC
  55. Rs2!ArtikalID = Rs1!ArtikliID
  56. Rs2!NazivArtikla = Rs1!NazivArtikla
  57. Rs2!JedMjere = Rs1!JedMjere
  58. Rs2!Kolicina = BrKomada
  59. Rs2!VrstaPekProizv = Rs1!VrstaPekProizv
  60. Rs2!PodvrstapekProizv = Rs1!PodvrstapekProizv
  61. Rs2!TezinaGotProizvoda = Rs1!TezinaGotProizvoda
  62. Rs2!VrstaUtrBrasna = Rs1!VrstaUtrBrasna
  63. Rs2!KolicinaUtrBrasna = Rs1!KolicinaUtrBrasna * BrKomada
  64. Rs2.Update
  65. Rs1.MoveNext
  66. Loop
  67. Izlaz:
  68. DoCmd.SetWarnings True
  69. Exit Function
  70. Kraj:
  71. End Function
U tabeli tblRadniNalogStavke ne trebaju ti sva ona silna polja jer ih imas u TblArtilli.
Potrebno je samo:
RsdniNalogID
ArtikalID
Klicina
KolicinaUtrosenogBrasna
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.