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

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

?? classdlg.cpp

?? C源碼
?? CPP
字號:
// ClassDlg.cpp : implementation file
//

#include "stdafx.h"
#include "MyPos.h"
#include "ClassDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CClassDlg dialog
extern CMyPosApp theApp;


CClassDlg::CClassDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CClassDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CClassDlg)
	m_classname = _T("");
	m_radiodiscount = -1;
	m_tempid = 0;
	//}}AFX_DATA_INIT
}


void CClassDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CClassDlg)
	DDX_Control(pDX, IDC_RADIO1_DISCOUNT, m_oRadiodiscount);
	DDX_Control(pDX, IDC_EDIT_CLASSNAME, m_oClassname);
	DDX_Control(pDX, IDC_TREE_CLASS, m_oTreeclass);
	DDX_Text(pDX, IDC_EDIT_CLASSNAME, m_classname);
	DDX_Radio(pDX, IDC_RADIO1_DISCOUNT, m_radiodiscount);
	DDX_Text(pDX, IDC_TEMPID, m_tempid);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CClassDlg, CDialog)
	//{{AFX_MSG_MAP(CClassDlg)
	ON_NOTIFY(TVN_SELCHANGED, IDC_TREE_CLASS, OnSelchangedTreeClass)
	ON_BN_CLICKED(IDC_BUTTON_ADDSAME, OnButtonAddsame)
	ON_BN_CLICKED(IDC_BUTTON_ADDSUB, OnButtonAddsub)
	ON_BN_CLICKED(IDC_BUTTON_DEL, OnButtonDel)
	ON_BN_CLICKED(IDC_BUTTON_SAVE, OnButtonSave)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CClassDlg message handlers

void CClassDlg::OnSelchangedTreeClass(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
	CString sql;
	CString curtext;
	_RecordsetPtr m_pRecordset; //Must define it in function!!!
	HTREEITEM hCurItem;

	hCurItem=m_oTreeclass.GetSelectedItem ();//Get Current item and its sub items.
	curtext=m_oTreeclass.GetItemText(hCurItem);//Read current item text into edit control.
	m_classname=curtext;
	sql="SELECT * FROM MATERIELCLASS where NAME='"+curtext+"'";
	try
	{
		m_tempid=0;
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);
		if(!m_pRecordset->adoEOF)
		{
			m_tempid=(long)(m_pRecordset->GetCollect("ID"));
			Curpar=VariantToCString(m_pRecordset->GetCollect("PARENT"));

			if((float)(m_pRecordset->GetCollect("DISCOUNT"))==0)
				m_radiodiscount=0;
			if((float)(m_pRecordset->GetCollect("DISCOUNT"))==1)
				m_radiodiscount=1;
		}
		m_pRecordset->Close();
	}
	catch(_com_error e)///捕捉異常
	{
		 CString errormessage;
		 MessageBox("讀取單選按鈕出錯!",m_classname);
	}

	UpdateData(false);

	*pResult = 0;
}

void CClassDlg::AddSubTree(CString ParTree, HTREEITEM hPartItem)
{
	HTREEITEM hCurrent;
	CString sql;
	CString curID;
	_RecordsetPtr m_pTRecordset; //Must define it in function!!!Becourse this is a RECURSION function.

	sql="SELECT * FROM MATERIELCLASS where PARENT='";
	sql=sql+ParTree+"'";//The 1st time Partree="1".
	try
	{
		m_pTRecordset.CreateInstance("ADODB.Recordset");
		m_pTRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);

		m_pTRecordset->MoveFirst();
		if(!m_pTRecordset->adoEOF)
		{
			while(!m_pTRecordset->adoEOF)
			{
				hCurrent = m_oTreeclass.InsertItem((LPCTSTR)(_bstr_t)(m_pTRecordset->GetCollect("NAME")), hPartItem, NULL);//Insert an item into current parent.
					
				curID=VariantToCString(m_pTRecordset->GetCollect("ID"));
				if (TreeSumRecordCount(curID)>0)
					AddSubTree(VariantToCString(m_pTRecordset->GetCollect("ID")),hCurrent);//Recursion.			
				
				if (!m_pTRecordset->adoEOF)
					m_pTRecordset->MoveNext();
			}
		}
		m_pTRecordset->Close();
	}
	catch(_com_error e)///捕捉異常
	{
		 CString errormessage;
		 MessageBox("讀取類別子樹出錯!",ParTree);
	}
}

void CClassDlg::AddTree()
{
	TVINSERTSTRUCT tvInsert;
	HTREEITEM hParent;
	_RecordsetPtr m_pTRecordset; //Must define it in function!!!Becourse this is a RECURSION function.
	CString sroot,sql;

	tvInsert.hParent = NULL;
	tvInsert.hInsertAfter = NULL;
	tvInsert.item.mask = TVIF_TEXT;

	sql="SELECT * FROM MATERIELCLASS where ID=1";
	try
	{
		m_pTRecordset.CreateInstance("ADODB.Recordset");
		m_pTRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);

		if(!m_pTRecordset->adoEOF)
			sroot=(LPTSTR)(_bstr_t)m_pTRecordset->GetCollect("NAME");//Insert an item into current parent.
		m_pTRecordset->Close();
	}
	catch(_com_error e)///捕捉異常
	{
		CString errormessage;
		errormessage.Format("讀取類別樹出錯:%s",e.ErrorMessage());
		AfxMessageBox(errormessage);
	}
//	tvInsert.item.pszText = _T("root");
	if(sroot!="")
	{
//		tvInsert.item.pszText =_T("");//User this line to give the tree a sum root.
		hParent = m_oTreeclass.InsertItem(&tvInsert);//HTREEITEM of root.

//		AddSubTree("1",hParent);//Here strChildTree just must not equal "root",can be anyother string.
		AddSubTree("RootClass",hParent);//Here strChildTree just must not equal "root",can be anyother string.
	}
	m_oTreeclass.Expand(hParent,TVE_EXPAND);
}

int CClassDlg::TreeSumRecordCount(CString strFieldValue)
{
	int Sum=0;
	CString sql;
	_RecordsetPtr m_pRecordset; //Must define it in function!!!!

	sql="SELECT * FROM MATERIELCLASS where PARENT ='";
	sql=sql+strFieldValue+"'";
	try
	{
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);

		if(!m_pRecordset->BOF)//If current record is not the first record.
		{
			m_pRecordset->MoveFirst ();		
			while(!m_pRecordset->adoEOF)
			{
				Sum+=1;
				m_pRecordset->MoveNext ();
			}	
		}
		m_pRecordset->Close();
	}
	catch(_com_error e)///捕捉異常
	{
		CString stemp;
		stemp.Format("計算類別總數(shù)出錯:%s",e.ErrorMessage());
		AfxMessageBox(stemp);
	}
	return Sum;
}

CString CClassDlg::VariantToCString(VARIANT var)
{
	CString strValue;
	_variant_t var_t;
	_bstr_t bst_t;
	time_t cur_time;
	CTime time_value;
	COleCurrency var_currency;
	switch(var.vt)
	{
	case VT_EMPTY:strValue=_T("");break;
	case VT_UI1:strValue.Format ("%d",var.bVal);break;
	case VT_I2:strValue.Format ("%d",var.iVal );break;
	case VT_I4:strValue.Format ("%d",var.lVal);break;
	case VT_R4:strValue.Format ("%f",var.fltVal);break;
	case VT_R8:strValue.Format ("%f",var.dblVal);break;
	case VT_CY:
		var_currency=var;
		strValue=var_currency.Format(0);
		break;
	case VT_BSTR:
		var_t=var;
		bst_t=var_t;
		strValue.Format ("%s",(const char*)bst_t);
		break;
	case VT_NULL:strValue=_T("");break;
	case VT_DATE:
		cur_time=var.date;
		time_value=cur_time;
		strValue=time_value.Format("%A,%B%d,%Y");
		break;
	case VT_BOOL:strValue.Format ("%d",var.boolVal );break;
	default:strValue=_T("");break;
	}

	return strValue;
}

BOOL CClassDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	AddTree();	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CClassDlg::OnButtonAddsame() 
{
	CString sql;
	CString newclassname,Newpar,snewid;
	long lNewID;//Get new record id.
	_RecordsetPtr m_pRecordset; //Must define it in function!!!!

	hParentItem=m_oTreeclass.GetParentItem(m_oTreeclass.GetSelectedItem ());//Get parent item handle.
	
	lNewID=GenNewID();//Call the "GenNewID" function to get a new ID.
	snewid.Format("%d",lNewID);
	Newpar=Curpar;
	newclassname.Format("新類別%d",lNewID);	

	try
	{
		_variant_t RecordsAffected;
		sql="Insert into MATERIELCLASS (ID,NAME,DISCOUNT,PARENT) VALUES ('"+snewid+"','"+newclassname+"','0','"+Newpar+"')";
		if(lNewID==1)
			sql="Insert into MATERIELCLASS (ID,NAME,DISCOUNT,PARENT) VALUES (1,'"+newclassname+"','0','RootClass')";
		theApp.m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
	}
	catch(_com_error e)///捕捉異常
	{
		CString errormessage;
		errormessage.Format("增加同級分類出錯:%s",e.ErrorMessage());
		AfxMessageBox(errormessage);
	}
	m_oClassname.SetWindowText(newclassname);
	m_oTreeclass.InsertItem((LPCTSTR)(_bstr_t)(newclassname), hParentItem, NULL);//Insert an item into current parent.
}

void CClassDlg::OnButtonAddsub() 
{
	CString sql;
	CString newclassname,Newpar,snewid;	
	long lNewID;
	_RecordsetPtr m_pRecordset; //Must define it in function!!!!

	hCurrentItem=m_oTreeclass.GetSelectedItem ();//Get current item handle as sub's parent.

	lNewID=GenNewID();
	snewid.Format("%d",lNewID);
	Newpar.Format("%d",m_tempid);
	newclassname.Format("新類別%d",lNewID);

	try
	{
		_variant_t RecordsAffected;
		sql="Insert into MATERIELCLASS (ID,NAME,DISCOUNT,PARENT) VALUES ('"+snewid+"','"+newclassname+"','0','"+Newpar+"')";
		if(lNewID==1)
			sql="Insert into MATERIELCLASS (ID,NAME,DISCOUNT,PARENT) VALUES (1,'"+newclassname+"','0','RootClass')";
		theApp.m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
	}
	catch(_com_error e)///捕捉異常
	{
		CString errormessage;
		errormessage.Format("增加下級分類出錯:%s",e.ErrorMessage());
		AfxMessageBox(errormessage);
	}
	m_oClassname.SetWindowText(newclassname);
	m_oTreeclass.InsertItem((LPCTSTR)(_bstr_t)(newclassname), hCurrentItem, NULL);//Insert an item into current parent.
}

void CClassDlg::OnButtonDel() 
{
	CString sql,curID;
	_RecordsetPtr m_pRecordset; //Must define it in function!!!!
	HTREEITEM hCurItem;

	hCurItem=m_oTreeclass.GetSelectedItem ();//Get Current item and its sub items.

	sql="SELECT * FROM MATERIELCLASS where NAME ='";
	sql=sql+m_classname+"'";

	if(AfxMessageBox("確定刪除此類別嗎?",MB_YESNO)==IDYES)
	{
		try
		{
			m_pRecordset.CreateInstance("ADODB.Recordset");
			m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);

			if(!m_pRecordset->BOF)//If current record is not the first record.
			{
				curID=VariantToCString(m_pRecordset->GetCollect("ID"));
				if(atol(curID)==1)
				{
					MessageBox("不能刪除ID為1的類別!",m_classname);
					return;
				}
				if (TreeSumRecordCount(curID)==0)
				{
					if(CountMateriel(curID)>0)
						MessageBox("此類別下已有商品,不能刪除!");
					else
					{
						m_pRecordset->Delete(adAffectCurrent);///刪除當前記錄
						m_oTreeclass.DeleteItem(hCurItem);
					}
				}
				if (TreeSumRecordCount(curID)>0)
					MessageBox("不能刪除結(jié)點類別!",m_classname);
			}
			m_pRecordset->Update();
		m_pRecordset->Close();
		}
		catch(_com_error e)///捕捉異常
		{
			CString errormessage;
			MessageBox("刪除類別出錯!",m_classname);
		}
	}
}

void CClassDlg::OnButtonSave() 
{
	CString sql,parent,name,sdiscount;//,stempid
	long discount;

	UpdateData();
	//檢查數(shù)據(jù)完整性
	if(m_classname.IsEmpty())
	{
		AfxMessageBox("類別名稱不能為空!");
		return;
	}

	m_oClassname.GetWindowText(name);//Get the current text in edit.

	if(bRepeat(name)==TRUE)
	{
		AfxMessageBox("類別名稱重復!請重新輸入!");
		return;
	}

	if(AfxMessageBox("確定要保存修改嗎?",MB_YESNO)==IDYES)
	{
		int nDiscount=GetCheckedRadioButton(IDC_RADIO1_DISCOUNT,IDC_RADIO2_DISCOUNT); 
		switch(nDiscount)//Get if it is discount.
		{
		case IDC_RADIO1_DISCOUNT:
			discount=0;
			break;
		case IDC_RADIO2_DISCOUNT:
			discount=1;
			break;
		default:
			break;
		}
		sdiscount.Format("%d",discount);
//		stempid.Format("%d",m_tempid);

		try
		{
			_variant_t RecordsAffected;
//			sql="Update MATERIELCLASS set NAME='"+name+"',DISCOUNT='"+sdiscount+"' where ID='"+stempid+"'";
			sql.Format("Update MATERIELCLASS set NAME='%s',DISCOUNT=%d where ID=%d",name,discount,m_tempid);//Must add''!!!
			theApp.m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
				
			hCurrentItem=m_oTreeclass.GetSelectedItem ();//Get current item handle as sub's parent.
			m_oTreeclass.SetItemText(hCurrentItem,(LPCTSTR)(_bstr_t)(name));
		}
		catch(_com_error e)///捕捉異常
		{
			CString stemp;
			stemp.Format("修改類別出錯:%s",e.ErrorMessage());//
			AfxMessageBox(stemp);
			return;
		}
	}
}

BOOL CClassDlg::bRepeat(CString strFieldValue)
{
	CString sql;
	BOOL br;
	_RecordsetPtr m_pRecordset; //Must define it in function!!!!
	
	sql="SELECT * FROM MATERIELCLASS WHERE NAME='";
	sql=sql+strFieldValue+"'";
	try
	{ 
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);

		if(m_pRecordset->adoEOF)
			br=FALSE;
		if(!m_pRecordset->adoEOF)
			br=TRUE;
		m_pRecordset->Close();
	}
	catch(_com_error e)///捕捉異常
	{
		CString stemp;
		stemp.Format("查找類別名稱出錯:%s",e.ErrorMessage());
		AfxMessageBox(stemp);
	}
		return br;
}

int CClassDlg::GenNewID()
{
	CString sql;
	int NewID;
	_RecordsetPtr m_pRecordset; //Must define it in function!!!!
	
	sql="SELECT Max(ID) FROM MATERIELCLASS";
	try
	{ 
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);

		_variant_t vIndex = (long)0;//How to get field value in only 1 record and 1 field condition.
		_variant_t vtemp = m_pRecordset->GetCollect(vIndex);
		if(vtemp.lVal>0) 
			NewID =(long)(m_pRecordset->GetCollect(vIndex))+1;///取得第一個字段的值(MAX ID)加1后放入id變量.
		else	
			NewID=1;
		m_pRecordset->Close();
	}
	catch(_com_error e)///捕捉異常
	{
		CString stemp;
		stemp.Format("獲取類別ID最大值出錯:%s",e.ErrorMessage());
		AfxMessageBox(stemp);
	}
	return NewID;
}

int CClassDlg::CountMateriel(CString sclassid)
{
	CString sql;
	int ncount;
	_RecordsetPtr m_pRecordset; //Must define it in function!!!!

	sql="SELECT count(*) as XXX FROM MATERIEL where classid="+sclassid+"";
	try
	{ 
		m_pRecordset.CreateInstance("ADODB.Recordset");
		m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);

		ncount =(long)m_pRecordset->GetCollect("XXX");
		m_pRecordset->Close();
	}
	catch(_com_error e)///捕捉異常
	{
		CString stemp;
		stemp.Format("計算類別下商品數(shù)量出錯:%s",e.ErrorMessage());
		AfxMessageBox(stemp);
	}
	return ncount;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
7777精品伊人久久久大香线蕉 | 午夜久久久久久久久久一区二区| 国产精品久久久久久久岛一牛影视 | 国产一区二区不卡在线 | 一区二区成人在线| 久久99国产精品免费网站| 91免费视频观看| 久久久久青草大香线综合精品| 亚洲精品亚洲人成人网| 国产综合色视频| 欧美三区在线视频| 国产精品久久久久久妇女6080 | 亚洲专区一二三| 国产福利91精品一区二区三区| 欧美年轻男男videosbes| 亚洲欧洲国产日本综合| 国产精品69毛片高清亚洲| 在线播放视频一区| 亚洲免费观看高清完整版在线观看| 精品影院一区二区久久久| 91精品啪在线观看国产60岁| 亚洲精品你懂的| 91在线播放网址| 欧美极品aⅴ影院| 久久99久久99| 91精品国产全国免费观看| 中文字幕一区日韩精品欧美| 高清国产一区二区| 久久精品一区二区三区不卡| 美腿丝袜亚洲一区| 9191久久久久久久久久久| 亚洲国产乱码最新视频| 在线视频一区二区免费| 亚洲精品日日夜夜| 一本大道久久a久久精二百| 国产精品美女一区二区在线观看| 韩国女主播成人在线| 欧美精品一区二区三区四区 | 99精品视频在线播放观看| 久久精品日产第一区二区三区高清版 | 国产乱国产乱300精品| 久久蜜桃av一区精品变态类天堂| 精品夜夜嗨av一区二区三区| 精品国产在天天线2019| 激情久久久久久久久久久久久久久久| 日韩一级大片在线| 激情文学综合插| 国产网站一区二区三区| 丰满白嫩尤物一区二区| 中文字幕一区免费在线观看| 99精品国产91久久久久久| 亚洲女与黑人做爰| 欧美性videosxxxxx| 亚洲图片欧美视频| 91精品国产91久久久久久最新毛片 | 琪琪一区二区三区| 久久欧美一区二区| av在线不卡免费看| 亚洲bt欧美bt精品| 欧美mv和日韩mv国产网站| 高清不卡在线观看av| 亚洲综合小说图片| 日韩亚洲欧美一区二区三区| 狠狠色丁香久久婷婷综| 国产精品国产三级国产aⅴ入口| 成人精品免费网站| 亚洲在线视频网站| 久久众筹精品私拍模特| 91在线视频18| 日本免费在线视频不卡一不卡二| 日韩美女视频在线| 成人av在线播放网址| 亚洲国产aⅴ天堂久久| 久久综合资源网| 色婷婷av一区二区三区大白胸| 日本欧美一区二区三区乱码| 欧美激情在线一区二区三区| 在线精品观看国产| 国产精品一色哟哟哟| 午夜免费久久看| 亚洲国产高清aⅴ视频| 欧美老女人在线| 丁香桃色午夜亚洲一区二区三区 | 中文欧美字幕免费| 欧美伦理视频网站| 成人av在线播放网站| 久久av中文字幕片| 亚洲一区二区偷拍精品| 中文字幕中文字幕一区| 91麻豆精品国产自产在线| www.日本不卡| 国产伦精品一区二区三区免费迷 | 国产精品第四页| 欧美成人精品高清在线播放| 欧美亚洲尤物久久| 成人动漫中文字幕| 精品一区二区精品| 日本美女一区二区三区| 一区二区三区91| 亚洲欧洲无码一区二区三区| 国产午夜精品一区二区三区视频| 欧美一区二区三区免费大片| 欧美日韩欧美一区二区| 91免费在线播放| 成人a区在线观看| 丰满少妇在线播放bd日韩电影| 精品在线亚洲视频| 青青青爽久久午夜综合久久午夜| 亚洲国产日产av| 亚洲精选视频在线| 一区二区日韩av| 有坂深雪av一区二区精品| 亚洲婷婷综合色高清在线| 国产精品美女视频| 成人免费在线播放视频| 中文字幕一区二区视频| 日韩美女久久久| 亚洲天堂网中文字| 日韩一区日韩二区| 亚洲免费观看视频| 一区二区欧美国产| 亚洲影院久久精品| 亚洲国产中文字幕| 日韩vs国产vs欧美| 久久精品av麻豆的观看方式| 久久激情五月激情| 国产一区二区三区电影在线观看| 国产一区视频网站| 成人免费看视频| 91原创在线视频| 欧美日韩五月天| 日韩午夜在线影院| 久久亚洲一级片| 最近中文字幕一区二区三区| 亚洲黄色录像片| 日韩av不卡一区二区| 韩国欧美国产1区| 99精品桃花视频在线观看| 色婷婷综合激情| 制服丝袜中文字幕亚洲| www国产成人免费观看视频 深夜成人网 | 国产日韩欧美高清在线| 日韩一区欧美一区| 午夜伦理一区二区| 国产一区二区免费在线| 一本色道久久综合精品竹菊| 欧美日韩高清影院| 久久久不卡网国产精品二区| 亚洲婷婷综合色高清在线| 午夜日韩在线电影| 国产精品一级在线| 色综合久久中文字幕综合网| 欧美日韩高清在线播放| 国产欧美一区二区精品秋霞影院| 亚洲视频 欧洲视频| 日韩高清不卡一区二区| 成人一道本在线| 欧美精品少妇一区二区三区 | 日韩一区二区三区精品视频| 日本一区二区成人在线| 亚洲444eee在线观看| 豆国产96在线|亚洲| 欧美一区二区性放荡片| 中文字幕一区二区三区在线观看| 日韩精彩视频在线观看| 成人午夜视频在线| 91精品国产91热久久久做人人| 中文字幕在线不卡一区二区三区| 五月综合激情婷婷六月色窝| 粗大黑人巨茎大战欧美成人| 555www色欧美视频| 亚洲精品欧美综合四区| 国产一区二区三区综合| 欧美精品日韩一本| 国产精品美女一区二区在线观看| 日本成人在线视频网站| 91免费精品国自产拍在线不卡| 精品盗摄一区二区三区| 亚洲国产精品综合小说图片区| 丁香婷婷综合色啪| 2023国产一二三区日本精品2022| 偷拍一区二区三区四区| 色综合婷婷久久| 中文字幕欧美国产| 久久不见久久见免费视频7 | 玉米视频成人免费看| 成人激情黄色小说| 国产欧美一区二区精品仙草咪| 蜜臀av性久久久久av蜜臀妖精| 欧美日韩国产影片| 亚洲激情图片qvod| 91猫先生在线| 中文字幕成人在线观看| 国产美女在线观看一区| 久久青草国产手机看片福利盒子| 免费人成精品欧美精品| 欧美一级日韩一级| 蜜臀av一区二区在线观看| 91精品国产综合久久国产大片| 亚洲电影在线播放|