|
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:
Ü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. 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.
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.
|