|
Makros |
isyTimes kann über Makros automatisiert werden um immer wiederkehrende Aufgaben zu vereinfachen. Dazu wird die Scriptsprache "Pascal Script" eingesetzt. Da isyTimes 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 isyTimes-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:
Bearbeitung von Makros:
Schnellstart von Makros: Wählen Sie ein Makro aus der Liste und klicken Sie auf
Makro-Sprache Ü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 isyTimes
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 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.
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.
function InputDate(QuestionText:string; var aDate:TDateTime): boolean; Zeigt ein Eingabefenster mit einem Textfeld zur Eingabe eines Datums.
function InputMonth(QuestionText:string; var aMonth:TDateTime):boolean; Zeigt ein Eingabefenster mit einem Textfeld zur Eingabe eines Monats.
procedure ShowMessage(msg:string); Zeigt eine Meldung an.
function QuestionYesNo(msg:string):integer; Zeigt eine Frage an.
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.
procedure ExecuteSQL(sql:string); Führt einen SQL-Befehl auf der Datenbank aus
function CreateQuery(sql:string):TDataset; Erzeugt eine Query(Datenbankabfrage)
procedure SetQuerySQL(Query: TDataset; sql: string); Bestimmt das SQL-Statement einer vorhandenen Query
procedure AddQuerySQL(Query: TDataset; Line: string); Fügt eine Zeile zum SQL-Statement einer vorhandenen Query hinzu.
function QueryParamByName(Query: TDataset; ParamName:string): TParam; Sucht einen Query-Parameter im SQL-Statement einer vorhandenen Dataset-Instanz
procedure FreeQuery(Query:TDataset); Gibt eine vorhandenen Dataset-Instanz frei.
|