using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging; using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data;
using System.Windows.Forms;
using System.Collections;
using https://www.doczj.com/doc/3b8581448.html,ponentModel;
using Microsoft.Win32;
using https://www.doczj.com/doc/3b8581448.html,;
using System.IO;
using TranRC.Entitles;
using TranRC.windows;
using TranRC.Class;
using TranRC.View;
using System.Xml.Linq;
using System.Configuration;
using System.Runtime.InteropServices;
namespace TranRC.TranAccount
{
///
/// TranMainWin.xaml 的交互逻辑
///
///
public partial class TranMainWin : Window {
///
/// WIN32程序调用准备结构体
///
public struct MyPoint
{
public int X;
public int Y;
}
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern bool GetCursorPos(ref MyPoint pt);
#region初始化全局变量
public TranMainWin()
{
InitializeComponent();
}
public ForWait fw = new ForWait();
public List
public BackgroundWorker _bgw = new BackgroundWorker();
public BackgroundWorker _bgwActRe = new BackgroundWorker();
public BackgroundWorker _bgwAct = new BackgroundWorker();
static public DateTime TranActReFromDate;
static public DateTime TranActReToDate;
public IEnumerable
public IEnumerable
static public Test_MisEntities tz = new Test_MisEntities();
static public Test_MisEntities tzAct = new Test_MisEntities();
static public Test_MisEntities tzActRe= new Test_MisEntities();
public DllZSD504B.DllZSD504BClass ddl = new DllZSD504B.DllZSD504BClass();
static public bool IsMouseMoveDeleteMode = false;
static public bool IsMouseMoveCountMode = false;
static public Point CurrentMousePoint;
static public List
static public List
static public List
static public List
static public List
static public List
static public List
static public List
static public List
static public List
public List
public List
public int TotalPageAct = 0;
public int CurrentPageAct = 0;
public List
public List
public List
public int TotalPageActRe= 0;
public int CurrentPageActRe = 0;
public int PageCount= 17;
public bool IsOk = true;
static public System.Windows.Controls.DataGrid DetailDataGrid = new System.Windows.Controls.DataGrid(); static public System.Windows.Controls.DataGrid DetailDataGrid2 = new System.Windows.Controls.DataGrid(); public List
public List
public bool IsMouseChooseStart { get; set; }
public string GetUserName { get; set; } // 获取用户名
public string GetFactory { get; set; } // 获取工厂信息
public string t_GetCurrentFactory { get; set; } // 存取全局工厂变量
static public t_TranPur CurrentUserPermission;
public FunWin fwi = new FunWin();
public bool StartFunWin=false;
public Timer TLoginTime = new Timer();
public int TLoginTimeCount = 0;
public bool TranWidth=false; //判断鼠标是否在按住左键(运费你好界面的DataGrid)
public bool TranWidthStart = false; //判断鼠标是否在按住左键, 并且在指定的区域内(运费你好界面的DataGrid)#endregion
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#region事件处理组
///
///系统加载
///
///
///
private void Window_Loaded(object sender, RoutedEventArgs e)
{
LoadData();
}
///
///系统关闭前注销当前用户状态
///
///
///
private void Window_Closing(object sender, CancelEventArgs e)
{
// ddl.OnlineEnd(CurrentUserPermission.billerid);
}
private void btnClose_Click(object sender, RoutedEventArgs e)
{
App.Current.Shutdown();
}
private void btnMin_Click(object sender, RoutedEventArgs e)
{
this.WindowState = WindowState.Minimized;
}
private void btnAddRow_Click(object sender, RoutedEventArgs e)
{
AddRow();
private void btnSaveRow_Click(object sender, RoutedEventArgs e)
{
SaveData();
}
private void btnLoadData_Click(object sender, RoutedEventArgs e)
{
ForWait fw = new ForWait();
fw.SetWaitText = "Now LoadData";
fw.IsLoadAsyncWork = true;
bRe.Visibility = Visibility.Visible;
fw.ShowDialog();
bRe.Visibility = Visibility.Hidden;
//ExportSap_Transport();
}
private void btnDeleteRow_Click(object sender, RoutedEventArgs e)
{
DeleteRow();
}
private void btnNextRow_Click(object sender, RoutedEventArgs e)
{
}
private void txtSearch_TextChanged(object sender, TextChangedEventArgs e)
{
}
private void cboBaseDataType_SelectionChanged(object sender, SelectionChangedEventArgs e) {
if (((https://www.doczj.com/doc/3b8581448.html,boBox)(e.Source)).SelectedValue.ToString() == "用户权限表") {
//((ComboBox)(e.Source)).SelectedValue = null;
System.Windows.MessageBox.Show("你没有查看的权限,请联系你的权限管理人!");
}
else
{
ChooseLoadSourceShow();
}
}
#endregion
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
///
///要开始了
///
void LoadData()
{
this.MaxHeight = System.Windows.SystemParameters.WorkArea.Height;
Timer UpdateOnlineUserList = new Timer();
UpdateOnlineUserList.Interval = 60000;
UpdateOnlineUserList.Tick += new EventHandler(UpdateOnlineUserList_Tick);
UpdateOnlineUserList.Start();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////
TLoginTime.Interval = 1000;
TLoginTime.Tick += new EventHandler(TLoginTime_Tick);
//TLoginTime.Start();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////
_bgw.DoWork += new DoWorkEventHandler(_bgw_DoWork); //后台线程工作程式
_bgw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(_bgw_RunWorkerCompleted); //后台线程完成程序
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////
_bgwActRe.DoWork += new DoWorkEventHandler(_bgwActRe_DoWork);
_bgwActRe.RunWorkerCompleted += new
RunWorkerCompletedEventHandler(_bgwActRe_RunWorkerCompleted);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////
dtpReFromDate.SelectedDate = DateTime.Now.AddDays(-1);
dtpReToDate.SelectedDate = DateTime.Now;
dtpReFromDateAct.SelectedDate = DateTime.Now.AddDays(-1);
dtpReToDateAct.SelectedDate = DateTime.Now;
dtpReFromDateActRe.SelectedDate = DateTime.Now.AddDays(-1);
dtpReToDateActRe.SelectedDate = DateTime.Now;
dgShowTran.RowDetailsVisibilityMode = DataGridRowDetailsVisibilityMode.Collapsed;
DetailDataGrid.RowDetailsVisibilityMode = DataGridRowDetailsVisibilityMode.Collapsed;
DetailDataGrid2.RowDetailsVisibilityMode = DataGridRowDetailsVisibilityMode.Collapsed;
dgShowTranAct.RowDetailsVisibilityMode = DataGridRowDetailsVisibilityMode.Collapsed;
dgShowTranActRe.RowDetailsVisibilityMode = DataGridRowDetailsVisibilityMode.Collapsed;
bTranActReCount.Visibility = Visibility.Hidden; //隐藏财务复核栏位计数边框
bTranActCount.Visibility = Visibility.Hidden; //隐藏审核核栏位计数边框ii
imgDataContext6.DataContext = "当前用户:" + CurrentUserPermission.uname;
LoadUserIcon();
imgDataContext7.DataContext = "货权工厂:" + CurrentUserPermission.FactoryID;
txtDataBase.DataContext=System.Configuration.ConfigurationManager.AppSettings["CurrentDattaBase"].ToString();
imgDataContext3.DataContext = 0;
imgDataContext4.DataContext = 0;
LoadSap_Transport();
tabControl.SelectedIndex = 1;
///财务复核并退单
if (CurrentUserPermission.pur == 0 && CurrentUserPermission.Nopur ==1 && CurrentUserPermission.edit == 0)
{
tabGeneralData.Visibility = Visibility.Collapsed;
tabTranCaritem.Visibility = Visibility.Collapsed;
tabTranCaritem2.Visibility = Visibility.Collapsed;
tabTranCar.SelectedIndex = 2;
}
///财务复核并退单
if (CurrentUserPermission.pur == 1 && CurrentUserPermission.Nopur == 0 && CurrentUserPermission.edit == 0)
{
tabGeneralData.Visibility = Visibility.Collapsed;
tabTranCaritem.Visibility = Visibility.Collapsed;
tabTranCaritem3.Visibility = Visibility.Collapsed;
tabTranCar.SelectedIndex = 1;
}
///只做单
if (CurrentUserPermission.pur==0 && CurrentUserPermission.Nopur==0 && CurrentUserPermission.edit==1)
{
tabGeneralData.Visibility = Visibility.Collapsed;
tabControl.SelectedIndex = 1;
tabTranCaritem2.Visibility = Visibility.Collapsed;
tabTranCaritem3.Visibility = Visibility.Collapsed;
tabTranCar.SelectedIndex = 0;
}
CurrentOnline();
}
///
///财务复核运费后台工作线程(完成时,可以更新UI)
///
///
///
void _bgwActRe_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) {
AfterLoadTranActRe();
}
///
///财务复核运费后台工作线程
///
///
///
void _bgwActRe_DoWork(object sender, DoWorkEventArgs e)
{
LoadTranActRe(string.Empty);
}
///
///1分钟更新一次在线用户列表
///
///
///
void UpdateOnlineUserList_Tick(object sender, EventArgs e)
{
CurrentOnline();
}
///
///加载用户自定义图标
///
private void LoadUserIcon()
{
if (https://www.doczj.com/doc/3b8581448.html,erCode.ToUpper() == "ADMIN")
{
imgDataContext6.Source = new BitmapImage(new Uri("/TranRC;component/Images/MaM.jpg", UriKind.RelativeOrAbsolute));
}
if (https://www.doczj.com/doc/3b8581448.html,erCode.ToUpper() == "XF-ZHANGD")
{
imgDataContext6.Source = new BitmapImage(new Uri("/TranRC;component/Images/ZhangD.png", UriKind.RelativeOrAbsolute));
}
if (https://www.doczj.com/doc/3b8581448.html,erCode.ToUpper() == "XF-LIX")
{
imgDataContext6.Source = new BitmapImage(new Uri("/TranRC;component/Images/XF-LIX.jpg", UriKind.RelativeOrAbsolute));
}
if (https://www.doczj.com/doc/3b8581448.html,erCode.ToUpper() == "XF-SIM")
{
imgDataContext6.Source = new BitmapImage(new Uri("/TranRC;component/Images/XF-SIM.jpg", UriKind.RelativeOrAbsolute));
}
if (https://www.doczj.com/doc/3b8581448.html,erCode.ToUpper() == "XF-CHENL")
{
imgDataContext6.Source = new BitmapImage(new Uri("/TranRC;component/Images/XF-CHENL.jpg", UriKind.RelativeOrAbsolute));
}
if (https://www.doczj.com/doc/3b8581448.html,erCode.ToUpper() == "XF-PENGL")
{
imgDataContext6.Source = new BitmapImage(new Uri("/TranRC;component/Images/XF-PENGL.jpg",
UriKind.RelativeOrAbsolute));
}
if (https://www.doczj.com/doc/3b8581448.html,erCode.ToUpper() == "XA-WEIL")
{
imgDataContext6.Source = new BitmapImage(new Uri("/TranRC;component/Images/XA-WEIL.jpg", UriKind.RelativeOrAbsolute));
}
if (https://www.doczj.com/doc/3b8581448.html,erCode.ToUpper() == "XA-ZHANGY")
{
imgDataContext6.Source = new BitmapImage(new Uri("/TranRC;component/Images/XA-ZHANGY.jpg", UriKind.RelativeOrAbsolute));
}
if (https://www.doczj.com/doc/3b8581448.html,erCode.ToUpper() == "XA-LIMC")
{
imgDataContext6.Source = new BitmapImage(new Uri("/TranRC;component/Images/XA-LIMC.jpg", UriKind.RelativeOrAbsolute));
}
}
///异步调用完成后事件处理,可访问UI
///
///
///
void _bgw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
ActAfterLoad(e.Result);
}
///
///异步调用过程
///
///
///
void _bgw_DoWork(object sender, DoWorkEventArgs e)
{
e.Result= LoadSap_Transport();
}
///
///时间轮询事件
///
///
///
void TLoginTime_Tick(object sender, EventArgs e)
{
TLoginTimeCount++;
if (TLoginTimeCount==5)
{
TLoginTimeCount = 0;
StartFunWin = true;
}
}
///
///选择相应数据源
///
void ChooseLoadSourceShow()
{
switch (cboBaseDataType.SelectedValue.ToString())
{
case"城市表":
ltCity.Clear();
IEnumerable
foreach (t_city item in tCity)
{
ltCity.Add(item);
}
if (ltNewCity.Count() > 0)
{
foreach (var item in ltNewCity)
{
ltCity.Add(item);
}
}
dgShowBase.DataContext = ltCity;
SetGridColumnsReadOnly();
break;
case"省份表":
ltState.Clear();
IEnumerable
foreach (t_state item in tState)
{
ltState.Add(item);
}
if (ltNewState.Count() > 0)
{
foreach (var item in ltNewState)
{
ltState.Add(item);
}
}
dgShowBase.DataContext = ltState;
SetGridColumnsReadOnly();
break;
case"用户权限表":
ltTranPur.Clear();
IEnumerable
foreach (t_TranPur item in tTranPur)
{
ltTranPur.Add(item);
}
if (ltNewTranPur.Count() > 0)
{
foreach (var item in ltNewTranPur)
{
ltTranPur.Add(item);
}
}
dgShowBase.DataContext = ltTranPur;
SetGridColumnsReadOnly();
break;
case"运输方式表":
ltTransport.Clear();
IEnumerable
foreach (t_transport item in tTransport)
{
ltTransport.Add(item);
}
if (ltNewTransport.Count() > 0)
{
foreach (var item in ltNewTransport)
{
ltTransport.Add(item);
}
}
dgShowBase.DataContext = ltTransport;
SetGridColumnsReadOnly();
break;
case"运费吨价表":
ltTransportFee.Clear();
IEnumerable
foreach (t_TransportFee item in tTransportFee)
{
ltTransportFee.Add(item);
}
if (ltNewTransportFee.Count() > 0)
{
foreach (var item in ltNewTransportFee)
{
ltTransportFee.Add(item);
}
}
dgShowBase.DataContext = ltTransportFee;
SetGridColumnsReadOnly();
break;
default:
break;
}
}
///
///设置列样式
///
private void SetGridColumnsReadOnly()
{
dgShowBase.IsReadOnly = false;
dgShowBase.Columns[0].IsReadOnly = true;
dgShowBase.Columns[0].Visibility = Visibility.Hidden;
dgShowBase.Columns[dgShowBase.Columns.Count - 1].Visibility = Visibility.Hidden;
dgShowBase.Columns[dgShowBase.Columns.Count - 2].Visibility = Visibility.Hidden; }
///
///增加新行
///
private void AddRow()
{
try
{
switch (cboBaseDataType.SelectedValue.ToString())
{
case"用户权限表":
t_TranPur ttranPur = new t_TranPur();
ltNewTranPur.Add(ttranPur);
ltTranPur.Add(ttranPur);
dgShowBase.DataContext = null;
dgShowBase.DataContext = ltTranPur;
SetAddRowCurrent();
break;
case"省份表":
t_state tState = new t_state();
ltNewState.Add(tState);
ltState.Add(tState);
dgShowBase.DataContext = null;
dgShowBase.DataContext = ltState;
SetAddRowCurrent();
break;
case"城市表":
t_city tCity = new t_city();
ltNewCity.Add(tCity);
ltCity.Add(tCity);
dgShowBase.DataContext = null;
dgShowBase.DataContext = ltCity;
SetAddRowCurrent();
break;
case"运输方式表":
t_transport tTransoort = new t_transport();
ltNewTransport.Add(tTransoort);
ltTransport.Add(tTransoort);
dgShowBase.DataContext = null;
dgShowBase.DataContext = ltTransport;
SetAddRowCurrent();
break;
case"运费吨价表":
t_TransportFee tTransoortFee = new t_TransportFee();
ltNewTransportFee.Add(tTransoortFee);
ltTransportFee.Add(tTransoortFee);
dgShowBase.DataContext = null;
dgShowBase.DataContext = ltTransportFee;
SetAddRowCurrent();
break;
default:
break;
}
}
catch (Exception Mye)
{
MyMessageBoxShowException(Mye);
}
}
///
///增加新行后设置列
///
private void SetAddRowCurrent()
{
dgShowBase.SelectedItem = dgShowBase.Items[dgShowBase.Items.Count - 1];
dgShowBase.ScrollIntoView(dgShowBase.SelectedItem);
SetGridColumnsReadOnly();
}
///
///删除数据
///
private void DeleteRow()
{
try
{
if (dgShowBase.Items.Count == 0)
{
MyMessageBoxShowText ("没有数据可以删除!",string.Empty);
}
else
{
System.Windows.MessageBoxResult Rel = System.Windows.MessageBox.Show("你确定要删除SAP 数据吗?", "提示", MessageBoxButton.YesNo);
if (Rel == System.Windows.MessageBoxResult.Yes)
{
DeleteRowDetail();
}
}
}
catch (Exception Mye)
{
MyMessageBoxShowException(Mye);
}
}
///
///删除数据实现方法
///
private void DeleteRowDetail()
{
switch (cboBaseDataType.SelectedValue.ToString())
{
case"用户权限表":
foreach (t_TranPur items in dgShowBase.SelectedItems)
{
if (items.uname == null || items.uname == string.Empty)
ltTranPur.Remove(items);
ltNewTranPur.Remove(items);
}
else
{
foreach (t_TranPur item in tz.t_TranPur)
{
if (items == item)
{
tz.t_TranPur.DeleteObject(item);
ltTranPur.Remove(item);
}
}
}
}
tz.SaveChanges();
dgShowBase.DataContext = null;
dgShowBase.DataContext = ltTranPur;
break;
case"省份表":
foreach (t_state items in dgShowBase.SelectedItems)
{
if (items.statename == null || items.statename == string.Empty)
{
ltState.Remove(items);
ltNewState.Remove(items);
}
else
{
foreach (t_state item in tz.t_state)
{
if (items == item)
{
tz.t_state.DeleteObject(item);
ltState.Remove(item);
}
}
}
tz.SaveChanges();
dgShowBase.DataContext = null;
dgShowBase.DataContext = ltState;
break;
case"城市表":
foreach (t_city items in dgShowBase.SelectedItems)
{
if (items.cityname == null || items.cityname == string.Empty)
{
ltCity.Remove(items);
ltNewCity.Remove(items);
}
else
{
foreach (t_city item in tz.t_city)
{
if (items == item)
{
tz.t_city.DeleteObject(item);
ltCity.Remove(item);
}
}
}
}
tz.SaveChanges();
dgShowBase.DataContext = null;
dgShowBase.DataContext = ltCity;
break;
case"运输方式表":
foreach (t_transport items in dgShowBase.SelectedItems)
{
if (items.tptname == null || items.tptname == string.Empty)
{
ltTransport.Remove(items);
ltNewTransport.Remove(items);
}
else
{
foreach (t_transport item in tz.t_transport)
{
if (items == item)
{
tz.t_transport.DeleteObject(item);
ltTransport.Remove(item);
}
}
}
}
tz.SaveChanges();
dgShowBase.DataContext = null;
dgShowBase.DataContext = ltTransport;
break;
case"运费吨价表":
foreach (t_TransportFee items in dgShowBase.SelectedItems)
{
if (items.additioninfo == null || items.additioninfo ==string.Empty)
{
ltTransportFee.Remove(items);
ltNewTransportFee.Remove(items);
}
else
{
foreach (t_TransportFee item in tz.t_TransportFee)
{
if (items == item)
{
tz.t_TransportFee.DeleteObject(item);
ltTransportFee.Remove(item);
}
}
}
}
tz.SaveChanges();
dgShowBase.DataContext = null;
dgShowBase.DataContext = ltTransportFee;
break;
default:
break;
}
SetGridColumnsReadOnly();
MyMessageBoxShowText("Delete Success!",string.Empty);
}
///
///保存数据
///
private void SaveData()
{
try
{
switch (cboBaseDataType.SelectedValue.ToString())
{
case"用户权限表":
if (ltNewTranPur.Count > 0)
{
foreach (t_TranPur item in ltNewTranPur)
{
tz.t_TranPur.AddObject(item);
}
ltNewTranPur.Clear();
}
tz.SaveChanges();
MyMessageBoxShowText("Save Success!",string.Empty);
break;
case"省份表":
if (ltNewState.Count > 0)
{
foreach (t_state item in ltNewState)
{