BackupOnClosingProject

Das Script muss geladen werden. Wird nun ein Projekt geschlossen erscheint eine Messagebox:

  • Ja: Backup im Projektordner
  • Nein: Nix  :tongue:

BackupOnClosingProject (984 Downloads)

 

Posted in EPLAN, EPLAN-Scripts and tagged , .

14 Comments

  1. Ich hab das Skript gerade mal probiert und es funktioniert sehr gut!

    Das Projekt wird jedoch im Ordner “Projektname.edb” gesichert, besteht hier die Möglichkeit den Pfad so zu ändern, das die Sicherung in der Ordnerstruktur im gleichen Ordner gespeichert wird wo das Projekt liegt & nicht im Projektordner selbst.

    Da die Projektsicherung beim nächsten sichern ja wieder mit gesichert wird und somit die Projektsicherung immer Größer wird :ninja:

    Gruß Marco

  2. Klar (ich schreibe solche Dateien auch immer in die Ebene darüber).

    Zeile 8:

    string strDestination = strFullProjectname;

    ersetzen durch:

    string strDestination = Path.GetDirectoryName(strFullProjectname);

    Zusätzlich musst du in die allererste Zeile folgendes schreiben:

    using System.IO;

    Gruß
    Johann

  3. super danke… und ich such schon ne halbe Ewigkeit nach einer Funktion um den String zu kürzen :unsure:

    Gruß
    Marco

  4. Verzeihen Sie meine Rechtschreibung. Wie Sie Code hinzufügen, um ein Verzeichnis auszuwählen, um zu sparen? Danke.

  5. Hi,
    You mean a OpenFileDialog?
    Try this:

    System.Windows.Forms.FolderBrowserDialog objDialog = new FolderBrowserDialog();
    DialogResult objResult = objDialog.ShowDialog(this);
    if (objResult == DialogResult.OK)
        MessageBox.Show("New path: " + objDialog.SelectedPath);
    

    Greets
    Johann

  6. Hallo Johann,
    ich würde gerne das Projekt im Projektordner und auf einer Datenfestplatte gleichzeitig sichern, wobei Sicherungspfad dem unter EPLAN P8( Optionen-Einstellungen -Benutzer-Datensicherung-Voreinstellung-Projekte ) Sicherungsmedium festgelegt ist.
    Zur Zeit wird nur im Projektordner gesichert.
    Könntest du mir das ändern?
    Gruß aus Troisdorf
    Uli

  7. Hi Uli,
    ja das geht, aber versuche es erstmal selbst. Wenn du Fragen hast kannst du hier gerne fragen.

    Folgende Tips von mir:
    – Lese das Benutzer-Setting um den Pfad herauszufinden
    – Kopiere das Backup, geht schneller als die EPLAN-Backup-Action zweimal auszuführen (Stichwort: File.Copy() )

    Hier noch Links für dich:
    Einstellungspfad kopieren
    File.Copy()

    Gruß
    Johann

  8. Pingback: Резервирование при закрытии проекта в Eplan P8 | Eplan For All

  9. Hallo Johann,
    ich möchte das Bachup Script mit einem Menüpunkt starten

    siehe Script
    using System;
    using System.Diagnostics; // Zusätzlich
    using System.Windows.Forms;
    using Eplan.EplApi.Base;
    using Eplan.EplApi.Scripting;

    public class Class
    {
    [DeclareAction(“StartProcess”)]
    public void Function(string PROCESS, string PARAMETER)
    {
    try
    {
    Process.Start(PROCESS, PARAMETER);
    }
    catch (Exception ex)
    {
    MessageBox.Show(
    ex.Message,
    “Fehler”,
    MessageBoxButtons.OK,
    MessageBoxIcon.Error
    );
    }

    return;
    }

    [DeclareMenu]
    public void MenuFunction()
    {
    Eplan.EplApi.Gui.Menu oMenu = new Eplan.EplApi.Gui.Menu();

    string quote = “\””;

    uint MenuID = new uint(); // Menü-ID vom neu erzeugten Menü

    MenuID = oMenu.AddMainMenu(
    “Loesch Archivierung”, // Name: Menü
    “Hilfe”, // neben Menüpunkt
    “eplan-projekt”, // Name: Menüpunkt
    “”, // Name: Action
    “eplan-projekt Archivieren”, // Statustext
    1 // 1 = Hinter Menüpunkt, 0 = Vor Menüpunkt
    );

    MenuID = oMenu.AddMenuItem(
    “Elektroplan(PDF)”, // Name: Menüpunkt
    “”, // Name: Action
    “Elektroplan Archivieren”, // Statustext
    MenuID, // Menü-ID: Einfügen/Fenstermakro…
    1, // 1 = Hinter Menüpunkt, 0 = Vor Menüpunkt
    false, // Separator davor anzeigen
    false // Separator dahinter anzeigen
    );

    MenuID = oMenu.AddMenuItem(
    “Pneumatikplan(PDF)”, // Name: Menüpunkt
    “”, // Name: Action
    “Pneumatikplan Archivieren”, // Statustext
    MenuID, // Menü-ID: Einfügen/Fenstermakro…
    1, // 1 = Hinter Menüpunkt, 0 = Vor Menüpunkt
    false, // Separator davor anzeigen
    false // Separator dahinter anzeigen
    );

    return;

    }
    }

    wie kann ich das Bachup script starten oder mit einpflegen
    sind das zuviele fragen ? :-(
    gruss Mathias

  10. Mir ist nicht ganz klar was du eigentlich machen willst :/
    Schau dir doch mein Kapitel im Buch oder Beispiele hier auf Suplanus an. Dort wird oftmals ein Menüpunkt erzeugt.
    Bei dir im Code ist auch diese Zeile falsch:

    “”, // Name: Action

    Hier muss der Name der Action hinterlegt werden.

  11. dein buch hab ich schon :-)
    die einzelne befehle oder Scripte das geht.
    den Actionsnamen kenn ich nicht.

    ich versuche eine neue Menüleiste eizufügen->Menüpunkt und über den Menüpunkt das script Bachup zu starten
    beite Script giebt es in irgent einer form aber zusammen ?
    oder mach ich das mit dem “ExecuteScript”

    und jetzt bin ich gestern Abent auf das script bachUpwithdate gestossen.
    da müsste ich mehr Menüpunkte hinzufügen können.

    gruß Mathias

  12. Hallo zusammen!

    Ich möchte das Projekt auf einem anderen Laufwerk im Netz sichern. Der Pfad soll allerdings identisch zu dem unter Projekte sein. Wie kann ich denn den Laufwerksbuchstaben in der Variable strDestination ändern?

    Gruß
    Christian

  13. Würde suchen nach :\  und dann splitten und den ersten Teil ersetzen durch dein Ziellaufwerk (funktioniert nicht mit UNC Pfaden).

  14. Hallo Johann!

    Habe den Anfang des Scriptes angepasst. Läuft super.

    string strProjectDir = @”C:\EPLAN\Projekte”; // ePlan Projektverzeichnis
    string strBackupDir = @”S:\Backup”; // Backupverzeichnis
    string strProjectpath = PathMap.SubstitutePath(“$(PROJECTPATH)”);
    string strProjectname = PathMap.SubstitutePath(“$(PROJECTNAME)”);
    string strFullProjectname = PathMap.SubstitutePath(“$(P)”);
    string strTempDir = strProjectpath.Replace(strProjectDir, strBackupDir);
    string strBackupPath = strTempDir.Remove(strTempDir.LastIndexOf(@”\”), strProjectname.Length + 5);

    die lokale Pfadangabe dient dazu, diesen Teil aus der Variable Projectpath gegen das Backupverzeichnis zu ersetzen. Alle nachfolgenden Unterverzeichnisse werden übernommen.
    So können evtl. auch UNC Pfade verwendet werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden .