Farbschema: Dunkel
Sie befinden sich hier: start » sl » Dokumentacija » Orodja za Microsoft Access » WKL Forms Object Library » how-to » Izmenjava načrtov s programom Microsoft Project

Izmenjava načrtov s programom Microsoft Project

Načrt predajte nekomu, ki dela v programu Microsoft Project, in prevzemite njegove spremembe ali prevzemite načrt, ki je bil začet v Projectu – brez dvojnikov in brez izgube zapisov.

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

Pregled rešitve

ExportToProject zapiše Microsoft Project XML (Project ga odpre z Datoteka › Odpri, vrsta datoteke XML). ImportFromProject tako datoteko prebere in njena opravila uskladi z zapisi: opravilo, ki najde svoj zapis, ga posodobi, ostala se dodajo. Odvisnosti in dodelitve virov se uskladijo po parih (predhodnik in naslednik, opravilo in vir). ProjectUidField hrani enolični ID (UID), ki ga Project dodeli vsakemu opravilu, zato je usklajevanje stabilno v obe smeri. Z ShowDialog (ali z Uvozi iz MS Project … v priročnem meniju) uporabnik predlog vidi in popravi, preden se kar koli zapiše.

Izvedba

Krožna izmenjava: načrt gre v Project in se od tam vrne.

With Me!Gantt1.Object
    .ExportToProject "Nacrt.xml"
    ' ... edited and saved as XML in Project ...
    Debug.Print "Spremenjena opravila: " & .ImportFromProject("Nacrt.xml")
End With

Prvi uvoz načrta, ki je nastal v Projectu in čigar UID-jev tabela še ne pozna:

With Me!Gantt1.Object
    .ProjectUidField = "ProjectUID"                       ' a Long field of tblTasks
    .ImportFromProject "Selitev.xml", wgiName, False, True   ' by name, check in the dialog
    ' From now on: by the stored UID, also after renaming in Project.
    .ImportFromProject "Selitev.xml"
End With

Brisanje zapisov, ki jih datoteka nima več (z njihovimi odvisnostmi in dodelitvami):

Me!Gantt1.Object.ImportFromProject "Nacrt.xml", DeleteMissing:=True

Opombe

  • Usklajevanje (MatchBy): wgiAuto uporabi ProjectUidField, če je nastavljen, sicer ključ; wgiKey ustreza datotekam, ki jih je ExportToProject zapisal iz tabele s ključem tipa Long ali s samoštevilom; wgiName, namenjen prvemu uvozu, primerja ime in imena vseh povzetih opravil nad njim.
  • Novi zapisi dobijo ključ iz samoštevila ali UID opravila, če je ključ število in je ta vrednost prosta, zato jih drugi uvoz najde tudi brez ProjectUidField. S sestavljenim ključem novih opravil ni mogoče dodati; v pogovornem oknu jih namesto tega dodelite obstoječim zapisom.
  • Kaj se zapiše: ime, začetek, konec (ali trajanje), napredek, mejnik, omejitev, rok, osnovni načrt in mesto v orisu, kjer se razlikujejo. Povzeta opravila obdržijo izračunane datume. Prosti dnevi koledarja gredo v HolidaySource; delovni dnevi in ure so lastnosti obrazca in ostanejo, kot so (pogovorno okno pove, kdaj se razlikujejo).
  • Krožne izmenjave ostanejo stabilne: izvoz vsakemu opravilu brez omejitve zapiše omejitev „začetek ne prej kot“ na njegov lastni začetek, zato Project ohrani datume; uvoz to prebere nazaj kot „čim prej“. Uvoz nespremenjene datoteke ne zapiše ničesar.
  • Ne izmenja se: ročno razporejanje (oblika XML za Project 2007 nima polja zanj; Project opravila razporedi sam, zato se opravilo, ki v wgsManual krši odvisnost, v Projectu premakne), vrzeli razdeljenih opravil in videz grafikona.
  • Vse se zapiše v eni transakciji; napaka ne zapiše ničesar. Uvoz, klican iz kode, ne sproži dogodkov; pri uvozu iz pogovornega okna vsak zapis sproži BeforeUpdate/AfterUpdate.

Sorodne teme

sl/wiki/msaccess/comctl/how-to/exchange-plans-with-ms-project.txt · Zuletzt geändert: von Wolfgang van der Stille