goo blog サービス終了のお知らせ 

Visual C# 2005で仕事しよう

Visual C# 2005 を使って小売業で 使えるプログラムを作成する

2011年4月8日(金) 全国放射線量

2011年04月09日 16時59分59秒 | フォームビュー

http://www.mext.go.jp/component/a_menu/other/detail/__icsFiles/afieldfile/2011/04/09/1304777_040913.pdf

 このページの表が わかりにくいので 自分なりに変換してみました。福島でこのまま1年間生活すると ブラジルガラパリの 約2倍 と なります。

<colgroup span="1"><col style="width: 45pt; mso-width-source: userset; mso-width-alt: 1920;" span="1" width="60"></col><col style="width: 70pt; mso-width-source: userset; mso-width-alt: 2976;" span="1" width="93"></col><col style="width: 151pt; mso-width-source: userset; mso-width-alt: 6432;" span="1" width="201"></col></colgroup>
ランク 年間(ミリシーベルト)
1 福島   20.148
2 茨城   1.34904
3 山口   0.85848
4 宮城   0.79716
5 東京都   0.7446
6 栃木   0.66576
7 鳥取   0.62196
8 埼玉   0.57816
9 岐阜   0.5694
10 香川   0.56064
11 新潟   0.53436
12 島根   0.53436
13 山形   0.5256
14 神奈川  0.5256
15 千葉   0.50808
16 富山   0.50808
17 大分   0.49056
18 岡山   0.47304
19 広島   0.46428
20 石川   0.45552

20000文字の制限で 全部表示できない。


MFC VC++6.0 で仕事しよう!No.38 JPEG画像プロパティ

2007年02月03日 11時42分23秒 | フォームビュー
何もないフォームビューに 画像を表示させる 枠 を 入れていきます。


ResourceView の 

-Dialog
+IDD_ABOUTBOX
+IDD_PIC03_FORM  <- を ダブルクリックして フォームを 表示

フォーム上で 右クリック

  ActiveXコントロールの挿入(X)... を クリック


  Microsoft Web Browser  を 選択して OK

  画面上に 黒バック で 旗の絵のある 

  IDC_EXPLORER1 が 挿入されます。

  これを 75 ×85 の 大きさに 変更して

  全部で 6 個 作ります。

  きれいに ならべて それぞれの 下に エディットボックス を 配置

  エディットボックスの名前は IDC_EPIC1~IDC_EPIC6 に 変更



それから

 最初からある TODO: フォームのコントロールをここに配置してください。 は

  < 画像プロパティ編集 pic03.exe > に 変更

さらに

 画面右上には、読み取り専用 で タブストップのチェックをはずしたエディットボックスを 配置 

   IDC_EMSG

そして

 タイトルの下、長めと短めの エディットボックスを 配置

  長いほう IDC_EPASS1

  短いほう IDC_ESEQ

と します。


フォームへの 配置が 終了すると 少し コード を 書きます。

ClassView から

-CPic03App
+CPic03App()
+InitInstance()  <- ここを ダブルクリック
+OnAppAbout()


↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓


// アプリケーション用のドキュメント テンプレートを登録します。ドキュメント テンプレート
// はドキュメント、フレーム ウィンドウとビューを結合するために機能します。

CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CPic03Doc),
RUNTIME_CLASS(CMainFrame), // メイン SDI フレーム ウィンドウ
RUNTIME_CLASS(CPic03View));
AddDocTemplate(pDocTemplate);



m_nCmdShow = SW_SHOWMAXIMIZED;



// DDE、file open など標準のシェル コマンドのコマンドラインを解析します。
CCommandLineInfo cmdInfo;
// ParseCommandLine(cmdInfo);

// コマンドラインでディスパッチ コマンドを指定します。

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑


1つ目の かえる は 追加です。

2つ目の かえる は スラッシュ 入れるだけです。



リビルドして 実行 です。


図のような 画面が できたら 成功です。



MFC VC++6.0 で仕事しよう!No.37 JPEG画像プロパティ

2007年01月20日 12時07分34秒 | フォームビュー
早速、画像プロパティ編集プログラムを 作成します。

Visual C++ 6.0を 起動して、ファイルメニューから新規作成

 MFC AppWizard(exe) をクリックして、プロジェクト名 pic03 で OK

 ステップ1

  作成するアプリケーションの種類 : SDI

  次へ

 ステップ2

  次へ

 ステップ3

  次へ

 ステップ4

  最新ファイルの一覧・・・ファイルの数 : 0

  次へ

 ステップ5

  次へ

 ステップ6

  基本クラス:CFormView

  終了

  OK


ここで ウィザードが終了

メインメニューの ビルドから アクティブな構成の設定 で Debug を Releaseに変更してOK


ビルドメニューから リビルド して コンパイル終了後

ビルドメニューから 実行 !!

 図1のように、アプリケーションが実行されたら OK です。

 今回は、ここまでです。



MFC VC++6.0 で仕事しよう!No.35

2006年12月07日 20時06分02秒 | フォームビュー
 ジャンルを ビジネス実用 に 変更して 久しぶりに 更新します。

 今回は、VC++ から 少し離れて、 エクセルデータから CSVファイルへ変換

する VBS を 作成してみようと 思います。

 以前作成した 項目抽出 や 条件抽出 の アプリケーションを持っていて

も、処理すべきデータがないのは とても寂しいので 、そこを解消するために作

ってみようと思います。

 まず、エクセルを起動して、何かデータを 入力して 名前をつけて保存 しま

す。


     A  B  C
  1 あ  2  4
  2 い  3  5
  3 う  4  6
  4 え  5  7

sheet1 -> aaa

ファイル名 c:test.xls



 それにしても このブログは 半角スペースを詰めて表示されるので とっても 不便です。 gooさん 直して下さい。


 エクセルファイルを作成するとき Documents and Settings などには 保存しないほうが 後が楽です。(長いから)


それでは メモ帳を 開いて 次のように 書いて下さい。

 赤い びっくりマーク から 赤い びっくりマークまでです。


rem エクセルデータ を CSVで 保存



Dim para
Dim xlApp
Dim sheet



rem パラメータ セット

rem 0: エクセルファイル
rem 1: 出力シート名
rem 2: 出力ファイル名



Set para = WScript.Arguments

Set xlApp = CreateObject( "Excel.Application" )

xlApp.DisplayAlerts = False

xlApp.Workbooks.Open ( para.item( 0 ) )





Set sheet = xlApp.ActiveWorkBook.Worksheets( para.item( 1 ) )


rem カンマ区切り 6 タブ 3
sheet.SaveAs para.item( 2 ), 6





xlApp.ActiveWorkBook.Close

Set xlApp = Nothing






 これを c:csv01.vbs という名前で 保存します。



それでは、 使ってみましょう。

コマンドプロンプトから 次のように 入力して エンター です。

>c:csv01.vbs c:test.xls aaa c:a01.txt



c:\a01.txt が 作成されたら 成功です。


今日は ここまでです。

MFC VC++6.0 で仕事しよう!No.33 CFormView

2006年02月02日 16時29分44秒 | フォームビュー
半年以上 経ってしまいました。

 それでも、毎週 だいたい 100人 くらい の方から アクセスしていただいております。 ありがとうございます。

 ここらへんがわかりにくい とか ここをもっとくわしく とか 簡単すぎる とか ご意見 いただけたら と 思います。 待ってます。


 それでは、開始します。


 ファイルを読み込みの部分を 書いていく途中でした。 前回は CStringArrayの変数を DeleteContent で クリア するところまで 書いています。

 この ドキュメントクラスの DeleteContent は 呼び出して やらなくても起動時と終了時に 1回 走ってくれます。便利です。



 本題に 入る前に ドキュメントクラス に 変数2つ 追加してください。

   CString m_sDataF1;

   CString m_sMsg;


 それでは ドキュメントクラスに OnFileOpen 関数 を 追加します。

1 Ctrl + W で  MFC ClassWizard ダイアログ を 表示させます。

2 クラス名 を CUri201Doc に 変更して

3 オブジェクトID から ID_FILE_OPEN を クリック

4 メッセージ から COMMAND を クリック

5 関数の追加 ボタン を クリック

6 メンバ関数名 が OnFileOpen になっていることを確認して OK

7 コード編集 ボタンを クリック

です。


すると

void CURI201Doc::OnFileOpen()
{
// TODO: この位置にコマンド ハンドラ用のコードを追加してください

}

↑ こんなの が できます。

ここに、次のように 書きます。

void CURI201Doc::OnFileOpen()
{
 // TODO: この位置にコマンド ハンドラ用のコードを追加してください

 CStdioFile dataf;

 CFileException fex;

 BOOL success;

 CString sbuf, stky, smky, swk, swk0, swk1, swk2;

 int iitem, icount, ierr;

 if ( !dataf.Open( m_sDataF1, CFile::modeRead, &fex ) )
 {
  m_sMsg.Format( "新規作成 です。 %s", m_sDataF1 );

  return;

 }

 smky = "000000000000"; // 日付 6 桁 + レジNo 3 桁 + 区分 3 桁

 icount = 0;

 ierr = 0;

 BeginWaitCursor();

 while( 1 )
 {
  success = dataf.ReadString( sbuf );

  if ( success == NULL || success == FALSE )
  {
   break;

  }

  icount++;

  iitem = dt.DivItem( sbuf );

  swk = dt.m_sItem[ 0 ]; // 日付

  swk.TrimLeft();

  swk0.Format( "%06s", swk );

  swk = dt.m_sItem[ 1 ]; // レジNo

  swk.TrimLeft();

  swk1.Format( "%03s", swk );

  swk = dt.m_sItem[ 2 ]; // 区分

  swk.TrimLeft();

  swk2.Format( "%03s", swk );

  stky = swk0 + swk1 + swk2;

  if ( stky > smky )
  {
   m_saData.Add( sbuf );

   m_saDatakey.Add( stky );

   smky = stky;
 
  }
  else
  {
   m_sMsg.Format( "データ Seq おかしい。 終了します。 %s, seq = %d", stky, icount );

   ierr = 1;

   break;

  }

 } // while( 1 )

 dataf.Close();

 EndWaitCursor();

 m_iData = m_saData.GetSize();

 icount = m_saDatakey.GetSize();

 if ( m_iData != icount )
 {
  m_sMsg.Format( "データ と キィー の数が違います。読み込みデータ 破棄します。" );

  ierr = 1;

 }

 if ( ierr != 0 )
 {
  DeleteContents();

  return;

 }

 m_sMsg.Format( "データ %d 件 読込ました。", m_iData );

 return;

}



  リビルド して エラー が でなかったら OK です。

 今日は ここで 終了です。


MFC VC++6.0 で仕事しよう!No.32 CFormView SDK

2005年07月02日 17時25分16秒 | フォームビュー
 実に 1ヶ月に 1度の 更新に なってきました。


なかなか、更新する時間を作るのは 難しいです。


前回までで、入力フォームの 外観が できましたので 今日は、 ファイルを 読み込みをやります。


ドキュメントクラスに 次のメンバ変数を 追加します。

ドキュメントクラス

変数のタイプ 変数名 アクセス制御
CStringArray m_saData private
CStringArray m_saDatakey private
int m_iData private


さらに、ウィザードから ドキュメントクラスに

 DeleteContents() を 追加して 次のように 書きます。

void CURI201Doc::DeleteContents()
{
  // TODO: この位置に固有の処理を追加するか、または基本クラスを呼び出してください
  m_iData = m_saData.GetSize();
  m_saData.RemoveAt( 0, m_iData );
  m_saData.RemoveAll();
  m_iData = m_saDatakey.GetSize();
  m_saDatakey.RemoveAt( 0, m_iData );
  m_saDatakey.RemoveAll();
  m_iData = 0;
  CDocument::DeleteContents();
}


リビルド して 実行です。

起動時と終了時に メモリクリアされます。


今日は、ここまでです。

MFC VC++6.0 で仕事しよう!No.31 CFormView SDK

2005年06月02日 09時35分26秒 | フォームビュー
 しばらく、仕事の都合上お休みしていました。 今日は、時間が少しあるので

 ひさしぶりに 更新します。



さて、フォームビューで 入力フォームを作るデザインを 今日は 作成します。

 入力してもらう項目は 次のとおりです。

入力項目表

種類 ID キャプション メンバ変数
スタティック IDC_SDATE 日付 なし
スタティック IDC_SREJI レジNo なし
スタティック IDC_SKUBN 区分 なし
スタティック IDC_SURI 売上 なし
スタティック IDC_SCASH 現金 なし
スタティック IDC_SURI 売上 なし
スタティック IDC_SGIFT 1000円券 なし
スタティック IDC_SCOUP クーポン券 なし
スタティック IDC_SSYOKEI 小計 なし
スタティック IDC_SKABU 過不足金 なし
エディット IDC_EDATE なし m_sMdate
エディット IDC_EREJI なし m_sMreji
エディット IDC_EKUBN なし m_sMkubn
エディット IDC_EURI なし m_sMuri
エディット IDC_ECASH なし m_sMcash
エディット IDC_EGIFT なし m_sMgift
エディット IDC_ECOUP なし m_sMcoup
エディット IDC_ESYOKEI なし m_sMsyokei
エディット IDC_EKABU なし m_sMkabu
ボタン IDC_BWRITE <書き込み> なし
エディット IDC_EMSG なし m_sMmsg



 IDC_EMSG は、メッセージボックスとして使いますので、読み取り専用とタブストップなしの設定も行ってください。


 格エディットには レイアウトメニューから タブオーダーで 日付から書き込みボタンまで順に 1から10まで番号を振ってください。

リビルド して 実行して 写真のようになれば OK です。


 今日は ここまでです。

MFC VC++6.0 で仕事しよう!No.30 CFormView SDK

2005年04月05日 15時20分19秒 | フォームビュー
 CURI201App クラスを選択して


InitInstance() を ダブルクリック


次のように 書きます


// アプリケーション用のドキュメント テンプレートを登録します。ドキュメント テンプレート
// はドキュメント、フレーム ウィンドウとビューを結合するために機能します。

    CSingleDocTemplate* pDocTemplate;
        pDocTemplate = new CSingleDocTemplate(
        IDR_MAINFRAME,
        RUNTIME_CLASS(CURI201Doc),
        RUNTIME_CLASS(CMainFrame), // メイン SDI フレーム ウィンドウ
        RUNTIME_CLASS(CURI201View));
    AddDocTemplate(pDocTemplate);



    m_nCmdShow = SW_SHOWMAXIMIZED;   <- ここ を 追加 します





    // DDE、file open など標準のシェル コマンドのコマンドラインを解析します。
    CCommandLineInfo cmdInfo;
//   ParseCommandLine(cmdInfo);  <- ここ を コメント にします

    // コマンドラインでディスパッチ コマンドを指定します。
    if (!ProcessShellCommand(cmdInfo))
        return FALSE;

    // メイン ウィンドウが初期化されたので、表示と更新を行います。
    m_pMainWnd->ShowWindow(SW_SHOW);





ここまで、書いたら リビルドして 実行です。


最大化表示されたら OK です。





次に、 クラスの新規作成  から  CDivTie() を 追加します。

内容は、 前と 同じ です。



クラスを 追加できたら 

CURI201Doc と CURI201View に メンバ変数として 追加します。

CDivTie  dt;

です。


これが できたら リビルドして 実行です。


今日は、ここまでです。