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月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 %>
この記述は、以下の場所で使用します