SQLの窓 イラストAC フリー素材

2010年06月30日

VB.netからRundll32で呼び出されるdllの使い方/サンプル:printui.dll/コマンドでプリンタの全てをコントロール


VB.net : printui.dll を LoadLibrary 経由で呼び出してデフォルトのプリンタを設定する
Printui 「ファイル名を指定して実行」から 以下のコマンドで表示されます rundll32.exe printui.dll,PrintUIEntry /? 外部実行として呼び出しても良いですが、Microsoft のドキュメントにある インターフェイス仕様に基づいて利用するのがスマートです。 一番昔の C++ で呼び出すのはとても簡単なのですが、VB.net でやるには いろいろ面倒です。ですが、パターンはこれ一つなので利用価値は高いです
posted by at 2010-06-30 00:00 | VB.net | このブログの読者になる | 更新情報をチェックする

2010年06月27日

TCPDF利用前の注意事項

サンプルとして付属している日本語は非埋め込み型

Arial Uni CID0 (arialunicid0) は、フォント本体が PC にあって、定義ファイルは
arialunicid0.php 一つのみです。
そもそも、arialunicid0.php が日本語定義ファイルのサンプルですので中を見ると
多少ですが説明があります。全ての説明は README を見る必要があります。

小塚ゴシックPro M (kozgopromedium) と 小塚明朝Pro M (kozminproregular) は
Adobe のフォントです。定義ファイルもそれぞれ一つづつな上に、中を見てもフォ
ントデータを参照している様子もありません。おそらく、非埋め込み型なのだと思
います( 少なくともファイルサイズ的には非埋め込み型です )


日本語にイタリック等は実装されていない

小塚ゴシックPro M (kozgopromedium) と 小塚明朝Pro M (kozminproregular) は
日本語以外はイタリックになりますが、他のフォントはそもそもその書体が無い
はずなので、利用できません。ですから、定義ファイルもそれぞれ一つだけです。


通常の MS フォントを実装するには

MS ゴシック、MS Pゴシック、MS UIゴシック、MS 明朝、MS P明朝
が一番欲しいです。特に印刷処理ですから、MS 明朝が必要です。
手作業はたいへんなので、全自動のスクリプトを作成しました


VBScript : TCPDFで MSフォントが使えるようにする全自動スクリプト
元々利用可能なフォントに加えて、MSフォントの印字サンプルです Cellの印字サンプル これは初心者向きで、適当にやっても表が作成できます PHP : TCPDF の Cell で一覧表を印字するサンプル 位置指定で右寄せ可能なサンプル cell メソッドの応用ですが、これが無いと業務用の印字は無理です。 PHP : TCPDF の Cell を使って位置指定印字を行うサンプル 関連する記事
TCPDFに関する3つの誤解
posted by at 2010-06-27 15:15 | PHP+PDF | このブログの読者になる | 更新情報をチェックする

2010年06月25日

SQL*PlusだけでCSVを作成する


SQL*Plusだけで CSV を作成する

SQL*Plus のコマンドを中心に細かく説明しています。

Oracle では、CSV の入力ツールとしては SQL*Loader があるのですが、出力となると
専用ツールは無いのでアプリケーションを作成するか、エクスポートとインポートを利用する事
を考えます。( 参考 : エクスポートユーティリティのテーブル単位の出力( コマンドライン ) )

しかし、他のアプリケーションで使用したい場合は CSV のデータが欲しいのでエディタ一つ
で SQL*Plus  を使う方法は誰にでもできます。


関連する 記事

Oracle : SQL*Loader のサンプル
Oracle エクスポートとエクスポートされたファイル内の参照
Oracle インポート : バックアップしてあったデータよりテーブルを復帰
sqlplus セット


関連する Oracle ドキュメント

SQL*Plusコマンド・リファレンス


posted by at 2010-06-25 00:00 | DB関連 | このブログの読者になる | 更新情報をチェックする

PrimoPDF日本語版4.1

使い始めてもうかなりになりますが、アプリケーションから印刷のテストをする場合、実際に紙に出しているとコストや時間がかかりますし、プレビューだと本当の意味でのテストにならないし、そもそもプレビューできない出力もあります。

で、結局この PrimoPDF がプレビューとなるのでとても重宝しています

現在は、Vector からもダウンロードできますし、エクセルソフトのほうでもダウンロードできない場合は、Vector や 窓の杜 からどうぞと但し書きがあります。


Primo2

Primo1


オリジナルは http://www.primopdf.com/ ですが、完全な日本語版があります。

Primo

Primo2
エクセルソフト

エクセルソフトからダウンロードできます。もちろんフリーです。



posted by at 2010-06-25 00:00 | フリーソフト | このブログの読者になる | 更新情報をチェックする

2010年06月22日

IE8でローカルファイルのオブジェクトを含むHTMLを実行する場合の注意点

IE7 でも同じだとは思いますが・・・・

以前から問題があったのは知ってましたが、モノによっては動きますし
基本 WEB サーバーから動かせば何も問題なかったので > Flex


Flex3 : NumericStepper コントロール
でも、久しぶりパッケージとして整備していた時に、Firbug lite が 動かないのに気がついて、仕方なく設定しました。以前は設定すると アドレスバーに直接 swf を表示すると挙動がおかしかったのですが、 さすがに今はきちんと動いているようなので。
通常でははセキュリティ上のエラーが発生しますので、
ツール => インターネットオプション => 詳細設定 に移動して
マイ コンピュータのファイルでのアクティブコンテンツの
実行を許可する、というチェックボックスを on にして、全て
の IE をいったん終了させて下さい。

WEB サーバー上で実行する場合( http:// .... ) はその必要はありません。

IE 以外のブラウザで実行する場合は問題無いと思います
で、余談ですが、今日学生にその設定をさせていたら一台だけ反映されない PC が
あって、「まさか・・・」と思ってタスクマネージャを見たら、ゾンビな IE が
いらして、そいつを完全に根絶やしにするときちんと動きました。このへんは経験
積んでないと解りませんが、頭のすみにでもこの事実を知っておくといつか得を
するかもしれません。


posted by at 2010-06-22 22:04 | IE | このブログの読者になる | 更新情報をチェックする

2010年06月17日

TCPDF:固定ピッチフォントが無いようなので、位置指定でCell出力

現在の位置を保存しておいて、SetXY メソッドで強制的に座標変更して
Cell の枠なしで幅内で右詰めします。Cell は同時に罫線印字するのに便利
ですが、実際は既存のフォームに位置合わせする必要がありますし、固定ピッチ
のフォントで可能な文字単位の位置合わせの代替えとして利用できます。

現在の位置を保存するのは、通常の Cell 印字と混在して正しく動作させる為に、
位置指定した出力の終了後に元へ戻す為です。
$a = $pdf->GetX();
$b = $pdf->GetY();

$pdf->SetXY(0,0);
$pdf->Cell(15,5,'1,234',1,0,'L');

$pdf->SetXY(0,5);
$pdf->Cell(15,5,'1,234',1,0,'R');

// 幅が足りない、かつ左詰め
$pdf->SetXY(15,10);
$pdf->Cell(2,5,'1,234',1,0,'L');

// 幅が足りない、かつ右詰め
$pdf->SetXY(40,10);
$pdf->Cell(2,5,'1,234',1,0,'R');

// 高さが足りない
$pdf->SetXY(55,10);
$pdf->Cell(15,1,'1,234',1,0,'R');

$pdf->SetXY($a,$b);
上記コードの実行結果

※ Cell の高さは、実際に必要な高さより小さい場合は無視されます。



posted by at 2010-06-17 15:02 | PHP+PDF | このブログの読者になる | 更新情報をチェックする

2010年06月11日

楽天visaデビットカードとPayPal

A型の古い人間なんで

というより、プログラム作るしか能の無いところがあったりするので、外へ向けてお金
を使うような事も無かったので、「カード」と言うものを持って無かったのですが、
「デビットカード」が、通常のクレジットとは違うという事を知って
( クレジットカードが信用取引であるのに対して、Visa テビットカードは 口座残高で取引 )


「じゃあ持ってみよう。」

と思って、手続きしようと思ったら、区画整理で住所が変わったのを放っておいたのを
その時になって思い出して、まず先に住所変更手続きをするハメに。


当時まだイーバンク

名称変更する直前でしたので、結果的にはラッキーでした。イーバンクの状態で申し込
んでいたらややこしい事になっていたかもしれません。おかげさんで、カードは「楽天」
のマーク。種類は二種類あるのですが、インターネットでしか使うつもりないので安い
ほうです。
  楽天銀行デビットカード(ゴールド) 楽天銀行デビットカード
会費 300円/月(税込) 1,000円/年(税込)
  年払い:3,000円/年(税込)  
ポイント還元率 1.00% 0.50%
特典 ショッピング保険  
自分としては、いろいろ WEB のノウハウの調査に使いたいという目的もあるので、そも
そも大きな買い物するつもりもなく、というか大きな金額を楽天には入れていませんし。
年間3000円も払うくらいなら、申し込みはしてなかったと思います。キャッシュカード
としても使えますが、オンラインで使用不可にしてますし。

オンラインチューニング

これが一番個人的に好きです。以前より、ログイン時は「ログイン制限一時解除(ワン
タイム認証)」という手順ですぐには入れません。メールで一時暗証番号送ってもらっ
てそれを入力して初めてログインかできます。当然ですが、ログインパスワード以外
に、強力なパスワードを、お金を振り込んだりする時に設定しています。一日に振り込
み可能な金額の上限も設定しています。せいぜい、レンタルサーバーの支払い程度なの
で、10,000 に設定しており、必要ならばログインのようないったんメールを通した暗証
番号の取得を行って変更できますが、本人名義の口座を登録しておくとその限度額は適
用されません。

>本人名義の他行口座への振込(ご登録いただいたお客さま名義の
>ゆうちょ銀行を含む他行口座への振込)は、対象外です。 

さらに、デビットカードの設定として、以下のような事が可能です。

1) VISAデビット利用停止 VISAデビットの利用停止ができます。
2) 海外利用分のみの利用停止も可能です。
3) VISAデビット利用限度額設定 1日にVISAデビットでご利用可能な金額の上限
 (1,000円〜100万円)を、1,000円単位でお客さまが任意で設定できます


さらに自分は今の所、PayPalでしか使う予定が無いので設定していませんが、
以下のような機能もあります。

----------------------------------------------------------------------------
VISA認証サービスに参加しているオンラインショッピングの加盟店で利用される
VISAデビットに、お客さまが任意で設定可能なパスワードによる認証を追加する
ことで、第三者による不正使用を防止します。

『なりすまし被害』の防止に効果的です。近年、お客さまが手元にカードを保持
しているにもかかわらず、第三者がお客さまのカード番号を不正に利用してオン
ラインショッピングを行う犯罪(なりすまし)の被害が増加しています。

また、カードを盗難・紛失された際、カードを取得した第三者にカードを不正に
利用されてしまう事例もあります。VISA認証サービスは、このような『なりすまし』
による被害を防ぐためのサービスです
----------------------------------------------------------------------------
( VISA認証サービス対応加盟店の状況については未調査 )

あと、ATM 使うつもり無いので以下のような設定済


出金停止設定引出不可
出金限度額設定1,000円
出金ATM設定全てのATMを出金停止中
もう一つ、携帯電話からは一切ログインできないようにしています。まあ、 技術者的にはとても満足の行く内容ですし、システムとしても参考になります。 ただ、唯一 IP 制限ってのが・・・・うちは ADSL なんで使えませんけれど。 で、やっと PayPal 元々は、自分に寄付ボタンを作って使えるか試したかったのですが、結局自分には 寄付出来ないのでまだテストできていません。ただ、visa デビットを PayPal に 登録して少額の決済( 1000円未満 ) を試しましたが、良くできています。なんと言 っても、カードの情報の提示がここだけでいいというのが A型の古い人間としては 安心と言うか、それでもインターネット上のちょっとした決済処理はこれで可能に なったので、楽しめるしシステム的に盗めるものはいただきます。 たしかに・・・、一人商店とかも開けそうではありますね。 ※ visa デビットの確認時に、3桁の数値が必要になりますが、 ※ それは裏の署名欄の右側の3桁の数字になります。
posted by at 2010-06-11 21:48 | 生活 : お金 | このブログの読者になる | 更新情報をチェックする

2010年06月04日

VB.net:StringからChar()への変換とSplit

VB という言語はだいたいにおいて勝手に融通の効く言語ですが、
最初に初めて String オブジェクトの Split メソッドを使おう
とした時に、引数が Char() だったので、面倒に思った記憶が
あります。

ですが。

いろいろ試してみると妙な事が解りました。
Module MyModule

' ********************************************************
' String => Char と Split メソッド
' ※ 区切り文字は、カンマとスペースとタブ
' ********************************************************
Sub Main()

	' Char 配列
	Dim c As Char() = Nothing

	' データセット方法1( Char 明示 )
	c = New Char() { ","c, " "c, "	"c }
	delimTest(c)

	' データセット方法1-2
	c = New Char() { ",", " ", "	" }
	delimTest(c)

	' データセット方法2
	c = New Char() { c(0), c(1), c(2) }
	delimTest(c)

	' データセット方法3
	Dim delim As String = ", 	"
	c = delim.ToCharArray()
	delimTest(c)

	' データセット方法4( ToCharArray は何だったのか )
	c = delim
	delimTest(c)

	' データセット方法5( 何故か正しく動く )
	delimTest(delim)

	' 直接は動かない( たぶん呼び出しルールの違い )
	' ※ 先頭文字しか使われない
	Console.WriteLine(("a,b c	d,e,f,g,x,i,j".Split(delim)).Length)

End Sub

Sub delimTest( c As Char() ) 

	Dim str As String = "a,b c	d,e,f,g,x,i,j"

	Dim result As String() = str.Split(c)

	For Each obj As String In result

		' 読み飛ばし条件
		if obj = "e" then
			Continue For
		end if
		' ループ終了条件
		if obj = "x" then
			Exit For
		end if

		' 処理
		Console.WriteLine( obj )

	Next

End Sub

End Module
VB なので、' データセット方法3 でいいとは思いますが、
他の結果のせいで、少し気持ち悪い気がします。


posted by at 2010-06-04 00:29 | VB.net | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します