Barvna shema: Temna
Trenutno dejavna stran: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Forms Object Library » how-to » Načrtovanje opravil z odvisnostmi

Načrtovanje opravil z odvisnostmi

Ohranite vrstni red opravil v gantogramu: povežite opravila, naj odvisna opravila sledijo spremembi ali naj se le sporoči, kaj je porušeno, in trajanje štejte v delovnem času.

Zahteva WKL Forms Object Library 1.23 ali novejšo različico.

Pregled rešitve

Odvisnosti prihajajo iz tabele (DependencySource s PredecessorField, SuccessorField, LinkTypeField, LagField) ali iz polja z besedilom naslednika (PredecessorsField). ScheduleMode določa, kaj stori sprememba: wgsManual ne premakne ničesar in porušene odvisnosti navede v Violations; wgsAutomatic premakne odvisna opravila. Delovni čas izhaja iz WorkDays, WorkHours in prostih dni iz HolidaySource; DurationUnit šteje v dnevih ali urah. Uporabniki povezujejo in razvezujejo s Ctrl+F2 in Ctrl+Shift+F2, prek priročnega menija ali tako, da potegnejo črto od konca ene palice do druge.

Izvedba

With Me!Gantt1.Object
    ' Dependencies as text in the task record instead of a table: "3FS+2;5SS"
    ' (FS finish-to-start, SS start-to-start, FF finish-to-finish, SF start-to-finish; lag in DurationUnit).
    .DependencySource = ""
    .PredecessorsField = "Predhodniki"
 
    ' Calendar: Monday to Saturday, 7:00-12:00 and 12:30-16:00, nonworking days from a table.
    .WorkDays = 2 + 4 + 8 + 16 + 32 + 64            ' bit 1 = Sunday ... bit 64 = Saturday
    .WorkHours = "07:00-12:00;12:30-16:00"
    .HolidaySource = "tblPrazniki": .HolidayField = "Dan"
 
    ' Automatic scheduling: link 3 -> 4 with one working day lag; 4 and its successors follow.
    .ScheduleMode = wgsAutomatic
    .LinkTasks 3, 4, wglFinishToStart, 1
    .SetTaskDates 3, #10/8/2026#, #10/12/2026#     ' 4 moves again
 
    ' Manual: nothing moves; broken dependencies are listed and drawn red.
    .ScheduleMode = wgsManual
    Dim item As Variant
    For Each item In .Violations
        Debug.Print item
    Next
    .Reschedule                                     ' "Znova načrtuj projekt": everything as early as allowed
 
    Debug.Print .TaskDuration(3), .TaskSlack(3), .IsCritical(3)
End With

Opombe

  • Konec je zadnji delovni dan opravila (pri DurationUnit = ure: trenutek, ko se delo konča). Opravilo, ki zajema prost dan, traja en delovni dan manj; konec ostane tam, kjer ga določajo podatki.
  • Opravil brez odvisnosti in omejitev samodejno načrtovanje nikoli ne premakne, zato prvi klic Reschedule ne premeša načrta, ki je bil vnesen ročno.
  • Opravilo, ki ga v samodejnem načinu premaknete ročno, dobi omejitev „začetek ne prej kot“; da se ohrani tudi v naslednjih sejah, preslikajte ConstraintTypeField in ConstraintDateField.
  • LinkTasks zavrne odvisnost, ki bi sklenila krog (wkeCycle), in odvisnost med opravilom in njegovim lastnim povzetnim opravilom (wkeInvalidValue); v tem primeru se ne zapiše nič.
  • Oris je del načrta: IndentTask in OutdentTask (Alt+Shift+desno/levo, Zamakni/Zmanjšaj zamik v priročnem meniju) opravilo spremenita v podopravilo predhodnega opravila oziroma ga premakneta iz njegovega povzetnega opravila; TaskResources in Dodeli vire … dodelijo vire.
  • Spremembe s kodo ne sprožijo dogodkov. Enake spremembe, ki jih naredi uporabnik, sprožijo BeforeTaskChange, BeforeLinkAdd ali BeforeLinkDelete, kjer jih lahko VBA prilagodi ali prekliče.

Sorodne teme

sl/wiki/msaccess/comctl/how-to/plan-tasks-with-dependencies.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille