印刷処理訓練用アプリ

  App_01.h



最終的な出力はメモ帳なので、メモ帳のフォントを「MS 明朝」に変更して、右端で折り返さないようにして下さい


  
#define MyEXTERN extern
#include "MTN.h"

class App_01  
{
public:

	LboxTextFile Text;

	int nRow;
	int nRowMax;

	BOOL DataOut( void );
	void HeadPrint( void );
	void DetailPrint( void );

	App_01( HWND hDlg );
	App_01();
	virtual ~App_01();
};
  



  App_01.cpp



  
// *********************************************************
// コンストラクタ
// *********************************************************
App_01::App_01( HWND hDlg )
{

	// ダイアログオブジェクト作成
	Dlg = new LboxDlg( hDlg );
	Dlg->ChangeStyle( WS_MINIMIZEBOX | WS_SYSMENU, 0 );
	Dlg->ChangeExStyle( WS_EX_APPWINDOW, 0 );
	Dlg->StatusCreate( 0 );

	// プログラムID
	Dlg->EditSetText( IDC_PROGID, "HP710" );

	// 項目属性設定

	// ページあたりの行数
	this->nRowMax = 30;
}

App_01::App_01()
{

}

App_01::~App_01()
{
	delete Dlg;
}

// *********************************************************
// 出力実行
// *********************************************************
BOOL App_01::DataOut( void )
{
	BOOL bRet;
	BOOL bFirst;
	LboxString FilePath;

	if ( !CurDb->Connect() ) {
		Dlg->MsgOk("データベースの接続に失敗しました    ");
		return false;
	}	

	Tool.ProgramDirectory( FilePath.szLboxString );
	FilePath.AddBackslash();
	FilePath.operator += ( "商品分類一覧.txt" );

	Text.WriteOpen( FilePath.szLboxString );

	Query->operator = ("select * from 商品分類マスタ order by 商品分類");
	bRet = CurDb->Query( Query );

	bFirst = true;
	while( bRet ) {
		if ( bFirst ) {
			bFirst = false;
			this->HeadPrint();
		}
		if ( this->nRow > this->nRowMax ) {
			this->HeadPrint();
		}

		this->DetailPrint();

		bRet = CurDb->Query( );
	}

	Text.Close();

	CurDb->DisConnect();

	Buff->operator = ("notepad.exe ");
	Buff->operator += (FilePath.szLboxString);

	Tool.Execute( Buff, NULL );

	return true;
}

// *********************************************************
// タイトル部出力
// *********************************************************
void App_01::HeadPrint( void )
{

	// 1行目
	Work->Repeat( " ", 26 );
	Buff->operator = (Work);
	Buff->operator += ("** 商品分類一覧 **");
	Buff->operator += ("\n");
	Text.Put( Buff );

	// 2行目
	Buff->operator = ("\n");
	Text.Put( Buff );

	// 3行目
	Buff->operator = ("商品分類   名 称");
	Buff->operator += ("\n");
	Text.Put( Buff );

	// 4行目
	Work->Repeat( "-", 53 );
	Buff->operator = (Work);
	Buff->operator += ("\n");
	Text.Put( Buff );

	// 次に出力する行
	this->nRow = 5;

}

// *********************************************************
// 明細部出力
// *********************************************************
void App_01::DetailPrint( void )
{
	CurDb->GetText( "商品分類", Item );
	Buff->operator = (Item);
	Work->Repeat( " ", 8 );
	Buff->operator += (Work);
	CurDb->GetText( "名称", Item );
	Buff->operator += (Item);
	Buff->operator += ("\n");
	Text.Put( Buff );

	// 次に出力する行
	(this->nRow)++;

}
  



  Dialog_01.cpp

  
#include "stdafx.h"

#include "App_01.h"

App_01 *CurApp;
// *********************************************************
// ダイアログの処理
// *********************************************************
LRESULT CALLBACK Dialog_01(
HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam )
{
	switch( message ) {
		case WM_INITDIALOG:
			bEnd = false;
			CurApp = new App_01( hDlg );
			// 初期フォーカス
			Dlg->EditFocus( IDC_CHECK );
			return FALSE;

		case WM_COMMAND:
			// 終了
			if( LOWORD(wParam) == IDCANCEL ) {
				bEnd = true;
				delete CurApp;
				EndDialog(hDlg, LOWORD(wParam));
				return TRUE;
			}

			// ABOUT
			if( LOWORD(wParam) == IDM_ABOUT ) {
				DialogBox(
					hInst,
					(LPCTSTR)IDD_ABOUTBOX,
					hDlg,
					(DLGPROC)About
				);
			}

			// アプリケーションの終了
			if( LOWORD(wParam) == IDM_EXIT ) {
				Dlg->SendMsg(
					WM_COMMAND,
					MAKEWPARAM( IDCANCEL, 0 ),
					0
				);
			}

			// 出力
			if ( LOWORD(wParam) == IDC_CHECK ) {
				GetMessageString( "0103" );
				if ( Dlg->MsgYesNo( Message ) ) {
					CurApp->DataOut();
				}
			}
			break;
	}
	return FALSE;
}
  










  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ