Makros

isyControl kann über Makros automatisiert werden um immer wiederkehrende Aufgaben zu vereinfachen. Dazu wird die Scriptsprache "Pascal Script" eingesetzt. Da isyControl selbst in Delphi, also auch einer auf Pascal basierenden Programmiersprache (Object Pascal) programmiert ist, passt das gut zusammen.

Die Makros bestehen also zunächst aus reinem Pascal-Quellcode, der aber auch einige isyControl-Funktionen aufrufen kann. Zur Erstellung der Makros sind Programmierkenntnisse erforderlich. Für den Einstieg in die Pascal-Programmierung gibt es diverse Tutorials, z.B. dieses:

Basic Pascal Tutorial

 

Über den Pascal-Standard hinaus beinhaltet Pascal Script noch einige Klassen und Funktionen, die an das Object Pascal und die VCL (Visual Component Library) von Delphi angelehnt sind. Leider gibt es dazu keine einfache und übersichtliche Dokumentation.

 

Außerdem können folgende Funktionen von Pascal Script aus aufgerufen werden: Diese Funktionen sind kein Bestandteil der Programmiersprache Pascal, sondern spezielle Funktionen aus isyControl

 

procedure ChangeProjectValue(PrjNr:String; FieldName:String; Value:String);

Ändert den Wert des Feldes Fieldname des Projektes PrjNr in der Datenbank auf Value,

 

function GetMainProjectOf(SubPrj: String): string;

Gibt die Projektnummer des übergeordneten Projektes von SubPrj zurück.

 

procedure SetPrjHierarchieValues(PrjNr:String; HierarchieStd:boolean; 

                                 CalcAuftr, CalcPrz, CalcRg, CalcStd, CalcTlAuftr, CalcTlstd, 

                                 CalcBudget, CalcVerlauf, CalcMitAbgeschl: boolean);

Legt im Projekt PrjNr fest, welche Werte in der Hierarchieberechnung aus den Unterprojekten übernommen werden sollen.
Diese Funktion entspricht dem Dialogfenster bei Projekte - Sonderfunktionen - Hierarchieberechnung.

HierarchieStd: Soll die Standard-Einstellung verwendet werden?

CalcAuftr..CalcMitAbgeschl : Individuelle Einstellungen.

 

procedure SetPrjZuschlagTL(PrjNr:String; AuftrSumZuschl:integer; PauschZuschTL:boolean);

Legt im Projekt PrjNr fest, wie die Zuschläge auf die Teilleistungen abgebildet werden sollen.

Diese Funktion entspricht dem Dialogfenster Zuschläge als Teilleistungen in den HOAI-Einstellungen.

AuftrSumZuschl:0: Zuschläge nicht berücksichtigen
1: Auftragssummen prozental erhöhen
2: zusätzliche Teilleistung

PauschZuschTL:        pauschale Zuschläge als eigene Teilleistung anlegen

 

procedure AddStdTeilleistungen(PrjNr:String; TLGruppen:String);

Fügt dem Projekt PrjNr die Standard-Teilleistungen TLGruppen hinzu. TLGruppen kann mehrere Standard-Teilleistungsgruppen enthalten, die durch , getrennt sind.

Entspricht dem Dialogfenster "Standardteilleistungen anlegen" in der Verwaltung von Teilleistungen.

 

procedure GenerateBudgetStunden(PrjNr:String; PersGrp:String);

Generiert Budgetstunden für die Personalgruppe PersGrp auf Projektebene im  Projekt PrjNr.

 

function GetActiveProject:String;

Rückgabe: Projektnummer des momentan im Projektfenster aktiven Projektes.

 

function GetActiveMaKuerzel:String;

Rückgabe: Kürzel des momentan im Personalfenster aktiven Mitarbeiters.

Das Personalfenster kann entweder das eigentliche Personalfenster sein, oder das "PersonalFensterLight", in dem nur die Namen der Mitarbeiter angezeigt werden.

 

procedure SetReportProject(PrjNr:string);

Legt das Projekt PrjNr zur Verwendung in Reports fest. Ein folgender Aufruf eines Reports, der sich auf Projekte bezieht, zeigt dann nur dieses Projekt.

 

procedure SetReportMaKuerzel(Kuerzel:string);

Legt den Mitarbeiter Kuerzel zur Verwendung in Reports fest. Ein folgender Aufruf eines Reports, der sich auf Mitarbeiter bezieht, zeigt dann nur diesen Mitarbeiter.

 

procedure ShowReport(ReportName, EinstName:string);

Öffnet den Report ReportName mit der Einstellung EinstName in der Vorschau.

 

procedure ExportReport(ReportName, EinstName, ExportFilename: string);

Exportiert den Report ReportName mit der Einstellung EinstName in die Datei ExportFilename

 

procedure PrintReport(ReportName, EinstName:string);

Druckt den den Report ReportName mit der Einstellung EinstName.

 

procedure EditReport(ReportName, EinstName:string);

Öffnet die Berichtseinstellungen des Reports ReportName mit der Einstellung EinstName.

 

procedure LoadDlgSettings(DlgName, EinstName:string; List:TStringList);

Lädt die Berichtseinstellungen des Dialogfensters DlgName, Name der Einstellung EinstName in eine TStringList. Hier können dann programmgesteuert Änderungen an den Berichtseinstellungen vorgenommen werden.

 

procedure SaveDlgSettings(DlgName, EinstName:string; List:TStringList);

Speichert die Berichtseinstellungen aus der TStringlist zurück in die Datenbank zum Dialogfenster DlgName, Einstellung EinstName.

 

function InputText(QuestionText:string;  var aText:String): boolean;

Zeigt ein Eingabefenster mit einem Textfeld zur Eingabe von Text.

QuestionText:        Text der Eingabeaufforderung

aText:        Eingegebener Text

Rückgabe:        true bei OK, false bei Abbruch

 

function InputDate(QuestionText:string; var aDate:TDateTime): boolean;

Zeigt ein Eingabefenster mit einem Textfeld zur Eingabe eines Datums.

QuestionText:        Text der Eingabeaufforderung

aDate:        Eingegebenes Datum.

Rückgabe:        true bei OK, false bei Abbruch

 

function InputMonth(QuestionText:string; var aMonth:TDateTime):boolean;

Zeigt ein Eingabefenster mit einem Textfeld zur Eingabe eines Monats.

QuestionText:        Text der Eingabeaufforderung

aMonth:        Eingegebener Monat

Rückgabe:        true bei OK, false bei Abbruch

 

procedure ExecuteSQL(sql:string);

Führt einen SQL-Befehl auf der Datenbank aus

 

procedure ShowMessage(msg:string);

Zeigt eine Meldung an.

 

function QuestionYesNo(msg:string):integer;

Zeigt eine Frage an.

Rückgabe:        Konstante idYes bzw idNo

 

procedure OpenWindow(Name: String);

Öffnet das isyControl-Fenster Name

 

function IsWindowOpen(Name: String; DoOpen: Boolean): boolean;

Prüft, ob das Fenster Name geöffnet ist. Wenn nicht und DoOpen  ist true, wird es geöffnet.