亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? listkcpd1.cpp

?? 數(shù)據(jù)庫管理程序
?? CPP
字號:
// ListKCPD1.cpp: implementation of the CListKCPD class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "a1.h"
#include "ListKCPD1.h"
#include "myfunction.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CListKCPD::CListKCPD()
{
	m_pstrlistKc=new CStringList[4];

	for(int i=0;i<100;i++)
	{
	m_iTheItemState[i]=0;
	m_iKcSelected[i]=-1;
	}

	this->InitValuesFromDB();

}

CListKCPD::~CListKCPD()
{
	delete [] m_pstrlistKc;
}
void CListKCPD::OnNewEditChange(const int& item,const int& subitem)
{
	TRACE("void CListXSDJ::OnNewEditChange()\n");
	if(this->m_bSetValue) return ;
		ASSERT(this->m_poplist!=NULL);
	CString str;
	m_edit.GetWindowText(str);
	CString str_sl=this->GetItemText(item,3);
//	if(!m_poplist->IsWindowVisible())
		m_poplist->ShowListPop();

	switch(subitem)
	{
	case 0:
		{		
			str.MakeUpper();
			CString id=this->GetItemText(item,1);

			int sl=0;
			sl=atoi(str_sl);
			if(sl&&str!=this->m_sSetFocus)
			{
				this->SetItemText(item,3,"");
				if(m_iKcSelected[item]>=0)
				this->CancelTheItem(item);
			}
			this->m_iTheItemState[item]=NOCK;
			this->m_iKcSelected[item]=-1;
	this->m_poplist->RefreshListCtrlView(1,id,0,str);

			break;
		}
	case 1:
		{
			str.MakeUpper();
			CString ck_name=this->GetItemText(item,0);
			int sl=0;
			sl=atoi(str_sl);
			if(sl&&str!=this->m_sSetFocus)
			{
				this->SetItemText(item,3,"");
				if(m_iKcSelected[item]>=0)
				this->CancelTheItem(item);
			}
			this->m_iTheItemState[item]=NOID;
			m_iKcSelected[item]=-1;
			this->m_poplist->RefreshListCtrlView(0,ck_name,1,str);

			break;
		}
	case 2:
		{
			CString ck_name=this->GetItemText(item,0);
			int sl=0;
			sl=atoi(str_sl);
			if(sl&&str!=this->m_sSetFocus)
			{
				this->SetItemText(item,3,"");
				if(m_iKcSelected[item]>=0)
				this->CancelTheItem(item);
			}
			this->m_iTheItemState[item]=NONAME;
			m_iKcSelected[item]=-1;
			this->m_poplist->RefreshListCtrlView(0,ck_name,2,str);

			break;
		}
	case 3:
		{

				CString ck_name=this->GetItemText(item,0);
				CString id=this->GetItemText(item,1);
				this->m_pstrlistKc[3].SetAt(this->m_pstrlistKc[3].FindIndex(FindKc(item)),str);
				this->m_poplist->RefreshListCtrlView(0,ck_name,1,id);

			break;
		}
	}
}
void CListKCPD::OnEditSetFocus(const int& item, const int& subitem)
{
	CString str;
	m_edit.m_dSetFocusValue=0;
	m_edit.GetWindowText(str);
	this->m_sSetFocus=str;
	m_edit.GetWindowRect(&this->m_rectWindow);
	str.MakeUpper();
	switch(subitem)
	{
	case 0:
		{
			CString id=this->GetItemText(item,1);
			this->m_poplist->ShowWindow(SW_HIDE);
				ASSERT(this->m_poplist!=NULL);
			this->m_poplist->SetShowPosition(this->m_rectWindow,&m_edit);
			this->m_poplist->RefreshListCtrlView(1,id,0,str);
			if(!m_poplist->IsWindowVisible())
			m_poplist->ShowListPop();
			break;
		}
	case 1:
		{
			this->m_poplist->ShowWindow(SW_HIDE);
				ASSERT(this->m_poplist!=NULL);
			this->m_poplist->SetShowPosition(this->m_rectWindow,&m_edit);
			CString ck_name=this->GetItemText(item,0);
			this->m_poplist->RefreshListCtrlView(0,ck_name,1,str);
			if(!m_poplist->IsWindowVisible())
			m_poplist->ShowListPop();
			break;
			
		}
	case 2:
		{
			this->m_poplist->ShowWindow(SW_HIDE);
				ASSERT(this->m_poplist!=NULL);
			this->m_poplist->SetShowPosition(this->m_rectWindow,&m_edit);
			CString ck_name=this->GetItemText(item,0);
			this->m_poplist->RefreshListCtrlView(0,ck_name,2,str);
			if(!m_poplist->IsWindowVisible())
			m_poplist->ShowListPop();
			break;
		}
	case 3:
		{
			if(this->CheckKc(item)&&(IsSelected(item)!=-1))
			{
				this->m_poplist->ShowWindow(SW_HIDE);
				CString ck_name=this->GetItemText(item,0);
				CString id=this->GetItemText(item,1);
				this->m_poplist->SetShowPosition(this->m_rectWindow,&m_edit);
				this->m_poplist->RefreshListCtrlView(0,ck_name,1,id);
				m_poplist->ShowListPop();
				this->m_edit.m_dSetFocusValue=atoi(str);
			}
			else
			{
					m_edit.ShowWindow(SW_HIDE);
					this->m_iEditedIndex=-1;
					this->SetNextItemFocus();
					MessageBox("請確定有此庫存信息!并且該記錄唯一!","錯誤");
			}

			break;
		}
	}
}
bool CListKCPD::OnEditReturn(const int& item, const int& subitem)
{
	CString str;
	m_edit.GetWindowText(str);
	switch(subitem)
	{
	case 0:
	case 1:
	case 2:
		{	
			if(this->m_poplist->IsWindowVisible()&&this->m_poplist->GetSelectedMark()>=0)
			{
				this->SetValueUnChange(m_poplist->GetListCtrlSel(subitem));
				this->SetItemText(m_nItem,0,this->m_poplist->GetListCtrlSel(0));
				this->SetItemText(m_nItem,1,this->m_poplist->GetListCtrlSel(1));
				this->SetItemText(m_nItem,2,this->m_poplist->GetListCtrlSel(2));
				this->SetItemText(m_nItem,3,this->m_poplist->GetListCtrlSel(3));
				m_iTheItemState[item]=NOWRONG;
//				m_iTheItemState[item]=NONE;	
//				m_iTheItemState[item]&=NOCK;
//				m_iTheItemState[item]|=YPTRUE;
			}
			else
				SetValueUnChange("");

			break;
		}
	case 4:
		{
				break;
		}
	}
	return CBaseList::OnEditReturn(item,subitem);
}
void CListKCPD::OnEditKillFocus(const int& item, const int& subitem)
{
	CString str;
	m_edit.GetWindowText(str);
	switch(subitem)
	{
	case 3:
		{
//			this->m_pstrlistKc[3].SetAt(
//				this->m_pstrlistKc[3].FindIndex(FindKc(item)),str);
//			this->m_poplist->SelectStringList(4,m_pstrlistKc);
			break;
		}
	}
	CBaseList::OnEditKillFocus(item,subitem);
}

bool CListKCPD::InitValuesFromDB()
{
	LRunSql m_runsql;
	CString sql;
	_variant_t value;

	m_pstrlistKc[0].AddTail("倉庫名稱");
	m_pstrlistKc[1].AddTail("藥品編號");
	m_pstrlistKc[2].AddTail("藥品名稱");
	m_pstrlistKc[3].AddTail("庫存數(shù)量");
	m_strlistNo.AddTail("");
	sql.Format("select tabkc.yp_id,tabkc.ck_name,tabkc.kc_number,\
		tabypinfo.yp_name from tabkc,tabypinfo \
		where tabkc.yp_id = tabypinfo.yp_id");

		m_runsql.CheckSQLResult(sql);
		while(!m_runsql.m_recordset->adoEOF)
		{
			value=m_runsql.m_recordset->GetCollect("ck_name");
			if(value.vt!=VT_NULL)
				m_pstrlistKc[0].AddTail((char*)(_bstr_t)value);
			value=m_runsql.m_recordset->GetCollect("yp_id");
			if(value.vt!=VT_NULL)
				m_pstrlistKc[1].AddTail((char*)(_bstr_t)value);
			value=m_runsql.m_recordset->GetCollect("yp_name");
			if(value.vt!=VT_NULL)
				m_pstrlistKc[2].AddTail((char*)(_bstr_t)value);
			value=m_runsql.m_recordset->GetCollect("kc_number");
			if(value.vt!=VT_NULL)
				m_pstrlistKc[3].AddTail((char*)(_bstr_t)value);
				m_strlistNo.AddTail((char*)(_bstr_t)value);
			m_runsql.m_recordset->MoveNext();
		}
//	this->m_poplist->SelectStringList(4,this->m_pstrlistKc);

	return true;
}

bool CListKCPD::Create(DWORD dwStyle, const RECT &rect, CWnd *pParentWnd, UINT nID)
{
	bool b=CBaseList::Create(dwStyle,rect,pParentWnd,nID);
	m_poplist->SelectStringList(4,this->m_pstrlistKc);
	return b;

}

void CListKCPD::OnEditUDNPMessage(const int& item, const int& subitem, UINT key)
{
	switch(subitem)
	{
	case 0:
	case 1:
	case 2:
		{
			this->m_poplist->SendTheUDNPMessage(key);
			break;
		}

	}
}

int CListKCPD::CheckKc(const int& item)
{
	if(m_iKcSelected[item]=FindKc(item)>=0)			
	{
			m_iTheItemState[item]=NOWRONG;
	}
	else 
	{
			TRACE("CKFALSE");
			m_iTheItemState[item]=0;
	}
	return m_iTheItemState[item];

}

int CListKCPD::FindKc(const int& item)
{	int n=this->GetItemCount();
	if(item<-1||item>=n)return -1;
	CString ck_name=this->GetItemText(item,0);
	CString yp_id=this->GetItemText(item,1);
	CString yp_name=this->GetItemText(item,2);
	
	bool result=false;
	POSITION pos=NULL;int i;
   for( pos = this->m_pstrlistKc[0].GetHeadPosition(),i=0; pos != NULL; i++)
   {
		if(ck_name== m_pstrlistKc[0].GetNext( pos ))
			if(this->m_pstrlistKc[1].GetAt(this->m_pstrlistKc[1].FindIndex(i))==yp_id)
				if(this->m_pstrlistKc[2].GetAt(this->m_pstrlistKc[2].FindIndex(i))==yp_name)
				{
					return i;			
				}
   }
   return -1;
}

void CListKCPD::OnESC(const int& item, const int& subitem)
{
	CString str;
	str.Format("%d",m_edit.m_dSetFocusValue);
	switch(this->m_nSubItem)
	{
	case 3:
		this->m_pstrlistKc[3].SetAt(
			this->m_pstrlistKc[3].FindIndex(
			this->m_iKcSelected[this->m_nItem])
			,str);
		this->m_poplist->SelectStringList(4,m_pstrlistKc);
		break;
	}
	CBaseList::OnESC(item,subitem);

}

int CListKCPD::IsSelected(const int& item)//if selected return -1, else return index;
{
	int index=this->FindKc(item);
	if(index<0)return m_iKcSelected[item]=-1;
	int n=this->GetItemCount();
	for(int i=0;i<n;i++)
	{
		if(i==item) continue;
		if(m_iKcSelected[i]==-1)
			if(!CheckKc(i)) continue;
		if(this->m_iKcSelected[i]==index)
			return m_iKcSelected[item]=-1;
	}
	return m_iKcSelected[item]=index;
}

void CListKCPD::PreOnEditChar(const int& item, const int& subitem, UINT &key)
{

	switch(subitem)
	{

	case 3:
		if((key>=0x30&&key<=0x39)||key==0x08)
		{
			;
		}
		else
		{
		key=VK_CONTROL;
		}
		break;
	}
}

bool CListKCPD::CheckAll()
{
	int n=GetItemCount();
	for(int i=0;i<n;i++)
	{
		if(GetItemText(i,0)==""&&GetItemText(i,1)=="")
		{
			DeleteItem(i);
			continue;
		}
		long number=0;
		if(!this->CheckTheItem(i))
		{
		return false;
		}
		if(this->IsSelected(i)==-1)
		{
			MessageBox("數(shù)據(jù)不唯一,請確認數(shù)據(jù)唯一","注意!");
			this->m_nItem=i;
			m_iEditedIndex=-1;
			PostMessage(SETNEXTITEMPHFOCUS,0,0);
			return false;
		}
	}
	return true;	
}

bool CListKCPD::CheckTheItem(const int& item)
{
	if(!this->CheckKc(item))
	{
		this->m_nItem=item;
		this->m_iEditedIndex=-1;
		MessageBox("請輸入完整登記信息","注意");
		this->PostMessage(SETNEXTITEMPHFOCUS,0,0);	
		return false;
	}

	CString str=this->GetItemText(item,3);
	if(str=="")
	{
		TRACE("SL false");	this->m_nItem=item;
		this->m_iEditedIndex=2;
		MessageBox("若確實要清空該藥品庫存,請?zhí)?","注意");
		this->PostMessage(SETNEXTITEMPHFOCUS,0,0);
		return false; 
	}
	return true;

}

bool CListKCPD::DeleteSelected()
{	if(this->m_poplist->IsWindowVisible())
		this->m_poplist->ShowWindow(SW_HIDE);
	if(this->m_edit.IsWindowVisible())
		m_edit.ShowWindow(SW_HIDE);

	LVITEM* item=new LVITEM;
	int number=this->GetSelectedCount();
	for(int i=this->GetItemCount()-1;i>=0;i--)
	{
			this->m_nItem=i;
			item->iItem=i;
			item->mask=LVIF_STATE ;
			item->stateMask=LVIS_SELECTED ;
			GetItem(item);
		if(item->state==LVIS_SELECTED)
		{
			DeleteItem(i);
			if(m_iKcSelected[i]==-1)continue;
			m_pstrlistKc[3].SetAt(m_pstrlistKc[3].FindIndex(m_iKcSelected[i]),m_strlistNo.GetAt(m_strlistNo.FindIndex(m_iKcSelected[i])));
			this->m_poplist->SelectStringList(4,this->m_pstrlistKc);
			this->m_iTheItemState[i]=NONE;
			this->m_iKcSelected[i]=-1;

		}
	}
		if(GetItemCount()==0)
			InsertItem(0,"");
		this->m_nItem=0;
		Invalidate();
	return true;
}

bool CListKCPD::CancelTheItem(const int &item)
{
	m_pstrlistKc[3].SetAt(
		m_pstrlistKc[3].FindIndex(m_iKcSelected[item]),
		m_strlistNo.GetAt(m_strlistNo.FindIndex(m_iKcSelected[item]))
		);
//	this->m_poplist->SelectStringList(4,this->m_pstrlistKc);
	this->m_iTheItemState[item]=NONE;
	this->m_iKcSelected[item]=-1;
	this->SetItemText(item,3,"");
	return true;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产又粗又猛又爽又黄91精品| 亚洲精品乱码久久久久久| 美女一区二区三区| 日韩一区二区三区观看| 极品少妇一区二区三区精品视频| 久久久久久久一区| 9i看片成人免费高清| 一二三四区精品视频| 91麻豆精品国产91久久久使用方法 | 久久久99精品久久| 国产精品69久久久久水密桃| 国产精品大尺度| 欧美午夜电影网| 麻豆专区一区二区三区四区五区| 国产三级一区二区三区| 99久久综合国产精品| 亚洲aⅴ怡春院| wwww国产精品欧美| 99国产精品久久久久久久久久| 亚洲国产cao| 精品999在线播放| 91一区二区在线| 日本vs亚洲vs韩国一区三区二区 | 亚洲国产成人91porn| 欧美岛国在线观看| 成人av资源下载| 天天影视网天天综合色在线播放| xf在线a精品一区二区视频网站| jlzzjlzz国产精品久久| 日韩av二区在线播放| 国产精品久久久爽爽爽麻豆色哟哟| 在线观看亚洲a| 久久国产欧美日韩精品| 亚洲日本韩国一区| 日韩欧美一二三| 欧洲精品在线观看| 黄色成人免费在线| 亚洲成人第一页| 国产精品福利一区二区三区| 欧美一三区三区四区免费在线看 | 久久伊99综合婷婷久久伊| 99久久免费国产| 麻豆精品新av中文字幕| 亚洲欧美在线视频观看| 91精品国产一区二区三区香蕉| 成人看片黄a免费看在线| 男男视频亚洲欧美| 亚洲一区二区视频| 亚洲国产精品高清| 精品国产电影一区二区| 欧美日韩一区国产| 91网站黄www| 成人性生交大片免费看中文| 久久精品噜噜噜成人av农村| 亚洲午夜精品在线| 亚洲乱码中文字幕| 中文字幕在线观看不卡视频| 久久奇米777| 日韩精品一区二区三区中文精品| 欧美猛男gaygay网站| 91免费看`日韩一区二区| 国产美女视频91| 极品瑜伽女神91| 免费人成黄页网站在线一区二区| 亚洲一区二区三区四区五区中文 | 日韩—二三区免费观看av| 亚洲激情第一区| 亚洲欧美日韩在线| 亚洲三级在线免费| 亚洲乱码国产乱码精品精的特点| 国产精品乱人伦| 国产精品青草久久| 国产精品欧美一区二区三区| 日本一区二区三区免费乱视频| 亚洲精品一区二区三区在线观看| 日韩欧美一级精品久久| 日韩女优av电影在线观看| 日韩精品在线一区二区| 精品少妇一区二区三区免费观看 | 国产成a人亚洲精| 成人夜色视频网站在线观看| 国产成人精品三级| 成人午夜av电影| 99久久婷婷国产综合精品| 大尺度一区二区| 91在线观看地址| 日韩欧美卡一卡二| 精品三级在线看| 国产欧美精品区一区二区三区| 欧美国产综合色视频| 中文字幕制服丝袜成人av| 亚洲丝袜自拍清纯另类| 亚洲一区二区在线视频| 日本成人中文字幕| 国产一区二区三区| 成人高清免费观看| 91成人免费在线视频| 欧美人xxxx| 精品国产伦一区二区三区免费| 国产偷国产偷精品高清尤物| 亚洲视频你懂的| 视频一区在线播放| 久久成人免费网| 成人国产精品免费观看动漫 | 欧美美女一区二区| 精品福利av导航| 日韩一区在线免费观看| 亚洲成人精品在线观看| 国产真实乱子伦精品视频| 成人综合在线观看| 一本久道中文字幕精品亚洲嫩| 欧美日本一区二区| 亚洲精品在线网站| 亚洲九九爱视频| 久久精品国产免费| 99r国产精品| 精品美女一区二区| ...xxx性欧美| 久久成人免费日本黄色| 日本韩国精品一区二区在线观看| 日韩欧美电影一区| 亚洲精品成人悠悠色影视| 久久国产夜色精品鲁鲁99| 色综合久久久久综合体| 精品久久99ma| 亚洲理论在线观看| 国产精品一区二区无线| 欧美日韩日本视频| 国产精品人成在线观看免费 | 国产成人在线观看| 欧美片网站yy| 亚洲欧美日韩国产中文在线| 毛片av中文字幕一区二区| 91在线国产福利| 久久免费的精品国产v∧| 风流少妇一区二区| 日韩一区二区免费视频| 亚洲一区二区在线观看视频| 成人av午夜影院| 精品久久久久久久久久久久包黑料| 一区二区三区免费看视频| 国产精品一区二区三区乱码| 欧美一激情一区二区三区| 亚洲一区二区成人在线观看| 成年人国产精品| 久久人人超碰精品| 麻豆精品在线播放| 8x8x8国产精品| 亚洲最新视频在线观看| 99riav久久精品riav| 国产精品午夜在线观看| 国内精品国产成人| 日韩视频一区二区| 日韩高清一区在线| 欧美蜜桃一区二区三区 | 免费欧美日韩国产三级电影| 欧美三区在线观看| 一区二区三区免费| 91国产成人在线| 亚洲一区二区三区自拍| 91久久精品国产91性色tv| 亚洲欧美激情小说另类| 色综合久久天天| 亚洲蜜桃精久久久久久久| 99v久久综合狠狠综合久久| 国产精品久久久久精k8| 大桥未久av一区二区三区中文| 日本一区二区成人| av电影在线观看完整版一区二区| 国产精品日韩成人| 91麻豆自制传媒国产之光| 一区二区视频在线| 欧美影院一区二区| 午夜精品久久久| 欧美一级理论性理论a| 蜜桃一区二区三区四区| 精品国产伦一区二区三区观看体验| 激情综合色丁香一区二区| 久久综合av免费| 不卡一区二区在线| 亚洲男人都懂的| 91精品国产综合久久久久| 日韩成人免费看| 奇米影视在线99精品| 日韩一级视频免费观看在线| 国产精品主播直播| 亚洲欧美怡红院| 精品视频在线免费| 麻豆精品一二三| 国产精品久久久久久久久免费樱桃| 不卡的av在线| 日日夜夜免费精品视频| 精品国产乱码久久久久久久久| 成人h版在线观看| 婷婷丁香久久五月婷婷| 26uuu另类欧美| 在线精品视频免费播放| 黑人巨大精品欧美一区| 亚洲欧美综合色| 日韩欧美视频在线|