[Crystal Reports]印刷時の余白(マージン)を変更させる
Crystal Reportsで、印刷時に用紙の余白(マージン)を設定する方法です。 int marginLeft = 10; // 左マージンを10mmでセット CrystalDecisions.Shared.PageMargins margin = cryReport.PrintOptions.PageMargins; margin.leftMargin = mmToTwip( marginLeft ); // mmの指定をtwip単位に変換する margin.topMargin = 0; margin.bottomMargin = 0; margin.rig…
続きを読む
[CrystalReports]プリンタのキューに、指定した帳票タイトルを表示させる
Crystal Reportsを使用して帳票印刷時、プリンタのキューに表示されるドキュメント名(タイトル)を指定する方法です。 VS2010に付属のCrystal Reportsでは、SummaryInfoプロパティが持っているReportTitleに値をセットすれば設定可能です。 // 帳票のタイトルをセット cryReport.SummaryInfo.ReportTitle = "ピッキングリスト"; // プリンタに印刷 cryReport.PrintToPrinter( 0, false, 0, 0 );// 帳票のタイトルをセット c…
続きを読む
jQuery sparklineの簡単なサンプル4つ
jQueryのプラグインである”jQuery sparkline”を使用すると、webページ内に小さなグラフを埋め込む事ができます。 基本形 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript" src="http://omnipotent.ne…
続きを読む
自作向け、個人で購入可能なソーラーパネル一覧
ソーラー発電システムの自作に興味があったので、自作向けにソーラーパネル単体で販売しているもので、個人が購入可能なものを調べてみました。 個人での自作だと、12V給電でシステムを組むむ事が多いと思うので、12Vバッテリ向けのパネルのみ(パネル電圧が15~18Vぐらい)がチェック対象です。また、発電容量が異なると価格が大きく変わるので、今回は全て100Wで統一しました。 価格は2012年4月現在の金額です。 2011/05追記:実際に購入しました -> ソーラー発電の自作用に,パネルを購入しました 送料無料単結晶18Vソーラーパネル(太陽電池)100W価格:15,372円(税込、送料別) 商品番号…
続きを読む
[C#]Form.AcceptButtonを指定すると、複数行TextBoxで改行できない。
Form.AcceptButtonで、OK時のボタンを指定すると、MultiLine=trueに設定されている複数行のTextBoxでEnterキーを入力しても改行することができません。 これは、TextBoxの改行処理が入る前に、Form側でキー入力が横取りされてしまうためです。 この問題を回避するには、TextBox.AcceptsReturnをtrueにします。 また、余談ですがAcceptsTab=trueにしておくとTAB文字を入力する事ができます。
続きを読む
C#で、住所から緯度・経度を検索する(geocoding.jp利用)
住所から簡単に緯度・経度を検索してくれるWebAPIを、geocoding.jpが提供してくれているらしいので、これを利用したWindowsのアプリを作成してみました。 プログラムは、本記事の最後にあるDownloadから取得可能です。 データ取得の処理 まずは、画面構成です。 検索するだけなので、検索キーワード、検索ボタンと結果の3つだけがあるシンプルな構成です。 プログラムは、検索ボタンクリック時のハンドラだけです。 APIがシンプルなので、処理も簡単に記述する事ができます。 //*******************************************************…
続きを読む
[CrystalReports]積算合計フィールドで,集計のタイプに”合計”が出ない場合
CrystalReportsで、合計値を印字しようとして積算合計フィールドを作成した際、集計のタイプに”合計”が出ない場合は、該当の列が数値型になっていない(String等になっているとダメ)。 で、該当の列をStringからInt32に変更した上で”データベースの照合”を行っても、列名が同じでデータ型だけ変更した場合は、定義が変更されたという事をrptファイルのデザイナが認識してくれないみたい。 このような場合は、一旦列名を他のものに変えてから、元に戻すと正しく認識してくれるようです。
続きを読む
CrystalReportsでデータセットを指定後、データセット定義が変更時のrpt更新方法
VisualStudioでCrystalReportsを使用する場合、プログラム側から帳票側へ印字情報を渡すにはDataSetを使用します。 どのDataSetを使用するかは、帳票レイアウトファイルであるrptを作成する際に指定します。 通常だとこれで問題ないのですが、一旦rptファイル作成した後で,DataSetに対して列の追加や削除などが行われ定義が変わった場合はどうなるでしょうか? 気になったので試してみました。 まずは、追加前の状態です。DataSetの内容が、rptのデータベースフィールドに表示されています。 [DataSetの定義] [*.rptファイル] この状態でDataSet…
続きを読む
[VS2010]プロジェクトのフォルダに、*.sln.docstates.suoファイルが作成される。
プロジェクトが入っているフォルダをふと見たら、docstates.suoという拡張子のファイルが存在していました。 気になったので調べてみたところ、VisualStudioのプラグインの「Productivity Power Tools」をインストールしていると作成される設定ファイルでした。エディタで開いてみた感じでは、どのタブ(ファイル)をピン止めしているかなどの情報を管理しているっぽいです… このファイルは*.suoファイルと同じくユーザ毎の環境を管理しているファイルなので、gitやSubversionなどのバージョン管理ソフトを使用している場合は、管理下に含める必要ありません…
続きを読む
貸株を行ったとき株主番号が変更されるか証券各社に聞いてみた
株を保有している場合、銘柄によっては配当のほかに株主優待がもらえる銘柄が有ります。 株主優待の内容は、企業によって異なり、金券や、自社商品、オリジナルグッズや食事券など様々です。 また、企業によっては長期間保有している株主に対し、長期保有者としてより大きな優待を提供する場合があります。 長期間保有者に対するプラスサービスについて、具体的な銘柄を幾つかあげてみると、以下のような企業が実施しています。 3048:ビックカメラ 連続3、4回保有(1株以上) 株主お買物優待券1枚追加 (1,000円券×1枚) 連続5回以上保有(1株以上) 株主お買物優待券2枚追加 (1,000円券×2枚…
続きを読む
[log4net]警告”log4net.Config.DOMConfiguratorAttribute は古い形式です”が表示される場合にすべき事
VisualStudioでlog4netを使用すると、以下の警告が表示される場合があります。 警告 1 ‘log4net.Config.DOMConfiguratorAttribute’ は古い形式です: ‘Use XmlConfiguratorAttribute instead of DOMConfiguratorAttribute’警告 1 ‘log4net.Config.DOMConfiguratorAttribute’ は古い形式です: ‘Use XmlConfiguratorAttribute instead of DOMConfiguratorAttribute’ この場合の対処法…
続きを読む
[C#]ArgumentExceptionで、”DataSource のプロパティまたは列 xxxx にバインドできません。”エラーが出る場合
プログラムの実行時、ArgumentExceptionの例外が発生し、”DataSource のプロパティまたは列 xxxx にバインドできません。”というメッセージが出力される場合があります。 System.ArgumentException はハンドルされませんでした。 Message=DataSource のプロパティまたは列 xxxx にバインドできません。 パラメーター名: dataMember Source=System.Windows.Forms ParamName=dataMember StackTrace: 場所 System.Windows.Form…
続きを読む
[log4net]PatternLayoutのConversionPatternで指定可能なパラメータ一覧
log4netでログを出力する際、layout type=”log4net.Layout.PatternLayout”の、ConversionPatternで指定可能なパラメータの種類と意味の一覧です。 元ネタはこちら> http://logging.apache.org/log4net/release/sdk/log4net.Layout.PatternLayout.html パターン名 内容 a appdomainが指定されたのと同じ意味です。 appdomain AppDomainを、どこでログ出力されたかを分かりやすい形で出力します。 aspnet-cache …
続きを読む
[C#].NETFramework,Version=v4.0.AssemblyAttributes.csでコンパイルエラーが発生する。
問題の内容 VisualStudioでコンパイル時、”.NETFramework,Version=v4.0.AssemblyAttributes.cs”ファイルでエラーが発生する場合があります。 上記ファイルが存在する場所は、プロジェクトがあるフォルダではなくtempの下になっています。 このファイルは、VisualStudioが自動生成するファイルで、正しく生成されていれば、以下のような内容になります。 // <autogenerated /> using System; using System.Reflection; [assembly: global…
続きを読む
C#で開発を行う際に守るべき18のルール
StackOverFlowで紹介されていたC#で開発を行う際に守るべき18のルールが紹介されていました。 内容が興味深かったので紹介します。 元ネタは、http://stackoverflow.com/questions/2787035/coding-guidelines-best-practicesです。 日本語に訳していますが、意味いまいちな場合は原文を当たった方が分かりやすいかも… 1.FxCopを使用して、ソースの静的チェックを行う FxCopとは、Framework Copの略で(Cop=警察です)、Microsoftから提供されているツールです。 コンパイル後のバイナリ…
続きを読む
[C#]演算子オーバーロードを使用して、オブジェクトの条件分岐をシンプルに記述する
あるクラスのオブジェクトの状態をチェックしたい場合、比較式をクラスのメソッドとして実装して確認する事が有ります。 class Score { public int value; public Score( int i ) { value = i; } public bool isValid() { // 値が0~100のときのみ有効とみなす if ( value >= 0 && value <= 100 ) { return true; } fa…
続きを読む
Amazonマーケットプレースで、保留中商品への発送依頼が来た時の返答方法
Amazonマーケットプレースで商品を販売している場合、購入者側で決済が完了していないと”保留中”のステータスになります。 決済が完了すれば発送可能になるのですが、保留中の注文は送付先住所が出品者側では分からないため、発送したくても発送する事ができません。 また、Amazonの規約上も保留中の商品を出荷することは出来ません。 保留中の注文とはなんですか? 保留中の注文には、購入者の支払い方法の承認が完了していない注文や、コンビニ決済で支払いが 完了していない注文が含まれます。保留中の注文を出荷することはできません。 購入者から直接連絡があった…
続きを読む
[C#]Stringとstringの違いは?
C#で文字列を格納する変数を定義する場合、Stringとstringの2つが有ります。(先頭が大文字か小文字かが違っています) 以下の例では、どちらもエラーなくコンパイル&実行可能ですがこの2つは何が違っているのでしょうか? String var1; string var2;String var1; string var2; C#の言語仕様上、stringはSystem.Stringのエイリアス(別名)という位置づけなので、仕様的には両者は全く同じです。 ですので、どっちを使っても問題無く動作するのですが、一般的には以下のガイドラインに沿ってコーディング規約が作られる事が多いです。 1.文字列…
続きを読む
[C#]誕生日より年齢を求める最も簡単な方法
C#で誕生日から年齢を求めるシンプルな方法です。 日付計算はDateTimeクラスに任せるのが一番簡単です。 DateTimeだと、うるう年周りの処理もやってくれるので安心です。 また、誕生日を過ぎているかどうかで1歳変わるので、その分の判定を最後の行で行っています。 int age; // 年齢 DateTime birthDay = …; // 誕生日を取得 DateTime today = DateTime.Today; age = today.Year – birthDay.Year; age -= birthDay > today.AddYear…
続きを読む
[C#]enumが持つ全ての値をforeachで取得する
以下のコードで、enumの列挙が持つ全ての選択肢をループで取得する事が可能です。 public enum ErrLevel { Debug, Info, Warnig, Error, } foreach ( ErrLevel level in Enum.GetValues( typeof(ErrLevel) ) ) { …; }public enum ErrLevel { Debug, Info, Warnig, Error, } foreach ( ErrLevel level in E…
続きを読む