F5キーの無効化
一般的なブラウザでは、F5キーを押すとブラウザの更新が行われページが初期化されてしまいます。しかし、以下のようにすることで、Curlではブラウザにイベントが通知される前にイベントを無効化できます。
{{get-gui-manager}.add-event-handler
{on t: KeyPress do
{if t.value == KeyPressValue.f5 then
{t.consume}
}
}
}
帳票出力
ポータル・スケジューラーは、帳票出力として以下の2つを実装しています。
予定をエクセル形式で出力
PHPでpearのSpreadsheet_WriteExcelを使用して、予定をエクセル形式で出力します。ただし、出力されるファイルフォーマットがExcel 95形式なので、1セル255文字までの制約があります。なお、出力形式を2000形式にするパッチが公開されているようです(参考:Spreadsheet_Excel_WriterでBIFF8を取り扱う - Paradigm Shift Design)。
画面のハードコピー
画面のハードコピーをBMP形式でローカルに一時保存し、保存したファイルをプリンタに出力します。わざわざ帳票を作成するまでもないときは使えそうな機能だと思います。
{define-proc public {my-graphic-to-bitmap p_image: Graphic, p_file: Url}: void
let v_gc: DisplayContext = {p_image.get-display-context},
v_rect: GRect = {p_image.layout.get-bounds},
(r2: Renderer2d,
d: Drawable) = {Renderer2d.create-offscreen
v_rect.width,
v_rect.height,
1 / v_gc.pixel-size
},
v_data: ImageData = {ImageData}
{r2.render-rectangle
0pt, 0pt,
v_rect.width - 0.5pt, v_rect.height - 0.5pt,
fill-pattern = "white"
}
{{p_image.get-graphical-root}.draw r2}
{r2.render-line
0pt, 0pt,
0pt, v_rect.height - 0.5pt,
fill-pattern = "black"
}
{r2.render-line
0pt, v_rect.height - 0.5pt,
v_rect.width - 0.5pt, v_rect.height - 0.5pt,
fill-pattern = "black"
}
{r2.render-line
v_rect.width - 0.5pt, v_rect.height - 0.5pt,
v_rect.width - 0.5pt, 0pt,
fill-pattern = "black"
}
{r2.render-line
v_rect.width - 0.5pt, 0pt,
0pt, 0pt,
fill-pattern = "black"
}
set v_data.pixmaps =
{new {Array-of Pixmap},
{d.to-Pixmap}
}
{v_data.save-to-url p_file, "image/bmp"}
{d.destroy}
}
この記事は参考になりましたか?
- Curlで構築する長崎電子県庁システム(ポータル・スケジューラー編)連載記事一覧
-
- Curlで構築する電子県庁システム(ポータル・スケジューラー編) RSSリーダーとメッセン...
- Curlで構築する長崎県電子県庁システム(ポータル・スケジューラー) UIの向上と帳票
- Curlで構築する長崎県電子県庁システム(ポータル・スケジューラー) 部品の拡張とPHP連...
- この記事の著者
-
株式会社ドゥアイネット 前田慎治(マエダシンジ)
株式会社ドゥアイネットに勤務するプログラマーです。制御系から事務系まで様々な開発を経験し、現在はCurlやOpenLaszloを使ってRIAの開発を担当しています。OpenLaszloで開発した「スマートスケジューラー」http://www.dinss.jp/
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
