📄 djbkdlg.cpp
字号:
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);
UpdateWindow();
}
CString s;
s.Format(_T("电表总数: %d"),DjbkTotal);
CEdit* pEdit = (CEdit*)GetDlgItem(IDC_DJBKDLG_COUNT_INFO);
pEdit->SetWindowText(s);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDjbkDlg::OnDjbkdlgBtnAdd()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char back[26]="";
int i;
if (m_Djbk_sJBH==_T(""))
{
AfxMessageBox(_T("局编号不能为空!!!"));
return;
}
WideCharToMultiByte(CP_ACP, 0, m_Djbk_sJBH, -1, back, 25, NULL, NULL);
for(i=0;i<DjbkTotal;i++)
{
if(strcmp(back,DjbkData[i].jbh)==0)
{
if((MessageBox(_T("此表数据已存在,是否覆盖?"),_T("覆盖?"),MB_OKCANCEL))==IDOK)
{
break;
}
else return;
}
}
if(i==DjbkTotal)
{
DjbkNum=DjbkTotal++;
}
WideCharToMultiByte(CP_ACP, 0, m_Djbk_sJBH, -1, DjbkData[i].jbh, 25, NULL, NULL);//1
WideCharToMultiByte(CP_ACP, 0, m_Djbk_sCCBH, -1, DjbkData[i].ccbh , 25, NULL, NULL);//3
WideCharToMultiByte(CP_ACP, 0, m_Djbk_sCTBB, -1, DjbkData[i].CT , 25, NULL, NULL);//4
WideCharToMultiByte(CP_ACP, 0, m_Djbk_sDATE, -1, DjbkData[i].jbrq, 25, NULL, NULL); //5
WideCharToMultiByte(CP_ACP, 0, m_Djbk_sDBXH, -1, DjbkData[i].dbxh , 25, NULL, NULL);//7
WideCharToMultiByte(CP_ACP, 0, m_Djbk_sDLJR, -1, DjbkData[i].dljr , 25, NULL, NULL);//8
WideCharToMultiByte(CP_ACP, 0, m_Djbk_sJDY, -1, DjbkData[i].jdy , 25, NULL, NULL);//13
WideCharToMultiByte(CP_ACP, 0, m_Djbk_sJXFS, -1, DjbkData[i].jxfs , 25, NULL, NULL); //14
WideCharToMultiByte(CP_ACP, 0, m_Djbk_sPTBB, -1, DjbkData[i].PT , 25, NULL, NULL);//15
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
strcpy(DjbkData[i].sccj,DjbkBL.sccj);
strcpy(DjbkData[i].scbh ,DjbkBL.scbh );
strcpy(DjbkData[i].ccrq,DjbkBL.ccrq);
strcpy(DjbkData[i].azdw,DjbkBL.azdw);
strcpy(DjbkData[i].azdz,DjbkBL.azdz);
strcpy(DjbkData[i].bwdh,DjbkBL.bwdh);
strcpy(DjbkData[i].tzbh,DjbkBL.tzbh);
strcpy(DjbkData[i].shy,DjbkBL.shy);
CString s;
s.Format(_T("电表总数: %d"),DjbkTotal);
CEdit* pEdit = (CEdit*)GetDlgItem(IDC_DJBKDLG_COUNT_INFO);
pEdit->SetWindowText(s);
AfxMessageBox(_T("成功!"));
m_Djbk_fDBCS=0.0;
m_Djbk_fEDDL=0.0;
m_Djbk_fEDDY=0.0;
m_Djbk_fJDDJ=0.0;
m_Djbk_iJBQS=0;
m_Djbk_iBL=0;
m_Djbk_sCCBH=L"";
m_Djbk_sCTBB=L"";
m_Djbk_sDATE=L"";
m_Djbk_sDBXH=L"";
m_Djbk_sDLJR=L"";
m_Djbk_sJBH=L"";
m_Djbk_sJDY=L"";
m_Djbk_sJXFS=L"";
m_Djbk_sPTBB=L"";
UpdateData(FALSE);
}
void CDjbkDlg::OnDjbkdlgBtnUp()
{
// TODO: Add your control notification handler code here
DjbkNum--;
if(DjbkNum<0)
{
DjbkNum=0;
}
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 ;
CString s;
s.Format(_T("电表总数: %d"),DjbkTotal);
CEdit* pEdit = (CEdit*)GetDlgItem(IDC_DJBKDLG_COUNT_INFO);
pEdit->SetWindowText(s);
UpdateData(FALSE);
}
void CDjbkDlg::OnDjbkdlgBtnDel()
{
// TODO: Add your control notification handler code here
int i=0;
if(DjbkTotal==0)
{
AfxMessageBox(_T("数据库为空!"));
return;
}
if((MessageBox(_T("确认删除当前表数据?"),_T("删除?"),MB_OKCANCEL))==IDCANCEL)
{
return;
}
int j;
for(i=DjbkNum;i<DjbkTotal-1;i++)
{
strcpy(DjbkData[i].azdw,DjbkData[i+1].azdw);
strcpy(DjbkData[i].azdz,DjbkData[i+1].azdz);
strcpy(DjbkData[i].bl,DjbkData[i+1].bl);
strcpy(DjbkData[i].bwdh,DjbkData[i+1].bwdh);
strcpy(DjbkData[i].ccbh,DjbkData[i+1].ccbh);
strcpy(DjbkData[i].ccrq,DjbkData[i+1].ccrq);
strcpy(DjbkData[i].CT,DjbkData[i+1].CT);
for(j=0;j<4;j++)DjbkData[i].dbcs[j]=DjbkData[i+1].dbcs[j];
strcpy(DjbkData[i].dbxh,DjbkData[i+1].dbxh);
strcpy(DjbkData[i].dljr,DjbkData[i+1].dljr);
for(j=0;j<4;j++)DjbkData[i].eddl[j]=DjbkData[i+1].eddl[j];
for(j=0;j<4;j++)DjbkData[i].eddy[j]=DjbkData[i+1].eddy[j];
strcpy(DjbkData[i].jbh,DjbkData[i+1].jbh);
strcpy(DjbkData[i].jbqs,DjbkData[i+1].jbqs);
strcpy(DjbkData[i].jbrq,DjbkData[i+1].jbrq);
for(j=0;j<4;j++)DjbkData[i].jddj[j]=DjbkData[i+1].jddj[j];
strcpy(DjbkData[i].jdy,DjbkData[i+1].jdy);
strcpy(DjbkData[i].jxfs,DjbkData[i+1].jxfs);
strcpy(DjbkData[i].PT,DjbkData[i+1].PT);
strcpy(DjbkData[i].scbh,DjbkData[i+1].scbh);
strcpy(DjbkData[i].sccj,DjbkData[i+1].sccj);
strcpy(DjbkData[i].shy,DjbkData[i+1].shy);
strcpy(DjbkData[i].tzbh,DjbkData[i+1].tzbh);
}
strcpy(DjbkData[i].azdw,"");
strcpy(DjbkData[i].azdz,"");
strcpy(DjbkData[i].bl,"");
strcpy(DjbkData[i].bwdh,"");
strcpy(DjbkData[i].ccbh,"");
strcpy(DjbkData[i].ccrq,"");
strcpy(DjbkData[i].CT,"");
for(j=0;j<4;j++)DjbkData[i].dbcs[j]=0;
strcpy(DjbkData[i].dbxh,"");
strcpy(DjbkData[i].dljr,"");
for(j=0;j<4;j++)DjbkData[i].eddl[j]=0;
for(j=0;j<4;j++)DjbkData[i].eddy[j]=0;
strcpy(DjbkData[i].jbh,"");
strcpy(DjbkData[i].jbqs,"");
strcpy(DjbkData[i].jbrq,"");
for(j=0;j<4;j++)DjbkData[i].jddj [j]=0;
strcpy(DjbkData[i].jdy,"");
strcpy(DjbkData[i].jxfs,"");
strcpy(DjbkData[i].PT,"");
strcpy(DjbkData[i].scbh,"");
strcpy(DjbkData[i].sccj,"");
strcpy(DjbkData[i].shy,"");
strcpy(DjbkData[i].tzbh,"");
DjbkTotal--;
DjbkTotal=DjbkTotal<0?0:DjbkTotal;
DjbkNum=0;
//显示数据0
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);
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 ;
CString s;
s.Format(_T("电表总数: %d"),DjbkTotal);
CEdit* pEdit = (CEdit*)GetDlgItem(IDC_DJBKDLG_COUNT_INFO);
pEdit->SetWindowText(s);
UpdateData(FALSE);
}
void CDjbkDlg::OnDjbkdlgBtnDown()
{
// TODO: Add your control notification handler code here
DjbkNum++;
if(DjbkNum>DjbkTotal)
{
DjbkNum=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;
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 ;
CString s;
s.Format(_T("电表总数: %d"),DjbkTotal);
CEdit* pEdit = (CEdit*)GetDlgItem(IDC_DJBKDLG_COUNT_INFO);
pEdit->SetWindowText(s);
UpdateData(FALSE);
}
HBRUSH CDjbkDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(nCtlColor==CTLCOLOR_EDIT && pWnd->GetDlgCtrlID()==IDC_DJBKDLG_EDT_JBH)
{
pDC->SetBkColor(RGB(134,171,192));
return m_hbrush;
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
void CDjbkDlg::OnDjbkdlgBtnBreak()
{
// TODO: Add your control notification handler code here
if(serialOpen==0)
{
CCommSetDlg dlg;
dlg.m_bFullScreen = FALSE;
dlg.DoModal();
}
if(serialOpen!=1)
{
return ;
}
BYTE buf[10]="";
buf[0]=0x41;
buf[1]=0x42;
buf[2]=0x00;
buf[3]=0x07;
buf[4]=0x00;
buf[5]=0x1d;
buf[6]=0xa7;
buf[7]=0x43;
if (!serial.WritePort(buf,8))
{
AfxMessageBox(_T("写入串口失败"));
return;
}
AfxMessageBox(_T("断开成功!"));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -