忍者ブログ
ぼやき用のブログ。主にソフトウェアの使い方覚書など。ときどき絵や音楽を置いたり。
プロフィール
HN:
おねむ
HP:
性別:
非公開
自己紹介:
絵や漫画描いたり作曲したりポリゴンや動画作ったりプログラム組んだりしてる多趣味な管理人です。
カレンダー
12 2025/01 02
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
最新コメント
[11/17 NONAME]
[11/14 灯火]
[10/07 羽琉猫]
02
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

またしても悩ましいCrystal Reportsの件なんですが、
PDFファイル上で縦書きにするには
指定フォントの前に@がついてればおk

例えばMSゴシックの縦書きにしたいなら
「@MS ゴシック」を選択するなど。。


だがしかしですね。


ASP.NETのCrystalReportViewerでプレビューしてみたところ
どうも縦書きになってくれません。

仕方ないので、間に合わせでCSSファイルに

writing-mode: tb-rl;

と書いてみました。

すると、まぁ確かに拡大率が100%だと見栄えがよさげ。
(このスタイルシートは非対応が多いのでちょっとデンジャーだけど)

でも他の拡大率に変更しても、文字サイズが変化しなくて
プレビューレイアウトがかなり悲惨。


そこで拡大率に合わせて(25%とか50%とか一定の数しかなかったので)
拡大率分だけStyleSheetを作成。

.zoom[倍率]{
writing-mode: tb-rl;
font-size: [適宜];
}



例えば、拡大率25%なら「zoom25」400%なら「zoom400」とかって名前にする。

次に、CrystalReportsでパラメータフィールドを作成して、
なんかテキトーに分かり易い名前をつける。
今回は「zoomSize」って名前にしときます。ナンセンスだけど。
で、このパラメータフィールドの書式設定>CSSクラス名にある
「×2」のボタンを押して、いけ好かないCrystal構文を書きます。

if{?zoomSize} = [倍率] then
"[スタイルシート名]"
else if{?zoomSize} = [さっき書いたのと違う倍率] then
:
:

とこんなカンジで倍率分だけスタイルシート名を定義します。
かなりアナログ的でしんどいです。


んで、CrystalReportViewerイベントのViewZoomを設定して
使用しているページのコードビハインドに加筆。


protected void [ビューワID]_ViewZoom(object source, CrystalDecisions.Web.ZoomEventArgs e)
{
 zoomSize = e.NewZoomFactor;

 //レポートの作成
 [レポートオブジェクトの定義]

 //レポートのzoomSizeパラメータにzoomSizeに入れた値(拡大率)をセット
 [レポートオブジェクト].SetParameterValue("zoomSize", zoomSize);

 //レポートビューワにレポートをバインド
 [ビューワID].ReportSource = レポートオブジェクト
}

Protected int zoomSize
{
  set
  {
    ViewState["zoomSize"] = value;
  }
  get
  {
    return (int) ViewState["zoomSize"];
  }
}


とまぁコレで見かけ上なんとなくCrystalReportViewer上でも
拡大サイズに合わせて綺麗に見えるようになったワケだけど


…どうもきちゃないな(´・ω・`)
PR
お名前
タイトル
文字色
URL
コメント
パスワード
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Trackback URL
Copyright c おねむのこっそり日記 All Rights Reserved
Powered by ニンジャブログ  Designed by ピンキー・ローン・ピッグ
忍者ブログ / [PR]