IEを利用した印刷処理


  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;

	// IE 印刷オブジェクト
	IEPrt = new LboxIEPrint();
}

App_01::App_01()
{

}

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

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

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

	// ドキュメント名(HTML) を指定して印字開始
	IEPrt->StartDoc( "商品分類一覧" );

	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 ) {
			IEPrt->NextPage();	// 改ページ
			this->HeadPrint();
		}

		this->DetailPrint();

		bRet = CurDb->Query( );
	}

	// 印字終了
	IEPrt->EndDoc();

	CurDb->DisConnect();

	// ドキュメント名(HTML) を指定して印刷プレビュー
	IEPrt->ReportPreview( "商品分類一覧" );

	return true;
}

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

	// 1行目
	Work->Repeat( " ", 26 );
	Buff->operator = (Work);
	Buff->operator += ("** 商品分類一覧 **");
	Buff->operator += ("\n");
	IEPrt->Write( Buff );	// 出力

	// 2行目
	Buff->operator = ("\n");
	IEPrt->Write( Buff );	// 出力

	// 3行目
	Buff->operator = ("商品分類   名 称");
	Buff->operator += ("\n");
	IEPrt->Write( Buff );	// 出力

	// 4行目
	Work->Repeat( "-", 53 );
	Buff->operator = (Work);
	Buff->operator += ("\n");
	IEPrt->Write( 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");
	IEPrt->Write( Buff );	// 出力

	(this->nRow)++;

}
  










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





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

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ