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
{
///
/// ÉêÃ÷ίÍÐ
///
///
///
public delegate int EventPagingHandler(EventPagingArg e);
///
/// ·ÖÒ³¿Ø¼þ³ÊÏÖ
///
public partial class Pager : UserControl
{
public Pager()
{
InitializeComponent();
}
public event EventPagingHandler EventPaging;
///
/// ÿҳÏÔʾ¼Ç¼Êý
///
private int _pageSize = 50;
///
/// ÿҳÏÔʾ¼Ç¼Êý
///
public int PageSize
{
get { return _pageSize; }
set
{
_pageSize = value;
GetPageCount();
}
}
private int _nMax = 0;
///
/// ×ܼǼÊý
///
public int NMax
{
get { return _nMax; }
set
{
_nMax = value;
GetPageCount();
}
}
private int _pageCount = 0;
///
/// Ò³Êý=×ܼǼÊý/ÿҳÏÔʾ¼Ç¼Êý
///
public int PageCount
{
get { return _pageCount; }
set { _pageCount = value; }
}
private int _pageCurrent = 0;
///
/// µ±Ç°Ò³ºÅ
///
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;
}
}
///
/// ·Ò³¿Ø¼þÊý¾Ý°ó¶¨µÄ·½·¨
///
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();
}
}
///
/// ×Ô¶¨ÒåʼþÊý¾Ý»ùÀà
///
public class EventPagingArg : EventArgs
{
private int _intPageIndex;
public EventPagingArg(int PageIndex)
{
_intPageIndex = PageIndex;
}
}
///
/// Êý¾ÝÔ´Ìṩ
///
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;//ÊÇ·ñ²éѯ×ܵļǼÌõÊý
///
/// ÊÇ·ñ²éѯ×ܵļǼÌõÊý
///
public bool IsQueryTotalCounts
{
get { return _isQueryTotalCounts; }
set { _isQueryTotalCounts = value; }
}
///
/// ÏÔʾҳÊý
///
public int PageSize
{
get
{
return _PageSize;
}
set
{
_PageSize = value;
}
}
///
/// µ±Ç°Ò³
///
public int PageIndex
{
get
{
return _PageIndex;
}
set
{
_PageIndex = value;
}
}
///
/// ×ÜÒ³Êý
///
public int PageCount
{
get
{
return _PageCount;
}
}
///
/// ×ܼǼÊý
///
public int TotalCount
{
get
{
return _TotalCount;
}
}
///
/// ±íÃû£¬°üÀ¨ÊÓͼ
///
public string TableName
{
get
{
return _TableName;
}
set
{
_TableName = value;
}
}
///
/// ±í×Ö¶ÎFieldStr
///
public string QueryFieldName
{
get
{
return _QueryFieldName;
}
set
{
_QueryFieldName = value;
}
}
///
/// ÅÅÐò×Ö¶Î
///
public string OrderStr
{
get
{
return _OrderStr;
}
set
{
_OrderStr = value;
}
}
///
/// ²éѯÌõ¼þ
///
public string QueryCondition
{
get
{
return _QueryCondition;
}
set
{
_QueryCondition = value;
}
}
///
/// Ö÷¼ü
///
public string PrimaryKey
{
get
{
return _PrimaryKey;
}
set
{
_PrimaryKey = value;
}
}
///
/// ÎïÁϱàÂë
///
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 QueryDataTable()
{
List dt = new List();
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(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>(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;
}
}
}
}