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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? listdhdj.cpp

?? 數據庫管理程序
?? CPP
字號:
// ListDHDJ.cpp: implementation of the CListDHDJ class.
//
//////////////////////////////////////////////////////////////////////

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

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

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

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

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

	this->InitValuesFromDB();
}

CListDHDJ::~CListDHDJ()
{
	delete [] m_pstrlistKc;
}

void CListDHDJ::OnNewEditChange(const int& item,const int& sub_item)
{
	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,4);
	switch(sub_item)
	{
	case 0:
		{		
			str.MakeUpper();

			if(!m_poplist->IsWindowVisible())
			m_poplist->ShowListPop();
			this->m_iTheItemState[item]=NOCK;


			int sl=0;
			sl=atoi(str_sl);
			if(sl&&str!=this->m_sSetFocus&&m_iKc1Selected[item]>=0&&m_iKc2Selected[item]>=0)
				this->CancelTheItem(item);

			this->m_poplist->RefreshListCtrlView(0,str);

			this->m_iKc1Selected[item]=-1;
			this->m_iKc2Selected[item]=-1;
			break;
		}
	case 1:
		{
			CString id=this->GetItemText(item,0);

			if(!m_poplist->IsWindowVisible())
			m_poplist->ShowListPop();
			this->m_iTheItemState[item]=NOID;


			int sl=0;
			sl=atoi(str_sl);
			if(sl&&str!=this->m_sSetFocus&&m_iKc1Selected[item]>=0&&m_iKc2Selected[item]>=0)
				this->CancelTheItem(item);

			this->m_poplist->RefreshListCtrlView(1,str,id,0);
			this->m_iKc1Selected[item]=-1;
			this->m_iKc2Selected[item]=-1;

			break;
		}
	case 2:
		{
			str.MakeUpper();
			CString id=this->GetItemText(item,0);
			CString ck_name2=this->GetItemText(item,3);

			if(!m_poplist->IsWindowVisible())
			m_poplist->ShowListPop();
			this->m_iTheItemState[item]=NONAME;


			int sl=0;
			sl=atoi(str_sl);
			if(sl&&str!=this->m_sSetFocus&&m_iKc1Selected[item]>=0&&m_iKc2Selected[item]>=0)
				this->CancelTheItem(item);

			this->m_poplist->RefreshListCtrlView(0,id,2,ck_name2,2,str);
			this->m_iKc1Selected[item]=-1;
			this->m_iKc2Selected[item]=-1;

			break;
		}
	case 3:
		{
			str.MakeUpper();
			CString id=this->GetItemText(item,0);
			CString ck_name1=this->GetItemText(item,2);

			if(!m_poplist->IsWindowVisible())
			m_poplist->ShowListPop();
			this->m_iTheItemState[item]=NONAME;
			int sl=0;
			sl=atoi(str_sl);
			if(sl&&str!=this->m_sSetFocus&&m_iKc1Selected[item]>=0&&m_iKc2Selected[item]>=0)
				this->CancelTheItem(item);

			this->m_poplist->RefreshListCtrlView(0,id,2,ck_name1,2,str);
			this->m_iKc1Selected[item]=-1;
			this->m_iKc2Selected[item]=-1;
			break;
		}
	case 4:
		{
				CString id=this->GetItemText(item,0);
				CString ck_name=this->GetItemText(item,2);
				CString a;
				POSITION pos=this->m_pstrlistKc[3].FindIndex(this->m_iKc1Selected[item]);
				a.Format("%d",m_lKc1Number-atoi(str)+this->m_edit.m_dSetFocusValue);
				this->m_pstrlistKc[3].SetAt(pos,a);
				pos=this->m_pstrlistKc[3].FindIndex(this->m_iKc2Selected[item]);
				a.Format("%d",m_lKc2Number+atoi(str)-this->m_edit.m_dSetFocusValue);
				this->m_pstrlistKc[3].SetAt(pos,a);

				this->m_poplist->RefreshListCtrlView(0,id,2,"");
				m_poplist->ShowListPop();
			break;
		}
	}
}
void CListDHDJ::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(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 id=this->GetItemText(item,0);
			this->m_poplist->RefreshListCtrlView(1,str,id,0);
			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 id=this->GetItemText(item,0);
			CString ck_name2=this->GetItemText(item,3);
			this->m_poplist->RefreshListCtrlView(0,id,2,ck_name2,2,str);
			if(!m_poplist->IsWindowVisible())
			m_poplist->ShowListPop();
			break;
		}
	case 3:
		{
			this->m_poplist->ShowWindow(SW_HIDE);
				ASSERT(this->m_poplist!=NULL);
			this->m_poplist->SetShowPosition(this->m_rectWindow,&m_edit);
			CString id=this->GetItemText(item,0);
			CString ck_name1=this->GetItemText(item,2);
			this->m_poplist->RefreshListCtrlView(0,id,2,ck_name1,2,str);
			if(!m_poplist->IsWindowVisible())
			m_poplist->ShowListPop();
			break;
		}
	case 4:
		{
			if(this->CheckKc(item))//&&(IsSelected(item)!=-1)
			{
				this->m_poplist->ShowWindow(SW_HIDE);
				CString id=this->GetItemText(item,0);
				CString ck_name1=this->GetItemText(item,2);
				//this->m_edit.kc_number=atoi();
				this->m_lKc1Number=atoi(m_pstrlistKc[3].GetAt(m_pstrlistKc[3].FindIndex(this->m_iKc1Selected[item])));
				this->m_lKc2Number=atoi(m_pstrlistKc[3].GetAt(m_pstrlistKc[3].FindIndex(this->m_iKc2Selected[item])));
				CString ck_name2=this->GetItemText(item,3);
				if(ck_name1==ck_name2)goto wrongcase;
				this->m_poplist->SetShowPosition(this->m_rectWindow,&m_edit);
				this->m_poplist->RefreshListCtrlView(0,id,2,"");
				m_poplist->ShowListPop();
				if(str!="")
				this->m_edit.m_dSetFocusValue=atoi(str);
			}
			else
			{
					this->m_iEditedIndex=-1;
					m_edit.ShowWindow(SW_HIDE);
					this->SetNextItemFocus();
					MessageBox("請確定有此庫存信息!!","注意");
			}

			break;
		}
	}
	return;
wrongcase:
					MessageBox("調出庫不能等于調入庫!","錯誤");
					this->m_iEditedIndex=1;
					m_edit.ShowWindow(SW_HIDE);
					this->SetNextItemFocus();
}
bool CListDHDJ::OnEditReturn(const int& item, const int& subitem)
{
	CString str;
	m_edit.GetWindowText(str);
	switch(subitem)
	{
	case 0:
	case 1:
		{	
			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));
				m_iTheItemState[item]=NOWRONG;
			}
			else
				SetValueUnChange("");

			break;
		}
	case 2:
	case 3:
		{
			if(this->m_poplist->IsWindowVisible()&&this->m_poplist->GetSelectedMark()>=0)
			{
				this->SetValueUnChange(m_poplist->GetListCtrlSel(2));
				this->SetItemText(item,subitem,this->m_poplist->GetListCtrlSel(2));
				m_iTheItemState[item]=NOWRONG;
			}
			else
				SetValueUnChange("");
			break;
		}
	case 4:
		{
				break;
		}
	}
	return CBaseList::OnEditReturn(item,subitem);
}
void CListDHDJ::OnEditKillFocus(const int& item, const int& subitem)
{
	TRACE("void CListXSDJ::OnEditKillFocus()\n");
	CString str;

	m_edit.GetWindowText(str);
	switch(subitem)
	{
	case 2:
	case 3:
		{
			str.MakeUpper();
			
			this->SetValueUnChange(str);
			break;
		}
	}
	CBaseList::OnEditKillFocus(item,subitem);
}

bool CListDHDJ::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("庫存數量");
	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("yp_id");
			if(value.vt!=VT_NULL)
				m_pstrlistKc[0].AddTail((char*)(_bstr_t)value);
			value=m_runsql.m_recordset->GetCollect("yp_name");
			if(value.vt!=VT_NULL)
				m_pstrlistKc[1].AddTail((char*)(_bstr_t)value);
			value=m_runsql.m_recordset->GetCollect("ck_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();
		}


	return true;
}

bool CListDHDJ::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 CListDHDJ::OnEditUDNPMessage(const int& item, const int& subitem, UINT key)
{
	switch(subitem)
	{
	case 0:
	case 1:
	case 2:
	case 3:
		{
			this->m_poplist->SendTheUDNPMessage(key);
			break;
		}

	}
}

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

}

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

void CListDHDJ::OnESC(const int& item, const int& subitem)
{

	CString str;
	m_edit.GetWindowText(str);
	switch(subitem)
	{
	case 4:
				CString a;
				POSITION pos=this->m_pstrlistKc[3].FindIndex(this->m_iKc1Selected[item]);
				long number=atoi(m_pstrlistKc[3].GetAt(pos));
				a.Format("%d",number+atoi(str)-this->m_edit.m_dSetFocusValue);
				this->m_pstrlistKc[3].SetAt(pos,a);
				pos=this->m_pstrlistKc[3].FindIndex(this->m_iKc2Selected[item]);
				number=atoi(m_pstrlistKc[3].GetAt(pos));
				a.Format("%d",number-atoi(str)+this->m_edit.m_dSetFocusValue);
				this->m_pstrlistKc[3].SetAt(pos,a);
				break;
	}
	CBaseList::OnESC(item,subitem);

}

int CListDHDJ::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;*/
	return 0;
}

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

	switch(subitem)
	{

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

bool CListDHDJ::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;
		}
	}
	return true;	
}

bool CListDHDJ::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,4);
	if(str==""||str=="0")
	{
		TRACE("SL false");	this->m_nItem=item;
		this->m_iEditedIndex=3;
		MessageBox("不可為空","錯誤");
		this->PostMessage(SETNEXTITEMPHFOCUS,0,0);
		return false; 
	}
	return true;

}

bool CListDHDJ::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)
		{
			if(m_iKc1Selected[i]==-1)
			{
				DeleteItem(i);
				continue;
			}
			CString a;
			long sl=atoi(this->GetItemText(i,4));

			POSITION pos=this->m_pstrlistKc[3].FindIndex(this->m_iKc1Selected[i]);
			long number=atoi(m_pstrlistKc[3].GetAt(pos));
			a.Format("%d",number+sl);
			this->m_pstrlistKc[3].SetAt(pos,a);

			pos=this->m_pstrlistKc[3].FindIndex(this->m_iKc2Selected[i]);
			number=atoi(m_pstrlistKc[3].GetAt(pos));
			a.Format("%d",number-sl);
			this->m_pstrlistKc[3].SetAt(pos,a);

//			this->m_poplist->SelectStringList(4,this->m_pstrlistKc);

			DeleteItem(i);
			this->m_iKc1Selected[i]=-1;
			this->m_iKc2Selected[i]=-1;

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

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

bool CListDHDJ::CancelTheItem(const int &item)
{
	if(m_iKc1Selected[item]==-1)
	{
		return false;
	}
	CString a;
	long sl=atoi(this->GetItemText(item,4));

	POSITION pos=this->m_pstrlistKc[3].FindIndex(this->m_iKc1Selected[item]);
	long number=atoi(m_pstrlistKc[3].GetAt(pos));
	a.Format("%d",number+sl);
	this->m_pstrlistKc[3].SetAt(pos,a);

	pos=this->m_pstrlistKc[3].FindIndex(this->m_iKc2Selected[item]);
	number=atoi(m_pstrlistKc[3].GetAt(pos));
	a.Format("%d",number-sl);
	this->m_pstrlistKc[3].SetAt(pos,a);

//	this->m_poplist->SelectStringList(4,this->m_pstrlistKc);

	this->m_iKc1Selected[item]=-1;
	this->m_iKc2Selected[item]=-1;
	this->SetItemText(item,4,"");
	return true;

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲18女电影在线观看| 久久久久久免费网| 亚洲一区二区影院| 欧美性受极品xxxx喷水| 亚洲.国产.中文慕字在线| 欧美片网站yy| 精品在线播放午夜| 国产精品情趣视频| 欧洲精品在线观看| 精品一区二区国语对白| 国产欧美一区二区三区在线老狼 | 日韩精品免费视频人成| 精品黑人一区二区三区久久| 高清不卡在线观看| 亚洲一区二区不卡免费| 日韩欧美三级在线| 成人av免费在线| 午夜视频一区在线观看| 久久人人爽人人爽| 91浏览器入口在线观看| 日本怡春院一区二区| 国产亚洲人成网站| 欧美又粗又大又爽| 精品亚洲porn| 一区二区三区欧美亚洲| 精品国产成人在线影院| 99re热视频精品| 美女尤物国产一区| 亚洲精品自拍动漫在线| 精品国产1区2区3区| 色哟哟一区二区三区| 久久超碰97中文字幕| 亚洲欧美一区二区三区孕妇| 日韩小视频在线观看专区| 99久久亚洲一区二区三区青草| 亚洲成人高清在线| 亚洲国产精品99久久久久久久久| 欧美另类高清zo欧美| 国产精品综合视频| 天堂久久一区二区三区| ...xxx性欧美| 久久综合狠狠综合久久激情| 欧美视频在线播放| 成人动漫中文字幕| 国内精品国产成人| 天使萌一区二区三区免费观看| 国产精品午夜久久| 欧美成人一区二区| 欧美人动与zoxxxx乱| 色婷婷综合中文久久一本| 国产成人高清视频| 美腿丝袜一区二区三区| 亚洲成人激情av| 亚洲综合免费观看高清完整版| 中文字幕精品一区二区三区精品| 日韩欧美电影在线| 在线播放亚洲一区| 欧美性xxxxxxxx| 色综合一区二区| 不卡一二三区首页| 成人中文字幕电影| 国产91精品一区二区麻豆亚洲| 久久狠狠亚洲综合| 日韩专区中文字幕一区二区| 亚洲在线免费播放| 亚洲精品成a人| 亚洲免费av网站| 亚洲天堂成人在线观看| 国产精品视频你懂的| 久久精品免费在线观看| 久久综合久久鬼色中文字| 日韩一区二区三区电影在线观看| 欧美精品在线一区二区三区| 欧洲精品一区二区三区在线观看| 色偷偷88欧美精品久久久| 色婷婷激情久久| 色婷婷狠狠综合| 欧美性大战久久| 欧美一级二级三级蜜桃| 日韩欧美国产系列| 久久综合久久综合久久| 国产日产欧美一区| 亚洲欧洲精品一区二区三区| 成人免费在线观看入口| 亚洲一区二区影院| 美女久久久精品| 国产一区二区精品久久| 国产69精品久久久久毛片| 成人精品亚洲人成在线| 色综合久久66| 日韩一区二区三区电影在线观看| 日韩精品综合一本久道在线视频| 日韩精品一区二区三区中文精品| 精品国产乱码久久久久久老虎 | 国产91丝袜在线观看| av成人老司机| 欧美日韩一区小说| 日韩久久久久久| 中文字幕五月欧美| 亚洲成a人v欧美综合天堂| 蜜桃av噜噜一区二区三区小说| 国产一区二区精品久久| 一本到不卡免费一区二区| 欧美电影在哪看比较好| 久久婷婷久久一区二区三区| 国产喷白浆一区二区三区| 亚洲综合激情网| 久久精品99国产国产精| 99久精品国产| 欧美一区二区免费视频| 中文字幕乱码久久午夜不卡 | 一区二区三区欧美激情| 日韩1区2区3区| 成人一二三区视频| 91.麻豆视频| 国产精品久久久久久久久图文区| 亚洲福利一区二区三区| 国产精品影视天天线| 欧美综合视频在线观看| 精品国产a毛片| 亚洲一二三四在线观看| 国产伦精品一区二区三区在线观看| 91小视频在线| 久久综合久久鬼色| 日韩国产高清影视| 91麻豆国产福利在线观看| 2024国产精品视频| 丝袜国产日韩另类美女| 不卡的av中国片| 欧美不卡视频一区| 亚洲在线成人精品| 成人午夜激情在线| 欧美不卡一区二区| 午夜不卡av在线| 91丨porny丨蝌蚪视频| 久久久五月婷婷| 秋霞成人午夜伦在线观看| av中文字幕一区| 久久精品在线免费观看| 日本三级亚洲精品| 欧美视频一区在线观看| |精品福利一区二区三区| 国产精品一色哟哟哟| 日韩一二三区不卡| 亚洲一区二区三区四区五区中文| 白白色 亚洲乱淫| 久久久91精品国产一区二区精品| 日韩电影一二三区| 欧美中文字幕亚洲一区二区va在线| 国产精品你懂的在线欣赏| 国内精品免费在线观看| 日韩精品专区在线影院重磅| 天天做天天摸天天爽国产一区| 色又黄又爽网站www久久| 日韩美女视频一区二区| 成人激情开心网| 久久精品无码一区二区三区| 韩国成人在线视频| 日韩久久久精品| 国产综合色视频| 久久综合国产精品| 国产成人一区二区精品非洲| 久久久.com| 成人自拍视频在线观看| 中文字幕成人网| av电影天堂一区二区在线 | xf在线a精品一区二区视频网站| 蜜桃一区二区三区四区| 日韩欧美一卡二卡| 美女视频黄免费的久久 | 欧美一区二区黄| 免费观看在线综合| 日韩免费视频一区| 久久国产精品色婷婷| 精品毛片乱码1区2区3区| 久久99精品国产麻豆婷婷 | 1024亚洲合集| 欧美在线色视频| 日日夜夜精品视频天天综合网| 4438x亚洲最大成人网| 麻豆精品在线播放| 久久精品欧美日韩精品| av中文字幕亚洲| 亚洲综合在线五月| 91精品国产一区二区三区蜜臀| 久久国产精品第一页| 久久先锋资源网| 不卡大黄网站免费看| 一区二区三区不卡视频在线观看| 欧美三级电影一区| 国产自产2019最新不卡| 中文字幕一区二区三区在线观看| 欧美亚洲另类激情小说| 麻豆成人久久精品二区三区红| 国产欧美日韩视频一区二区| 日韩美女在线视频| av在线不卡网| 视频一区二区三区中文字幕| 国产婷婷精品av在线| 一本一道综合狠狠老|