2016年9月27日火曜日

Mac OSX FileMaker で PowerShell を使う。


PowerShellが、Mac OSX 対応と言うことで、FileMakerと連携できないか?いじってみました。

バイナリパッケージがあるので簡単にインストール出来ます。

GitHub - PowerShell/PowerShell: PowerShell for every system! : https://github.com/PowerShell/PowerShell


 OS X版のPowerShellは、パッケージ(*.pkg)の形で配布される。Finderからダブルクリックでインストールを開始できるが、「開発元が未確認のため...」と表示されたときにはコンテキストメニューを表示し「開く」を選択しよう。
引用:http://ascii.jp/elem/000/001/217/1217507/


以下をFileMakerの スクリプト:「AppleScriptを実行」で実行すると、
PowerShellの戻り値が、フィールド:Result に入ります。


スクリプト:「AppleScriptを実行」
set Result to do shell script "/usr/local/bin/Powershell -command '$PSVersionTable;'"
set cell "Result" of current record to Result

2016年8月28日日曜日

FileMakerで一般公開されている「dll」を使用する。QRコード、JANコードなどを作成

C#用とか、.Netで作成された「dll」は、PowerShellを通じて、FileMakerで使うことができます。




動作確認
OS:Windows 10
FileMaker Pro 13|14|15

プラグイン無しでも動作します。
PowerShellを利用します。
※Windows 7 以降、PowerShellは、標準インストールなので気にしなくて大丈夫です。(基本的には。)
プラグイン:ScriptMakerPS でも動作します。サンプルファイルは、プラグイン「有」「無」両方に対応。
「ScriptMakerPS」が無い場合は、FilrMakerのスクリプト「Event を送信」で実行します。

サンプルファイル:
https://sites.google.com/site/scriptmakerps/example/barcode-at-c-dll


無料ライブラリー 「DotNetBarcode」 を使用してみます。
以下でダウンロード可能。
http://www.vector.co.jp/soft/win95/writing/se408449.html

「DotNetBarcode.dll」は、DotNetBarcodeさんの無料ライブラリーです。
http://www.geocities.jp/japan_inf/DotNetBarcode/

ダウンロードファイル: DotNetBarcode_V2.4.0.zip

C:ドライブ直下に「dll」フォルダを作成し、
ダウンロードした「DotNetBarcode_V2.4.0.zip」展開、その中の「DotNetBarcode.dll」を
「C:\dll」にコピー。



※重要
「セキュリティ:ブロックの解除」の確認。
「DotNetBarcode.dll」を右クリック -> プロパティー
「ブロックの解除」をチェックしし、「適用」をクリック。



PowerShellの記述は、以下の様なカンジ。


 Add-Type -Path 'C:\dll\DotNetBarcode.dll' ;
 $bc1=New-Object DotNetBarcode;
 $bc1.Type=[DotNetBarcode+Types]::QRCode;
 $bc1.SaveFileType=[DotNetBarcode+SaveFileTypes]::Png;
 $bc1.Save('0123456789あいうえおabcdefg','C:\Users\PCUSER\Desktop/Barcode.png', 600, 600);

「Windows PowerShell ISE」を起動し、実行すれば、デスクトップに「Barcode.png」が作成されます。

FileMakerに組み込み。

QRコード、JAN13、JAN8、Code39の作成が可能です。

QRコード


JAN13

JAN8

code39


2016年8月14日日曜日

FileMaker で自作dll(C#)を使う。

FileMaker で自作dll(C#)を使う。

検証
OS:Windows 10 64bit
FileMaker 14 32bit|64bit

Visual Studio 2015 でカンタンな dll サンプルを作成。







コードは、引数を受け取って、改行と"こんちちわ。" を返すだけのサンプル。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClassLibrary1
{
    public class Class1
    {
        public string test(string str)
        {

            return str + "\r\nこんにちわ。";
        }
    }
}

ビルド。作成された「ClassLibrary1.dll」を説明をわかりやすくするために、Cドライブの直下に配置。





ここからFileMaker。

ScriptMakerPS (FileMakerのフィールドに記述した「PowerShell」を実行し、戻り値を取得。)が設定されている必要があります。
フィールド:script
フィールド:Result
を作成。

ボタンを作成し、
フィールド設定 [HelloWold::Result; SMPS_Exe( HelloWorld::Script )]
を設定。

フィールド:script  に

[void][Reflection.Assembly]::LoadFile('c:\ClassLibrary1.dll');

$cls = New-Object ClassLibrary1.Class1;

$Result=$cls.test('ハロー');
$Result;

を記述。

ボタンをクリックし、フィールド設定 [HelloWold::Result; SMPS_Exe( HelloWorld::Script )] を実行すれば、フィールド:Result に

ハロー
こんにちわ。

が帰ってきます。