using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Drawing;
|
using System.Data;
|
using System.Data.SqlClient;
|
using System.Text;
|
using System.Windows.Forms;
|
using HH.WMS.Client;
|
using Newtonsoft.Json;
|
using Newtonsoft.Json.Linq;
|
using HH.WMS.Entitys.Func;
|
using HH.WMS.Client.Common;
|
using HH.WMS.Entitys.Basic;
|
using DevComponents.DotNetBar;
|
|
namespace WindowsApp.MyControl
|
{
|
/// <summary>
|
/// ÉêÃ÷ίÍÐ
|
/// </summary>
|
/// <param name="e"></param>
|
/// <returns></returns>
|
public delegate int EventPagingHandler(EventPagingArg e);
|
/// <summary>
|
/// ·ÖÒ³¿Ø¼þ³ÊÏÖ
|
/// </summary>
|
public partial class Pager : UserControl
|
{
|
public Pager()
|
{
|
InitializeComponent();
|
}
|
public event EventPagingHandler EventPaging;
|
/// <summary>
|
/// ÿҳÏÔʾ¼Ç¼Êý
|
/// </summary>
|
private int _pageSize = 50;
|
/// <summary>
|
/// ÿҳÏÔʾ¼Ç¼Êý
|
/// </summary>
|
public int PageSize
|
{
|
get { return _pageSize; }
|
set
|
{
|
_pageSize = value;
|
GetPageCount();
|
}
|
}
|
|
private int _nMax = 0;
|
/// <summary>
|
/// ×ܼǼÊý
|
/// </summary>
|
public int NMax
|
{
|
get { return _nMax; }
|
set
|
{
|
_nMax = value;
|
GetPageCount();
|
}
|
}
|
|
private int _pageCount = 0;
|
/// <summary>
|
/// Ò³Êý=×ܼǼÊý/ÿҳÏÔʾ¼Ç¼Êý
|
/// </summary>
|
public int PageCount
|
{
|
get { return _pageCount; }
|
set { _pageCount = value; }
|
}
|
|
private int _pageCurrent = 0;
|
/// <summary>
|
/// µ±Ç°Ò³ºÅ
|
/// </summary>
|
public int PageCurrent
|
{
|
get { return _pageCurrent; }
|
set { _pageCurrent = value; }
|
}
|
|
public BindingNavigator ToolBar
|
{
|
get { return this.bindingNavigator; }
|
}
|
|
private void GetPageCount()
|
{
|
if (this.NMax > 0)
|
{
|
this.PageCount = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(this.NMax) / Convert.ToDouble(this.PageSize)));
|
}
|
else
|
{
|
this.PageCount = 0;
|
}
|
}
|
|
/// <summary>
|
/// ·Ò³¿Ø¼þÊý¾Ý°ó¶¨µÄ·½·¨
|
/// </summary>
|
public void Bind()
|
{
|
this._pageSize = Convert.ToInt32(this.ComPageSize.Text);
|
if (this.EventPaging != null)
|
{
|
this.NMax = this.EventPaging(new EventPagingArg(this.PageCurrent));
|
}
|
|
if (this.PageCurrent > this.PageCount)
|
{
|
this.PageCurrent = this.PageCount;
|
}
|
if (this.PageCount == 1)
|
{
|
this.PageCurrent = 1;
|
}
|
lblPageCount.Text = this.PageCount.ToString();
|
this.lblMaxPage.Text = "¹²" + this.NMax.ToString() + "Ìõ¼Ç¼";
|
this.txtCurrentPage.Text = this.PageCurrent.ToString();
|
|
if (this.PageCurrent == 1)
|
{
|
this.btnPrev.Enabled = false;
|
this.btnFirst.Enabled = false;
|
}
|
else
|
{
|
btnPrev.Enabled = true;
|
btnFirst.Enabled = true;
|
}
|
|
if (this.PageCurrent == this.PageCount)
|
{
|
this.btnLast.Enabled = false;
|
this.btnNext.Enabled = false;
|
}
|
else
|
{
|
btnLast.Enabled = true;
|
btnNext.Enabled = true;
|
}
|
|
if (this.NMax == 0)
|
{
|
btnNext.Enabled = false;
|
btnLast.Enabled = false;
|
btnFirst.Enabled = false;
|
btnPrev.Enabled = false;
|
}
|
|
//GetComboxPageSize();
|
}
|
//·ÖÒ³´óСÏÂÀ¿ò
|
public void GetComboxPageSize()
|
{
|
this.ComPageSize.Items.Add("50");
|
this.ComPageSize.Items.Add("200");
|
this.ComPageSize.Items.Add("500");
|
this.ComPageSize.Items.Add("1000");
|
this.ComPageSize.Items.Add("2000");
|
//this.ComPageSize.SelectedIndex = 0;
|
}
|
|
private void btnFirst_Click(object sender, EventArgs e)
|
{
|
PageCurrent = 1;
|
this.Bind();
|
}
|
|
private void btnPrev_Click(object sender, EventArgs e)
|
{
|
PageCurrent -= 1;
|
if (PageCurrent <= 0)
|
{
|
PageCurrent = 1;
|
}
|
this.Bind();
|
}
|
|
private void btnNext_Click(object sender, EventArgs e)
|
{
|
this.PageCurrent += 1;
|
if (PageCurrent > PageCount)
|
{
|
PageCurrent = PageCount;
|
}
|
this.Bind();
|
}
|
|
private void btnLast_Click(object sender, EventArgs e)
|
{
|
PageCurrent = PageCount;
|
this.Bind();
|
}
|
|
private void btnGo_Click(object sender, EventArgs e)
|
{
|
if (this.txtCurrentPage.Text != null && txtCurrentPage.Text != "")
|
{
|
if (Int32.TryParse(txtCurrentPage.Text, out _pageCurrent))
|
{
|
this.Bind();
|
}
|
else
|
{
|
MessageBox.Show("ÊäÈëÊý×Ö¸ñʽ´íÎó£¡");
|
}
|
}
|
}
|
|
private void txtCurrentPage_KeyDown(object sender, KeyEventArgs e)
|
{
|
if (e.KeyCode == Keys.Enter)
|
{
|
this.Bind();
|
}
|
}
|
|
private void ComPageSize_TextChanged(object sender, EventArgs e)
|
{
|
this.Bind();
|
}
|
}
|
/// <summary>
|
/// ×Ô¶¨ÒåʼþÊý¾Ý»ùÀà
|
/// </summary>
|
public class EventPagingArg : EventArgs
|
{
|
private int _intPageIndex;
|
public EventPagingArg(int PageIndex)
|
{
|
_intPageIndex = PageIndex;
|
}
|
}
|
/// <summary>
|
/// Êý¾ÝÔ´Ìṩ
|
/// </summary>
|
public class PageData
|
{
|
private int _PageSize = 10;
|
private int _PageIndex = 1;
|
private int _PageCount = 0;
|
private int _TotalCount = 0;
|
private string _TableName;//±íÃû
|
private string _QueryFieldName = "*";//±í×Ö¶ÎFieldStr
|
private string _OrderStr = string.Empty; //ÅÅÐò_SortStr
|
private string _QueryCondition = string.Empty;//²éѯµÄÌõ¼þ RowFilter
|
private string _PrimaryKey = string.Empty;//Ö÷¼ü
|
private bool _isQueryTotalCounts = true;//ÊÇ·ñ²éѯ×ܵļǼÌõÊý
|
/// <summary>
|
/// ÊÇ·ñ²éѯ×ܵļǼÌõÊý
|
/// </summary>
|
public bool IsQueryTotalCounts
|
{
|
get { return _isQueryTotalCounts; }
|
set { _isQueryTotalCounts = value; }
|
}
|
/// <summary>
|
/// ÏÔʾҳÊý
|
/// </summary>
|
public int PageSize
|
{
|
get
|
{
|
return _PageSize;
|
|
}
|
set
|
{
|
_PageSize = value;
|
}
|
}
|
/// <summary>
|
/// µ±Ç°Ò³
|
/// </summary>
|
public int PageIndex
|
{
|
get
|
{
|
return _PageIndex;
|
}
|
set
|
{
|
_PageIndex = value;
|
}
|
}
|
/// <summary>
|
/// ×ÜÒ³Êý
|
/// </summary>
|
public int PageCount
|
{
|
get
|
{
|
return _PageCount;
|
}
|
}
|
/// <summary>
|
/// ×ܼǼÊý
|
/// </summary>
|
public int TotalCount
|
{
|
get
|
{
|
return _TotalCount;
|
}
|
}
|
/// <summary>
|
/// ±íÃû£¬°üÀ¨ÊÓͼ
|
/// </summary>
|
public string TableName
|
{
|
get
|
{
|
return _TableName;
|
}
|
set
|
{
|
_TableName = value;
|
}
|
}
|
/// <summary>
|
/// ±í×Ö¶ÎFieldStr
|
/// </summary>
|
public string QueryFieldName
|
{
|
get
|
{
|
return _QueryFieldName;
|
}
|
set
|
{
|
_QueryFieldName = value;
|
}
|
}
|
/// <summary>
|
/// ÅÅÐò×Ö¶Î
|
/// </summary>
|
public string OrderStr
|
{
|
get
|
{
|
return _OrderStr;
|
}
|
set
|
{
|
_OrderStr = value;
|
}
|
}
|
/// <summary>
|
/// ²éѯÌõ¼þ
|
/// </summary>
|
public string QueryCondition
|
{
|
get
|
{
|
return _QueryCondition;
|
}
|
set
|
{
|
_QueryCondition = value;
|
}
|
}
|
/// <summary>
|
/// Ö÷¼ü
|
/// </summary>
|
public string PrimaryKey
|
{
|
get
|
{
|
return _PrimaryKey;
|
}
|
set
|
{
|
_PrimaryKey = value;
|
}
|
}
|
/// <summary>
|
/// ÎïÁϱàÂë
|
/// </summary>
|
public string CN_S_ITEM_CODE { get; set; }
|
public string CN_S_ITEM_NAME { get; set; }
|
public string CN_S_MODEL { get; set; }
|
|
#region ·ÖÒ³×¢ÊÍ
|
//public DataSet QueryDataTable()
|
//{
|
// SqlParameter[] parameters = {
|
// new SqlParameter("@Tables", SqlDbType.VarChar, 255),
|
// new SqlParameter("@PrimaryKey" , SqlDbType.VarChar , 255),
|
// new SqlParameter("@Sort", SqlDbType.VarChar , 255 ),
|
// new SqlParameter("@CurrentPage", SqlDbType.Int),
|
// new SqlParameter("@PageSize", SqlDbType.Int),
|
// new SqlParameter("@Fields", SqlDbType.VarChar, 255),
|
// new SqlParameter("@Filter", SqlDbType.VarChar,1000),
|
// new SqlParameter("@Group" ,SqlDbType.VarChar , 1000 )
|
// };
|
// parameters[0].Value = _TableName;
|
// parameters[1].Value = _PrimaryKey;
|
// parameters[2].Value = _OrderStr;
|
// parameters[3].Value = PageIndex;
|
// parameters[4].Value = PageSize;
|
// parameters[5].Value = _QueryFieldName;
|
// parameters[6].Value = _QueryCondition;
|
// parameters[7].Value = string.Empty;
|
// DataSet ds = DbHelperSQL.RunProcedure("SP_Pagination", parameters, "dd");
|
// if (_isQueryTotalCounts)
|
// {
|
// _TotalCount = GetTotalCount();
|
// }
|
// if (_TotalCount == 0)
|
// {
|
// _PageIndex = 0;
|
// _PageCount = 0;
|
// }
|
// else
|
// {
|
// _PageCount = _TotalCount % _PageSize == 0 ? _TotalCount / _PageSize : _TotalCount / _PageSize + 1;
|
// if (_PageIndex > _PageCount)
|
// {
|
// _PageIndex = _PageCount;
|
|
// parameters[4].Value = _PageSize;
|
|
// ds = QueryDataTable();
|
// }
|
// }
|
// return ds;
|
//}
|
|
|
//ALTER PROCEDURE SP_Pagination
|
///**//*
|
//***************************************************************
|
//** ǧÍòÊýÁ¿¼¶·ÖÒ³´æ´¢¹ý³Ì **
|
//***************************************************************
|
//²ÎÊý˵Ã÷:
|
//1.Tables :±íÃû³Æ,ÊÓͼ
|
//2.PrimaryKey :Ö÷¹Ø¼ü×Ö
|
//3.Sort :ÅÅÐòÓï¾ä£¬²»´øOrder By ±ÈÈ磺NewsID Desc,OrderRows Asc
|
//4.CurrentPage :µ±Ç°Ò³Âë
|
//5.PageSize :·ÖÒ³³ß´ç
|
//6.Filter :¹ýÂËÓï¾ä£¬²»´øWhere
|
//7.Group :GroupÓï¾ä,²»´øGroup By
|
//Ч¹ûÑÝʾ£ºhttp://www.cn5135.com/_App/Enterprise/QueryResult.aspx
|
//***************************************************************/
|
//(
|
//@Tables varchar(2000),
|
//@PrimaryKey varchar(500),
|
//@Sort varchar(500) = NULL,
|
//@CurrentPage int = 1,
|
//@PageSize int = 10,
|
//@Fields varchar(2000) = '*',
|
//@Filter varchar(1000) = NULL,
|
//@Group varchar(1000) = NULL
|
//)
|
//AS
|
///**//*ĬÈÏÅÅÐò*/
|
//IF @Sort IS NULL OR @Sort = ''
|
//SET @Sort = @PrimaryKey
|
//DECLARE @SortTable varchar(1000)
|
//DECLARE @SortName varchar(1000)
|
//DECLARE @strSortColumn varchar(1000)
|
//DECLARE @operator char(2)
|
//DECLARE @type varchar(1000)
|
//DECLARE @prec int
|
///**//*É趨ÅÅÐòÓï¾ä.*/
|
//IF CHARINDEX('DESC',@Sort)>0
|
//BEGIN
|
//SET @strSortColumn = REPLACE(@Sort, 'DESC', '')
|
//SET @operator = '<='
|
//END
|
//ELSE
|
//BEGIN
|
//IF CHARINDEX('ASC', @Sort) = 0
|
//SET @strSortColumn = REPLACE(@Sort, 'ASC', '')
|
//SET @operator = '>='
|
//END
|
//IF CHARINDEX('.', @strSortColumn) > 0
|
//BEGIN
|
//SET @SortTable = SUBSTRING(@strSortColumn, 0, CHARINDEX('.',@strSortColumn))
|
//SET @SortName = SUBSTRING(@strSortColumn, CHARINDEX('.',@strSortColumn) + 1, LEN(@strSortColumn))
|
//END
|
//ELSE
|
//BEGIN
|
//SET @SortTable = @Tables
|
//SET @SortName = @strSortColumn
|
//END
|
//SELECT @type=t.name, @prec=c.prec
|
//FROM sysobjects o
|
//JOIN syscolumns c on o.id=c.id
|
//JOIN systypes t on c.xusertype=t.xusertype
|
//WHERE o.name = @SortTable AND c.name = @SortName
|
//IF CHARINDEX('char', @type) > 0
|
//SET @type = @type + '(' + CAST(@prec AS varchar) + ')'
|
//DECLARE @strPageSize varchar(500)
|
//DECLARE @strStartRow varchar(500)
|
//DECLARE @strFilter varchar(1000)
|
//DECLARE @strSimpleFilter varchar(1000)
|
//DECLARE @strGroup varchar(1000)
|
///**//*ĬÈϵ±Ç°Ò³*/
|
//IF @CurrentPage < 1
|
//SET @CurrentPage = 1
|
///**//*ÉèÖ÷ÖÒ³²ÎÊý.*/
|
//SET @strPageSize = CAST(@PageSize AS varchar(500))
|
//SET @strStartRow = CAST(((@CurrentPage - 1)*@PageSize + 1) AS varchar(500))
|
///**//*ɸѡÒÔ¼°·Ö×éÓï¾ä.*/
|
//IF @Filter IS NOT NULL AND @Filter != ''
|
//BEGIN
|
//SET @strFilter = ' WHERE ' + @Filter + ' '
|
//SET @strSimpleFilter = ' AND ' + @Filter + ' '
|
//END
|
//ELSE
|
//BEGIN
|
//SET @strSimpleFilter = ''
|
//SET @strFilter = ''
|
//END
|
//IF @Group IS NOT NULL AND @Group != ''
|
//SET @strGroup = ' GROUP BY ' + @Group + ' '
|
//ELSE
|
//SET @strGroup = ''
|
///**//*Ö´ÐвéѯÓï¾ä*/
|
//EXEC(
|
//'
|
//DECLARE @SortColumn ' + @type + '
|
//SET ROWCOUNT ' + @strStartRow + '
|
//SELECT @SortColumn=' + @strSortColumn + ' FROM ' + @Tables + @strFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + '
|
//SET ROWCOUNT ' + @strPageSize + '
|
//SELECT ' + @Fields + ' FROM ' + @Tables + ' WHERE ' + @strSortColumn + @operator + ' @SortColumn ' + @strSimpleFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + '
|
//'
|
//)
|
#endregion ·ÖÒ³×¢ÊÍ
|
|
|
public List<AutoBomItemEntity> QueryDataTable()
|
{
|
List<AutoBomItemEntity> dt = new List<AutoBomItemEntity>();
|
try
|
{
|
var userInfo = new AccountEntity();
|
var ss = userInfo.Token;
|
string str = WebApiManager.HttpWMS_Get("/api/Common/GetListItemByCode?itemCode=" + CN_S_ITEM_CODE + "&itemName=" + CN_S_ITEM_NAME + "&model=" + CN_S_MODEL + "&pageIndex=" + _PageIndex + "&pageSize=" + _PageSize);
|
|
OperateResult results = JsonConvert.DeserializeObject<OperateResult>(str);
|
|
if (results.Status == ResultStatus.Success)
|
{
|
JObject obj = null;
|
|
obj = (JObject)results.Data;
|
|
if (_isQueryTotalCounts)
|
{
|
_TotalCount = Convert.ToInt32(obj["total"]);
|
}
|
if (_TotalCount == 0)
|
{
|
_PageIndex = 0;
|
_PageCount = 0;
|
}
|
else
|
{
|
_PageCount = _TotalCount % _PageSize == 0 ? _TotalCount / _PageSize : _TotalCount / _PageSize + 1;
|
if (_PageIndex > _PageCount)
|
{
|
_PageIndex = _PageCount;
|
dt = QueryDataTable();
|
}
|
}
|
dt = JsonConvert.DeserializeObject<List<AutoBomItemEntity>>(obj["rows"].ToString());
|
foreach (AutoBomItemEntity entity in dt)
|
{
|
entity.CN_S_MODEL= entity.CN_S_MODEL.Replace("'", "\"");
|
}
|
return dt;
|
}
|
else
|
{
|
MessageBoxEx.Show(results.Msg);
|
return dt;
|
}
|
}
|
catch(Exception ex)
|
{
|
MessageBoxEx.Show(ex.Message);
|
return dt;
|
}
|
}
|
}
|
}
|