⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 printset.cpp

📁 IP电话计费管理系统本地版
💻 CPP
字号:
// PrintSet.cpp : implementation file
//

#include "stdafx.h"
#include "IPCount.h"
#include "PrintSet.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#include "SysSetUp.h"
/////////////////////////////////////////////////////////////////////////////
// CPrintSet dialog


CPrintSet::CPrintSet(CWnd* pParent /*=NULL*/)
	: CDialog(CPrintSet::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPrintSet)
	m_CoLtd = _T("");
	m_bCheckPrintOne = FALSE;
	m_strUpSpace = _T("");
	//}}AFX_DATA_INIT
	strKey="";
	nRow=nCol=-1;


}


void CPrintSet::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPrintSet)
	DDX_Text(pDX, IDC_EDIT_COLTD, m_CoLtd);
	DDX_Control(pDX, IDC_MSFLEXGRID_PRINT_SET, m_PrintGrid);
	DDX_Check(pDX, IDC_CHECK_ONE, m_bCheckPrintOne);
	DDX_Text(pDX, IDC_EDIT1, m_strUpSpace);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPrintSet, CDialog)
	//{{AFX_MSG_MAP(CPrintSet)
	ON_BN_CLICKED(IDC_BUTTON_SAVE, OnSavePrintInfo)
	ON_BN_CLICKED(IDC_CHECK_ONE, OnCheckOne)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPrintSet message handlers

void CPrintSet::OnSavePrintInfo() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	CFile pFile;
	//获得文件的当前路径
	TCHAR pFileName[MAX_PATH];
	GetModuleFileName(NULL,pFileName,MAX_PATH);
	if(strchr(pFileName,'\\'))
		*strrchr(pFileName,'\\')='\0';
    strcat(pFileName,"\\PrintSet.DAT");
	if (pFile.Open(pFileName, CFile::modeCreate|CFile::modeWrite))
	{
		pFile.Write((LPCTSTR)m_CoLtd,30);
		pFile.Close();
	}
    CSysSetUp *lcdlg;
	lcdlg=(CSysSetUp *)GetParent();
	lcdlg->SetUpSpace(m_strUpSpace);
    WriteToFile();
	CDialog::OnCancel();
}

BOOL CPrintSet::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
    m_PrintGrid.SetTextArray(0,"行号");
    m_PrintGrid.SetTextArray(1,"第一栏宽");
    m_PrintGrid.SetTextArray(2,"第二栏宽");
    m_PrintGrid.SetTextArray(3,"第三栏宽");
    m_PrintGrid.SetTextArray(4,"第四栏宽");
    m_PrintGrid.SetTextArray(5,"中缝宽");
    m_PrintGrid.SetTextArray(6,"第五栏宽");
    m_PrintGrid.SetTextArray(7,"第六栏宽");
    m_PrintGrid.SetTextArray(8,"第七栏宽");
    m_PrintGrid.SetTextArray(9,"第八栏宽");

    m_PrintGrid.SetTextMatrix(1,0,"第一行");
    m_PrintGrid.SetTextMatrix(2,0,"第二行");
    m_PrintGrid.SetTextMatrix(3,0,"第三行");
    m_PrintGrid.SetTextMatrix(4,0,"第四行");
    m_PrintGrid.SetTextMatrix(5,0,"第五行");
    m_PrintGrid.SetTextMatrix(6,0,"第六行");

	char szSaveInfo[30];
	memset(szSaveInfo,0,30);
	CFile pFile;
	//获得文件的当前路径
	TCHAR pFileName[MAX_PATH];
	GetModuleFileName(NULL,pFileName,MAX_PATH);
	if(strchr(pFileName,'\\'))
		*strrchr(pFileName,'\\')='\0';
    strcat(pFileName,"\\PrintSet.DAT");
	if (pFile.Open(pFileName, CFile::modeRead))
	{
		pFile.Read(szSaveInfo,30);
		m_CoLtd=szSaveInfo;
		pFile.Close();
	}

    CSysSetUp *lcdlg;
	lcdlg=(CSysSetUp *)GetParent();
	if(lcdlg->GetPrintOneFlag()==1)
	{
		m_bCheckPrintOne=TRUE;
	}
	m_strUpSpace=lcdlg->GetUpSpace();
	lcdlg->ReadFromFile();
	UpdateData(FALSE);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

BEGIN_EVENTSINK_MAP(CPrintSet, CDialog)
    //{{AFX_EVENTSINK_MAP(CPrintSet)
	ON_EVENT(CPrintSet, IDC_MSFLEXGRID_PRINT_SET, -601 /* DblClick */, OnDblClickMsflexgridPrintSet, VTS_NONE)
	ON_EVENT(CPrintSet, IDC_MSFLEXGRID_PRINT_SET, -603 /* KeyPress */, OnKeyPressMsflexgridPrintSet, VTS_PI2)
	ON_EVENT(CPrintSet, IDC_MSFLEXGRID_PRINT_SET, -600 /* Click */, OnClickMsflexgridPrintSet, VTS_NONE)
	//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()

void CPrintSet::OnDblClickMsflexgridPrintSet() 
{
	// TODO: Add your control notification handler code here
	strKey="";
	nRow=m_PrintGrid.GetRow();
	nCol=m_PrintGrid.GetCol();

	m_PrintGrid.SetCellBackColor(RGB(0,128,128));
	
}

void CPrintSet::OnKeyPressMsflexgridPrintSet(short FAR* KeyAscii) 
{
	// TODO: Add your control notification handler code here
    CString strTempKey=(TCHAR *) KeyAscii;
	if((strTempKey>='0')&&(strTempKey<='9'))
	{
	    strKey=strKey+strTempKey;
    	if(nRow<0)
		   return;
        m_PrintGrid.SetTextMatrix(nRow,nCol,strKey);
	}
	else
		AfxMessageBox("请输入数字!");
}

void CPrintSet::WriteToFile()
{
   CPrintRecordSet prSet(&m_database);
	//获得文件的当前路径
	TCHAR pFileName[MAX_PATH];
	GetModuleFileName(NULL,pFileName,MAX_PATH);
	if(strchr(pFileName,'\\'))
		*strrchr(pFileName,'\\')='\0';
    strcat(pFileName,"\\IPCount.mdb");
    CString strChar="";
	try
	{
		CString  sDSN="ODBC;DRIVER=Microsoft Access Driver (*.mdb);DSN='';DBQ="+strChar+pFileName+strChar;
        if(!m_database.IsOpen())
		{
		    if(!m_database.Open(NULL,FALSE,FALSE,sDSN,FALSE))//打开数据库是否成功
			{
			    CDialog::EndDialog(0);
			    GetParent()->PostMessage(WM_CLOSE);
			}
		}
        CString strSQL="select * from PrintTb";
		
		prSet.Open(CPrintRecordSet::dynaset,strSQL);//打开数据表是否成功
	}

	catch(CDBException* pEx)//丢出异常处理
	{
		pEx->ReportError();
	    prSet.Close();
	    m_database.Close();
        pEx->Delete();
	} 

    if(!prSet.IsEOF())	
        prSet.MoveLast();

	while( ! prSet.IsBOF())
	{
		prSet.Delete();
		prSet.MovePrev();
	}

	if(prSet.CanAppend())//是否能过添加或修改
	{ 
		for(int i=1;i<7;i++)
		{	
		   prSet.AddNew();
	       prSet.m_column1=m_PrintGrid.GetTextMatrix(i,0);
           prSet.m_column2=m_PrintGrid.GetTextMatrix(i,1);
	       prSet.m_column3=m_PrintGrid.GetTextMatrix(i,2);
           prSet.m_column4=m_PrintGrid.GetTextMatrix(i,3);
	       prSet.m_column5=m_PrintGrid.GetTextMatrix(i,4);
           prSet.m_column6=m_PrintGrid.GetTextMatrix(i,5);
	       prSet.m_column7=m_PrintGrid.GetTextMatrix(i,6);
           prSet.m_column8=m_PrintGrid.GetTextMatrix(i,7);
	       prSet.m_column9=m_PrintGrid.GetTextMatrix(i,8);
           prSet.m_column10=m_PrintGrid.GetTextMatrix(i,9);
		   prSet.Update();
		}
		
	}
	prSet.Close();
	
}


void CPrintSet::OnClickMsflexgridPrintSet() 
{
	// TODO: Add your control notification handler code here
	strKey="";
	nRow=m_PrintGrid.GetRow();
	nCol=m_PrintGrid.GetCol();

	m_PrintGrid.SetCellBackColor(RGB(0,128,128));	
}

void CPrintSet::OnCheckOne() 
{
	// TODO: Add your control notification handler code here
    CSysSetUp *ssdlg;
	ssdlg=(CSysSetUp *)GetParent();

	m_bCheckPrintOne=!m_bCheckPrintOne;
	if(m_bCheckPrintOne)
	{
       ssdlg->SetPrintOneFlag(1);
	}
	else
	{
       ssdlg->SetPrintOneFlag(0);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -