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

📄 djbkdlg.cpp

📁 本项目是我工作时候应公司需求开发的 开发工具是EVC++4.0
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// DjbkDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Wonder.h"
#include "DjbkDlg.h"
#include "FzcsDjbkDlg.h"
#include "DjbkFindDlg.h"
#include "CommSetDlg.h"
#include "DataStruct.h"
#include "DjbkSendChose.h"




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

extern CCESeries serial;
extern CDjbkData DjbkData[];
extern int DjbkNum ;
extern int DjbkTotal ;
extern BYTE Data232[];
extern int iCounter;
extern int flg_Djb_hand;
extern int flg_Djb_recOK ;
extern int serialOpen ;
extern CDjbkData DjbkBL;
extern fdlx FDLH;
extern zslx ZXLH;
extern char back[];
extern int DjbSendChose ;
extern HANDLE hDjbkFile;
extern CFile DjbkFile;
extern CFile YjbkFile;
/////////////////////////////////////////////////////////////////////////////
// CDjbkDlg dialog

CDjbkDlg::CDjbkDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CDjbkDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDjbkDlg)
	m_Djbk_sJBH = _T("");
	m_Djbk_sCCBH = _T("");
	m_Djbk_sJXFS = _T("");
	m_Djbk_sPTBB = _T("");
	m_Djbk_sJDY = _T("");
	m_Djbk_sDLJR = _T("");
	m_Djbk_sDBXH = _T("");
	m_Djbk_sDATE = _T("");
	m_Djbk_sCTBB = _T("");	
	m_Djbk_fDBCS = 0.0f;
	m_Djbk_fEDDL = 0.0f;
	m_Djbk_fEDDY = 0.0f;
	m_Djbk_iJBQS = 0;
	m_Djbk_fJDDJ = 0.0f;
	m_Djbk_iBL = 0;
	//}}AFX_DATA_INIT
}


void CDjbkDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDjbkDlg)
	DDX_Text(pDX, IDC_DJBKDLG_EDT_JBH, m_Djbk_sJBH);
	DDX_Text(pDX, IDC_DJBKDLG_EDT_CCBH, m_Djbk_sCCBH);
	DDX_CBString(pDX, IDC_DJBKDLG_CBX_JXFS, m_Djbk_sJXFS);
	DDX_CBString(pDX, IDC_DJBKDLG_CBX_PTBB, m_Djbk_sPTBB);
	DDX_CBString(pDX, IDC_DJBKDLG_CBX_JDY, m_Djbk_sJDY);
	DDX_CBString(pDX, IDC_DJBKDLG_CBX_DLJR, m_Djbk_sDLJR);
	DDX_CBString(pDX, IDC_DJBKDLG_CBX_DBXH, m_Djbk_sDBXH);
	DDX_CBString(pDX, IDC_DJBKDLG_CBX_DATE, m_Djbk_sDATE);
	DDX_CBString(pDX, IDC_DJBKDLG_CBX_CTBB, m_Djbk_sCTBB);	
	DDX_Text(pDX, IDC_DJBKDLG_EDT_DBCS, m_Djbk_fDBCS);
	DDX_Text(pDX, IDC_DJBKDLG_EDT_EDDL, m_Djbk_fEDDL);
	DDX_Text(pDX, IDC_DJBKDLG_EDT_EDDY, m_Djbk_fEDDY);
	DDX_Text(pDX, IDC_DJBKDLG_EDT_JBQS, m_Djbk_iJBQS);
	DDX_Text(pDX, IDC_DJBKDLG_EDT_JDDJ, m_Djbk_fJDDJ);
	DDX_Text(pDX, IDC_DJBKDLG_EDT_BL, m_Djbk_iBL);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDjbkDlg, CDialog)
	//{{AFX_MSG_MAP(CDjbkDlg)
	ON_BN_CLICKED(IDC_DJBKDLG_BTN_EXIT, OnDjbkdlgBtnExit)
	ON_BN_CLICKED(IDC_DJBKDLG_BTN_FZCS, OnDjbkdlgBtnFzcs)
	ON_BN_CLICKED(IDC_DJBKDLG_BTN_FIND, OnDjbkdlgBtnFind)
	ON_BN_CLICKED(IDC_DJBKDLG_BTN_TO203, OnDjbkdlgBtnTo203)
	ON_BN_CLICKED(IDC_DJBKDLG_BTN_FROMPC, OnDjbkdlgBtnFrompc)
	ON_BN_CLICKED(IDC_DJBKDLG_BTN_ADD, OnDjbkdlgBtnAdd)
	ON_BN_CLICKED(IDC_DJBKDLG_BTN_UP, OnDjbkdlgBtnUp)
	ON_BN_CLICKED(IDC_DJBKDLG_BTN_DEL, OnDjbkdlgBtnDel)
	ON_BN_CLICKED(IDC_DJBKDLG_BTN_DOWN, OnDjbkdlgBtnDown)
	ON_WM_CTLCOLOR()
	ON_BN_CLICKED(IDC_DJBKDLG_BTN_BREAK, OnDjbkdlgBtnBreak)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDjbkDlg message handlers

void CDjbkDlg::OnDjbkdlgBtnExit() 
{
	// TODO: Add your control notification handler code here
	//保存数据至文件

	DWORD dwByteWrite=0,dwByteWriteJBH=0;
	
	//if((MessageBox(_T("表库已更新,是否保存?"),_T("保存?"),MB_OKCANCEL))==IDOK)
	{
		CloseHandle(hDjbkFile);
    	DeleteFile(_T("\\My Documents\\djbk.dat"));


		//create
		hDjbkFile=CreateFile(
		             DJBKPATH,
					 GENERIC_READ | GENERIC_WRITE,
					 0,
					 NULL,
					 OPEN_ALWAYS,
					 FILE_ATTRIBUTE_HIDDEN,
					 NULL);
		if(hDjbkFile==INVALID_HANDLE_VALUE)
		{
		AfxMessageBox(_T("保存失败!"));
		CloseHandle(hDjbkFile);
		return ;
		}
		do{
			for(int i=0;i<DjbkTotal;i++)
			{
			   WriteFile(hDjbkFile,DjbkData[i].azdw ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].azdz ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].bl ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].bwdh ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].ccbh ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].ccrq ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].CT ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].dbcs ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].dbxh ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].dljr ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].eddl ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].eddy ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].jbh ,25,&dwByteWriteJBH,NULL);	
	           WriteFile(hDjbkFile,DjbkData[i].jbqs ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].jbrq ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].jddj ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].jdy ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].jxfs ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].PT ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].scbh ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].sccj ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].shy ,25,&dwByteWrite,NULL);
	           WriteFile(hDjbkFile,DjbkData[i].tzbh ,25,&dwByteWrite,NULL);	
			}
			if(i==DjbkTotal)break;
		}while(dwByteWriteJBH);
		
	}
	
	CloseHandle(hDjbkFile);

	CDialog::OnCancel();

}

void CDjbkDlg::OnDjbkdlgBtnFzcs() 
{
	// TODO: Add your control notification handler code here
	CFzcsDjbkDlg dlg;
	dlg.m_bFullScreen = FALSE;
	dlg.DoModal();
}

void CDjbkDlg::OnDjbkdlgBtnFind() 
{
	// TODO: Add your control notificati2n handler code here	
	UpdateData(TRUE);	

	char tempJBH[26]="";

    WideCharToMultiByte(CP_ACP, 0, m_Djbk_sJBH, -1, tempJBH, 25, NULL, NULL); 


	if(m_Djbk_sJBH==_T(""))
	{
		AfxMessageBox(_T("请输入局编号 "));
		return;
	}
	int i;
	for(i=0;i<DjbkTotal;i++)
	{
		if(strcmp(DjbkData[i].jbh ,tempJBH)==0)
		{				
			break;
		}
	}
	if(i==DjbkTotal)
	{
		AfxMessageBox(_T("无匹配局编号表数据!"));
	}
	else 
	{
		DjbkNum=i;
		//显示匹配数据		
		
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,DjbkData[DjbkNum].ccbh ,-1,m_Djbk_sCCBH.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,DjbkData[DjbkNum].CT ,-1,m_Djbk_sCTBB.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,DjbkData[DjbkNum].jbrq ,-1,m_Djbk_sDATE.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,DjbkData[DjbkNum].dbxh ,-1,m_Djbk_sDBXH.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,DjbkData[DjbkNum].dljr ,-1,m_Djbk_sDLJR.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,DjbkData[DjbkNum].jbh ,-1,m_Djbk_sJBH.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,DjbkData[DjbkNum].jdy ,-1,m_Djbk_sJDY.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,DjbkData[DjbkNum].jxfs ,-1,m_Djbk_sJXFS.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,DjbkData[DjbkNum].PT ,-1,m_Djbk_sPTBB.GetBuffer(25),25);
		int j;
		char ch[4];
		float *p;
		for(j=0;j<4;j++)ch[j]=DjbkData[DjbkNum].dbcs[j]; 
		p=(float *)ch;
		m_Djbk_fDBCS=*p;		

		for(j=0;j<4;j++)ch[j]=DjbkData[DjbkNum].eddl [j];		
		p=(float *)ch;
		m_Djbk_fEDDL=*p;

		for(j=0;j<4;j++)ch[j]=DjbkData[DjbkNum].eddy [j];	
		p=(float *)ch;		
		m_Djbk_fEDDY=*p;

		for(j=0;j<4;j++)ch[j]=DjbkData[DjbkNum].jddj [j];	
		p=(float *)ch;
		m_Djbk_fJDDJ=*p;

		strcpy(ZXLH.ch,DjbkData[DjbkNum].jbqs  );
		m_Djbk_iJBQS=ZXLH.i ;
		
		strcpy(ZXLH.ch,DjbkData[DjbkNum].bl );
		m_Djbk_iBL=ZXLH.i ;
		UpdateData(FALSE);
	}
    return ;
}

void CDjbkDlg::OnDjbkdlgBtnTo203() 
{
	// TODO: Add your control notification handler code here
	//添加当前数据至数组
	UpdateData(TRUE);
	int i;

	WideCharToMultiByte(CP_ACP, 0, m_Djbk_sJBH, -1, back, 25, NULL, NULL); 
if(strlen(back))
{
    for(i=0;i<DjbkTotal;i++)
	{
		if(!strcmp(back,DjbkData[i].jbh)){DjbkNum=i;break;}
	}	

	if(i==DjbkTotal)
	{
		DjbkNum=DjbkTotal++;
	}	

    WideCharToMultiByte(CP_ACP, 0, m_Djbk_sJBH, -1, DjbkData[DjbkNum].jbh, 25, NULL, NULL);//1 

	WideCharToMultiByte(CP_ACP, 0, m_Djbk_sCCBH, -1, DjbkData[DjbkNum].ccbh , 25, NULL, NULL);//3 

	WideCharToMultiByte(CP_ACP, 0, m_Djbk_sCTBB, -1, DjbkData[DjbkNum].CT , 15, NULL, NULL);//4

	WideCharToMultiByte(CP_ACP, 0, m_Djbk_sDATE, -1, DjbkData[DjbkNum].jbrq, 15, NULL, NULL); //5
	WideCharToMultiByte(CP_ACP, 0, m_Djbk_sDBXH, -1, DjbkData[DjbkNum].dbxh , 15, NULL, NULL);//7 

	WideCharToMultiByte(CP_ACP, 0, m_Djbk_sDLJR, -1, DjbkData[DjbkNum].dljr , 15, NULL, NULL);//8
	
	char *p;
	int j;
	p=(char *)(&m_Djbk_fDBCS);
	for(j=0;j<4;j++)DjbkData[i].dbcs[j]=(p[j]&0xff);    //6
	p=(char *)(&m_Djbk_fEDDL);
	for(j=0;j<4;j++)DjbkData[i].eddl[j]=(p[j]&0xff);//9
	p=(char *)(&m_Djbk_fEDDY);
	for(j=0;j<4;j++)DjbkData[i].eddy[j]=(p[j]&0xff);//9
	p=(char *)(&m_Djbk_fJDDJ);
	for(j=0;j<4;j++)DjbkData[i].jddj[j]=(p[j]&0xff);//9

	ZXLH.i =m_Djbk_iJBQS;
	for(j=0;j<2;j++)DjbkData[i].jbqs[j]=(ZXLH.ch[j]&0xff);    //11
	
	ZXLH.i =m_Djbk_iBL;
	for(j=0;j<2;j++)DjbkData[i].bl[j]=(ZXLH.ch[j]&0xff);    //11
	
	
	WideCharToMultiByte(CP_ACP, 0, m_Djbk_sJDY, -1, DjbkData[DjbkNum].jdy , 15, NULL, NULL);//13 

	WideCharToMultiByte(CP_ACP, 0, m_Djbk_sJXFS, -1, DjbkData[DjbkNum].jxfs , 15, NULL, NULL); //14

	WideCharToMultiByte(CP_ACP, 0, m_Djbk_sPTBB, -1, DjbkData[DjbkNum].PT , 15, NULL, NULL);//15
	
	strcpy(DjbkData[DjbkNum].sccj,DjbkBL.sccj);	

	strcpy(DjbkData[DjbkNum].scbh ,DjbkBL.scbh );	

	strcpy(DjbkData[DjbkNum].ccrq,DjbkBL.ccrq);

	strcpy(DjbkData[DjbkNum].azdw,DjbkBL.azdw);

	strcpy(DjbkData[DjbkNum].azdz,DjbkBL.azdz);

	strcpy(DjbkData[DjbkNum].bwdh,DjbkBL.bwdh);

	strcpy(DjbkData[DjbkNum].tzbh,DjbkBL.tzbh);

	strcpy(DjbkData[DjbkNum].shy,DjbkBL.shy);

	//////////////////////
}

	CString s;
	s.Format(_T("电表总数: %d"),DjbkTotal);
    CEdit* pEdit = (CEdit*)GetDlgItem(IDC_DJBKDLG_COUNT_INFO);
    pEdit->SetWindowText(s);

	DjbSendChose = 2;


	//选择发送数据
	if(serialOpen==0)
	{
		CCommSetDlg dlg;
	    dlg.m_bFullScreen = FALSE;
	    dlg.DoModal();
	}
	if(serialOpen==1)
	{
		CDjbkSendChose dlg;
	    dlg.m_bFullScreen = FALSE;  
	    dlg.DoModal();
	}	
		
}

void CDjbkDlg::OnDjbkdlgBtnFrompc() 
{
	// TODO: Add your control notification handler code here
	
}

BOOL CDjbkDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_hbrush=CreateSolidBrush(RGB(134,171,192));
	
	
	//数据文件初始化 
	DWORD dwByteRead,dwByteReadJBH;
	hDjbkFile=CreateFile(
		             DJBKPATH,
					 GENERIC_READ | GENERIC_WRITE,
					 0,
					 NULL,
					 OPEN_ALWAYS,
					 FILE_ATTRIBUTE_HIDDEN,
					 NULL);
	if(hDjbkFile==INVALID_HANDLE_VALUE)
	{
		AfxMessageBox(_T("创建或打开存储文件失败!"));
		CloseHandle(hDjbkFile);
		return FALSE;
	}
	DjbkTotal=0;
	do
	{
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].azdw ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].azdz ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].bl ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].bwdh ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].ccbh ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].ccrq ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].CT ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].dbcs ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].dbxh ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].dljr ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].eddl ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].eddy ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].jbh ,25,&dwByteReadJBH,NULL);	
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].jbqs ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].jbrq ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].jddj ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].jdy ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].jxfs ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].PT ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].scbh ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].sccj ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].shy ,25,&dwByteRead,NULL);
	ReadFile(hDjbkFile,DjbkData[DjbkTotal].tzbh ,25,&dwByteRead,NULL);
	if(dwByteReadJBH)DjbkTotal++;
	}while(dwByteReadJBH);
	DjbkNum=0;
	if(DjbkTotal)
	{
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,DjbkData[DjbkNum].ccbh ,-1,m_Djbk_sCCBH.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,DjbkData[DjbkNum].CT ,-1,m_Djbk_sCTBB.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,DjbkData[DjbkNum].jbrq ,-1,m_Djbk_sDATE.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,DjbkData[DjbkNum].dbxh ,-1,m_Djbk_sDBXH.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,DjbkData[DjbkNum].dljr ,-1,m_Djbk_sDLJR.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,DjbkData[DjbkNum].jbh ,-1,m_Djbk_sJBH.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,DjbkData[DjbkNum].jdy ,-1,m_Djbk_sJDY.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,DjbkData[DjbkNum].jxfs ,-1,m_Djbk_sJXFS.GetBuffer(25),25);
		MultiByteToWideChar(CP_ACP,MB_COMPOSITE,DjbkData[DjbkNum].PT ,-1,m_Djbk_sPTBB.GetBuffer(25),25);
		int j;
		char ch[4];
		float *p;
		for(j=0;j<4;j++)ch[j]=DjbkData[DjbkNum].dbcs[j]; 
		p=(float *)ch;
		m_Djbk_fDBCS=*p;		

⌨️ 快捷键说明

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