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 に

ハロー
こんにちわ。

が帰ってきます。


2016年8月11日木曜日

FileMaker + Google ChromeでWEBスクレイピング!|Web Scraping With Filemaker

web scraping amazon
FileMaker  + ScriptMakerPS + Powershell + Selenium + Google Chrome


https://youtu.be/NKe8X6aZe2I

FileMaker  から Google Chrome を操作。


動作検証
OS:Windows 10 64bit
FileMaker Pro 14 32bit|64bit
Powershell 5.0
Selenium 2.53.1.0
ChromeDriver 2.26(20161217現在)
ScriptMakerPS (FileMakerのフィールドに記述した「PowerShell」を実行し、戻り値を取得。)


OS:Windows 7 32bit
FileMaker Pro 14 32bit
Powershell 4
Selenium 2.53.1.0
ChromeDriver
ScriptMakerPS




Seleniumの準備
以下からダウンロード。
http://www.seleniumhq.org/download/
Previous Releases をクリック。



http://selenium-release.storage.googleapis.com/index.html
「2.53」をクリック。(2016.8.11現在)


「selenium-dotnet-2.53.1.zip」をダウンロード。(2016.8.11現在)


Google Chromeの操作のために「ChromeDriver - WebDriver for Chrome」が必要です。
以下からダウンロード。
https://sites.google.com/a/chromium.org/chromedriver/downloads




chromedriver_win32.zip をダウンロード。(2016.8.11現在)




Cドライブの直下に「WebDriver」ファルダ、その下に「selenium」フォルダを作成。
「selenium-dotnet-2.53.1.zip」を解凍し、内容を保存。

C:\WEBDRIVER
└─selenium
    │  WebDriver.chm
    ├─net35
    └─net40

上で作成した「WebDriver」ファルダの下に「chromedriver_win32」フォルダを作成。
「chromedriver_win32.zip」を解凍し、中の「chromedriver.exe」を保存。
C:\WEBDRIVER
├─chromedriver_win32
│      chromedriver.exe

※保存場所は、任意ですが、ここでは、上記のようにしています。あとの説明では、上記に各ファイルがあるものとして進めます。

※重要

「セキュリティ:ブロックの解除」の確認。
「C:\WebDriver\selenium\net40」フォルダを開き、すべてのファイルの「ブロックの解除」を行ってください。
今回は、「net40」ファルダの方を使用します。

「C:\WebDriver\chromedriver_win32」フォルダ内の「chromedriver.exe」も同様に「ブロックの解除」を行ってください。


ここまでで、Seleniumの準備は、完了です。
動作確認して見ましょう。

「Windows PowerShell ISE」または、「Windows PowerShell」を起動します。(Windows 7以降では、標準でインストールされています。)
以下のコードを実行し、Google Chrome が起動し、Amazon のページが表示されれば、OKです。

Powershellスクリプト:

Add-Type -Path "C:\WebDriver\selenium\net40\WebDriver.dll" ;
Add-Type -Path "C:\WebDriver\selenium\net40\WebDriver.Support.dll" ;
$chromedriver_path = "C:\WebDriver\chromedriver_win32\" ;
$driver = New-Object OpenQA.Selenium.Chrome.ChromeDriver ($chromedriver_path);
$driver.Navigate().GoToUrl("https://www.amazon.co.jp/");


FileMaker プラグイン ScriptMakerPS の設定

FileMaker 12|13|14(32bit)|15(32bit)で ScriptMakerPS を使う場合。

Microsoft Visual C++ 2010 再頒布可能パッケージ (x86) をインストールして下さい。
http://www.microsoft.com/ja-jp/download/details.aspx?id=5555

Microsoft .NET Framework 4 以降が必要です。(Windows 7 の場合)
http://www.microsoft.com/ja-jp/download/details.aspx?id=17851
※Windows 8 の場合は、.NET Framework 4.5がプレインストールなので必要ありません。
※Windows 10 の場合は、.NET Framework 4.6がプレインストールなので必要ありません。


Powershell のバージョンの確認。(Windows 7 の場合)

※Windows 8 以降の場合は、この作業は、必要ありません。
プレインストール
Windows 8 |Windows PowerShell 3.0
Windows 8.1 |Windows PowerShell 4.0
Windows 10 |Windows PowerShell 5.0

Powershell を起動。

$PSVersionTable.PSVersion.Major
を入力。(上記をコピーして、右クリック貼り付け)



「3」以降が、返ればOK。

「2」以前の場合は、PowerShell 3以降をインストールしてください。

PowerShell3.0
http://www.microsoft.com/en-us/download/details.aspx?id=34595
64-bit versions: Windows6.1-KB2506143-x64.msu
32-bit versions: Windows6.1-KB2506143-x86.msu

FileMaker 12|13|14(32bit)|15(32bit)、ScriptMakerPS(32bit)で使用すいる場合、
32-bit versions: Windows6.1-KB2506143-x86.msu。
FileMaker 14(64bit)|15(654bit)、ScriptMakerPS(64bit)で使用すいる場合、
64-bit versions: Windows6.1-KB2506143-x64.msu が必要です。
ややこしいので、両方インストールしても問題なし。(OSが64bitの場合)



「ScriptMakerPS.fmx」をダウンロード。
FileMaker 12|13|14(32bit)|15(32bit)の場合は、以下。
https://sites.google.com/site/scriptmakerps/download-32bit
ファイル名:ScriptMakerPS_BETA22_32bit.zip(2016.8.14現在)

「ScriptMakerPS.fmx」を以下、「Extensions」ホルダにコピー。

C:\Program Files (x86)\FileMaker\FileMaker Pro 14 Advanced\Extensions
C:\Program Files\FileMaker\FileMaker Pro 14 Advanced\Extensions
など


FileMakerを起動。

「編集(E)」->「環境設定(F)」->プラグイン を開き、「ScriptMakerPS」にチュエックを入れて下さい。



サンプルファイル:
https://sites.google.com/site/scriptmakerps/example/filemaker-google-chromeweb-scraping