/***************************************
*基础资料:供应商信息列表
**************************************/
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 WMS.Frm.Base;
using WMS.Model.Base;
using WMS.Common;
using WMS.Ctrl;
using NPOI;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System.IO;
using System.Collections;
using System.Reflection;
using WMS.Business;
using WMS.Business.SystemManage;
using WMS.Business.Base;
using WMS.Frm;
namespace WMS.FrmBaseData
{
public partial class FrmProvider : FormBase
{
///
/// 供应商MODEL
///
public static ProviderModel providerModel;
///
/// 供应商数据源
///
List Sourcelist = new List();
List CopyList = new List();
List addList = new List();
///
/// 业务类型
///
int workflag;//0 增加 1 修改 2 删除 3 显示信息
string path = string.Empty;
//private HSSFWorkbook _workbook;
//private ISheet _sheet;
List list;
public FrmProvider()
{
InitializeComponent();
}
///
/// 页面加载
///
///
///
private void FrmProvider_Load(object sender, EventArgs e)
{
FrmSelectModle = new ProviderModel();
BSProvidertab.DataSource = new ProviderModel();
BindGrid();
//try
//{
// list = IBussFactory.Instance().GetDictionaryTab("providertype_lever");
//}
//catch(Exception ex)
//{
// SystemCommon.ShowInfoMessageBox("出错了:"+ex.Message);
//}
}
///
/// 双击GRID,业务启动
///
///
///
private void GCProvider_DoubleClick(object sender, EventArgs e)
{
workflag = 1;
if (GVProvider.FocusedRowHandle < 0)
{
return;
}
try
{
providerModel = GVProvider.GetRow(GVProvider.FocusedRowHandle) as ProviderModel;
}
catch (Exception ex)
{
MessageBox.Show("出错了:"+ex.Message);
}
//providerModel
FrmProviderDet proDet = new FrmProviderDet(workflag, providerModel);
proDet.ShowDialog();
BindGrid();
}
///
/// 通用查询
///
///
public override void LoadListData(DataTable table)
{
//LoadForm load = new LoadForm();
//DevExpress.XtraSplashScreen.SplashScreenManager.ShowForm(load, load.GetType(), false, true, false, 30);
Sourcelist = ConvertHelper.ConvertToList(table);
GCProvider.DataSource = Sourcelist;
GVProvider.RefreshData();
// DevExpress.XtraSplashScreen.SplashScreenManager.CloseForm();
}
///
/// 绑定GRID数据
///
private void BindGrid()
{
try
{
DataSet dtProvider = IBussFactory.Instance().getProviderDS(new ProviderModel());
Sourcelist = ConvertHelper.ConvertToList(dtProvider.Tables[0]);
CopyList = Sourcelist.ToList();
if(Sourcelist!=null)
{
GCProvider.DataSource = Sourcelist;
if(Sourcelist.Count>0)
{
string providerID = Sourcelist[0].PROVIDER_ID;
BindProviderData(providerID);
}
}
GVProvider.RefreshData();
BSProvidertab.DataSource = new ProviderModel();
}
catch (Exception ex)
{
SystemCommon.ShowInfoMessageBox("加载供应商出错了:" + ex.Message);
}
}
#region 以下是继承的按钮事件
///
/// 新增按钮
///
public void Add()
{
//调用实例化窗体
FrmOperator(0);
}
///
/// 删除按钮
///
public void Del()
{
if (GVProvider.FocusedRowHandle >= 0)
{
if (CopyList.Count(r => r.PROVIDER_ID == GVProvider.GetFocusedRowCellValue("PROVIDER_ID").ToString()) == 0)
{
Sourcelist.Remove(GVProvider.GetFocusedRow() as ProviderModel);
addList.Remove(GVProvider.GetFocusedRow() as ProviderModel);
}
else
{
if (SystemCommon.ShowMessageBoxResult("确定要删除:" + GVProvider.GetFocusedRowCellValue("PROVIDER_NAME").ToString())
== System.Windows.Forms.DialogResult.OK)
{
string errtext = IBussFactory.Instance().execProviderDel(GVProvider.GetFocusedRow() as ProviderModel);
if (!string.IsNullOrEmpty(errtext))
{
SystemCommon.ShowErrorMessageBox(errtext);
}
else
{
SystemCommon.ShowInfoMessageBox("删除成功!");
BindGrid();
}
}
}
}
}
///
/// 修改按钮
///
public void Edit()
{
//调用实例化窗体
FrmOperator(1);
}
///
/// 刷新按钮
///
public void Refresh()
{
BindGrid();
}
///
/// 查询按钮
///
public void Search()
{
FrmSelect frm = new FrmSelect(this.FrmSelectModle);
if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
this.LoadListData(frm.SelectData);
}
}
///
/// 保存导入
///
public void Save()
{
if(addList!=null)
{
if(addList.Count>0)
{
string errText= IBussFactory.Instance().AddProiderData(addList);
if(errText.Trim().Length>0)
{
SystemCommon.ShowInfoMessageBox("保存失败");
return;
}
BindGrid();
}
}
}
///
/// 导入
///
public void Import()
{
OpenFileDialog fileDialog = new OpenFileDialog();
fileDialog.Title = "导入供应商资料";
//fileDialog.Filter = "Excel文件(*.xls)|*.xls";
fileDialog.Filter = "Excel文件(*.xls;*.xlsx)|*.xls;*.xlsx";
DialogResult dialogResult = fileDialog.ShowDialog(this);
if (dialogResult == DialogResult.OK)
{
LoadForm load = new LoadForm();
DevExpress.XtraSplashScreen.SplashScreenManager.ShowForm(load, load.GetType(), false, true, false, 50);
DevExpress.XtraSplashScreen.SplashScreenManager.Default.SetWaitFormDescription("正在加载数据,请稍等....");
Hashtable ht = new Hashtable();
ht.Add("PROVIDER_ID", "供应商代码");
ht.Add("PROVIDER_NAME", "供应商名称");
//ht.Add("PROVIDER_LEVEL", "供应商等级");
// ht.Add("Goods_ID", "物料编号");
// ht.Add("GOODS_PRICE", "标准价格");
addList = NPOIHelper.Import(fileDialog, ht);
if (addList != null)
{
if (addList.Count > 0)
{
Sourcelist.InsertRange(0, addList);
GVProvider.RefreshData();
frmButtonItem["Save"].Enabled = true;
workflag = 0;
}
}
DevExpress.XtraSplashScreen.SplashScreenManager.CloseForm();
}
}
#endregion
#region 操作(增、改、删)
///
/// 操作(增、改、删)
///
/// 0 新增 1修改 2删除/param>
private void FrmOperator(int flag)
{
FrmProviderDet proDet;
if (flag == 0)
{
proDet = new FrmProviderDet(flag, new ProviderModel());
proDet.ShowDialog();
BindGrid();
}
else
{
workflag = flag;
GCProvider_DoubleClick(null, null);
}
}
#endregion
///
/// 显示改变
///
///
///
private void GVProvider_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
{
//if (e.Value != null && e.Value != DBNull.Value)
//{
// if (e.Column.FieldName == "PROVIDER_LEVEL")
// {
// foreach (WMS.Model.SystemManage.DictionaryTabModel m in list)
// {
// if (e.Value.ToString() == m.VC_CHAR_VALUE)
// {
// e.DisplayText = m.VC_DICTIONARY_NAME;
// return;
// }
// }
// }
//}
}
void BindProviderData(string provider)
{
List DataGoods= IBussFactory.Instance().GetGoodsData(provider);
if(DataGoods!=null)
{
goodsInfoModelBindingSource.DataSource = DataGoods;
}
}
private void GVProvider_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
{
if(GVProvider.RowCount==0)
{
return;
}
if(GVProvider.FocusedRowHandle<0)
{
return;
}
string providerID = GVProvider.GetFocusedRowCellValue("PROVIDER_ID").ToString();
BindProviderData(providerID);
}
}
}