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

📄 comadmtask.h

📁 一个图书馆信息查询系统。是根据学校图书馆的实际情况调查后开发
💻 H
字号:
#include <windows.h>
#include "datas.h"
#include "AdoConnect.h"
#include "resource.h"

void ComAdmTask(HWND);
LRESULT CALLBACK dpComAdmTask(HWND, UINT, WPARAM, LPARAM);

LRESULT CALLBACK dpComAdmTask(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	AdoConnect ado;
	TCHAR book[MAX_STRING];
	TCHAR lisence[MAX_STRING];
	TCHAR str1[MAX_STRING];
  	TCHAR strreaderid[MAX_STRING];
	TCHAR strbookid[MAX_STRING];
	_bstr_t bstr;
	_RecordsetPtr pr;

	switch (message)
	{
		case WM_INITDIALOG:
			return TRUE;

		case WM_COMMAND:
			if (LOWORD(wParam) == IDBORROW)
			{
				SendMessage(GetDlgItem(hDlg, IDC_ATASK_BOOK), WM_GETTEXT, MAX_STRING-1, (LPARAM)book);
				SendMessage(GetDlgItem(hDlg, IDC_ATASK_READER), WM_GETTEXT, MAX_STRING-1, (LPARAM)lisence);
				if(0 == lstrcmp(book, "") || 0 == lstrcmp(lisence, ""))
				{
					MessageBox(hDlg, "图书名字与读者证号都不能为空!", "Fail!", MB_ICONSTOP);
					return TRUE;
				}

				/*咨询读者表*/
				UniteBSTR(bstr, var "select * from reader where lisence='", var lisence, var "';"); 
				ado.OnInitDBConnect();
				pr = ado.GetRecordset(bstr);
				if(pr->adoBOF || pr->adoEOF)
				{
					MessageBox(hDlg, "此读者不存在!", "Fail!", MB_ICONSTOP);
					ado.ExitConnect();
					return TRUE;
				}
				int borroweds = atoi(lpstr pr->GetCollect("borroweds"));
				
				lstrcpy(str1, lpstr pr->GetCollect("type"));
				int maxborrow;
				if(0 == lstrcmp(str1, "二级"))
					 maxborrow = 8;

				if(0 == lstrcmp(str1, "一级"))
					 maxborrow = 15;

				if(maxborrow <= borroweds)
				{
					MessageBox(hDlg, "借书数目已经到达最大限制!", "Fail!", MB_ICONSTOP);
					ado.ExitConnect();
					return TRUE;
				}

				int readerid = atoi(lpstr pr->GetCollect("id"));
				wsprintf(strreaderid, "%d", readerid);

				/*咨询图书表*/
				UniteBSTR(bstr, var "select * from book where name='", var book, var "';");
				pr = ado.GetRecordset(bstr);
				if(pr->adoBOF || pr->adoEOF)
				{
					MessageBox(hDlg, "此书不存在!", "Fail!", MB_ICONSTOP);
					ado.ExitConnect();
					return TRUE;
				}

				lstrcpy(str1, lpstr pr->GetCollect("state"));
				if(0 != lstrcmp(str1, "在馆"))
				{
					MessageBox(hDlg, "此书不在馆!", "Fail!", MB_ICONSTOP);
					ado.ExitConnect();
					return TRUE;
				}
				
				int bookid = atoi(lpstr pr->GetCollect("id"));
				wsprintf(strbookid, "%d", bookid);

				/*修改图书表*/
				UniteBSTR(bstr, var "update book set state='借出' where id=", var strbookid, var ";");
				ado.ExecuteSQL(bstr);
				
				/*修改读者表*/
				UniteBSTR(bstr, var "update reader set borroweds=borroweds+1 where lisence='", var lisence, var "';");
				ado.ExecuteSQL(bstr);

				/*插入事务表*/
				if(8 == maxborrow)
					UniteBSTR(bstr, var "insert into task(bookid, readerid, starttime, endtime) values(", var strbookid, var ",", var strreaderid,
						var ",", var "GETDATE()", var ",", var "GETDATE()+30", var ");");

				if(15 == maxborrow)
					UniteBSTR(bstr, var "insert into task(bookid, readerid, starttime, endtime) values(", var strbookid, var ",", var strreaderid,
						var ",", var "GETDATE()", var ",", var "GETDATE()+60", var ");");

				ado.ExecuteSQL(bstr);
				ado.ExitConnect();

				UniteBSTR(bstr, var "证号=", var lisence, var " 借 书名=", var book, var ";");
				SendMessage(GetDlgItem(hDlg, IDC_ATASK_LIST), LB_INSERTSTRING, 0, (LPARAM)lpstr bstr);
 				return TRUE;
			}
 
			if (LOWORD(wParam) == IDRETURN)
			{
				SendMessage(GetDlgItem(hDlg, IDC_ATASK_BOOK), WM_GETTEXT, MAX_STRING-1, (LPARAM)book);
				SendMessage(GetDlgItem(hDlg, IDC_ATASK_READER), WM_GETTEXT, MAX_STRING-1, (LPARAM)lisence);
				if(0 == lstrcmp(book, ""))
				{
					MessageBox(hDlg, "图书名字不能为空!", "Fail!", MB_ICONSTOP);
					return TRUE;
				}
				ado.OnInitDBConnect();
				UniteBSTR(bstr, var "select id from book where name='", var book, var "';");
				pr = ado.GetRecordset(bstr);
				if(pr->adoBOF || pr->adoEOF)//图书不存在
				{
					MessageBox(hDlg, "此书不存在!", "Fail!", MB_ICONSTOP);
					ado.ExitConnect();
					return TRUE;
				}

				int bookid = atoi(lpstr pr->GetCollect("id"));
				wsprintf(strbookid, "%d", bookid);

				UniteBSTR(bstr, var "select * from task where bookid=", var strbookid, var ";");
				pr = ado.GetRecordset(bstr);
				if(pr->adoBOF || pr->adoEOF)//事务不存在
				{
					MessageBox(hDlg, "此借书记录不存在!", "Fail!", MB_ICONSTOP);
					ado.ExitConnect();
					return TRUE;
				}

				int readerid = atoi(lpstr pr->GetCollect("readerid"));
				wsprintf(strreaderid, "%d", readerid);

				TCHAR strtaskid[MAX_STRING];
				int taskid = atoi(lpstr pr->GetCollect("id"));
				wsprintf(strtaskid, "%d", taskid);

				/*修改图书表*/
				UniteBSTR(bstr, var "update book set state='在馆' where id=", var strbookid, var ";");
				ado.ExecuteSQL(bstr);

				/*修改读者表*/
				UniteBSTR(bstr, var "update reader set borroweds=borroweds-1 where id=", var strreaderid, var ";");
				ado.ExecuteSQL(bstr);

				/*修改事务表*/
				UniteBSTR(bstr, var "delete from task where id=", var strtaskid, var ";");
				ado.ExecuteSQL(bstr);
				ado.ExitConnect();
	
				UniteBSTR(bstr, var "证号=", var lisence, var " 还 书名=", var book, var ";");
				SendMessage(GetDlgItem(hDlg, IDC_ATASK_LIST), LB_INSERTSTRING, 0, (LPARAM)lpstr bstr);
 				return TRUE;
			}

			if (LOWORD(wParam) == IDCLEAR)
			{
				SendMessage(GetDlgItem(hDlg, IDC_ATASK_BOOK), WM_SETTEXT, 0, (LPARAM)"");
				SendMessage(GetDlgItem(hDlg, IDC_ATASK_READER), WM_SETTEXT, 0, (LPARAM)"");
 				return TRUE;
			}
			
			if(LOWORD(wParam) == IDCANCEL) 
			{
				EndDialog(hDlg, LOWORD(wParam));
				return TRUE;
			}

			return TRUE;//WM_COMMAND end

		default:
			return FALSE;
	}
}

void ComAdmTask(HWND hWnd)
{
 	DialogBox((HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE), 
		(LPCTSTR)IDD_ADM_TASK, hWnd, (DLGPROC)dpComAdmTask);
}

⌨️ 快捷键说明

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