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

📄 querydlg.cpp

📁 LibraryManageDM.rar 数据库设计图书馆管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    else
    {
        switch (qType_)
        {
        case QBOOK:
            strKey[0] = strID_;
            strKey[1] = strName_;
            strKey[2] =strType_;
            strField[0] = _T("BookID");
            IsStr[0]  = TRUE;
            strField[1] = _T("BookName");
            IsStr[1]  = TRUE;
            strField[2] = _T("Type");
            IsStr[2]  = TRUE;
            strRSName = _T("BookInfo");
            break;
        case QREADER:
            strKey[0] = strID_;
            if (!theApp.IsManager() && (strID_.IsEmpty() || strID_ != theApp.GetOperator()))
            {
                if (!bRefresh_)
                {
                    MessageBox(_T("您不是管理人员,只能查询自己的记录!\n请准确输入您的ID!"), 
                        theApp.strSystemName, MB_OK | MB_ICONINFORMATION);
                }
                return ;
            }
            strKey[1] = strName_;
            strKey[2] =strType_;
            strField[0] = _T("ReaderID");
            IsStr[0]  = TRUE;
            strField[1] = _T("RederName");
            IsStr[2]  = TRUE;
            strField[2] = _T("Type");
            IsStr[2]  = TRUE;
            strRSName = _T("ReaderInfo");
            break;
        case QBORROW:
            strKey[0] = strID_;
            strKey[1] = strReaderID_;
            if (!theApp.IsManager() && (strReaderID_.IsEmpty() || strReaderID_ != theApp.GetOperator()))
            {
                if (!bRefresh_)
                {
                    MessageBox(_T("您不是管理人员,只能查询自己的记录!\n请准确输入您的ID!"), 
                        theApp.strSystemName, MB_OK | MB_ICONINFORMATION);
                }
                return ;
            }
            strKey[2] = strBookID_;
            strField[0] = _T("ID");
            IsStr[0]  = FALSE;
            strField[1] = _T("ReaderID");
            IsStr[1]  = TRUE;
            strField[2] = _T("BookID");
            IsStr[2]  = TRUE;
            strRSName = _T("BorrowInfo");
            break;
        }        
        GenerateSQL(strKey[0], strField[0], IsStr[0], strKey[1], strField[1], IsStr[1], 
            strKey[2], strField[2], IsStr[2], strRSName, strSQL);
    }    
    ctrlResultList.DeleteAllItems();
    ctrlResultList.SetRedraw(FALSE);

    int i;
    CString strText, strSQL2;
    switch(qType_)
    {
    case QBOOK:
        i = 0;
        if (bkRS.IsOpen())bkRS.Close();
        if (!bkRS.Open(AFX_DB_USE_DEFAULT_TYPE, strSQL))
        {
            if (!bRefresh_)//! 刷新显示时不弹出对话框
				AfxMessageBox(IDS_OPENDBFAIL);
            return ;
        }
        if(bkRS.GetRecordCount() == 0)
        {
            bkRS.Close();
            if (!bRefresh_)//! 刷新显示时不弹出对话框
                MessageBox(_T("查询结果为空!"), theApp.strSystemName);
            return;
        }
        while(!bkRS.IsEOF())
        {
            strDatas_[0] = bkRS.strBookID_;
            strDatas_[1] = bkRS.strBookName_;
            strDatas_[2] = bkRS.strBookType_;
            strDatas_[3] = bkRS.strAuthor_;
            strDatas_[4] = bkRS.strPress_;
            strDatas_[5].Format(_T("%f"), bkRS.dPrice_);
            strDatas_[6].Format(_T("%d-%d-%d"), bkRS.olePressDT_.GetYear(),
                bkRS.olePressDT_.GetMonth(), bkRS.olePressDT_.GetDay());
            strDatas_[7].Format(_T("%d-%d-%d"), bkRS.oleInDT_.GetYear(),
                bkRS.oleInDT_.GetMonth(), bkRS.oleInDT_.GetDay());
            strDatas_[8].Format(_T("%d"), bkRS.nInNumber_);
            strDatas_[9].Format(_T("%d"), bkRS.nOutNumber_);
            strDatas_[10] = bkRS.strDescription_;
            InsertText(i++);
            bkRS.MoveNext();
        }
        bkRS.Close();
        break;
    case QREADER:
        i = 0;
        if (rdRS.IsOpen())rdRS.Close();
        if (!rdRS.Open(AFX_DB_USE_DEFAULT_TYPE, strSQL))
        {
            if (!bRefresh_)//! 刷新显示时不弹出对话框
				AfxMessageBox(IDS_OPENDBFAIL);
            return ;
        }
        if(rdRS.GetRecordCount() == 0)
        {
            rdRS.Close();
            if (!bRefresh_)//! 刷新显示时不弹出对话框
                MessageBox(_T("查询结果为空!"), theApp.strSystemName);
            return ;
        }
        while(!rdRS.IsEOF())
        {
            strDatas_[0] = rdRS.m_ReaderID;
            strDatas_[1] = rdRS.m_ReaderName;
            strDatas_[2] = rdRS.m_Sex;
            strDatas_[3] = rdRS.m_Type;
            strDatas_[4] = rdRS.m_Dept;
            strDatas_[5] = rdRS.m_PhoneNO;
            strDatas_[6] = rdRS.m_TelNO;
            strDatas_[7] = rdRS.m_Email;
            strDatas_[8].Format(_T("%d-%d-%d"), rdRS.m_RegDate.GetYear(),
                rdRS.m_RegDate.GetMonth(), rdRS.m_RegDate.GetDay());
            strDatas_[9].Format(_T("%f元"), rdRS.m_Punish);
            strDatas_[10] = rdRS.m_Address;
            strDatas_[11] = rdRS.m_Description;
            InsertText(i++);
            rdRS.MoveNext();
        }
        rdRS.Close();
        break;
    case QBORROW:
        i = 0;
        if (biRS.IsOpen())biRS.Close();
        if (!biRS.Open(AFX_DB_USE_DEFAULT_TYPE, strSQL))
        {
            if (!bRefresh_)//! 刷新显示时不弹出对话框
                MessageBox(_T("数据库打开失败!"), theApp.strSystemName);
            return ;
        }
        if(biRS.GetRecordCount() == 0)
        {
            biRS.Close();
            if (!bRefresh_)//! 刷新显示时不弹出对话框
                MessageBox(_T("查询结果为空!"), theApp.strSystemName);
            return;
        }
        while(!biRS.IsEOF())
        {
            strDatas_[0] = biRS.strReaderID_;
            strDatas_[1] = biRS.strBookID_;
            strDatas_[2].Format(_T("%d-%d-%d"), biRS.oleBorrowDT_.GetYear(),
                biRS.oleBorrowDT_.GetMonth(), biRS.oleBorrowDT_.GetDay());
            if (!biRS.bReturned_)
                strDatas_[3] = _T("");
            else
                strDatas_[3].Format(_T("%d-%d-%d"), biRS.oleReturnDT_.GetYear(),
                    biRS.oleReturnDT_.GetMonth(), biRS.oleReturnDT_.GetDay());
            strDatas_[4] = biRS.bReturned_ ? _T("是") : _T("否");
            strDatas_[5] = (biRS.bRenewed_ && biRS.bReturned_) ? _T("不可") : _T("可");
            strDatas_[6] = biRS.strOperator_;
            strDatas_[7].Format(_T("%d-%d-%d"), biRS.oleDeadLineDT_.GetYear(),
                biRS.oleDeadLineDT_.GetMonth(), biRS.oleDeadLineDT_.GetDay());
            InsertText(i++);
            biRS.MoveNext();
        }
        biRS.Close();
        break;
    }
    ctrlResultList.SetRedraw(TRUE);
}
void CQueryDlg::OnBnClickedModify()
{
    // TODO: Add your control notification handler code here
    int nYear = 0, nMonth = 0, nDay = 0;
    CBookRegDlg bkRegDlg;
    CReaderRegDlg rdRegDlg;
    CBorrowManageDlg bmDlg;
    INT_PTR ret;
    bRefresh_ = FALSE;
    if (!bSelected_)
    {
        MessageBox(_T("请选择一条记录!"), theApp.strSystemName);
        return;
    }
    if (!theApp.IsManager() && !CanModify_)
    {
        MessageBox(_T("您没有修改权限!"), theApp.strSystemName);
        return;
    }
    switch (qType_)
    {
    case QBOOK:
        bkRegDlg.SetAdd(FALSE);
		bkRegDlg.SetModify(TRUE);
        bkRegDlg.SetSignOff(FALSE);
        bkRegDlg.SetBookID(strDatas_[0]);
        ret = bkRegDlg.DoModal();
        break;
    case QREADER:
		rdRegDlg.SetAdd(FALSE);
        rdRegDlg.SetModify(TRUE);
        rdRegDlg.SetSignOff(FALSE);
        rdRegDlg.SetReaderID(strDatas_[0]);
        ret = rdRegDlg.DoModal();
        break;
    case QBORROW:
        bmDlg.SetReaderID(strDatas_[0]);
        bmDlg.SetBookID(strDatas_[1]);
        bmDlg.SetBWType(RENEW);
        bmDlg.SetOff(TRUE);
        ret = bmDlg.DoModal();
        break;
    }
    if (IDOK == ret)
    {//刷新数据显示
        bRefresh_ = TRUE;
        GetDlgItem(IDC_MODIFY)->EnableWindow(FALSE);
        OnBnClickedOk();
    }
}

void CQueryDlg::OnBnClickedDelete()
{
    // TODO: Add your control notification handler code here
    CBookRegDlg bkRegDlg;
    CReaderRegDlg rdRegDlg;
    CBorrowManageDlg bmDlg;
    INT_PTR ret;
    if (!bSelected_)
    {
        MessageBox(_T("请选择一条记录!"), theApp.strSystemName);
        return;
    }
    if (!theApp.IsManager() || !CanModify_)
    {
        MessageBox(_T("您没有删除权限!"), theApp.strSystemName);
        return;
    }
    strRSName = _T("BorrowInfo");
    CString strKey;
    switch (qType_)
    {
    case QBOOK:
        bkRegDlg.SetBookID(strDatas_[0]);
		bkRegDlg.SetAdd(FALSE);
        bkRegDlg.SetSignOff(TRUE);
        ret = bkRegDlg.DoModal();        
        break;
    case QREADER:             
        rdRegDlg.SetReaderID(strDatas_[0]);
        rdRegDlg.SetAdd(FALSE);
		rdRegDlg.SetSignOff(TRUE);
        ret = rdRegDlg.DoModal();
        break;
    case QBORROW:
        bmDlg.SetReaderID(strDatas_[0]);
        bmDlg.SetBookID(strDatas_[1]);
        bmDlg.SetBWType(RETURN);
        ret = bmDlg.DoModal();
        break;
    }
    if (IDOK == ret)
    {//刷新数据显示
        bRefresh_ = TRUE;
        GetDlgItem(IDC_DELETE)->EnableWindow(FALSE);
        OnBnClickedOk();
    }
}

void CQueryDlg::OnDblclkResultlist(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
    POSITION pos;
    // 从列表中获取选择选项的资料
    int i = ctrlResultList.GetSelectedCount();
    if (i <= 0)
    {
        bSelected_ = FALSE;
        GetDlgItem(IDC_MODIFY)->EnableWindow(FALSE);
        GetDlgItem(IDC_DELETE)->EnableWindow(FALSE);
        return ;
    }
    else
    {
        pos = ctrlResultList.GetFirstSelectedItemPosition();
        i = ctrlResultList.GetNextSelectedItem(pos);
    }
    bSelected_ = TRUE;
    for (UINT j=0; j<nCount_; ++j)
    {
        strDatas_[j] = ctrlResultList.GetItemText(i, j);
    }
    if (theApp.IsManager())
    {
        CanModify_ = TRUE;
        if ((qType_ == QBORROW) && (strDatas_[4] != _T("否")))
        {
            GetDlgItem(IDC_MODIFY )->EnableWindow(FALSE);
            GetDlgItem(IDC_DELETE)->EnableWindow(FALSE);
        }
        else
        {
            OnBnClickedModify();
        }
        
    }
    else
    {
        if (qType_ == READER)
        {
            if (strDatas_[0].Left(4) == theApp.GetOperator())
            {
                CanModify_ = TRUE;
                OnBnClickedModify();
            }
        }
    }
    *pResult = 0;
}

⌨️ 快捷键说明

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