თავი 3. ანგარიშგების  ფორმირება და მართვა

მაგალითი: ანგარიშგებაში ჯგუფის დასახელების შეცვლა 

Private Sub Report_Open(Cancel As Integer)
Me.GroupLevel(0).ControlSource = “kursi”  ’ჯგუფის დასახელების შეცვლა დაკავშირებულია ანგარიშგების მოვლენასთან Open. აჯგუფის არსებული დასახელება იცვლება დასახელებით  “kursi”  
End Sub
ჯგუფის თვისებები: GroupHeader, GroupFooter, GroupInterval, GroupOn,  KeepTogether, SortOrder, ControlSource
  • GroupHeader, GroupFooter – ჯგუფის სათაურის და შენიშვნის არსებობა. პროგრამულად მათი შექმნა ფუნქციით CreateGroupLevel ხორციელდება;
  • ControlSource – მიეთითება. მონაცემების დაჯგუფე-ბის (ჯგუფის) ცხრილის ველის სახელი მაგ.,  Me.GroupLevel(0).ControlSource =”kursi”.   დაჯგუფება ხორციელდება ცხრილის ველით სახელით ”kursi”;
  • SortOrder – მიეთითება ჯგუფში მონაცემების დახარისხების წესი. მისი მნიშვნელობებია/ცხრ.3.2/:

  • GroupOn – უჩვენებს ანგარიშგებაში მონაცემების დაჯგუფების წესს. თვისების GroupOn  მნიშვნელობა დამოკიდებულია დაჯგუფების ველის მონაცემის ტიპზე. მხოლოდ ჯგუფის სათაურისა და შენიშვნის არსებობისას აზრი აქვს ამ თვისებისთვის მნიშვნელობის მინიჭებას. თვისების GroupOn  შესაძლო მნიშვნელობებია/ცხრ.3.3/:
  • GroupInterval – უჩვენებს სტრიქონის დაჯგუფების ველის დაშორებას. სისტემის მიერ ამ არგუმენტის მნიშვნელობის გაგება დამოკიდებულია არგუმენტის GroupOn-ის მნიშვნელობაზე. გაჩუმებით არგუმენტის მნიშვნელობაა 1. განსხავავებული მნიშვნელობის მისაცემად აუცილებელია ჯგუფის სათაურის და შენიშვნის არსებობა. თუ თვისების GroupOn-ის მნიშვნელობაა  Each Value, მაშინ GroupInterval-ის მნიშვნელობა გაჩუმებით ერთის ტოლია. თუ GroupOn-ის მნიშვნელობაა Text, მაშინ  GroupInterval-ის მნიშვნელობა გვიჩვენებს დაჯგუფების სიმონაცემთა ბაზაოლოების რაოდენობას. მაგ., GroupInterval=4 ნიშნავს, რომ დაჯგუფება მარცხნიდან 4 სიმონაცემთა ბაზაოლოთი ხორციელდება. თუ GroupOn-ის მნიშვნელობაა Date/Time, მაშინ  GroupInterval-ის მნიშვნელობები 2-დან 8-მდე გვიჩვენებს  ჯგუფში წლების, კვარტალების, თვეების, კვირეების, დღეების, საათების, წუთების რაოდენობას. მაგ., 

Sub testiRep()
Dim i As Byte
Dim strRep As String
strRep = ”Rstudenti“
On Error GoTo t1
DoCmd.Echo False
DoCmd.OpenReport strRep, acViewDesign
DoCmd.RunCommand acCmdReportHdrFtr
i = CreateGroupLevel(strRep, ”gvari“, True, False)
Reports!Rstudenti.Section(acGroupLevel1Header).Height = 250 ’ჯგუფებს შორის მანძილის დაყენება
 With Reports(strRep).GroupLevel(i)
 .GroupOn = 1 ’ჯგუფი ტექსტური ტიპისაა
 .GroupInterval = 3 ’დაჯგუფება ველის პირველი სამი სიმონაცემთა ბაზაოლოთი ხორციელდება
 End With
DoCmd.OpenReport strRep, acViewPreview
t2: DoCmd.Echo True
Exit Sub
t1: MsgBox Err.Number
Resume t2
End Sub

  • KeepTogether – სისტემას მიუთითებს გვერდზე ჯგუფის დაბეჭდვის წესს. მისი მნიშვნელობებია/ცხრ. 3.4 /:

მუდმივა        
მნიშვნელობა
აღწერა
Ascending
False
დახარისხება ზრდადობით
Desending
True
დახარისხება შემცირებით
მონაცემის ტიპი                
               
მუდმივა
მნიშვნელობა
Text /Number
Each Value
0
Text
Prefix Character
1
Date/Time
Year
2
Date/Time
Qtr
3
Date/Time
Month
4
Date/Time
Week
5
Date/Time
Day
6
Date/Time
Hoyr
7
Date/Time
Minute
8
Number
Interval
9
მუდმივა                        
მნიშვნელობა
აღწერა
No
       0
სისტემა არ ცდილობს ერთ გვერდზე დაბეჭდოს ჯგუფის სათაური, მონაცემები და შენიშვნა
Whole Group
       1
სისტემა ცდილობს ერთ გვერდზე დაბეჭდოს ჯგუფის სათაური, მონაცემები და შენიშვნა
With First Detail
       2
სისტემა ცდილობს ერთ გვერდზე დაბეჭდოს ჯგუფის სათაური და მონაცემების პირველი სტრიქონი
თუ ვერ ხერხდება თქვენს მიერ სისტემისადმი წაყენებული მოთხოვნების დაკმაყოფილება, მაშინ სისტემა ბეჭდავს მონაცემებს შესაძლებლობის მიხედვით. უმრავლეს შემთხვევაში  პროგრამაში KeepTogether-ს  მიეთითება ორის ტოლი მნიშვნელობა.

ანგარიშგების და ანგარიშგების განყოფილებების მოვლენები
ანგარიშგების მოვლენები: Open, Activate, Format, Retreat, NoData, Print, Page, Deactivate, Close.
მოვლენები  Open, Activate, Deactivate, Close ფორმის მოვლენების იდენტურია.

    •        Format (ანგარიშგების განყოფილების ფორმატიზა-ცია) – მოვლენა წარმოიქმნება Access-ის მიერ ანგარიშგების განყოფილებაში მონაცემების მონიშვნისას ფორმატიზაციის დაწყებამდე;
    •        Retreat (დაბრუნება) – მოვლენა წარმოიქმნება Access-ის მიერ ფორმატიზებული მონაცემების  კორექტირების დროს. მაგ., ჯგუფის მონაცემები არ ეტევა მოცემულ გვერდზე. სისტემა ახრციელებს ფორმატიზებული მონაცემების კორექტირებას იმ მიზნით, რომ ჯგუფის ყველა ჩანაწერი მოცემულ გვერდზე მოთავსდეს;
    •        NoData (მონაცემების არარსებობა) – მოვლენა წარმოიქმნება ანგარიშგების მოცემულ განყოფილებაში მოსათავსებელი მონაცემების არარსებობისას;
    •        Print (ბეჭდვა) – მოვლენა წარმოიქმნება მონაცემების ფორმატიზაციის დამთავრების შემდეგ მონაცემების ეკრანზე გამოტანამდე ან დაბეჭდვის დაწყებამდე; 
    •        Page (გვერდი) – ანგარიშგების ახალ გვერდზე გადასვლის წინ.

ანგარიშგების გაღება

ანგარიშგების გაღების სინტაქსი:
DoCmd. OpenReport  ReportName (ანგარიშგების სახელი), [View (წარმოდგენა)], [FilterName (ფილტრი)], [WhereCondition (პირობები)], [DataMode (მონაცემების რეჟიმი)], [WindowMode (ფანჯრის რეჟიმი)], [OpenArgs  (ოპერანდები) ]
DoCmd. OpenReport არგუმენტი:
    •        View ანგარიშგების ეკრანზე გამოსახვის სახეს გვიჩვენებს. მისი მნიშვნელობებია: acViewDesign –  დაპროექტების რეჟიმი, acViewNormal – ბეჭდვაზე გამოტანა, acViewPreview – დათვალიერების რეჟიმი;  
   •        FilterName ანგარიშგებაში გამოყენებული მონაცემების ამორჩევის შეკითხვის სახელია; 
   •     WhereCondition მონაცემების ამორჩევის გამოსახულებაა. იგი SQL ინსტრუქციაში WHERE-ს ანალოგიურია, მხოლოდ იმ განსხვავებით, რომ  საკვანძო სიტყვა  WHERE  გამოსახულებაში არ მონაწილეობს;
   •        WindowMode ანგარიშგების გაღების წესს გვიჩვენებს. მისი მნიშვნელობებია: acWindowNormal – ანგარიშგების თვისებაში ჩადებული რეჟიმი, acHidden – ანგარიშგება გაღებულია, მაგრამ ეკრანიდან გადამალულია,  acDialog – ანგარიშგება გაღებულია, როგორც მცურავი დიალოგური ფანჯარა, acIcon – ფორმის გაღების შემდეგ იგი წარმოდგენილია იარლიყის სახით;
   •        OpenArgs – ოპერანდები, ხორციელდება ფორმის მოდულში ნებისმიერი დამატებითი  მონაცემების გადაცემა. 

მაგალითი: ანგარიშგების გაღება

Sub Rgareba()
On Error GoTo t1
DoCmd.OpenReport „Rstudenti“, acViewNormal
t2: Exit Sub
t1: MsgBox „Secdoma“ & Err.Number & „;“ & Err.Description
Resume t2
End Sub

მოვლენა NoData
შეკითხვით შეიძლება მონაცემები ამორჩეული არ იქნეს.   არარსებული მონაცემების დაბეჭდვის ბრძანების მიცემისას წარმოიქმნება მოვლენა NoData და  ანგარიშგების მონაცემების განყოფილებაში სისტემის მიერ გამოიტანება შეტყობინება <<#Error>>.  ამ შეტყობინების გამოტანის აკრძალვის მიზნით მოვლენასთან NoData დააკავშირეთ შეტყობინება მონაცემების არარსებობის შესახებ და გააუქმეთ დაბეჭდვა. 

მაგალითი: მონაცემების არარსებობისას დაბეჭდვის გააუქმება
Private Sub Report_NoData(Cancel As Integer)
MsgBox  “monacmebi ar aris”
DoCmd.Close acForm, Fstudenti ‘ დაიხურება ფორმა სახელით Fstudenti
End Sub

შემდეგ გვერდზე - ანგარიშგების მოვლენები