erp管理系統軟件

erp項目實施方案-第30章 外掛程序

作者: admin 來源: erp系統 日期: 2021-07-21 14:19:55 人氣: - 評論: 0

30.1 外掛程序介紹

外掛程序作用:擴充ERP功能。滿足企業的行業化、個性化需求。

外掛程序接口特點:

? 無需系統程序源碼。外掛程序集成到ERP中,并且會把登錄的用戶ID傳遞給外掛程序;

? 多種編程語言支持。可用.NET平臺任一編程語言,只需指定文件名、類名、方法名即可;

? 外掛程序分門別類。所有外掛程序放置目錄固定,都在ERP根目錄下的“外掛程序”子目錄下,并且子目錄與子系統一一對應,比如:“W1.采購系統”外掛程序的目錄如下:

ERP根目錄\外掛程序\W1\

外掛程序集成在幣加德ERP的菜單欄中,如圖30-1。

 

30-1 外掛程序接口及系統集成位置

30.2 外掛程序實戰

本節使用Visual Studio 2013(速成版、社區版、專業版、高級版、旗艦版都可以,前面2個版本是免費的)來開發外掛程序,如果你使用的是其他版本的Visual Studio,也可以參照學習,大同小異。本節先用完整詳細的步驟介紹一個最簡單的外掛程序的開發,通過此外掛的學習,可以完全掌握外掛的開發方法。然后用較簡潔的步驟介紹如何開發報表外掛,這個案例很實用,企業的程序開發人員或ERP代理服務商經常需要從企業ERP中取數,開發分析報表或開發定制格式的打印單據。

30.2.1 一個簡單的外掛程序

1)編寫外掛程序

①打開Visual Studio 2013,點【文件】/【新建】/【項目】,如圖30-2。

 

30-2 新建項目

“新建項目”窗口,選擇【Visual C#】/【Windows 窗體應用程序】,名稱為“W1”,如圖30-3。

 

30-3 選擇Windows 窗體應用程序

“工具箱”中拖一個Label到窗體設計界面,如圖30-4。

 

30-4 拖一個標簽到設計面板

雙擊設計面板,打開代碼編輯窗口,輸入以下代碼,如圖30-5

public string _userID = "";     //登錄用戶ID

public void ShowMe(string userID, string serverIP, string dbName, string saPassword, string curDir)//鉤子方法

{

    _userID = userID;           //傳遞用戶登錄ID

    label1.Text = "登錄用戶ID:" + _userID;//標簽顯示

    base.Show();//顯示窗體

}

 

30-5 寫程序代碼

提醒:不管寫什么類型的外掛程序,都需要上面的代碼,相當于ERP與外掛程序之間約定的一種協議,目的在于把ERP系統當前的登錄用戶ID傳遞給外掛程序,并打開外掛程序的主窗體。除此之外,外掛程序與普通的Windows窗體程序沒有任何區別。

外掛程序可以查詢ERP的后臺數據表,但千萬別修改(刪除)數據,這是一個基本的原則。否則出錯后無法核查是ERP的問題,還是外掛程序的問題。

鼠標右鍵項目名稱,在上下文菜單中選【屬性】,在打開的窗口中,“目標框架”選擇“.NET Framework 2.0”(為了兼容老電腦),“輸出類型”選“類庫”(如果選“Windows應用程序”,用戶可以越過權限設置,直接運行外掛程序),如圖30-6

 

30-6 設置項目屬性

再次點【啟動】,系統會報錯(因上一步中改變了目標框架),修正錯誤,如圖30-7

 

30-7 修改錯誤

再次點【啟動】,系統會彈出無法直接啟動類庫項目的錯誤,這正是所要的,如圖30-8

 

30-8 彈出無法直接啟動類庫項目的錯誤

打開外掛程序的輸出目錄(參見“圖30-3 選擇Windows 窗體應用程序”選定的位置),并把外掛程序復制到ERP的外掛程序目錄,如圖30-9

 

 

30-9 拷貝外掛程序至ERP外掛目錄

2)接口定義

打開【系統設置】/【外掛程序接口】,選擇子系統,配置外掛程序接口參數,測試是否可以正常打開外掛程序,最后點【保存并應用】,如圖30-10。

外掛程序接口參數:

? 模塊代碼:外掛子系統代碼 + 3位流水碼。

? 模塊名稱:最簡潔的文字介紹外掛程序。“模塊代碼、模板名稱”會顯示在ERP系統的外掛菜單中,參見“30-1 外掛程序接口及系統集成位置”。

? 文件名稱:不含路徑,含擴展名。

? 類名稱:類名稱必須是“命名空間.類名”。

? 方法名稱:方法名稱必須是公有的,否則無法正常調用。

? 備注:較詳盡的文字介紹外掛程序。

 

30-10 外掛程序接口

提醒:外掛程序 + ERP數據字典 = 無限擴展 ERP 功能!

(無需“幣加德ERP”源代碼)

 

30.2.2 開發復雜的報表外掛(使用VS自帶的.rdlc報表)

建議使用Visual Studio 2013專業版、高級版或旗艦版,不要使用速成版或社區版(沒有集成報表開發功能)。最終效果如圖30-11。

 

30-11 復雜報表外掛最終效果

此復雜報表外掛具有如下特點:

? 幣加德ERP自動把當前登錄的用戶ID、數據庫服務器IP、賬套對應的后臺數據庫名稱、登錄賬號、登錄密碼傳遞給外掛程序,所以不僅僅可以開發報表外掛,充滿想象;

? 無需幣加德ERP的源代碼;

? 外掛可以使用不同的開發語言和平臺(幣加德ERP使用C#語言,.NET 2.0),外掛使用C#語言,.NET 3.5(不可以使用.NET 2.0,因為沒有報表功能;也不可以使用.NET 4.0及以上,因為架構與.NET 2.0不兼容。可以使用VB.NET語言);

? 外掛程序需要引用幣加德ERP的任何.dll文件,外掛程序可以獨立運行,為了防止用戶直接運行,可以編譯成.dll動態鏈接庫文件,由ERP調用;

? 外掛程序的代碼量非常小,基礎框架已經搭好,只需要依葫蘆畫瓢,重點在于取數SQL語句和報表格式調整(這是個細致且費時間的活兒);

? 此報表外掛案例,包含了報表設計中常用的功能:頁面大小的設置、頁頭、頁尾、分組匯總、每頁重復顯示列頭、公司LOGO、簽章透明、分頁等,報表加入圖片的功能很容易擴展到加入條碼、二維碼。報表可以導出到Excel/PDF/Word。

1準備SQL查詢語句。按前面“第29章 自定義報表/29.1 SQL命令行工具”介紹的方法,準備查詢SQL語句,如圖30-12

 

30-12 使用SQL命令行工具準備SQL查詢語句

2寫外掛程序。

按上一節介紹的方法建立項目W2,在W2上右鍵鼠標,在彈出菜單中選【添加】/【新建項】,如圖30-13

 

30-13 添加數據集(默認名稱不要更改)

在打開的DataSet1.xsd面板中,右鍵鼠標,如30-14。

 

30-14 添加TableAdapter

在彈出的“添加連接”窗口,錄入數據庫服務器相關信息,如30-15。

? 服務器名。精簡數據庫如圖進行填寫,如果是企業版數據庫,請填寫“.”(點表示本地,如果不是遠程連接到ERP服務器寫外掛程序,則需要把點改為ERP服務器的IP地址);

? 登錄到服務器。精簡數據庫的密碼是“17312319729@bijiade.cn”,企業版數據庫的密碼是在系統安裝配置的時候自己設置的。

? 連接到數據庫。選bdERP開頭的任意一個就行,外掛程序運行時會根據賬套自動切換。

 

30-15 連接數據庫

根據TableAdapter配置向導進行配置,如30-16~圖30-18。

 

30-16 不要在連接字符串中包含敏感數據

 

30-17 默認下一步

 

30-18 默認下一步

粘貼準備好的查詢SQL語句,點【完成】,如圖30-19。

 

30-19 粘貼準備好的查詢SQL語句

執行查詢SQL語句所得的數據表字段,如圖30-20。

 

30-20 查詢所得的數據表字段

W2上右鍵鼠標,在彈出菜單中選【添加】/【新建項】,如圖30-21

 

30-21 添加報表文件(默認名稱不要更改)

在打開的報表文件界面,右鍵“數據集”,選擇剛剛配置的數據集,如圖30-22。

 

30-22 選擇數據集

在報表設計界面,右鍵鼠標,可以插入文本框等等,也可以把左側的數據集下面的字段拖放到報表設計界面,如圖30-23

 

30-23 報表設計

報表設計是最繁瑣最費時間的事情,最終設計結果,如圖30-24。

 

30-24 報表設計結果

打開Form1窗體,從工具箱拖放一個ReportViewer報表查看器到窗體,如圖30-25

 

30-25 把報表查看器添加到窗體

雙擊Form1窗體,如圖30-26,清空窗體中所有的代碼,并把下面的代碼復制粘貼進去。

 

30-26 Form1代碼窗口

using Microsoft.Reporting.WinForms;

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace W2

{

    public partial class Form1 : Form

    {

        public string _userID = "";              //登錄用戶ID

        public string _serverIP = @".\_MSSQL2005"; //服務器IP(如果是SQL企業版,則為“.”)

        public string _dbName = "bdERP";                      //數據庫名稱

        public string _saPassword = "17312319729@bijiade.cn"; //sa密碼

public string _curDir = @"..\..\";                    //當前目錄

 

        public Form1(){ InitializeComponent(); }

 

        public void ShowMe(string userID, string serverIP, string dbName, string saPassword, string curDir)//鉤子方法

        {

            _userID = userID;           //傳遞用戶登錄ID

            _serverIP = serverIP;       //服務器IP

            _dbName = dbName;           //數據庫名稱

            _saPassword = saPassword;   //sa密碼

_curDir = curDir;           //當前目錄

MessageBox.Show("用戶ID:" + _userID + "\n數據庫服務器IP:" + _serverIP + "\n數據庫名稱:" + _dbName + "\nsa密碼:" + _saPassword + "\n當前目錄:" + _curDir, "提示");

            base.Show();//顯示窗體

        }

 

        private void Form1_Load(object sender, EventArgs e)

        {

            //1.SQL查詢語句

            string sql = @"

SELECT

a.c010 單號, a.c020 日期, a.c200 銷售類型, a.c210 客戶單號,

a.c030 客戶代碼, c.c020 客戶名稱,

a.c090 聯系人, a.c091 聯系電話,

a.c070 交貨方式, a.c080 交貨地點,  a.c100 備注, a.c110 業務員,

b.c020 項次, b.c029 客戶料號, b.c030 貨品代碼,

b.c050 品名規格, b.c060 單位, b.c069 含稅, b.c070 單價, b.c071 含稅單價,

b.c080 數量, b.c090 金額, b.c100 稅率, b.c101 稅額, b.c110 價稅合計,

b.c150 摘要

FROM SAL020 a

LEFT JOIN SAL021 b ON b.c010=a.c010

LEFT JOIN BAS010 c ON c.c010=a.c030

WHERE 1=1 AND a.c061<>'Y'

AND a.c010='XCK-21060001'

";

            //2.報表文件名如果報表文件與外掛程序在同一目錄,直接寫報表名稱即可

            string reportName = _curDir + @"Report1.rdlc";

 

            //3.綁定

            Bind(sql, reportName);

        }

        /// <summary>

        /// 工具方法,執行SQL查詢獲取數據,并綁定到指定報表。

        /// </summary>

        /// <param name="sql">SQL查詢語句</param>

        /// <param name="reportName">報表文件名</param>

        private void Bind(string sql, string reportName)

        {

            DataTable data = new DataTable();                           //數據

            try

            {

                //執行SQL查詢獲取數據

                string connStr = "Data Source=" + _serverIP + @";Initial Catalog=" + _dbName + ";Persist Security Info=True;" +

                        "User ID=sa;Password=" + _saPassword;

                using (SqlConnection conn = new SqlConnection())

                {

                    conn.ConnectionString = connStr;

                    conn.Open();                      //打開數據庫連接

                    SqlDataAdapter adapt = new SqlDataAdapter(sql, conn);//實例化適配器                

                    adapt.Fill(data);                                    //獲取數據

                    conn.Close();                                       //關閉數據庫連接

                }

                //綁定到指定報表

                ReportDataSource rds = new ReportDataSource();

                rds.Name = "DataSet1";                  //要與數據集屬性數據集名稱要一致

                rds.Value = data;

                this.reportViewer1.LocalReport.DataSources.Clear();

                this.reportViewer1.LocalReport.DataSources.Add(rds);

                this.reportViewer1.LocalReport.ReportPath = reportName;  //報表文件名  

                this.reportViewer1.RefreshReport();

            }

            catch (Exception ex) { MessageBox.Show("出錯了:\n" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); }

        }

    }

}

以上代碼已經在注釋中進行了講解,看不懂也沒有關系,只要依葫蘆畫瓢,要改2個地方(上面代碼已說明):其一是SQL查詢語句;其二是報表文件名稱(注意路徑)。如圖30-27

 

30-27 代碼關鍵點(SQL查詢語句、報表文件名)

3配置外掛程序。

鼠標右鍵W2,在彈出菜單中選【屬性】,目標框架選.NET 3.5,如圖30-28

 

30-28 .NET Framework 3.5

提醒:這里輸出類型保持默認,為了便于測試。測試正常后,可以改為“類庫”。

拷貝外掛程序到ERP的外掛目錄下,并確認運行正常,如圖30-29

 

30-29 拷貝外掛程序到ERP的外掛目錄下

打開【系統設置】/【外掛程序接口】,選擇子系統,配置外掛程序接口參數,測試是否可以正常打開外掛程序,最后點【保存并應用】,如圖30-30。

 

30-30 外掛程序接口

4最后總結。

報表外掛的意義。幣加德ERP系統的單據打印都是基于Excel的(參見“第23章 單據打印格式設計”),一般情況下無需開發.rdlc報表,除非現有報表滿足不了業務需求。這里以開發.rdlc報表為例,不僅僅為了說明報表開發本身,而且可以學習到如何集成ERP中的用戶ID、賬套數據庫等,無需另外配置數據庫連接和建立賬戶體系。

幣加德ERP外掛接口規范。會傳遞如下這些參數給外掛程序,外掛程序可以不使用,或者部分使用,但是不能缺少這些參數,順序也不能改變。

/// <summary>

/// 鉤子方法。

/// </summary>

/// <param name="userID">用戶登錄ID</param>

/// <param name="serverIP">服務器IP</param>

/// <param name="dbName">數據庫名稱</param>

/// <param name="saPassword">sa密碼</param>

/// <param name="curDir">當前目錄</param>

public void ShowMe(string userID, string serverIP, string dbName, string saPassword, string curDir)//鉤子方法

{

    _userID = userID;           //傳遞用戶登錄ID

    label1.Text = "登錄用戶ID:" + _userID;//標簽顯示

    base.Show();//顯示窗體

}

使用Visual Studio 2013開發.rdlc報表的關鍵是準備SQL查詢語句、報表設計(最費時間)。報表設計有如下特點(注意點),如30-31。

1)拖放設計。數據字段按照SQL查詢語句的順序列示,直接拖放進行報表設計,簡單直觀。

2)設計時可以調整紙張大小。報表默認大小是A4縱向(可以更改),寬度不能超過“紙張寬度+邊距”,否則打印預覽時多出了很多空白頁(如果拉窄了寬度后,打印預覽時還是有空白頁,則需要把“報表”的“ConsumeContainerWhitesapce”屬性值改為True,此屬性意思“指使在容器中的內容增長時,是占用還是保留容器中的最小空白。只要內容右側和下方的空白受到影響。”)。縱向不用留空間,在打印時根據數據行數自動拉高。

3)數據表是一個整體。當在設計時插入表格,表格是一個整體,但是列頭在多頁時重復顯示功能時不時卡殼(tablixTablix2”具有無效的 TablixMemberTablixColumnHierarchy 中所有 TablixMember 元素的 RepeatOnNewPage 屬性必須設置為 false。),所以建議把標題欄刪除,手工增加文本框代替,放在頁眉處,這樣每頁都會顯示。

4)數據區可多級分組。報表的核心在于數據區,可以分組匯總等。

5)頁眉/頁腳。頁腳可以插入頁碼,加上印章(透明處理參見第23章)等。

提醒:如果報表外掛程序在集成到ERP前運行得好好的,集成后出錯,最大的可能性有2種:其一如果提示“此程序集的運行時比當前加載的運行時新,無法加載此程序集”,則是因為選錯了.NET版本(參見“30-28 .NET Framework 3.5”);其二如果報表無法顯示,則是因為報表路徑錯了,或者報表文件Report1.rdlc沒有和外掛程序一起復制到ERP的外掛程序目錄中。

 

30-31 報表設計特點(注意點)

 

30-32 “報表”的“ConsumeContainerWhitesapce”屬性值改為True


分享到:


發表評論
更多 網友評論0 條評論)
暫無評論

© 2021-2035 蘇州幣加德軟件研發有限公司
聯系電話/微信號:173 1231 9729 陳生

蘇ICP備2022028458號-2    回到頂部
常熟ERP,常熟ERP軟件,常熟ERP軟件開發,常熟ERP量身定制

8x8x成人免费视频| 亚洲性生活网站| 国产寡妇亲子伦一区二区三区四区| 你懂得在线视频| 九九九九九九九九| 人妻无码中文久久久久专区| 在线免费看污网站| 中文字幕av观看| 成人黄色一级大片| 国产三级国产精品| 国产精品专区在线| 国产高清第一页| 自慰无码一区二区三区| 国产精品高潮呻吟AV无码| 日韩一区二区高清视频| 91麻豆成人精品国产免费网站| 欧美日韩dvd| 亚洲最新av网站| 蜜臀av色欲a片无码精品一区| 中文字幕在线视频免费| 免费看国产一级片| 午夜精品久久久久久久99| 97视频在线免费| 日本一区二区三区在线免费观看| 成人观看免费完整观看| 欧美一级大片免费看| 亚洲欧洲日本精品| 精品无人区无码乱码毛片国产 | 久久久久久久麻豆| 国产午夜无码视频在线观看| 人妻互换一区二区激情偷拍| 中文字幕视频免费观看| 丰满人妻一区二区三区53号| 欧美 日韩 国产 成人 在线| 91看片就是不一样| 久久精品—区二区三区舞蹈| 国产精品xxxx喷水欧美| 成年丰满熟妇午夜免费视频| av中文字幕观看| 91小视频网站| 成人国产精品久久久网站| 国产美女18xxxx免费视频| 欧美巨胸大乳hitomi| 亚洲第一网站在线观看| 男女高潮又爽又黄又无遮挡| 白丝校花扒腿让我c| 国产www在线| www.日本三级| 99久久免费看精品国产一区 | 噜噜噜久久亚洲精品国产品麻豆| 中国特级黄色大片| 国产成人综合欧美精品久久| 成人性生活视频免费看| 国产艳妇疯狂做爰视频| 成人午夜精品视频| 国产美女无遮挡网站| 手机免费看av| 中文字幕 国产| 很污的网站在线观看| 日韩aaaaa| 国产成人无码专区| 一区二区三区视频在线观看免费| www.狠狠爱| 日本精品999| 国产午夜精品无码| 亚洲欧洲日产国码无码久久99| 色悠悠在线视频| 中文字幕一级片| 图片区乱熟图片区亚洲| 91.com在线| 国产交换配乱淫视频免费| 日韩精品国产一区二区| 99久久国产宗和精品1上映| 变态另类ts人妖一区二区| 四虎永久在线观看| 亚洲天堂视频网站| 亚洲美女爱爱视频| 白白操在线视频| 四季av中文字幕| 懂色av蜜臀av粉嫩av分享吧| 日批视频免费在线观看| 91女神在线观看| 浮妇高潮喷白浆视频| 亚洲色图日韩精品| 精品国产乱码一区二区三| 久草手机在线观看| 黄大色黄女片18第一次| 精品少妇在线视频| 午夜三级在线观看| av电影网站在线观看| 香蕉视频免费在线看| 国产免费黄色录像| 中文字幕第15页| 久久久久久蜜桃| 久草在在线视频| 欧美午夜小视频| 欧洲第一无人区观看| 中文字幕第20页| 日本黄色大片在线观看| 日本人妻熟妇久久久久久| 中文字幕你懂的| av手机天堂网| 丰满少妇乱子伦精品看片| 57pao国产成永久免费视频| 久久亚洲中文字幕无码| 国产a级片免费看| 三级全黄做爰视频| 永久免费看mv网站入口78| www国产视频| 欧美在线 | 亚洲| 性生交生活影碟片| 99久久婷婷国产一区二区三区| 无码人妻一区二区三区线| 日韩av在线电影| 国产精品黄色网| 性久久久久久久久久久久久久| 天天色综合天天色| 人妻少妇被粗大爽9797pw| 国产精品一区二区免费在线观看| 91精品国产毛片武则天| 国产日韩欧美大片| 翔田千里88av中文字幕| 欧美爱爱免费视频| 亚洲综合视频网站| 91成人精品一区二区| 亚洲中文字幕无码av| 亚洲av成人精品一区二区三区在线播放 | 亚洲一区二区福利视频| 自拍日韩亚洲一区在线| 成人小视频在线看| 无码人妻丰满熟妇区毛片18| 亚洲不卡视频在线| 中文字幕欧美人妻精品一区| 大肉大捧一进一出好爽视频| 久久久久久人妻一区二区三区| 2021国产视频| av之家在线观看| 男女私大尺度视频| 日韩有码免费视频| 五月婷婷六月合| 手机在线国产视频| 黄色大片网站在线观看| 日本中文字幕在线| 国产精品九九九九| 秋霞网一区二区| 熟女人妻在线视频| 国产精品免费在线视频| 国产 欧美 日韩 一区| 成人综合视频在线| 国产999免费视频| 毛片基地在线观看| www黄色在线观看| 女教师高潮黄又色视频| 国产真实乱人偷精品人妻| 男人的午夜天堂| a级黄色小视频| 91视频免费版污| 日韩高清精品免费观看| 波多野结衣黄色网址| 精品国产亚洲av麻豆| av漫画在线观看| 很污很黄的网站| 香港三级日本三级a视频| 在线观看国产一级片| 黄网在线观看视频| 亚洲第一天堂网| 亚洲精品理论片| 久久久天堂国产精品| 欧美三级午夜理伦三级富婆| 国产精品久久久久久人| 成人激情四射网| 青娱乐国产视频| 日韩精品一区二区免费| 久久影院一区二区| 99er热精品视频| 亚洲一二三四视频| 成人午夜视频在线观看免费| 国产午夜精品一区二区理论影院 | 日韩电影在线观看一区二区| 亚洲无码久久久久久久| 97香蕉碰碰人妻国产欧美 | 亚洲激情视频小说| 欧美日韩成人免费视频| 青青操国产视频| 国模大尺度视频| 亚洲老妇色熟女老太| 国产成人无码精品亚洲| 欧美性猛交xxxx乱大交hd| 国产女人18毛片水真多18| 亚洲一二区在线观看| 成人免费视频国产| 性色av免费观看| 中文字幕a级片| 91在线你懂的| wwwxxx色| 免费视频91蜜桃| 艳母动漫在线免费观看| 日韩亚洲欧美一区二区| 亚洲一区二区三区观看| 亚洲国产成人精品女人久久| 国产精品一区二区人人爽| 少妇熟女视频一区二区三区| 91网站免费入口| 人人干视频在线| 天堂av.com| 国产美女永久免费| 精品夜夜澡人妻无码av| 欧美中日韩在线| 日韩免费一级片| 性高潮久久久久久| www.爱色av.com| 成人精品小视频| 国产无码精品视频| 少妇荡乳情欲办公室456视频| 亚洲一级黄色录像| 91亚洲一区二区| 不卡视频免费在线观看| 看一级黄色录像| 青青草精品在线视频| 亚洲最大的黄色网| www.精品在线| 午夜久久久久久久| 哪个网站能看毛片| 亚洲 欧美 精品| 国产深夜男女无套内射| 午夜美女福利视频| 欧美激情图片小说| 最新国产中文字幕| 艳母动漫在线观看| 伊人亚洲综合网| 欧美交换配乱吟粗大25p| 91丨九色丨海角社区| 永久免费毛片在线观看| 国产精品嫩草影视| 鲁丝一区二区三区| 久久久香蕉视频| 中文字幕免费在线播放| 精品久久久99| 在线精品视频播放| 免费成年人高清视频| 老鸭窝一区二区| 中文字幕55页| 在线免费观看成年人视频| 欧美黄色一级网站| 精品无人区无码乱码毛片国产| 亚洲综合123| 中文字幕在线免费看线人| 激情在线观看视频| 免费成人蒂法网站| 免费一级a毛片夜夜看| 亚洲成人黄色av| 男人天堂中文字幕| 在线日韩国产网站| aaa国产视频| 亚洲自偷自拍熟女另类| 四虎永久在线观看| 另类小说色综合| 国产麻豆天美果冻无码视频| 免费看一级一片| 日本精品在线免费观看| 亚洲av无码乱码国产精品fc2| 1024手机在线视频| 日韩精品一区不卡| 丰满女人性猛交| 黄色片在线免费| 99久久人妻无码中文字幕系列| 亚洲欧美手机在线| 娇妻被老王脔到高潮失禁视频| 日韩毛片在线播放| 裸体大乳女做爰69| 内射无码专区久久亚洲| 亚洲免费黄色网| 91制片厂免费观看| www.日本在线观看| 不用播放器的免费av| 免费日本黄色网址| 日本一本在线观看| 波多野结衣50连登视频| www.黄色在线| 一区二区视频免费| 国产aaa一级片| 日本五十肥熟交尾| 无码人妻一区二区三区线| 无码 制服 丝袜 国产 另类| 中文字幕在线观看视频www| 欧美精品乱码视频一二专区| 成人免费精品动漫网站| 91在线你懂的| 99re精彩视频| 老湿机69福利| 俄罗斯嫩小性bbwbbw| 六月丁香在线视频| 131美女爱做视频| av无码一区二区三区| 亚洲欧美一二三区| 91热这里只有精品| 美女被到爽高潮视频| 亚洲精品网站在线| 日韩成人av毛片| www.99热| 亚洲精选一区二区三区| 国产无码精品久久久| 国产亚洲综合视频| 呻吟揉丰满对白91乃国产区| 国产高清视频免费| 久久久久久久久久久网 | 国产资源中文字幕| 国产又粗又硬又长| 午夜剧场免费看| 亚洲一级视频在线观看| 大j8黑人w巨大888a片| www.97视频| 日本人添下边视频免费| 亚洲成熟少妇视频在线观看| 91亚洲免费视频| 日韩精品手机在线观看| 欧洲av一区二区三区| 好吊视频一区二区三区| 精品国产xxx| 激情综合在线观看| 91精品国自产在线偷拍蜜桃| 国产乱淫av免费| 在线免费观看毛片| 三上悠亚在线一区二区| 毛片在线视频观看| 黄色免费高清视频| 天堂久久精品忘忧草| 91av免费观看| 国产手机av在线| 中文字幕在线播| 欧美成人高潮一二区在线看| japanese在线播放| 成人精品一二三区| 亚洲黄色小说在线观看| 六月丁香色婷婷| 亚洲天堂网视频| 伊人成人在线观看| 日韩欧美激情视频| 57pao国产成永久免费视频| 美女网站视频黄色| 久久久999视频| 丁香色欲久久久久久综合网| 男女男精品视频网站| free性中国hd国语露脸| 婷婷视频在线观看| www.国产麻豆| 午夜一级黄色片| 亚洲成人av影片| 欧美成人aaaaⅴ片在线看| 不卡的在线视频| 亚洲无在线观看| 成人亚洲精品777777大片| www.av中文字幕| 久久久久久久久久网站| 欧美性生交大片| 在线免费观看黄色小视频| 黄色在线免费播放| 久久精品无码一区二区三区毛片 | 免费无码毛片一区二三区| 日韩欧美精品免费| 日本高清视频免费在线观看| 国产成人av免费在线观看| 亚洲激情免费视频| 免费在线精品视频| 日韩精品久久一区二区| 国产中文字幕二区| 亚洲国产精品久久久久婷蜜芽| 一级特黄性色生活片| 中文字幕第88页| 亚洲欧美日韩综合网| 日本美女高潮视频| 激情五月俺来也| 女同激情久久av久久| 交换做爰国语对白| 免费一级特黄特色大片| 九九热精品视频在线| 看黄色一级大片| 91国产免费视频| 人妻少妇精品无码专区| 五月婷婷伊人网| 中文字幕日韩三级片| 日本成人免费视频| 99亚洲精品视频| 水蜜桃色314在线观看| 99免费视频观看| 成人性生交免费看| 久久久精品国产sm调教| 天天做天天爱夜夜爽| 一级片一区二区三区| 日本精品一区二区在线观看| 亚洲av无码乱码国产精品| 女人扒开腿免费视频app| 黄色www视频| 国产1区2区在线观看| 熟妇熟女乱妇乱女网站| 欧美视频在线第一页| 国产3p在线播放| 91蜜桃视频在线观看| 精品国产无码一区二区三区| 4438x全国最大成人|