jQuery とラジオボタンメモ

ラジオボタンのラベルクリックでもチェックできるようにする

<input type="radio" id=”AAA1” name=”BBB” val=”0” checked="checked" /><label for=”AAA1”>サンプル</label>
<input type="radio" id=”AAA2” name=”BBB” val=”1” /><label for=”AAA2”>サンプル</label>

 

ラジオボタンのチェック状態が変更されたときに処理を行う

$(“input[name=’BBB’]”).change(function()
{
  // なんたら処理
});

 

チェックがついているラジオボタンの値を取得する (ラジオボタンのイベント内で)

var data = $(this).val();

 

イベントを発行したラジオボタンがチェックされているか取得する (ラジオボタンのイベント内で)

if ($(this).attr("checked") == true)
{
  // なんたら
}

]]>

Excel でグループ化の+の向きを反転させる

image 別に+-をクリックしなくても縦ラインをクリックすれば折り畳み、展開は可能なのですが、ツリービューなんかをよく使っている人だとなんとなく違和感があるかと思います。それにこの形だと選択した範囲よりも1行下に+-が位置されてしまいます。 これを反転させるには以下の手順で設定します。

  1. メニューの「データ」タブから「アウトライン」不ループのプロパティを開く image
  2. 「詳細データの下」のチェックを外す。列の場合は「詳細データの右」のチェックを外します。
すると+-の向きが反対になります。 image この設定は選択していたグループではなくブック全体に影響することに注意してください。]]>

Excel で改ページのラインに自動的に枠線を設定する方法 (条件付き書式 編)

Excel で作成した印刷用の資料で各ページの上下左右に枠線を表示させたい場合があると思います。上部、左右については改ページされていても常に枠線を設定しておくことが可能ですが (行挿入しても左右の線は自動的に設定される)、各ページの下部に枠線を入れるには各ページごとに改ページのライン位置に枠線を設定しなくてはなりません。ですが、実際にやってみるといろいろと面倒なことがわかります。

  • ページが増えるごとに枠線を設定しないといけない
  • 改ページプレビューだと枠線がきちんと設定されているか見えにくい
  • 上のページで行がずれたりするとそれ以降のページの枠線をすべて直さないといけない
  • 印刷の余白や印刷幅を変更するとすべての枠線を修正しなければいけない
  • マクロでもできるけど、Excel 2007 以降の形式だとファイルの拡張子を変更しないといけない

ここでは下部の枠線を意識せずに自働的に枠線を設定する方法を、条件付き書式を使う方法で設定手順を説明します。

【環境】

  • Excel 2010

【条件】

  • すべての行の高さが完全に一致している必要があります。

【手順】

  1. 印刷プレビュー、改ページプレビューなどで1ページあたりの印刷行数を調べる (ページヘッダーがある場合は1ページ目と2ページ目以降で行数が異なるので2ページ目以降を参考にすること)
  2. 「A1」のセルを選択
  3. 「ホーム」タブから「条件付き書式」の「ルールの管理」を選択。
  4. 「新規ルール」ボタンをクリック。
  5. ルールから「数式を使用して、書式設定するセルを決定」を選択。
  6. 数式欄に「=MOD(ROW()-<ヘッダの行数>,<1ページ当たりの行数>)=0」と入力。(<>の箇所を任意の数値に設定)
  7. 右下の「書式」ボタンをクリックして、「罫線」タブから下線を設定。OKボタンをクリック
  8. さらにOKボタンをクリックして新しいルールを決定する。
  9. 作成したルールの適用先を「=A1:<シートの左下のセル>」に変更。(<>の箇所を任意の値に設定)
  10. 「OK」ボタンをクリックして印刷プレビューを実行。各ページの下に下線が表示されているか確認
]]>

Word 2010 を起動したときに確実に「動作を停止しました」で落ちる原因

最近 Word 2010 を起動するを必ず「動作を停止しました」というエラーメッセージが表示されて起動できなくなる現象に悩まされていました。いったんインストーラーから修復をかけて何回かは問題なく起動できるようになったんですが、それからまた起動時にエラーが出るようになってしまいました。

そこでネットで調べてみたところずばりの解決方法が書いてありました。

確かに最近 Bluetooth のキーボードを使うために Bluetooth の USB アダプタを PC につけていました。Word の設定で Send to Bluetooth のチェックを外したら正常に起動できるようになりました。

]]>

HTTP経由でキューブにアクセスする方法

ネットワークが特殊な環境で2383ポートが使用できず、80(または443)ポートが使用可能な場合、HTTP経由でキューブにアクセスする方法があります。

詳しくは公式サイトに載っていますので手順通りに設定すれば問題ないかと思います。

※SQL Server 2012 へのリンクページですが、デフォルトのページが一部英語であったため、すべて日本語になっている上記のリンクに飛ばしています。

 

上記のリンク先の説明で気をつける点があります。

まず「msmdpump.dll」「msmdpump.ini」「Resources」の配置先が「C:inetpubwwwrootolap」と「C:inetpubwwwrootolapisapi」の2パターンが書いてありますが、isapiフォルダはなくても問題ありません。接続先のURLを短くしたいのであれば olap フォルダの直下に上記の3つを入れてしまった方がいいでしょう。

もう一点「msmdpump.ini」ファイル内の「ServerName」のサーバー名は「IISから見たキューブ(Anarysis Services)があるサーバーの名前」です。ですので、IISとキューブが同じサーバーにある場合はそのまま「localhost」で問題ありません。勘違いして外から見たIISサーバー名を指定するとつながらなくなってしまう場合があります。私はこれで結構はまってしまいました。

]]>

コマンドプロンプトでプログラムを実行後に戻り値を確認する方法

コマンドプロンプトで .exe や .vbs など各種プログラムを実行した後に戻り値を確認したい場合があります。プログラム実行後は環境変数「ERRORLEVEL」に戻り値が設定されるのでこれを呼び出せば確認することができます。

  1. コマンドプロンプトでプログラムを実行する
  2. 実行完了後、「echo %ERRORLEVEL%」を実行して確認
]]>

Windows 認証、または SQL Server 認証 sa ユーザー以外のユーザーに SQL Server エージェントのジョブ実行権限を付与する方法

メモ書きです。

  1. SQL Server Management Studio から「セキュリティ」-「ログイン」を開き、対象ユーザーのプロパティを開く
  2. 「ユーザーマッピング」を選択し、「msdb」にチェックを入れる。
  3. さらに msdb を選択した状態でメンバーシップから以下のメンバーシップにチェックを入れる
    • SQLAgentUserRole
    • SQLAgentReaderRole
    • SQLAgentOperatorRole
  4. 後はプログラムなどから対象ユーザーの接続文字列を使用してジョブが実行されるかチェックする
]]>

[ASP.NET] IE の互換表示で ReportViewer コントロールのサイズを小さくすると IE がフリーズする現象を回避する方法

ReportViewer+SSRS のレポートを IE で互換表示すると高確率でフリーズする」で質問させていただいたのですが、回避方法が見つかったのでこちらにも書いておきます。

【環境】(現象確認環境であるため、似たような環境でも発生すると思います)

❏サーバー

  • Windows Server 2008 R2 Standard (SPなし)
  • IIS 7.5
  • ASP.NET MVC 3
  • ReportViewer コントロール バージョン 10.0.0.0 (.NET Runtime 2.0.50727)
  • SQL Server 2008 R2 (SPなし)
  • 見出しマップを表示されたレポート (.rdl)

 

❏クライアント

  • OS : Windows XP, Vista, Windows Server 2008 R2
  • ブラウザ:IE8, 9

 

【現象】

ReportViewer コントロールに見出しマップがあるレポートをバインドさせ、その Web ページを IE 8, または 9 の「互換表示」で開き、ReportViewer コントロールのサイズを小さく表示させると IE がフリーズする。(ReportViewer コントロールのサイズがウインドウサイズに追従する場合は、IE のウインドウサイズを小さくしていけば現象は確認できる)

おそらくではあるが、IE の内部処理でレイアウトを計算する際に無限ループ、またはそれに近い再起処理が行われているためだと思われる。

 

【対処法】

IE のレイアウトの解析処理を変更させることでフリーズを回避させることができる。具体的には HTML の解析は DOCTYPE で変えられるため、この宣言の内容を変更することによって可能。

・修正前

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

↓↓↓↓

・修正後

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

 

しかし、HTML 4.01 Transitional を指定すると今度は逆に互換表示していない IE での表示が崩れてしまうという現象に見舞われる。そのため、HTML で互換表示かそうでないか (正確には IE のレンダリングバージョン)で条件分けをして現象を回避します。

下記では「IE 8 以降であるか」「IE 8 未満であるか」「それ以外のブラウザであるか」で分岐しています。

<!--[if gte IE 8]>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<![endif]-->
<!--[if lt IE 8]>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<![endif]-->
<![if !IE]>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<![endif]>

 

別案としてサーバーから「<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />」のようなメタ情報を返してクライアントで互換モードを指定するという方法もあるが、最終的な互換モードの決定権はクライアントにあるため、必ずしも有効であるとは限らない。(でも何もしないよりはいいと思います。)

]]>