超碰91资源站-超碰97豆花-超碰97人妻-超碰97人人干-超碰97人人香蕉-超碰97天天操-超碰97在线资源站-超碰97资源站共享-超碰97资源站总站-超碰aa在线91-超碰av操-超碰爱爱

半岛外围网上直营

[代碼示例]如何在RichEditControl中創(chuàng)建主從報(bào)表

原創(chuàng)|使用教程|編輯:龔雪|2017-08-22 16:00:55.000|閱讀 500 次

概述:傳統(tǒng).NET界面有一個(gè)富文本控件RichTextBox,在DevExpress控件組里面也有一個(gè)同等的控件——RichEditControl

# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

這個(gè)例子講了一個(gè)比較老的方法。通過DOCVARIABLE字段,用RichEditDocumentServer創(chuàng)建主從文檔。

該項(xiàng)目使用由DevExpress示例nwind.xml文件提供的的二級(jí)Categories - Products分層數(shù)據(jù)源。得到的文件如下所示:

DataClasses.cs

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.ComponentModel;
using System.Linq;

namespace MasterDetailExample
{

    public class SupplierCollection : ArrayList, ITypedList {
        PropertyDescriptorCollection ITypedList.GetItemProperties(PropertyDescriptor[] listAccessors) {
            if (listAccessors != null && listAccessors.Length > 0) {
                PropertyDescriptor listAccessor = listAccessors[listAccessors.Length - 1];
                if (listAccessor.PropertyType.Equals(typeof(ProductCollection)))
                    return TypeDescriptor.GetProperties(typeof(Product));
                else if (listAccessor.PropertyType.Equals(typeof(OrderDetailCollection)))
                    return TypeDescriptor.GetProperties(typeof(OrderDetail));
            }
            return TypeDescriptor.GetProperties(typeof(Supplier));
        }
        string ITypedList.GetListName(PropertyDescriptor[] listAccessors) {
            return "Suppliers";
        }
    }

    public class Supplier {
        static int nextID = 0;
        int id;
        string name;
        ProductCollection products = new ProductCollection();

        public ProductCollection Products { get { return products; } }
        public int SupplierID { get { return id; } }
        public string CompanyName { get { return name; } }

        public Supplier(string name) {
            this.name = name;

            this.id = nextID;
            nextID++;
        }
        public void Add(Product product) {
            products.Add(product);
        }
    }

    public class ProductCollection : ArrayList, ITypedList {
        PropertyDescriptorCollection ITypedList.GetItemProperties(PropertyDescriptor[] listAccessors) {
            return TypeDescriptor.GetProperties(typeof(Product));
        }
        string ITypedList.GetListName(PropertyDescriptor[] listAccessors) {
            return "Products";
        }
    }

    public class Product {
        static int nextID = 0;

        OrderDetailCollection orderDetails = new OrderDetailCollection();
        int suppID;
        int prodID;
        string name;

        public int SupplierID { get { return suppID; } }
        public int ProductID { get { return prodID; } }
        public string ProductName { get { return name; } }
        public OrderDetailCollection OrderDetails { get { return orderDetails; } }

        public Product(int suppID, string name) {
            this.suppID = suppID;
            this.name = name;

            this.prodID = nextID;
            nextID++;
        }
    }

    public class OrderDetailCollection : ArrayList, ITypedList {
        PropertyDescriptorCollection ITypedList.GetItemProperties(PropertyDescriptor[] listAccessors) {
            return TypeDescriptor.GetProperties(typeof(OrderDetail));
        }
        string ITypedList.GetListName(PropertyDescriptor[] listAccessors) {
            return "OrderDetails";
        }
    }

    public class OrderDetail {
        int prodID;
        string orderID;
        short quantity;
        public int ProductID { get { return prodID; } }
        public string OrderID { get { return orderID; } }
        public short Quantity { get { return quantity; } }

        public OrderDetail(int prodID, string orderID, int quantity) {
            this.prodID = prodID;
            this.orderID = orderID;
            this.quantity = Convert.ToInt16(quantity);
        }
    }
}

DataHelper.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MasterDetailExample
{
    class DataHelper
    {

        public static  SupplierCollection CreateData()
        {
            SupplierCollection suppliers = new SupplierCollection();

            Supplier supplier = new Supplier("Exotic Liquids");
            suppliers.Add(supplier);
            supplier.Add(CreateProduct(supplier.SupplierID, "Chai"));
            supplier.Add(CreateProduct(supplier.SupplierID, "Chang"));
            supplier.Add(CreateProduct(supplier.SupplierID, "Aniseed Syrup"));

            supplier = new Supplier("New Orleans Cajun Delights");
            suppliers.Add(supplier);
            supplier.Add(CreateProduct(supplier.SupplierID, "Chef Anton's Cajun Seasoning"));
            supplier.Add(CreateProduct(supplier.SupplierID, "Chef Anton's Gumbo Mix"));

            supplier = new Supplier("Grandma Kelly's Homestead");
            suppliers.Add(supplier);
            supplier.Add(CreateProduct(supplier.SupplierID, "Grandma's Boysenberry Spread"));
            supplier.Add(CreateProduct(supplier.SupplierID, "Uncle Bob's Organic Dried Pears"));
            supplier.Add(CreateProduct(supplier.SupplierID, "Northwoods Cranberry Sauce"));

            return suppliers;
        }

        static Random random = new Random(5);

        public static  Product CreateProduct(int supplierID, string productName)
        {
            Product product = new Product(supplierID, productName);

            product.OrderDetails.AddRange(new OrderDetail[] { 
                new OrderDetail(product.ProductID, GetRandomString(), random.Next(0, 100)), 
                new OrderDetail(product.ProductID, GetRandomString(), random.Next(0, 100)),
                new OrderDetail(product.ProductID, GetRandomString(), random.Next(0, 100)) });

            return product;
        }

        public static List<int> CreateFakeDataSource()
        {
            List<int> result = new List<int>();
            result.Add(0);
            return result;
        }

        public static string GetRandomString()
        {
            string path = System.IO.Path.GetRandomFileName();
            path = path.Replace(".", ""); 
            return path;
        }
    }
}

Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraRichEdit;
using DevExpress.XtraTab;
using DevExpress.XtraRichEdit.API.Native;
using System.Collections;

namespace MasterDetailExample
{
    public partial class Form1 : Form
    {
        SupplierCollection ds;
        ProductCollection dataDetailedForProducts;
        OrderDetailCollection dataDetailedForOrders;
        static List<int> fakeDataSource = DataHelper.CreateFakeDataSource();
        int supplierID = -1;
        int productID = -1;        

        public Form1()
        {
            InitializeComponent();

            // Associate RichEditControls with TabPages 
            xtraTabPage1.Tag = mainRichEdit;
            xtraTabPage2.Tag = suppllierRichEdit;
            xtraTabPage3.Tag = productRichEdit;
            xtraTabPage4.Tag = ordersRichEdit;

            xtraTabControl1.SelectedPageChanged+=new TabPageChangedEventHandler(xtraTabControl1_SelectedPageChanged);

            // Subscribe to the CalculateDocumentVariable event that triggers the master-detail report generation
            resultRichEdit.CalculateDocumentVariable += new CalculateDocumentVariableEventHandler(resultRichEdit_CalculateDocumentVariable);

            // Load main template
            mainRichEdit.LoadDocument("main.rtf");

            // Create project's data source
            ds = DataHelper.CreateData();

            // Load templates and specify data sources for RichEdit controls. These data sources facilitate inserting merge fields 
            //by using the Insert Merge Fields button in Ribbon UI.

            suppllierRichEdit.LoadDocument("supplier.rtf");
            suppllierRichEdit.Options.MailMerge.DataSource = ds;
            
            productRichEdit.LoadDocument("detail.rtf");
            productRichEdit.Options.MailMerge.DataSource = ds;
            productRichEdit.Options.MailMerge.DataMember = "Products";
            
            ordersRichEdit.LoadDocument("detaildetail.rtf");
            ordersRichEdit.Options.MailMerge.DataSource = ds;
            ordersRichEdit.Options.MailMerge.DataMember = "Products.OrderDetails";

            // Display data using XtraGrid control.
            gridControl1.DataSource = ds;
        }

        #region #startmailmerge
        // Start the process by merging the main template into the document contained within the resultRichEdit control.
        private void performMailMergeItem1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            // Since the main template contains no merge fields that require merge data, provide a mock data source.
            // Otherwise, mail merge will not start.
            mainRichEdit.Options.MailMerge.DataSource = fakeDataSource;
            // Trigger the multistage process. After the first mailmerge the CalculateDocumentVariable event
            //for the resultRichEdit control fires.
            mainRichEdit.MailMerge(resultRichEdit.Document);
            xtraTabControl1.SelectedTabPage = xtraTabPage5;
        }
        #endregion #startmailmerge

        #region #secondstage
        // Second stage. For each Supplier ID, create a detailed document that will be inserted in place of the DOCVARIABLE field.
        void resultRichEdit_CalculateDocumentVariable(object sender, CalculateDocumentVariableEventArgs e)
        {
            if (e.VariableName == "Supplier") {
                // Create a text engine to process a document after the mail merge.
                RichEditDocumentServer richServerMaster = new RichEditDocumentServer();
                // Provide a procedure for further processing.
                richServerMaster.CalculateDocumentVariable += richServerMaster_CalculateDocumentVariable;
                // Create a merged document using the Supplier template. The document will contain DOCVARIABLE fields with ProductID arguments. 
                // The CalculateDocumentVariable event for the richServerMaster fires.
                suppllierRichEdit.MailMerge(richServerMaster);
                richServerMaster.CalculateDocumentVariable -= richServerMaster_CalculateDocumentVariable;                
                // Return the document to insert.
                e.Value = richServerMaster.Document;
                // Required to use e.Value. Otherwise it will be ignored.
                e.Handled = true;
            }
        }
        #endregion #secondstage
        #region #thirdstage
        // Third stage. For each Product ID, create a detailed document that will be inserted in place of the DOCVARIABLE field.
        void richServerMaster_CalculateDocumentVariable(object sender, CalculateDocumentVariableEventArgs e)
        {
            int currentSupplierID = GetID(e.Arguments[0].Value);
            if (currentSupplierID == -1)
                return;

            if (supplierID != currentSupplierID) {
                // Get the data source that contains products for the specified supplier.
                dataDetailedForProducts = GetProductsDataFilteredbySupplier(currentSupplierID);
                supplierID = currentSupplierID;
            }

            if (e.VariableName == "Product") {
                // Create a text engine to process a document after the mail merge.
                RichEditDocumentServer richServerDetail = new RichEditDocumentServer();
                // Specify the data source for the mail merge.
                MailMergeOptions options = productRichEdit.CreateMailMergeOptions();
                options.DataSource = dataDetailedForProducts;
                // Specify that the resulting table should be joined with the header table.
                // Do not specify this option if calculated fields are not within table cells.
                options.MergeMode = MergeMode.JoinTables;
                // Provide a procedure for further processing.
                richServerDetail.CalculateDocumentVariable += richServerDetail_CalculateDocumentVariable;
                // Create a merged document using the Product template. The document will contain DOCVARIABLE fields with OrderID arguments. 
                // The CalculateDocumentVariable event for the richServerDetail fires.
                productRichEdit.MailMerge(options, richServerDetail);
                richServerDetail.CalculateDocumentVariable -= richServerDetail_CalculateDocumentVariable;
                // Return the document to insert.
                e.Value = richServerDetail.Document;
                // This setting is required for inserting e.Value into the source document. Otherwise it will be ignored.
                e.Handled = true;
            }
        }
        #endregion #thirdstage
        #region #fourthstage
        // Fourth stage. For each Order ID, create a detailed document that will be inserted in place of the DOCVARIABLE field.
        // This is the final stage. The Product.Orders template does not contain DOCVARIABLE fields, so further processing is not required.
        void richServerDetail_CalculateDocumentVariable(object sender, CalculateDocumentVariableEventArgs e)
        {
            int currentProductID = GetID(e.Arguments[0].Value);
            if (currentProductID == -1)
                return;

            if (productID != currentProductID) {
                // Get the data source that contains orders for the specified product.
                // The data source is obtained from the data already filtered by Supplier.
                dataDetailedForOrders = GetOrderDataFilteredbyProductAndSupplier(currentProductID);
                productID = currentProductID;
            }
            
            if (e.VariableName == "OrderDetails") {

                RichEditDocumentServer richServerDetailDetail = new RichEditDocumentServer();
                MailMergeOptions options = ordersRichEdit.CreateMailMergeOptions();
                options.DataSource = dataDetailedForOrders;
                options.MergeMode = MergeMode.JoinTables;
                ordersRichEdit.MailMerge(options, richServerDetailDetail);
                e.Value = richServerDetailDetail.Document;
                e.Handled = true;
            }
        }
        #endregion #fourthstage
        #region Helper Methods
        void xtraTabControl1_SelectedPageChanged(object sender, TabPageChangedEventArgs e)
        {
            // Specify a new target for the Ribbon interface - the RichEditControl that is currently active.
            RichEditControl richEditControl = (RichEditControl)xtraTabControl1.SelectedTabPage.Tag;
            richEditBarController1.RichEditControl = richEditControl;
        }

        protected internal virtual ProductCollection GetProductsDataFilteredbySupplier(int supplierID)
        {
            ProductCollection products = new ProductCollection();

            foreach (Supplier s in ds) {
                if (s.SupplierID == supplierID) {
                    products.AddRange(s.Products);
                }
            }

            return products;
        }

        protected internal virtual OrderDetailCollection GetOrderDataFilteredbyProductAndSupplier(int productID)
        {
            OrderDetailCollection orders = new OrderDetailCollection();

            foreach (Product p in dataDetailedForProducts) {
                if (p.ProductID == productID) {
                    orders.AddRange(p.OrderDetails);
                }
            }
            return orders;
        }
        protected internal virtual int GetID(string value)
        {
            int result;
            if (Int32.TryParse(value, out result))
                return result;
            return -1;
        }
        #endregion Helper Methods
    }

}

想要速成DevExpress大師?秘籍在這里→


標(biāo)簽:DevExpress

本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn


為你推薦

  • 推薦視頻
  • 推薦活動(dòng)
  • 推薦產(chǎn)品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
利記足球官網(wǎng)(官方)網(wǎng)站/網(wǎng)頁(yè)版登錄入口/手機(jī)版登錄入口-最新版(已更新) 真人boyu·博魚滾球網(wǎng)(官方)網(wǎng)站/網(wǎng)頁(yè)版登錄入口/手機(jī)版登錄入口-最新版(已更新) 最大網(wǎng)上PM娛樂城盤口(官方)網(wǎng)站/網(wǎng)頁(yè)版登錄入口/手機(jī)版登錄入口-最新版(已更新) 正規(guī)雷火競(jìng)技官方買球(官方)網(wǎng)站/網(wǎng)頁(yè)版登錄入口/手機(jī)版登錄入口-最新版(已更新) 雷火競(jìng)技權(quán)威十大網(wǎng)(官方)網(wǎng)站/網(wǎng)頁(yè)版登錄入口/手機(jī)版登錄入口-最新版(已更新) boyu·博魚信譽(yù)足球官網(wǎng)(官方)網(wǎng)站/網(wǎng)頁(yè)版登錄入口/手機(jī)版登錄入口-最新版(已更新) 權(quán)威188BET足球網(wǎng)(官方)網(wǎng)站/網(wǎng)頁(yè)版登錄入口/手機(jī)版登錄入口-最新版(已更新) 正規(guī)188BET足球大全(官方)網(wǎng)站/網(wǎng)頁(yè)版登錄入口/手機(jī)版登錄入口-最新版(已更新) 国产午夜无码精 | 国产精品白浆一区二小说 | 国产成人无码精品久久二区三区 | 国产免费高潮白浆二区三区 | 精品人妻系列无码专 | 18精品爽国产白嫩精品 | 国产亚洲精品久久久美女 | 国精产品一区一区三区糖心 | 国产午夜精华2025在线 | 国产va免费精品高清在线观看 | 成人无码动漫一区二 | 国产精品国内 | 国产精品欧美亚洲制服 | 国产精品全国免费观看高清 | 国产午夜精品无码免费不卡影院 | 国产尤物二区三区在线观看 | 成人欧美日韩一区二区三区 | 国产精品白丝喷水在线观看者相 | 国产微拍精品一区一再猛点 | 国产spa盗摄xo在线观看 | 国产在线观看免费一区二区三区 | 国产经典三级av在线播放 | 国产偷窥熟女高潮 | 91精品亚洲欧美一区二区综合 | 国产成人免费影片在线观看 | 91精品综合在线偷观看视频 | 国产成人av一区二区三区在线 | 国内偷视频在线观看 | 国产美女嘘嘘嘘嘘嘘 | 国产在线丝袜一区二区三区 | 91福利国产门事件在线观看 | 99亚洲精品高清一二区 | 国产成人综合亚洲网站 | 白嫩少妇丰满一区二区 | 91麻豆视频免费在线观看 | 国产精品国自产观看 | 国产精品亚洲欧美动漫 | 国产午夜无码片在线观看影 | 国产成人精品88综合久久久久 | 精品美女一级一区二区三 | 91狠狠色丁香婷婷综合久久 | 精品精品国产自在久久精品 | 国产高清一区二区三区四区 | 国产精品狼人 | 高清无码在线观看h片 | 国产精品无码一区二区在线观 | 国产精品开放色视频 | 成人午夜看黄在线尤物成人 | 国产97视频在线观看 | 国语对白精品一区二区在线观看 | 国产精品一区在线播放 | 91桃色无码国产在线观看二区 | 国产成人av国语在 | 91亚洲一 | a级无码毛片久久18精品 | 精品无码一区二区三区黄 | 国产69精品久久久久99尤物 | 国产精品亚洲精品日韩己满 | 国产超碰97人人做人人爱 | 国产黄色麻豆视频 | 国产精品福利网站导航伊人网 | 国产精品白浆无码流出 | 91av在线国 | 国产美女被艹在线 | 精品国产97在线观看 | 国产精品一七六九在线是免费 | 国内真实愉拍系列情侣 | 国产品精十八禁免费的网站 | 国产高清美女一级毛片录像 | av在线中文字幕不卡电 | 2025国精产品一二三四区 | 国产精品美脚玉足脚交欧美 | 国产午夜精品一区二区亚洲国 | 国产aⅴ无码精品一区二区 国产aⅴ无码精品一区二区三区 | 91高清免费国产自产拍不卡 | 国产成人综合亚洲亚洲国产第一页 | 国产激情一区二区三区 | 国av在线观看 | 国产无码免费激 | 国产黄在线视 | 国产日韩亚洲大尺度高清 | 国产麻豆精品福利在线观看 | av日产天天射 | 国产精品无码av在线播放 | 国产精品成人99一区 | 国产偷人妻精 | 国产一级aa大片毛片 | 国内精品久久人妻无码妲己 | 成人午夜一区二区三区视频 | 精品国产一区二区三区在线不卡 | 国产精品亚洲专区无码web | 97人妻人人做人碰人人爽 | 国产白嫩在线 | 99久久最新视频免费观看 | 国产4p露脸在线观看 | 国产福利精品一 | 国产精品嫩草影院一二三区入口 | 97人妻碰碰免费 | 国产精品成熟老妇女 | 成人午夜国产一区 | 国产护士在病房av做爰小说 | 丰满爆乳肉感无码一区二区三区 | 国产在线视频国产永久视频 | 91精品欧美在线观看免费 | 国产无码影视 | 精品久久黑丝高跟鞋 | 99久久无码一区人妻 | 国产成人麻豆精品午夜福利在 | 高清无码喷水一区 | 国产灌醉视频一区二区 | av无码国产精品性色aⅴ | 国产偷窥在线 | 精品国产自在91欧 | 成人无遮挡1 | 国产精品无码久久久久成人网站 | 成人播放日韩在线播放视频视频 | 国内女人精品一区二区三区 | 国产麻豆文化传媒 | 成人免费视频无码专区 | 丰满人妻一区二区三区av猛交 | 国产精品午夜理论片 | 成人精品视频一区二区在线 | 国产精品无码高清在线观看 | 2025久久免费精品国产72精品 | 69精品人人人人人人人人人 | 国产成人综合91精品 | 国产亚洲精品久久久美女 | 国产女人高潮大叫一级毛片 | 国产精品免费久久久久久蜜桃 | 二区二期视网膜病变能好吗? | 成人国产片免费在线观看 | 精品无码av人妻系列网站 | 成人亚洲免费在线观看 | 91白丝制服被啪到喷 | 国产精品区一区二区三 | 国产隔着超薄丝袜进入 | 91精品国产成人 | 国产成人啪精品视频免费app | 99精品国产福久久久久久 | 精品国产品对白在线 | 国产精品午夜高清在线观看 | 国产成人无码一区a | 国产粉嫩一区二区三区网站 | 国产无码专区精品 | 国产放荡| 国产成人精品亚洲日本专区61 | 国产成人无码精品久久小说 | 国产一本大道视频在线观看 | 精品极品国产呦在线观看 | av小次郎收藏家 | 国产精品九九在线播放 | 国产成人a视频高清在线观看 | 国产午夜精品福利久久 | 国产二区三区中文字幕 | 国产高清无码日韩一区 | 国产精品乱码一 | 国产原创在线亚洲黄色大片高 | 国产成人无码情景av | 国产稀缺精品盗摄盗拍 | 国产一区二区精品久久 | 国产三片理论电影在线 | 国产成人丝袜视频在线观看 | 动漫精品视频一区二区三区 | 国产三级精品三级在线专区 | 精品久久国产免费 | 丰满多毛少妇做爰视频爽爽和 | 成人欧美一区二区三 | 精品久久久久久中文人妻 | 国产va在线在线观看视频 | 国产成人精品午夜福利在线播放 | 成人无码精品1区2区3区免费 | 国产精品激情免费观看 | 激情视频在线观看一区 | 国产成年无码aⅴ片 | 国产成人18黄网站在线观看软件 | 国偷自愉自产产区91区 | 国产aⅴ久久免费精 | 国产亚洲欧美在线观看四区 | 国产成人无码aⅴ片在线观看 | 丰满成熟少妇a级毛片 | 91麻豆精品国产91久久久久 | 911国产在线观看无码专区 | 大片精品一区二区三区 | 国产精品多p对白交换绿帽 国产精品多人p | 国产精品白丝jk白袜喷水视频 | 国产超碰人人做人人爱电影 | 国产av午夜影院 | 2025国产男人亚洲欧美天堂 | 国产亚洲视频在线观看网 | 成人综合亚洲欧美一区h | 2025国精产品一二三四区 | 国产裸体美女视频网站免费观看 | 69精产国品 | 国产精品日韩欧美制服 | 国产一区二区三区精品久久呦 | 国产精品无码av一区二区三区 | 精品精品国产高清a级毛片8 | 丰满白嫩尤物一区二区 | 国产动漫一区二区三区无码 | 国产ts人妖赵恩静在 | 国产亚洲欧美一区在线观看 | 国产亚洲欧美日韩综合另类 | 91麻豆精品国产自产在线观看一区 | 69视频福利一区二区三区 | 精品亚洲国产成v人片传媒 精品亚洲国产成人av不卡 | 国产精品一久久香蕉国 | 91亚洲中文天 | 国产精品亚洲片在线观看不卡 | 国产精品美女视频免费观看 | 国产日韩一区二区三区 | 国产91精选在线观看麻豆 | 99精品热视频国产 | 国产精品一二三无码福利电影 | 91在线无码精品秘入口色欲 | 精品视频一区二区三区四区 | av无码国产在线观看岛国 | 91av在线播放观看国产 | 2025国产在视频线自在拍 | 国产精品免费观看 | 国产精品一区二区视频 | 成人精品视频99在线观看免费 | 成人版菠萝蜜视频在 | 国产雏女破苞在线播放 | 国产一在线精品一区 | 国产精品麻豆专区 | 91精彩视频在线观看 | 国产性感美女污污无 | 国产微拍精品一区二区 | 91国产日韩制服在线一区 | 99久久国产精品人妻无码 | 精品亚洲一区二 | 91久久精品日日躁夜夜躁欧 | 国产欧美va欧美va香蕉在线观 | 国产精品无码久久aⅴ裸体 国产精品无码久久av | 国产精品福利短视在线播放频 | 成人午夜福利电影 | 国产成人一区二区三区综合区 | 18禁午夜福利a级污黄刺激 | 国产综合精品女同 | 国产激情视频白浆免费 | 国产亚洲欧美在线观看 | 国产白丝无码免费视频 | 国产精品一区在线观看第一页 | 成人在线不卡视频 | 高潮在线观看 | 精品无人区乱码一区2区3区 | 国产av国片精品jk | 精品无码国产一区二区三区麻豆 | av三级片在线观看 | 国产狂喷潮在 | 69成人免费视 | 91一区二区三区四区五区 | 国产精品一区二区宅男宅女 | 国产精品高清一区二区人妖 | 国产精品中文字幕字幕在线 | av在线播放日韩亚洲欧 | 国产成人涩涩涩视频在线观看 | 国产精品国产三级国产一区 | av午夜精品在线观看 | 91免费在线观看 | 国产一区二区在线观看午夜成人 | 国产3级在线观看 | 91精品在线免费 | 91精品国产无码在线观看 | 国产精品入口麻豆 | 国产欧美日韩综合一区在线播放 | 91欧美精品午夜性色福利在线 | 国产自在现偷国产精品一区二区 | 99久久国产综合精品女同 | 国产欧美日韩综合视频专区 | 国产中文字幕手机视频 | 国产精品日本 | 东京热一区二区无码视频 | 丰满少妇一级毛 | 国产精品亚洲欧美大片在线 | 国产自在自线精品午夜视频 | 国产成人三区四区 | 国产成人av一区二区三区不卡 | 国产成人免费高清激情视频 | 国产成人一区二区在线不卡 | 国产无码一区二区 | 国自产拍91中文在线观看 | 99久久无码精品一区二区毛片 | 国产精品一线二线三线区别解析 | 精品国偷自产在线亚洲 | 精品久久久久久无码人妻vr | 精品国产中文在线二区 | 国产无码精品免费视频免费 | 国产在线欧美精品中文一区 | 国产欧美视频一区二区不卡 | 国产一级毛片视频国产 | 国产精品真实灌醉女在线播放 | 国产精品嫩草影院一二三区入口 | 国产精品爽爽va在线观看网站 | 国产午夜精品久久久久免费视 | 国产一区二区三四区爱情岛论坛 | 国产欧美日韩免费一区二区 | 国产精品毛片大码女人 | 国产在线高清仑片a | 高潮抽搐白浆视频在线观看 | av二区免费在线观看 | 成av人片在线观黄桃 | 国产精品嫩草久久久久 | 国产91特黄特色a级毛片 | 国产毛片大全 | 国产成人无码短视频在线观看 | 国产在线午夜不卡精品影院 | 国产高清无码日韩一区擁有海量影 | 国色精品va在线观看免费视频 | 国产一区二区高 | 精品国产一区二区三区三洲 | 国产成人无码a区在线视频 国产成人无码mv精品 | 国产高清不卡一区二区三区 | 国产午夜电影在线观看 | 东京一本大道无码 | 国产精品另类激情久久久免费 | 国产精品一区二区三区免费 | av免费网址在线观看 | 国产成人综合久久精品免费 | 囯产精品一区二区三区乱码 | 91麻豆精品国产专区在线观看 | 国产精品三级高清在 | 国产精品白浆无码流出免费看 | 国产野外强奷系列在线播放 | 911亚洲精品系列 | 国产高清在线精品一本大 | 国产精品免费无遮挡永久视频 | 99久久精品国产高潮 | 国产一区二区精品高清在线观看 | 国产欧美v欧美v在观看 | 国产欧美高日韩精品久久一区二区 | 国产一区二区三区香蕉www | 精品国产一区二区三区吸毒 | 东京热无码人妻系列综合网站 | 国产午夜精品福 | 国产精品麻豆成人av电影 | 粉嫩极品国产在线观看 | 国产高清在线精品一区a | 国产av国片精品jk | 91亚洲精华国产精华精华液 | 国语对白爽死我了 | 2025久久精品国产99国产精品 | 国产mv日韩一区二区三区 | 国产精品无码二区二区 | 国产成人精品免费视频大全可播 | 国产一区在线观看无码av | 动漫精品专区一区二区三区不 | 国产va无码高清 | 成人精品国产成人亚洲 | 国产高清中文字幕欧美 | 精品福利一区二区三区在线观 | av中文一区二区 | 国产精品国产三级国产αv 国产精品国产三级国产成人 | av一区二区三区蜜桃 | 国产亚洲视频在线观看网址 | 国产av无码专区亚洲av人妖 | 极品丝袜写真大尺度无内 | 福利视频欧美一区二区三区 | 91一区精品免费观看 | 国产av一区二区三区最新精品 | 国产精品先锋中文在线第一页 | 午夜精品被窝影院 | 国产麻豆精品福利在线观看 | 国产成人精品视频免费网站 | 国产夫妻久久线观看 | 国产内射一级一片内射精品视频 | 国产精品系列一区二区三区 | 国产麻豆精品久 | 国产av+高潮 | 国产女人高潮抽搐喷水视频 | a级毛片无码兔费真人久久91 | 成人一级免费视频 | 国产综合欧美视频 | 国产在线播放线91免费 | 成人黄色国产在线播放 | 国产对白刺激 | 国产午夜精品喷水久久 | 国产精品一级特黄毛片 | av无码成人精品区在线观看 | 2025卡1卡2卡3精品老狼 | 精品久久久无码人妻中文字幕麻豆 | 精品国内自产拍在线看99 | 二区va在线 | 多人伦交性欧美 | 国产桃色无码视频在线观看 | 国产真人a级高潮片 | 国产美女福利视频一区二区 | 国产成人高清亚洲一区 | 国产精品杨幂va在线观看 | 国产av天堂无码一 | 韩国午夜理伦三级在线观看仙踪林 | 国产免费区在线观看十分钟 | 国产精品小视频免费播放 | 成人午夜高潮免费视频在线观看 | 91碰碰视频 | 国产av无码专区亚洲a∨毛片 | 国产高清吃奶成免费视频网站 | 99精品久久久久久久久久 | 加勒比人妻av无码不卡 | 国产三级精品三级在线专区 | 91精品欧美一区二区三区 | 高潮喷水视频一区二区三区 | 东京热无码人妻一区二区av | 91精品国产高清91久久久久 | 国产高潮白浆喷 | 国产做a爱一级毛片久久 | 国语高清在线视频二区 | 国产精品无码麻豆放荡av | 91视频官网国产 | 国产麻豆激情无码aⅴ毛片久久 | 高清不卡亚洲日韩av在线 | 国产巨大爆乳在线观看 | 国产欧美日韩视频一区在线 | 高潮喷浆视频在线播放 | 国产午夜精品理论在线观看 | av在线免费观看网站 | 国产av旡码专区亚洲av | 99国产精品无码专区 | 高清女同学巨大乳在线 | 国产偷伦视频中文精品免费 | 国产成人人人爆出白浆 | 国产精品一品 | 国产成人免费高清直播网站 | av在线不卡无码 | 2025国产麻豆剧 | 按摩院的色情按摩 | 国产黄色大片在线观看激情 | 国产三级电影网站 | 成人免费观看一区二区 | 18禁男女污污污午夜网站免费 | 国产品欧美日产在线 | 国产美女精品久久久久中文 | 国产裸舞在线一区二区 | 国产精品人妻一码二码尿失禁 | 国产成人精品免费午夜 | av无码午夜福利一区二区三区 | 国产无码高清 | 国产精品欧美一区二区 | 国产白丝无码免费视频 | 国产超碰人人做人人爽www | 国产福利不卡一区二区三区 | 国产成人精品亚洲 | 国产一线大片免费观看 | av无码久久久久不卡网站下载 | 高潮抽搐潮喷毛片在线播放 | 国产精品日本 | 国产成人麻豆精品video | 国产91无码精品 | 白嫩无码人妻丰满熟妇啪啪区百度 | 国产精品毛片在线完整sab | 国产区免费在线观看 | 国产精品对白刺激音频在线观看 | 国产精品热久久毛片 | 高清无码不卡视频 | 精品国产一区二区在线 | 国产精品拍在 | 99国产亚洲精品无码成人 | 国产91调教丝袜在线 | 国产草裙社区在线观看 | 国产一级无码免费a片 | 18禁美女黄网站色大片免费 | 国产黄色麻豆视频 | 国产午夜精品久久理论片小 | 精品人妻中文字幕浪潮aⅴ 精品人妻中文字幕无码 | 91久久久久人妻白浆 | 国产99久久久国产精品潘金莲 | 国产成人无码∨a在线观看 国产成人无码18禁午夜福利p | 成人无码网www在线观看精东 | 国产精品无码手机在线观看 | 国产欧美日韩综合亚洲 | 国产午夜精品一区二区三区漫画 | 国产熟女一区二区精品免费 | 91精品国产色综合久久久蜜臀 | 高潮毛片无遮挡高清免 | 国产成人免费ā片在线观看 | 国产成人午夜福利r在线观 国产成人午夜福利电影在线播放 | 国产成年无码a影片 | 成人a级毛片免费观看av网站 | 岛国毛片一级一级特级毛片 | 精品人妻一区二区三区色欲影院 | 国产极品尤物va在线精品 | 91海角一区二区在线观看 | 精品国产一区二区三区不卡 | 精品国产三级aⅴ在线 | 91尤物免费在线观看精品 | 国产精品亚洲v毛片一区二区三区 | 国产三级国产精品国产普男人 | 91精品无码人妻在线 | 成人午夜视频在线观看 | 91国产日韩制服在线一区 | 国产成人理论片在线观看 | 91天堂一区二区三区在线 | 国产精品国产免无码专区 | 精品视频午夜一区二区 | 99久久精品一区二区毛片 | 99久久精品国产免费 | 国产成人av在线播放不卡 | 福利视频一区二区三区四区 | 国产高跟制服 | 9191在线精品 | 18处破外女出血视频在线观看 | 国产va欧美va在线观看 | 国产午夜无码喷水福利在线观看 | 国产亚洲精品久久久久无码 | 丰满女邻居的嫩苞张开视频 | 国产成人青青热久免费精品 | 18成人片黄网站www | 国产黄色毛片 | 国产综合精品久久亚洲 | 国产成人av丝袜在线播放 | 国产精品无码av片在线观看播 | 国产精品无码字幕不卡 | 国产精品一区久久 | 国产精品丰满大屁股流白浆 | hezyo加勒比久久爱综合 | 国产成人一区二区三区动漫 | 国产精品乱码一二三区的特点 | 国产日韩一区二区精品在线播放 | 国产精品视频一区二区三区不卡 | 91视频国产精品免费观看 | 国产精品无码久久久久成人网站 | av收藏夹| 国产v片精品在线播放 | 国产av一区二区三区 | av免费在线播放网址 | 国产亚洲中文日本不卡二区 | 国产三级电影在线观看 | 国产精品国产三级国产àn不卡 | 精品一区二区三区免费毛片爱 | 成人片黄色大片 | 精品熟女少妇av免费久久 | 国产精品麻豆a啊在线观看 国产精品麻豆v | 成人毛片十八女人毛片视频 | 成人颜色视频网站免费在线观看 | 国产麻豆精品免费va | 成人无码v在线播放 | 精品色网视频久久 | 国产精品原创在线网址 | 国产美女牲交视频 | 成人精品丝袜在线一区 | 国产成人啪精品午夜在线观看 | 成人黄色网址 | 国产精品一区二区av在线观看 | 国产精品丰满大屁股流白浆 | 精品国产品国语在线不卡丶 | 99国产精品99| 调教女孩自慰网站免费观看 | 国产精品久久久久国产 | 91高清免费国产自产 | 国产精品国产免费 | 国产私密视频在线 | 91九色老熟女免费 | 国产成人麻豆精品午夜国产精 | av免费一区二区三区试看 | 91精品国产自在现线91 | 国产三级级在线观看播放 | 国产一区二区三区在 | 2025国产精品自在线拍 | 精品久久久久久性色av | 成人午夜精品亚洲日韩 | 国自产成人免费视频在线播放 | 爆乳女教师高清bd | 国产aⅴ激情无码久久久无码 | 国产超碰97人人在线 | 91精品国产aⅴ一区二区 | 黑人巨茎美女高潮视频 | 国产精品偷伦视频免费手机播放 | 国产一区二区三区在线观看免费 | 2025理论片| a级毛片无码免费真 | 国产亚洲大尺度无码无码专线 | 国产欧美日韩一区二区加勒比 | 爽死你无码免费看一二区 | 国产无码影视 | av片亚洲国产 | av在线亚洲电影 | 国产精品色吧国产精品 | 国内偷自第一区二区三区 | 国产亚洲日韩网欧美在线播放 | 成人国产一区二区三区久久久 | 国产sm调教网站 | 极品尤物一区二区三区小说 | 成人嫩草研究院久久久精品 | 国产av在线播放 | 黄色三级网站免费 | av无码动漫一区二区三区精品 | 成人无码特黄特黄av片在线 | 91麻豆精品国产自产在线观 | 国产欧美精品一区二区三区四 | 国产成人高清视频 | 国产成a人亚洲精品无码樱花 | 国产高清国内精品福利色噜噜 | 2025色按摩电影在线观看 | 国产高清无套内谢 | 91成人在线播放 | 成人午夜男女爽爽影院 | 国产成人秘在线观看免费网站 | 国产爆乳合集在线观看视频 | 国产成人喷潮在线观看 | 国产亚洲专区在线观看 | 99久久国产精品免费电影 | 粉嫩av久久一区二区三区王玥 | 成人国成人国产su | 国产av不卡日韩 | 国产精品毛片一区二区 | 国产欧美日韩av成人久久 | 国产最新免费一区二区三区 | 91无码精品专区 | 国产精品青青青高清在线观看 | 国产在线观看第一页 | 动漫精品中文字幕无码第一页 | 国产精品伊人久久久久 | 国产高清国产精品国产专区 | 国产码欧美日韩高清综合一区 | 激情欧美在线一区 | 91人妻人人做人碰人人爽 | 国产在线一区二区视频 | 国产精品免费久久久久久久久久 | 精品一区二区av电影 | 精品人妻一区二区三区色欲影院 | 91成人免费观看在线观看 | 精品一级少妇久久久久久久 | 国产综合久久久久久 | 国产精品一区二区三区不卡视频 | 成人女人看片免费视频放人 | 精品一区二区三区高清 | 国产精品麻豆一区二区三区 | 国产偷窥女洗浴在线观看一区 | a级毛片免费无码 | 高清无码在线观看越南专区 | 精品久久aⅴ人妻色欲 | 高潮湖久久久久久久久 | 精品亚洲成av人片在线观看ww | 国产丝袜大长腿精品丝袜美女 | 国产福利一区视频引发网友热议 | 国产对白91色拍 | 国产精品女丝袜白丝袜 | 精品少妇爆乳无码专区久久 | 国产91丝袜高跟系列 | 国产三级av国片免费 | 国产a级特黄的片子 | 91桃色无码国产在线观看二区 | 91九色国产亚洲 | 精品亚洲成a人片在线观看少妇 | 国产高清网站视频在线观看 | 精品无人区乱码一区二区 | 国产成人8x视频网站 | 国产成人精选视频在线观看不卡 | 91国产高清福利院 | 国产一级毛片av不卡尤物 | 91麻豆国产香蕉久久精品 | 国产精品毛片在线大全 | 国产精品人妻无码久久久郑州 | 国产精品一区二区国产主播 | av在线永久不卡 | 国产精品白嫩在线观看 | 国产亚洲一区二区在线 | 成人欧美一区二区三区黑人 | 国产精品入口麻豆免费看 | 国产成人精品日本亚洲成熟 | 东京热男人的天堂精品 | 国产a网站| 国产自啪精品视频网站丝袜 | 国产内射大屁股白浆一区二区 | 丰满老熟妇好大bbbbb | 国产福利一区视频 | 成人毛片免费视频播放 | 国产午夜不卡无码影院 | 国产电影一区二区三区 | 国产精品一区不卡 | 操老逼欧美一区二区 | 91亚洲精品亚洲人成在线观看 | 精品无人区麻豆乱码1区2区 | 国产成人av三级在线观看 | 91精品国产偷窥一区二区 | 国产一区福利 | 国产成人精品视频一区二区三区 | 2025无码专区| 国产成人在线综合 | 国产免费69成人精品视频 | 国产91免费观看在线直播 | 国产综合无码一区二区辣椒 | 国产一区二区三区视频精品 | 国产无码视频一区在线观看 | 国产成人精品午夜福利在线观看 | 91成人爽a毛片一区二区动漫 | 国产成人无码a区视频在线观看 | 成年人手机版三级片电影免费观看正 | 国产在线精品福利一区二区三区 | 国产精品免费观在线 | 国产精品三级美女网站全黄真人 | 国产精品视频网站 | 91精品国产一区二区 | 国产一区二区三区四区五区vm | 99国精产品一区二区三区a片 | 国产综合精品91久久久 | 国产欧美成人精品第二区综合 | 3d动漫精品啪啪一区二区中文 | 国产91九色在线播放 | 国产高清视频在线观看无缓冲 | 黑人巨大精品欧美一区二区小视 | 国产成人久久精品二三区麻豆 | 91无码人妻一区二区三区在线看 | 国产成人无码a区在线观看导航 | 精品一区二区国语对白 | 国产无码av不卡免费在线观看 | 国产传媒果冻天美传媒怎么 | 国产午夜久久影院 | 国产成人av大片大片在线播放 | 2025中文日产幕无线 | 国产成人久久精品流白浆 | 91亚洲一 | 18禁无遮挡无码网站免费 | 成人黄色网址 | 9i精品福利一区二区 | 国产精品色哟哟视频网 | 精品国免费一区二区三区 | 成人av鲁丝片一区二区免费 | 国产午夜精品一区二区三 | 国产不卡福利片在线观看浪潮 | 国产萝控精品福利视频免费观看 | 国产成人h在线观看网站站 国产成人mv毛毛a片 | 国精品午夜福利视频不卡 | 国产成人a在线观看网站站 国产成人a在一区线观看高清 | 二三区久久a片 | 国产成人电影在线观看 | 国产剧高清免费看 | 国产成a人亚洲精ⅴ品无码樱花 | 国产午夜精品夜夜骚久久久久 | 国产在线视频无码台湾 | 97无码人妻 | 国产深夜男女无套内射 | 国产麻豆精品久久 | 国产亚洲欧美日韩综合一区二区 | 国产美女高潮流 | 18禁成年免费无码国产 | 91热在线观看精品 | 精品麻豆视频播放 | 成人黄色免费观看 | 精品妓女久久久久亚洲中文 | 91人妻国产麻豆88 | av无码国产在 | 国产精品合集久久久久青苹果 | 丰满肥臀大屁股熟妇激情 | 国产成人综合亚洲av第一页 | 国产无码综合一区二区 | 高清一区二区三区不卡免费 | 国产一区二区三区色婬影院 | 岛国无码在线观看精品 | 国产午夜精品美女视频福利 | 国产成人精品一区二区视频 | 国产一区二区三区在线精品专区 | 精品无码久久久久久久久国产va | 丰满巨臀大屁股bbw 丰满老熟妇aaaa片 | 二区三区久久久久久久 | 国产高清在线观看一区二区三区 | 成人欧美一区二区三区在线 | 国产成人av在线精品无码 | 国产精品一区二区三区在线播放 | 国产人妖视频一区二区 | 国产极品翘臀在线观看 | 精品日本一区二区三区在 | 国产熟女一区二区三区十视频 | 丰满人妻被黑人中出849 | 国产欧美日韩综合视频专区 | 国产aⅴ无码精品一区二区三区 | 99精品人妻少 | 东京一本大道无码 | 成人精品久久中文字幕 | 精品国产一区二区三区吸毒 | 国产三级级在线电影 | 国产高潮丝袜熟女视频 | 国产制服丝袜在线一区 | 国产麻豆入在线观看 | 国产精品系列在线观看 | 国产v片成人影院在线观看 国产v片精品在线播放 | 国产一区二区在线观看年轻 | 国产福利一区二区在线视频 | 动漫av纯肉无码国产av | 白嫩少妇丰满一区二区 | 精品无码一区二区三区黄 | 国产成人在线观看免费网站 | 18禁美女黄网站色大片免费看 | 国产成人精品亚洲一区二区三区 | 国产精品成人久久 | 国产最新三级在线播放视频 | 国产高级桑拿在线播放 | 国产精品亚洲mnbav网站 | 91夜夜夜精品一区二区 | 精品亚洲∨无码专区毛片 | 2025亚洲韩国精品乱码 | 国产aⅴ夜夜欢一区二区三区 | 丰满少妇人妻 | 国产精品毛片无码 | 成人免费的性色视频播放 | 99久久亚洲视频 | 国产成人精品久久一区二区三区 | 国产高清一区视频在线播放 | 国产成人精品1024在线 |