All functions Mac OS X Windows Crossplatform Components New in version: 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 2.0
Component: WindowsScript
Mac OS X: Does nothing
Windows: Works
MBS("WindowsScript.Create")
none
Creates a Windows Script in memory. Once the script is created you can add script code to by using the WindowsScript.AddCode function. The script is then executed using WindowScript.Run. The default language of a new script is Jscript. This can be changed by using the WindowsScript.SetLanguage function.
Trigger a FileMaker Script Using OS Scripting
Let(
[
// --- the name of the script to run ------------------
ScriptName = "Triggered Script";
FileName = Get(FileName);
//------------------------------------------------------------
//--- don't need to edit anything below this line --------
Applescript = "do script " & Quote(ScriptName);
VBScriptText =
"FUNCTION DoFMSCript(FileName, ScriptName)" & "¶" &
"Set fmApp = CreateObject(\"FMPro.Application\")" & "¶" &
"fmApp.Visible = True" & "¶" &
"Set fmDocs = fmApp.Documents" & "¶" &
"For Each fmDoc In fmDocs" & "¶" &
"If InStr(LCase(fmDoc.fullname), LCase(FileName)) > 0 Then" & "¶" &
" fmDoc.dofmscript (ScriptName)" & "¶" &
"End If" & "¶" &
"Next" & "¶" &
"END FUNCTION";
ScriptID = MBS("WindowsScript.Create");
lang= MBS("WindowsScript.SetLanguage"; ScriptID; "VBScript");
addcode = MBS("WindowsScript.AddCode"; ScriptID; VBScriptText)
];
Case(
Get ( SystemPlatform ) = 1;
// Mac OSX Case
MBS(
"Applescript.Run";
Applescript
);
// Windows Case
MBS("WindowsScript.ExecuteFunction";ScriptID; "DoFMScript";FileName; ScriptName) &
MBS("WindowsScript.Close"; ScriptID)
)
)
Trigger A FileMaker Script (Custom Function)
MBS_TriggerScript ( "Triggered Script" ; Get ( FileName ) )
Custom Function Definition
/*###############################################
MBS_TriggerScript
created 10/26/06, by Todd Geist, todd@geistinteractive.com
Parameters: theScriptName, theFileName
Dependancies: MBS FileMaker Plug-in.
Notes: Uses VBScript and Applescript to run a script
################################################*/
Let(
[
Applescript = "do script " & Quote(theScriptName);
VBScriptText =
"FUNCTION DoFMSCript(FileName, ScriptName)" & "¶" &
"Set fmApp = CreateObject(\"FMPro.Application\")" & "¶" &
"fmApp.Visible = True" & "¶" &
"Set fmDocs = fmApp.Documents" & "¶" &
"For Each fmDoc In fmDocs" & "¶" &
"If InStr(LCase(fmDoc.fullname), LCase(FileName)) > 0 Then" & "¶" &
" fmDoc.dofmscript (ScriptName)" & "¶" &
"End If" & "¶" &
"Next" & "¶" &
"END FUNCTION";
ScriptID = MBS("WindowsScript.Create");
lang= MBS("WindowsScript.SetLanguage"; ScriptID; "VBScript");
addcode = MBS("WindowsScript.AddCode"; ScriptID; VBScriptText)
];
Case(
Get ( SystemPlatform ) = 1;
// Mac OSX Case
MBS(
"Applescript.Run";
Applescript
);
// Windows Case
MBS("WindowsScript.ExecuteFunction";ScriptID; "DoFMScript";theFileName; theScriptName) &
MBS("WindowsScript.Close"; ScriptID)
)
)
Use JScript to Get System Date
Let(
[
JScriptText = "function TestDate(){var d =new Date();
return d.toGMTString();}";
scriptID = MBS("WindowsScript.Create");
SetLang = MBS("WindowsScript.SetLanguage";1;"JScript");
addcode = MBS("WindowsScript.AddCode";1;JScriptText);
theDate = MBS("WindowsScript.ExecuteFunction";1;"TestDate");
closeScript = MBS("WindowsScript.Close";1)
];
theDate
)
Feedback: Report problem or ask question.