Barvna shema: Temna
Trenutno dejavna stran: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » how-to » Pläne mit Microsoft Project austauschen

Pläne mit Microsoft Project austauschen

Geben Sie einen Plan an jemanden weiter, der in Microsoft Project arbeitet, und übernehmen Sie dessen Änderungen wieder, oder übernehmen Sie einen Plan, der in Project begonnen wurde – ohne Duplikate und ohne Datensätze zu verlieren.

Voraussetzungen: WKL Forms Object Library 1.23 oder höher.

Lösungsüberblick

ExportToProject schreibt Microsoft-Project-XML (Project öffnet es über Datei › Öffnen, Dateityp XML). ImportFromProject liest eine solche Datei und ordnet ihre Vorgänge den Datensätzen zu: Ein Vorgang, der seinen Datensatz findet, ändert ihn, die übrigen werden hinzugefügt. Abhängigkeiten und Ressourcenzuordnungen werden paarweise zugeordnet (Vorgänger und Nachfolger, Vorgang und Ressource). ProjectUidField bewahrt die eindeutige ID (UID), die Project jedem Vorgang gibt, sodass die Zuordnung in beide Richtungen stabil bleibt. Mit ShowDialog (oder Aus MS Project importieren … im Kontextmenü) sieht und korrigiert der Benutzer den Vorschlag, bevor etwas geschrieben wird.

Umsetzung

Ein Rundlauf: Der Plan geht nach Project und kommt zurück.

With Me!Gantt1.Object
    .ExportToProject "Plan.xml"
    ' ... edited and saved as XML in Project ...
    Debug.Print .ImportFromProject("Plan.xml") & " Vorgänge geändert"
End With

Der erste Import eines in Project erstellten Plans, dessen UIDs der Tabelle nichts sagen:

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

Die Datensätze löschen, die die Datei nicht mehr enthält (mit ihren Abhängigkeiten und Zuordnungen):

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

Hinweise

  • Zuordnung (MatchBy): wgiAuto verwendet ProjectUidField, wenn es gesetzt ist, sonst den Schlüssel; wgiKey passt zu Dateien, die ExportToProject aus einer Tabelle mit einem Long- oder AutoWert-Schlüssel geschrieben hat; wgiName vergleicht für einen ersten Import den Namen und die Namen aller darüberliegenden Sammelvorgänge.
  • Neue Datensätze erhalten als Schlüssel den AutoWert oder, wenn der Schlüssel eine Zahl und dieser Wert frei ist, die UID des Vorgangs; ein zweiter Import findet sie dadurch auch ohne ProjectUidField. Bei einem zusammengesetzten Schlüssel lassen sich neue Vorgänge nicht hinzufügen: Ordnen Sie sie im Dialogfeld Datensätzen zu.
  • Was geschrieben wird: Name, Anfang, Ende (oder Dauer), Fortschritt, Meilenstein, Einschränkung, Stichtag, Basisplan und die Stelle in der Gliederung, sofern sie sich unterscheiden. Sammelvorgänge behalten ihre berechneten Termine. Die arbeitsfreien Tage des Kalenders gehen in HolidaySource; Arbeitstage und Arbeitszeiten sind Eigenschaften des Formulars und bleiben unverändert (das Dialogfeld weist darauf hin, wenn sie abweichen).
  • Rundläufe bleiben stabil: Der Export schreibt für jeden Vorgang ohne Einschränkung „Anfang nicht früher als“ mit seinem eigenen Anfang, sodass Project die Termine beibehält; der Import liest das wieder als „So früh wie möglich“. Der Import einer unveränderten Datei schreibt nichts.
  • Nicht ausgetauscht werden: die manuelle Planung (das XML-Format von Project 2007 hat dafür kein Feld; Project plant die Vorgänge selbst, sodass ein Vorgang, der in wgsManual eine Abhängigkeit verletzt, sich in Project verschiebt), die Lücken unterbrochener Vorgänge und das Aussehen des Diagramms.
  • Alles wird in einer einzigen Transaktion geschrieben; bei einem Fehler wird nichts geschrieben. Per Code löst der Import keine Ereignisse aus; aus dem Dialogfeld löst jeder Datensatz BeforeUpdate/AfterUpdate aus.

Verwandte Themen

de/wiki/msaccess/comctl/how-to/exchange-plans-with-ms-project.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille