using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using System.Drawing;
using System.Data.SqlClient;
using System.Net.Sockets;
using System.Net;
namespace Pub_Class
{
public class ClsPub
{
//public static string HTextBox = "HXErp_Test.ini";
public static string HTextBox = "HXErp.ini";
public static string HUrl_CLD = "http://122.227.128.123:8090/k3cloud/";
public static string HdbID_CLD = "5b3711f4fe3fa5";
public static string HUserName_CLD = "测试1";
public static string HPsd_CLD = "111111";
public static string HWEBSUrl_CLD = "http://localhost/SafeWell_Web/WebService1.asmx";
public static string sCLOUDUrl = "";
public static string sCLOUDAcc = "";
public static string sCLOUDUseName = "";
public static string sCLOUDPsd = "";
public static Int64 HOrgID = 0;//组织内码
public static string HOrgNumber = ""; //组织代码
public static string HOrgName = ""; //组织名称
public static Int64 HORGANIZATIONSID = 0;
public static string HORGANIZATIONSNO = "";
public static string HDataCenterID = "";
public static string IPAddress;
public static string ComputerName;
public static string VersionNew;
public static string VersionOld;
public static string VersionNum;
public static string CurUserName="";
public static string CurUserID;
public static string sExeReturnInfo;
public static string AppPath;
public static string AccNumber;//帐套代码
public static string AccName;//帐套名称
public static string CompName;//客户公司名称
public static int CurYear;
public static int CurPeriod;
public static Color EditColor = Color.White;
public static Color ViewColor = Color.WhiteSmoke;
public static int CBCurYear;
public static int CBCurPeriod;
public static int XFCurYear;
public static int XFCurPeriod;
public static int KQCurYear;
public static int KQCurPeriod;
public static DateTime CBCurBDate;
public static DateTime CBCurEDate;
public static DateTime XFCurBDate;
public static DateTime XFCurEDate;
public static DateTime KQCurBDate;
public static DateTime KQCurEDate;
public static bool check;
public static int HCheckStatus;
public static string sSQLInfo;
public static string sErrInfo;
public enum Enum_BillStatus : int
{
BillStatus_AddNew = 1,
BillStatus_Modify = 2,
BillStatus_View = 4,
BillStatus_UpdatePrice = 8
}
public enum Enum_OKTag : int
{
OKTag_Cancel = 0,
OKTag_OK = 1
}
public enum Enum_Color : long
{
hx_Red = 255,
hx_Black = 0,
hx_Write = 16777215,
hx_Blue = 16711680,
hx_Green = 65280,
hx_Yellow = 65535,
hx_Control = 13425104
}
public enum Enum_InputMode : int
{
InputMode_View = 0,
InputMode_AddNew = 1,
InputMode_Modify = 2,
InputMode_AddNewGroup = 3,
InputMode_ModifyGroup = 4
}
public enum Enum_InputModeGroup : int
{
InputMode_View = 0,
InputMode_AddNew = 1,
InputMode_Modify = 2,
}
//获取CLOUD登录信息
public static bool GetCLOUDLoginInfo(ref string sExeReturnInfo)
{
try
{
AppPath = System.Environment.CurrentDirectory;
sCLOUDUrl = ClsIni.ReadIni("CLOUDINFO", "sCLOUDUrl", AppPath + @"\" + HTextBox);
sCLOUDAcc = ClsIni.ReadIni("CLOUDINFO", "sCLOUDAcc", AppPath + @"\" + HTextBox);
sCLOUDUseName = ClsIni.ReadIni("CLOUDINFO", "sCLOUDUseName", AppPath + @"\" + HTextBox);
sCLOUDPsd = ClsIni.ReadIni("CLOUDINFO", "sCLOUDPsd", AppPath + @"\" + HTextBox);
if (isStrNull(sCLOUDUrl + sCLOUDAcc + sCLOUDUseName + sCLOUDPsd) == "" ||
isStrNull(sCLOUDUrl + sCLOUDAcc + sCLOUDUseName + sCLOUDPsd).Contains("没有找到") == true)
{
sExeReturnInfo = "读取CLOUD配置文件为空! 网址:" + isStrNull(sCLOUDUrl) + " ; 账套:" + isStrNull(sCLOUDAcc) + " ; 用户:"
+ isStrNull(sCLOUDUseName) + " ; 密码:" + isStrNull(sCLOUDPsd) + " 文件地址:" + isStrNull(AppPath);
return false;
}
else
{
return true;
}
}
catch (Exception e)
{
sExeReturnInfo = "读取CLOUD配置文件失败!网址:" + isStrNull(sCLOUDUrl) + " ; 账套:" + isStrNull(sCLOUDAcc) + " ; 用户:"
+ isStrNull(sCLOUDUseName) + " ; 密码:" + isStrNull(sCLOUDPsd) + " 文件地址:" + isStrNull(AppPath) + e.Message;
return false;
}
}
//检验 最新版本
public static bool CheckUpdate()
{
DataSet oDs = new DataSet();
ClsSqlHelperMaster oCn = new ClsSqlHelperMaster();
string LastNumber1 = "";
string LastNumber2 = "";
string BbNumber = "";
string sTableName = "";
//得到更新表
sTableName = ClsIni.ReadIni("UpDateCounts", "sTableName", ClsPub.AppPath + @"\" + "UpDatePrj.ini");
if (sTableName == "没有找到!" || sTableName == "")
{
sTableName = "HX_Update";
}
//得到最新版本
try
{
oDs = oCn.RunProcReturn("select top 1 * from " + sTableName + " order by FItemID", sTableName);
if (oDs == null || oDs.Tables[0].Rows.Count == 0)
{
return false;
}
else
{
LastNumber1 = oDs.Tables[0].Rows[0]["FNumber"].ToString().Trim();
VersionNew = LastNumber1;
}
//得到本地版本
LastNumber2 = ClsIni.ReadIni("UpDateCounts", "LastUpdateID", ClsPub.AppPath + @"\" + "UpDatePrj.ini");
VersionOld = LastNumber2;
if (LastNumber2 == "没有找到!")
{
return false;
}
if (LastNumber2.Trim().ToUpper() == LastNumber1.Trim().ToUpper())
{
return false;
}
return true;
}
catch (Exception e)
{
throw (e);
}
}
//
//得到列标识
public static int Fun_GetCol(DataGridView oGrd, string KeyItem)
{
for (int c = 0; c < oGrd.ColumnCount; c++)
{
if (ClsPub.isStrNull(oGrd.Columns[c].HeaderText).ToUpper().Trim() == KeyItem.Trim().ToUpper())
{
return c;
}
}
return 0;
}
//得到列标识
public static int Fun_GetCol_New(DataGridView oGrd, string KeyItem)
{
for (int c = 0; c < oGrd.ColumnCount; c++)
{
if (ClsPub.isStrNull(oGrd.Columns[c].HeaderText).ToUpper().Trim() == KeyItem.Trim().ToUpper())
{
return c;
}
}
return -1;
}
//得到组织内码根据组织名称
public static Int64 get_ORGANIZATIONSIDByName(string HDataCenterName)
{
try
{
ClsSqlHelper oCN = new ClsSqlHelper();
DataSet ds = oCN.RunProcReturn("select HItemID from h_v_CLD_ORGANIZATIONSList where Hname='" + HDataCenterName + "'", "h_v_CLD_ORGANIZATIONSList");
if (ds == null || ds.Tables[0].Rows.Count == 0)
{
return -1;
}
else
{
return ClsPub.isLong(ds.Tables[0].Rows[0]["HItemID"]);
}
}
catch (Exception e)
{
return -1;
}
}
//得到组织编码根据组织名称
public static string get_ORGANIZATIONSNOByName(string HDataCenterName)
{
try
{
ClsSqlHelper oCN = new ClsSqlHelper();
DataSet ds = oCN.RunProcReturn("select HNumber from h_v_CLD_ORGANIZATIONSList where Hname='" + HDataCenterName + "'", "h_v_CLD_ORGANIZATIONSList");
if (ds == null || ds.Tables[0].Rows.Count == 0)
{
return "";
}
else
{
return ClsPub.isStrNull(ds.Tables[0].Rows[0]["HNumber"]);
}
}
catch (Exception e)
{
return "";
}
}
//获取组织列表
public static DataSet get_ORGANIZATIONSList()
{
try
{
ClsSqlHelper oCN = new ClsSqlHelper();
return oCN.RunProcReturn("select * from h_v_CLD_ORGANIZATIONSList", "h_v_CLD_ORGANIZATIONSList");
}
catch (Exception e)
{
return null;
}
}
//得到会计年份根据日期
public static bool Sub_GetPeriodByDate(string sDate, ref int sYear, ref int sPeriod)
{
DataSet Ds = new DataSet();
ClsSqlHelper oCn = new ClsSqlHelper();
Ds = oCn.RunProcReturn("select HYear,HPeriod,HBeginDate,HEndDate from xt_AcCountPeriod where convert(varchar(10),HBeginDate,120)<='" + sDate + "' and convert(varchar(10),HEndDate,120)>='" + sDate + "'", "xt_AcCountPeriod");
if (Ds == null || Ds.Tables[0].Rows.Count == 0)
{
return false;
}
else
{
sYear = ClsPub.isInt(Ds.Tables[0].Rows[0]["HYear"].ToString());
sPeriod = ClsPub.isInt(Ds.Tables[0].Rows[0]["HPeriod"].ToString());
return true;
}
}
//得到工资 会计年份根据日期
public static bool Sub_GetPeriodByDate_Pay(string sDate, ref int sYear, ref int sPeriod)
{
DataSet Ds = new DataSet();
ClsSqlHelper oCn = new ClsSqlHelper();
Ds = oCn.RunProcReturn("select HYear,HPeriod,HBeginDate,HEndDate from xt_AcCountPeriod where convert(varchar(10),HBeginDate,120)<='" + sDate + "' and convert(varchar(10),HEndDate,120)>='" + sDate + "'", "xt_AcCountPeriod");
if (Ds == null || Ds.Tables[0].Rows.Count == 0)
{
return false;
}
else
{
sYear = ClsPub.isInt(Ds.Tables[0].Rows[0]["HYear"].ToString());
sPeriod = ClsPub.isInt(Ds.Tables[0].Rows[0]["HPeriod"].ToString());
return true;
}
}
//得到K3会计年份根据日期
public static bool Sub_GetPeriodByDateK3(string sDate, ref int sYear, ref int sPeriod)
{
DataSet Ds;
ClsSqlHelper oCn = new ClsSqlHelper();
Ds = oCn.RunProcReturn("select HYear,HPeriod,HBeginDate,HEndDate from h_v_K3_AcCountPeriod where convert(varchar(10),HBeginDate,120)<='" + sDate + "' and convert(varchar(10),HEndDate,120)>='" + sDate + "'", "xt_AcCountPeriod");
if (Ds == null || Ds.Tables[0].Rows.Count == 0)
{
return false;
}
else
{
sYear = ClsPub.isInt(Ds.Tables[0].Rows[0]["HYear"].ToString());
sPeriod = ClsPub.isInt(Ds.Tables[0].Rows[0]["HPeriod"].ToString());
return true;
}
}
//得到当前会计年份
public static bool Sub_GetCurPeriod(ref int CurYear,ref int CurPeriod)
{
DataSet Ds = new DataSet();
ClsSqlHelper oCn = new ClsSqlHelper();
Ds = oCn.RunProcReturn("select top 1 HYear,HPeriod,HBeginDate,HEndDate from xt_AcCountPeriod where HEndFlag=0 order by HYear,HPeriod", "xt_AcCountPeriod");
if (Ds == null || Ds.Tables[0].Rows.Count == 0)
{
return false;
}
else
{
CurYear = ClsPub.isInt(Ds.Tables[0].Rows[0]["HYear"].ToString());
CurPeriod = ClsPub.isInt(Ds.Tables[0].Rows[0]["HPeriod"].ToString());
return true;
}
}
//得到工资 当前会计年份
public static bool Sub_GetCurPeriod_Pay(ref int CurYear, ref int CurPeriod)
{
DataSet Ds = new DataSet();
ClsSqlHelper oCn = new ClsSqlHelper();
Ds = oCn.RunProcReturn("select top 1 HYear,HPeriod,HBeginDate,HEndDate from xt_AcCountPeriod where HEndFlag=0 order by HYear,HPeriod", "xt_AcCountPeriod");
if (Ds == null || Ds.Tables[0].Rows.Count == 0)
{
return false;
}
else
{
CurYear = ClsPub.isInt(Ds.Tables[0].Rows[0]["HYear"].ToString());
CurPeriod = ClsPub.isInt(Ds.Tables[0].Rows[0]["HPeriod"].ToString());
return true;
}
}
//得到最大单据号
public static string CreateBillCode(string BillCode, ref string sReturn, bool Add)
{
Int64 BillCodeMode;
string Profix;
Int64 Glida;
Int32 CodeLen;
string sBillNo = "";
char c = Convert.ToChar("0");
string sKjYear = DateTime.Today.Year.ToString();
string sPeriod = DateTime.Today.Month.ToString();
string sDay = DateTime.Today.Day.ToString();
//得到单据号表 信息
ClsSqlHelper oCn = new ClsSqlHelper();
DataSet Ds = new DataSet();
Ds = oCn.RunProcReturn("Select * from Gy_BillNumber where BillCode='" + BillCode.Trim() + "'", "Gy_BillNumber");
if (Ds.Tables[0].Rows.Count != 0)
{
BillCodeMode = ClsPub.isLong(Ds.Tables[0].Rows[0]["BillCodeMode"].ToString());
Profix = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["Profix"].ToString());
Glida = ClsPub.isLong(Ds.Tables[0].Rows[0]["Glida"].ToString());
CodeLen = ClsPub.isInt(Ds.Tables[0].Rows[0]["CodeLen"].ToString());
}
else
{
return "";
}
//
string sStr;
switch (BillCodeMode)
{
case 0:
switch (Glida)
{
case 0:
Ds = oCn.RunProcReturn("Select * from Gy_MaxNum where BillCode='" + BillCode.Trim() + "'", "Gy_MaxNum");
if (Ds.Tables[0].Rows.Count != 0)
{
sStr = new string(c, CodeLen - (Ds.Tables[0].Rows[0]["NowNumBer"].ToString()).Length);
sBillNo = Profix.Trim() + sStr + Ds.Tables[0].Rows[0]["NowNumBer"].ToString().Trim();
}
else //插入新记录
{
sStr = new string(c, CodeLen - 1);
oCn.RunProc("insert into Gy_MaxNum(BillCode,NowNumber) values('" + BillCode.Trim() + "',1)");
sBillNo = Profix.Trim() + sStr + 1;
}
if (Add == true)
{
oCn.RunProc("update Gy_Maxnum set NowNumBer=NowNumBer+1 where BillCode='" + BillCode.Trim() + "'");
}
return sBillNo;
case 1:
return sBillNo;
case 2: //当前年当前期间 生成单据号
Ds = oCn.RunProcReturn("Select * from Gy_MaxNum where BillCode='" + BillCode.Trim() + "' and KjYear=" + sKjYear + " and Period=" + sPeriod + " and Day=" + sDay, "Gy_MaxNum");
if (Ds.Tables[0].Rows.Count != 0)
{
sStr = new string(c, CodeLen - (Ds.Tables[0].Rows[0]["NowNumBer"].ToString()).Length);
sBillNo = Profix.Trim() + sKjYear + ClsPub.isStrNull(("0" + sPeriod)).Substring(ClsPub.isStrNull(("0" + sPeriod)).Length - 2, 2) + ClsPub.isStrNull(("0" + sDay)).Substring(ClsPub.isStrNull(("0" + sDay)).Length - 2, 2) + sStr + Ds.Tables[0].Rows[0]["NowNumBer"].ToString().Trim();
}
else //插入新记录
{
sStr = new string(c, CodeLen - 1);
oCn.RunProc("insert into Gy_Maxnum(BillCode,Kjyear,Period,Day,NowNumber) values('" + BillCode.Trim() + "'," + sKjYear + "," + sPeriod + "," + sDay + ",1)");
sBillNo = Profix.Trim() + sKjYear + ClsPub.isStrNull(("0" + sPeriod)).Substring(ClsPub.isStrNull(("0" + sPeriod)).Length - 2, 2) + ClsPub.isStrNull(("0" + sDay)).Substring(ClsPub.isStrNull(("0" + sDay)).Length - 2, 2) + sStr + 1;
}
if (Add == true)
{
oCn.RunProc("update Gy_Maxnum set NowNumBer=NowNumBer+1 where BillCode='" + BillCode.Trim() + "' and KjYear=" + sKjYear + " and Period=" + sPeriod + " and Day=" + sDay);
}
return sBillNo;
default:
return sBillNo;
}
case 1:
return sBillNo;
default:
return sBillNo;
}
oCn.CnClose();
oCn.CnDispose();
oCn = null;
}
//得到最大单据号2
public static string CreateBillCode(string BillCode, ref string sReturn, bool Add,ClsSqlHelper oCn)
{
Int64 BillCodeMode;
string Profix;
Int64 Glida;
Int32 CodeLen;
string sBillNo = "";
char c = Convert.ToChar("0");
//得到单据号表 信息
DataSet Ds = new DataSet();
Ds = oCn.RunProcReturn("Select * from Gy_BillNumber where BillCode='" + BillCode.Trim() + "'", "Gy_BillNumber");
if (Ds.Tables[0].Rows.Count != 0)
{
BillCodeMode = ClsPub.isLong(Ds.Tables[0].Rows[0]["BillCodeMode"].ToString());
Profix = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["Profix"].ToString());
Glida = ClsPub.isLong(Ds.Tables[0].Rows[0]["Glida"].ToString());
CodeLen = ClsPub.isInt(Ds.Tables[0].Rows[0]["CodeLen"].ToString());
}
else
{
return "";
}
//
string sStr;
switch (BillCodeMode)
{
case 0:
switch (Glida)
{
case 0:
Ds = oCn.RunProcReturn("Select * from Gy_MaxNum where BillCode='" + BillCode.Trim() + "'", "Gy_MaxNum");
if (Ds.Tables[0].Rows.Count != 0)
{
sStr = new string(c, CodeLen - (Ds.Tables[0].Rows[0]["NowNumBer"].ToString()).Length);
sBillNo = Profix.Trim() + sStr + Ds.Tables[0].Rows[0]["NowNumBer"].ToString().Trim();
}
else //插入新记录
{
sStr = new string(c, CodeLen - 1);
oCn.RunProc("insert into Gy_MaxNum(BillCode,NowNumber) values('" + BillCode.Trim() + "',1)");
sBillNo = Profix.Trim() + sStr + 1;
}
if (Add == true)
{
oCn.RunProc("update Gy_Maxnum set NowNumBer=NowNumBer+1 where BillCode='" + BillCode.Trim() + "'");
}
return sBillNo;
case 1:
return sBillNo;
case 2:
return sBillNo;
default:
return sBillNo;
}
case 1:
return sBillNo;
default:
return sBillNo;
}
}
//得到最大单据号 存储过程
public static string CreateBillCode_Prod(string BillCode, ref string sReturn, bool Add)
{
try
{
string BillType = "";
DataSet Ds;
ClsSqlHelper oCn = new ClsSqlHelper();
string sBIllNO;
Ds = oCn.RunProcReturn("exec h_p_Xt_GetMaxBillNo '" + BillCode + "'", "h_p_Xt_GetMaxBillNo");
if (Ds == null || Ds.Tables[0].Rows.Count == 0)
{
sBIllNO = "ERROR";
}
else
{
sBIllNO = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillNo"]);
}
oCn.CnClose();
oCn.CnDispose();
oCn = null;
Ds = null;
return sBIllNO;
}
catch (Exception e)
{
return "ERROR";
}
}
//得到最大HINTERID 存储过程
public static Int64 CreateBillID_Prod(string BillCode, ref string sReturn)
{
try
{
string BillType = "";
DataSet Ds;
ClsSqlHelper oCn = new ClsSqlHelper();
Int64 lID;
Ds = oCn.RunProcReturn("exec h_p_Xt_GetMaxBillID '" + BillCode + "'", "h_p_Xt_GetMaxBillID");
if (Ds == null || Ds.Tables[0].Rows.Count == 0)
{
lID = -1;
}
else
{
lID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HBillNo"]);
}
oCn.CnClose();
oCn.CnDispose();
oCn = null;
Ds = null;
return lID;
}
catch (Exception e)
{
return -2;
}
}
//得到最大单据号 存储过程
public static string CreateBillCode_SRMProd(string BillCode, ref string sReturn, bool Add)
{
try
{
string BillType = "";
DataSet Ds;
ClsSqlHelper_SRM oCn = new ClsSqlHelper_SRM();
string sBIllNO;
Ds = oCn.RunProcReturn("exec h_p_Xt_GetMaxBillNo '" + BillCode + "'", "h_p_Xt_GetMaxBillNo");
if (Ds == null || Ds.Tables[0].Rows.Count == 0)
{
sBIllNO = "ERROR";
}
else
{
sBIllNO = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillNo"]);
}
oCn.CnClose();
oCn.CnDispose();
oCn = null;
Ds = null;
return sBIllNO;
}
catch (Exception e)
{
return "ERROR";
}
}
//得到最大HINTERID 存储过程
public static Int64 CreateBillID_SRMProd(string BillCode, ref string sReturn)
{
try
{
string BillType = "";
DataSet Ds;
ClsSqlHelper_SRM oCn = new ClsSqlHelper_SRM();
Int64 lID;
Ds = oCn.RunProcReturn("exec h_p_Xt_GetMaxBillID '" + BillCode + "'", "h_p_Xt_GetMaxBillID");
if (Ds == null || Ds.Tables[0].Rows.Count == 0)
{
lID = -1;
}
else
{
lID = ClsPub.isLong(Ds.Tables[0].Rows[0]["HBillNo"]);
}
oCn.CnClose();
oCn.CnDispose();
oCn = null;
Ds = null;
return lID;
}
catch (Exception e)
{
return -2;
}
}
//得到最大HINTERID
public static Int64 CreateBillID(string BillCode, ref string sReturn)
{
string BillType = "";
DataSet Ds;
ClsSqlHelper oCn = new ClsSqlHelper();
Int64 lID;
Ds = oCn.RunProcReturn("select * from Gy_BillNumber with (nolock) where BillCode='" + BillCode.Trim() + "'", "Gy_BillNumber");
if (Ds.Tables[0].Rows.Count != 0)
{
lID = ClsPub.isLong(Ds.Tables[0].Rows[0]["IDNow"].ToString());
BillType = Ds.Tables[0].Rows[0]["BillType"].ToString().Trim();
}
else
{
lID = 0;
}
//同类型单据 自增1
if (BillType.Trim() != "")
{
oCn.RunProc("update Gy_BillNumber set IDNow=IDNow+1 where BillType='" + BillType.Trim() + "'");
}
oCn.CnClose();
oCn.CnDispose();
oCn = null;
Ds = null;
return lID;
}
//得到最大HINTERID
public static Int64 CreateBillID(string BillCode, ref string sReturn,ClsSqlHelper oCn )
{
string BillType = "";
DataSet Ds;
Int64 lID;
Ds = oCn.RunProcReturn("select * from Gy_BillNumber where BillCode='" + BillCode.Trim() + "'", "Gy_BillNumber");
if (Ds.Tables[0].Rows.Count != 0)
{
lID = ClsPub.isLong(Ds.Tables[0].Rows[0]["IDNow"].ToString());
BillType = Ds.Tables[0].Rows[0]["BillType"].ToString().Trim();
}
else
{
lID = 0;
}
//同类型单据 自增1
if (BillType.Trim() != "")
{
oCn.RunProc("update Gy_BillNumber set IDNow=IDNow+1 where BillType='" + BillType.Trim() + "'");
}
Ds = null;
return lID;
}
//判断是否存在权限,并写入日志
public static bool Security_Log(string gnsy, int LogTF, bool Msg,string CurUserName)
{
//gnsy 功能索引,模块
//usercode 当前用户代码
//LogTF 1判断权限并写日志,2只写日志,3只判断权限
//Msg 没有权限时 是否提示框
string UserID = CurUserName;
try
{
ClsSqlHelper oCn = new ClsSqlHelper();
DataSet Ds = new DataSet();
DataSet DsUser = new DataSet();
DataSet DsJS = new DataSet();//角色
long ModID = 0;
bool HavRight = false;
//找到模块权限
Ds = oCn.RunProcReturn("select * from xt_xtgnb where gnsy='" + gnsy.Trim() + "'", "xt_xtgnb");
if (Ds.Tables[0].Rows.Count == 0)
{
if (Msg == true)
{
MessageBox.Show("没有找到该功能模块!", "提示");
}
return false;
}
else
{
ModID = ClsPub.isLong(Ds.Tables[0].Rows[0]["ID"].ToString()); //返回模块
}
if (LogTF == 1 || LogTF == 3)//需要判断权限
{
//根据用户名称判断权限
DsUser = oCn.RunProcReturn("select * from gy_czygl where czymc='" + UserID.Trim() + "'", "gy_czygl");
if (DsUser.Tables[0].Rows.Count == 0)
{
if (Msg == true)
{
MessageBox.Show("没有找到当前操作员!", "提示");
}
return false;
}
//根据用户名称判断权限
if ((bool)DsUser.Tables[0].Rows[0]["ManagerFlag"]) //是否管理员
{
HavRight = true;
}
else
{
if (DsUser.Tables[0].Rows[0]["AuthorityID"].ToString().Trim().Substring((int)ModID - 1, 1) == "1")
{
HavRight = true;
}
else
{
//获取用户组 并循环判断权限
//判断角色是否有权限
DsJS = oCn.RunProcReturn("select isnull(AuthorityID,'') AuthorityID from System_UserGroupinfo a inner join System_UserGroup b on a.GroupID=b.GroupID " +
" Where a.USERID='" + UserID.Trim() + "'", "gy_czygl");
if (DsJS == null)
{
HavRight = false;
}
else
{
HavRight = false;
for (int i = 0; i < DsJS.Tables[0].Rows.Count; i++)
{
if (ClsPub.isStrNull(DsJS.Tables[0].Rows[i]["AuthorityID"]).Length > ModID)
{
if (DsJS.Tables[0].Rows[i]["AuthorityID"].ToString().Trim().Substring((int)ModID - 1, 1) == "1")
{
HavRight = true;
break;
}
}
}
}
}
}
if (HavRight == false)
{
if (Msg == true)
{
MessageBox.Show("您没有权限,请与管理员联系!", "提示");
}
}
}
//需要写入日志
if ((LogTF == 1 && HavRight) || LogTF == 2)
{
Add_Log(Ds.Tables[0].Rows[0]["id"].ToString().Trim(), gnsy +","+ Ds.Tables[0].Rows[0]["gnmc"].ToString().Trim(), CurUserName);
}
return HavRight;
}
catch (Exception e)
{
if (Msg == true)
{
MessageBox.Show("判断权限时发现错误,请与管理员联系!", "提示");
}
return false;
}
}
public static bool Security_Log_second(string gnsy, int LogTF, bool Msg, string CurUserName)
{
//gnsy 功能索引,模块
//usercode 当前用户代码
//LogTF 1判断权限并写日志,2只写日志,3只判断权限
//Msg 没有权限时 是否提示框
string UserID = CurUserName;
try
{
ClsSqlHelper oCn = new ClsSqlHelper();
DataSet Ds = new DataSet();
DataSet DsUser = new DataSet();
DataSet DsJS = new DataSet();//角色
long ModID = 0;
bool HavRight = false;
//找到模块权限
Ds = oCn.RunProcReturn("select * from xt_xtgnb where gnsy='" + gnsy.Trim() + "'", "xt_xtgnb");
if (Ds.Tables[0].Rows.Count == 0)
{
if (Msg == true)
{
return false;
//MessageBox.Show("没有找到该功能模块!", "提示");
}
return false;
}
else
{
ModID = ClsPub.isLong(Ds.Tables[0].Rows[0]["ID"].ToString()); //返回模块
}
if (LogTF == 1 || LogTF == 3)//需要判断权限
{
//根据用户名称判断权限
DsUser = oCn.RunProcReturn("select * from gy_czygl where czymc='" + UserID.Trim() + "'", "gy_czygl");
if (DsUser.Tables[0].Rows.Count == 0)
{
if (Msg == true)
{
return false;
//MessageBox.Show("没有找到当前操作员!", "提示");
}
return false;
}
//根据用户名称判断权限
if ((bool)DsUser.Tables[0].Rows[0]["ManagerFlag"]) //是否管理员
{
HavRight = true;
}
else
{
if (DsUser.Tables[0].Rows[0]["AuthorityID"].ToString().Trim().Substring((int)ModID - 1, 1) == "1")
{
HavRight = true;
}
else
{
//获取用户组 并循环判断权限
//判断角色是否有权限
DsJS = oCn.RunProcReturn("select isnull(AuthorityID,'') AuthorityID from System_UserGroupinfo a inner join System_UserGroup b on a.GroupID=b.GroupID " +
" Where a.USERID='" + UserID.Trim() + "'", "gy_czygl");
if (DsJS == null)
{
HavRight = false;
}
else
{
HavRight = false;
for (int i = 0; i < DsJS.Tables[0].Rows.Count; i++)
{
if (ClsPub.isStrNull(DsJS.Tables[0].Rows[i]["AuthorityID"]).Length > ModID)
{
if (DsJS.Tables[0].Rows[i]["AuthorityID"].ToString().Trim().Substring((int)ModID - 1, 1) == "1")
{
HavRight = true;
break;
}
}
}
}
}
}
if (HavRight == false)
{
if (Msg == true)
{
return false;
//MessageBox.Show("您没有权限,请与管理员联系!", "提示");
}
}
}
//需要写入日志
if ((LogTF == 1 && HavRight) || LogTF == 2)
{
Add_Log(Ds.Tables[0].Rows[0]["id"].ToString().Trim(), gnsy + "," + Ds.Tables[0].Rows[0]["gnmc"].ToString().Trim(), CurUserName);
}
return HavRight;
}
catch (Exception e)
{
if (Msg == true)
{
return false;
//MessageBox.Show("判断权限时发现错误,请与管理员联系!", "提示");
}
return false;
}
}
//判断是都存在权限,并写入日志
public static bool Security_Log(string gnsy, int LogTF, bool Msg, string CurUserName, ClsSqlHelper oCn)
{
//gnsy 功能索引,模块
//usercode 当前用户代码
//LogTF 1判断权限并写日志,2只写日志,3只判断权限
//Msg 没有权限时 是否提示框
string UserID = CurUserName;
try
{
DataSet Ds = new DataSet();
DataSet DsUser = new DataSet();
long ModID = 0;
bool HavRight = false;
Ds = oCn.RunProcReturn("select * from xt_xtgnb where gnsy='" + gnsy.Trim() + "'", "xt_xtgnb");
if (Ds.Tables[0].Rows.Count == 0)
{
MessageBox.Show("没有找到该功能模块!", "提示");
return false;
}
else
{
ModID = ClsPub.isLong(Ds.Tables[0].Rows[0]["ID"].ToString());
}
if (LogTF == 1 || LogTF == 3)//需要判断权限
{
DsUser = oCn.RunProcReturn("select * from gy_czygl where czymc='" + UserID.Trim() + "'", "gy_czygl");
if (DsUser.Tables[0].Rows.Count == 0)
{
MessageBox.Show("没有找到当前操作员!", "提示");
return false;
}
if ((bool)DsUser.Tables[0].Rows[0]["ManagerFlag"]) //是否管理员
{
HavRight = true;
}
else
{
if (DsUser.Tables[0].Rows[0]["AuthorityID"].ToString().Trim().Substring((int)ModID - 1, 1) == "1")
{
HavRight = true;
}
else
{
HavRight = false;
}
}
if (HavRight == false)
{
if (Msg == true)
{
MessageBox.Show("您没有权限,请与管理员联系!", "提示");
}
}
}
//需要写入日志
if ((LogTF == 1 && HavRight) || LogTF == 2)
{
Add_Log(Ds.Tables[0].Rows[0]["id"].ToString().Trim(), gnsy + "," + Ds.Tables[0].Rows[0]["gnmc"].ToString().Trim(), CurUserName);
}
return HavRight;
}
catch (Exception e)
{
if (Msg == true)
{
MessageBox.Show("判断权限时发现错误,请与管理员联系!", "提示");
}
return false;
}
}
//判断是都存在权限,并写入日志
public static bool Security_Log2(string gnsy, int LogTF, bool Msg, string CurUserName)
{
//gnsy 功能索引,模块
//usercode 当前用户代码
//LogTF 1判断权限并写日志,2只写日志,3只判断权限
//Msg 没有权限时 是否提示框
string UserID = CurUserName;
try
{
ClsSqlHelper oCn = new ClsSqlHelper();
DataSet Ds = new DataSet();
DataSet DsUser = new DataSet();
long ModID = 0;
bool HavRight = false;
Ds = oCn.RunProcReturn("select * from xt_xtgnb where gnsy='" + gnsy.Trim() + "'", "xt_xtgnb");
if (Ds.Tables[0].Rows.Count == 0)
{
MessageBox.Show("没有找到该功能模块!", "提示");
return false;
}
else
{
ModID = ClsPub.isLong(Ds.Tables[0].Rows[0]["ID"].ToString());
}
if (LogTF == 1 || LogTF == 3)//需要判断权限
{
DsUser = oCn.RunProcReturn("select * from gy_czygl where czymc='" + UserID.Trim() + "'", "gy_czygl");
if (DsUser.Tables[0].Rows.Count == 0)
{
MessageBox.Show("没有找到当前操作员!", "提示");
return false;
}
if ((bool)DsUser.Tables[0].Rows[0]["ManagerFlag"]) //是否管理员
{
HavRight = true;
}
else
{
if (DsUser.Tables[0].Rows[0]["AuthorityID"].ToString().Trim().Substring((int)ModID - 1, 1) == "1")
{
HavRight = true;
}
else
{
HavRight = false;
}
}
if (HavRight == false)
{
if (Msg == true)
{
MessageBox.Show("您没有权限,请与管理员联系!", "提示");
}
}
}
//需要写入日志
if ((LogTF == 1 && HavRight) || LogTF == 2)
{
Add_Log(Ds.Tables[0].Rows[0]["id"].ToString().Trim(), gnsy + "," + Ds.Tables[0].Rows[0]["gnmc"].ToString().Trim(), CurUserName);
}
return HavRight;
}
catch (Exception e)
{
if (Msg == true)
{
MessageBox.Show("判断权限时发现错误,请与管理员联系!", "提示");
}
return false;
}
}
//写入日志
///
/// 写入日志
///
/// 无用
/// 操作日志
/// 操作员
///
public static bool Add_Log(string UserID, string WorkList, string CurUserName)
{
ClsSqlHelper oCn = new ClsSqlHelper();
try
{
oCn.RunProc("Insert into System_Log(GeginDate,userid,WorkstationName,WorkList,SystemName,NetUserName,State) values " +
"(getdate(),'" + CurUserName + "','" + ComputerName + "','" + WorkList + "','ERP系统','"+IPAddress+"','进入')"
);
return true;
}
catch (Exception e)
{
MessageBox.Show("写入日志时发现错误,原因是:" + e.Message);
return false;
}
}
//写入日志
///
/// 写入日志
///
/// 无用
/// 操作日志
/// 操作员
/// 连接
///
public static bool Add_Log(string UserID, string WorkList, string CurUserName, ClsSqlHelper oCn)
{
try
{
oCn.RunProc("Insert into System_Log(GeginDate,userid,WorkstationName,WorkList,SystemName,NetUserName,State) values " +
"(getdate(),'" + CurUserName + "','" + ComputerName + "','" + WorkList + "','ERP系统','" + IPAddress + "','进入')"
);
return true;
}
catch (Exception e)
{
MessageBox.Show("写入日志时发现错误,原因是:" + e.Message);
return false;
}
}
//得到会计期间
public static string Sub_GetDateByPeriod(int sYear, int sPeriod)
{
DataSet Ds = new DataSet();
ClsSqlHelper oCn = new ClsSqlHelper();
Ds = oCn.RunProcReturn("select HBeginDate,HEndDate from xt_AcCountPeriod where HYear=" + sYear + " and HPeriod=" + sPeriod, "xt_AcCountPeriod");
if (Ds == null || Ds.Tables[0].Rows.Count == 0)
{
return "";
}
else
{
return ClsPub.isDate(Ds.Tables[0].Rows[0]["HBeginDate"].ToString(), 0) + "," + ClsPub.isDate(Ds.Tables[0].Rows[0]["HEndDate"].ToString(), 0);
}
}
//得到服务器日期
public static string GetServerDate(Int64 iType)
{
ClsSqlHelper oCn = new ClsSqlHelper();
DataSet Ds = new DataSet();
try
{
Ds = oCn.RunProcReturn("Select GetDate() as CurDate", "xt_xtgnb");
switch (iType)
{
case 0:
return Convert.ToDateTime(Ds.Tables[0].Rows[0]["CurDate"]).ToString("yyyy-MM-dd");
case 1:
return Convert.ToDateTime(Ds.Tables[0].Rows[0]["CurDate"]).ToString("HH:mm:ss");
case -1:
return Convert.ToDateTime(Ds.Tables[0].Rows[0]["CurDate"]).ToString("yyyy-MM-dd HH:mm:ss");
default:
return "1900-01-01";
}
}
catch (Exception e)
{
return "1900-01-01";
}
}
//得到服务器日期
public static string GetServerDate(Int64 iType, ClsSqlHelper oCn)
{
DataSet Ds;
try
{
Ds = oCn.RunProcReturn("Select GetDate() as CurDate", "xt_xtgnb");
switch (iType)
{
case 0:
return Convert.ToDateTime(Ds.Tables[0].Rows[0]["CurDate"]).ToString("yyyy-MM-dd");
case 1:
return Convert.ToDateTime(Ds.Tables[0].Rows[0]["CurDate"]).ToString("hh:mm:ss");
case -1:
return Convert.ToDateTime(Ds.Tables[0].Rows[0]["CurDate"]).ToString("yyyy-MM-dd HH:mm:ss");
default:
return "1900-01-01";
}
}
catch (Exception e)
{
return "1900-01-01";
}
}
//根据模块名 返回 网格 信息
public static string Fun_GetGridStrByModName(string KeyItem)
{
try
{
ClsSqlHelper oCn = new ClsSqlHelper();
DataSet ds;
ds = oCn.RunProcReturn("select top 1 HGridString from Xt_grdAlignment where HUserName='" + ClsPub.CurUserName + "' and HModName='" + KeyItem + "'", "Xt_grdAlignment");
if (ds == null || ds.Tables[0].Rows.Count == 0)
{
return "没有找到!";
}
else
{
return ClsPub.isStrNull(ds.Tables[0].Rows[0]["HGridString"]);
}
}
catch (Exception e)
{
return "没有找到!";
}
}
// 读取隐藏列datagridview 并设置 对齐方式
///
/// 读取隐藏列datagridview 并设置 对齐方式
///
///
///
///
public static void HideGridView(DataGridView oGrd, string KeyItem, string AppPath)
{
int Cols;
char c = Convert.ToChar(",");
char s = Convert.ToChar("|");
string sStr =ClsPub.Fun_GetGridStrByModName(KeyItem);
if (sStr != "没有找到!")
{
string[] Col = sStr.Split(c);
for (int i = 0; i < Col.Length; i++)
{
if (i >= oGrd.ColumnCount)
{
break;
}
string[] sCol = Col[i].Split(s);
if (sCol.Length > 1)
{
if (ClsPub.isStrNull(sCol[1]) == "1")
{
oGrd.Columns[ClsPub.isInt(sCol[0])].Visible = false; //隐藏列
}
else
{
oGrd.Columns[ClsPub.isInt(sCol[0])].Visible = true; //隐藏列
}
//h开头的隐藏
if (oGrd.Columns[ClsPub.isInt(sCol[0])].HeaderText != "")
{
if (oGrd.Columns[ClsPub.isInt(sCol[0])].HeaderText.Substring(0, 1).ToLower() == "h")
{
oGrd.Columns[ClsPub.isInt(sCol[0])].Visible = false;
}
}
else
{
oGrd.Columns[ClsPub.isInt(sCol[0])].Visible = false;
}
}
//
if (sCol.Length > 2)
{
if (ClsPub.isStrNull(sCol[2]) == "L")
{
oGrd.Columns[ClsPub.isInt(sCol[0])].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; //
}
else if (ClsPub.isStrNull(sCol[2]) == "R")
{
oGrd.Columns[ClsPub.isInt(sCol[0])].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; //
}
else if (ClsPub.isStrNull(sCol[2]) == "M")
{
oGrd.Columns[ClsPub.isInt(sCol[0])].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; //
}
else
{
//;
}
}
}
}
}
// 读取隐藏列datagridview 并设置 对齐方式 从数据库读取
public static void HideGridView(DataGridView oGrd, string KeyItem)
{
int Cols;
char c = Convert.ToChar(",");
char s = Convert.ToChar("|");
string sStr = ClsIni.ReadIni("GridHide", KeyItem, AppPath + @"\" + "grdWidth.wyini");
if (sStr != "没有找到!")
{
string[] Col = sStr.Split(c);
for (int i = 0; i < Col.Length; i++)
{
string[] sCol = Col[i].Split(s);
if (sCol.Length > 1)
{
if (ClsPub.isStrNull(sCol[1]) == "1")
{
oGrd.Columns[ClsPub.isInt(sCol[0])].Visible = false; //隐藏列
}
else
{
oGrd.Columns[ClsPub.isInt(sCol[0])].Visible = true; //隐藏列
}
}
//
if (sCol.Length > 2)
{
if (ClsPub.isStrNull(sCol[2]) == "L")
{
oGrd.Columns[ClsPub.isInt(sCol[0])].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; //
}
else if (ClsPub.isStrNull(sCol[2]) == "R")
{
oGrd.Columns[ClsPub.isInt(sCol[0])].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; //
}
else if (ClsPub.isStrNull(sCol[2]) == "M")
{
oGrd.Columns[ClsPub.isInt(sCol[0])].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; //
}
else
{
//;
}
}
}
}
}
// 读取列宽datagridview
public static void GetGridView(DataGridView oGrd, string KeyItem, string AppPath)
{
try
{
int Cols;
char c = Convert.ToChar(",");
string sStr = ClsIni.ReadIni("GridSave", KeyItem, AppPath + @"\" + "grdWidth.wyini");
if (sStr != "没有找到!")
{
string[] ColWidth = sStr.Split(c);
if (oGrd.ColumnCount > ColWidth.Length)
{
Cols = ColWidth.Length;
}
else
{
Cols = oGrd.ColumnCount;
}
for (int i = 0; i < Cols; i++)
{
if (ClsPub.isInt(ColWidth[i]) > 500)
{
oGrd.Columns[i].Width = ClsPub.isInt(ColWidth[i]);
}
else
{
oGrd.Columns[i].Width = ClsPub.isInt(ColWidth[i]);
}
}
}
}
catch(Exception e)
{
MessageBox.Show("设置列宽失败!" + e.Message);
}
}
//保存列宽
public static void SaveGridView(DataGridView oGrd, string KeyItem, string AppPath)
{
int i;
string SaveStr = "";
for (i = 0; i <= oGrd.ColumnCount - 1; i++)
{
if (i == 0)
SaveStr = oGrd.Columns[i].Width.ToString();
else
SaveStr = SaveStr + "," + oGrd.Columns[i].Width.ToString();
}
ClsIni oIni = new ClsIni();
if (ClsIni.WriteIni("GridSave", KeyItem, SaveStr, AppPath + @"\" + "grdWidth.wyini"))
SaveStr = "";
}
//默认列宽
public static void DefaultGridView(DataGridView oGrd)
{
for (int i = 0; i <= oGrd.ColumnCount - 1; i++)
{
oGrd.Columns[i].Width = 100;
}
}
//审核代码合理性
public static bool AllowNumber(string sCode)
{
sCode = sCode.Trim();
if (sCode == "")
{
return true;
}
if (sCode.Substring(sCode.Length-1, 1) == ".")
{
return false;
}
if (sCode.Substring(0, 1) == ".")
{
return false;
}
if (sCode.Contains(".."))
{
return false;
}
return true;
}
//得到父级
public static string GetParentCode(string sCode)
{
if (sCode.Contains("."))
{
for (int i =sCode.Length ; i > 0; i--)
{
if (sCode.Substring(i-1, 1) == ".")
{
return sCode.Substring(0, i - 1);
}
}
return "";
}
else
return "";
}
//得到短代码
public static string GetShortNumber(string sCode)
{
if (sCode.Contains("."))
{
for (int i = sCode.Length; i > 0; i--)
{
if (sCode.Substring(i - 1, 1) == ".")
{
return sCode.Substring(i,sCode.Length - i);
}
}
return sCode;
}
else
return sCode;
}
//得到代码等级
public static int GetLevel(string sCode)
{
return sCode.Length - (sCode.Replace(".", "").Length)+1;
}
//获取下拉框的 内码
public static int GetIDByComboBox(string sCode)
{
if (sCode.Trim() == "")
{
return 0;
}
if (sCode.Contains("-"))
{
string[] s;
s = sCode.Split(Convert.ToChar("-"));
return ClsPub.isInt(s[0]);
}
else
{
return 0;
}
}
//转化GRID中的 布尔型
public static string GridToStr(object message)
{
try
{
if (Convert.ToString(message) == "-1" || Convert.ToString(message) == "1" || Convert.ToString(message) == "True")
return "1";
else
return "0";
}
catch (Exception e)
{
return "0";
}
}
//字符转为布尔
///
/// 将是或者否转化为TRUE和FALSE
///
///
///
public static bool StringToBool(object b)
{
try
{
if (Convert.ToString(b) == "是")
return true;
else
return false;
}
catch (Exception e)
{
return false;
}
}
//转化GRID中的 布尔型
public static bool GridToBool(object message)
{
try
{
if (Convert.ToString(message) == "-1" || Convert.ToString(message) == "1" || Convert.ToString(message) == "True")
return true;
else
return false;
}
catch (Exception e)
{
return false;
}
}
//判断是否是INT64
public static Int64 isLong(object message)
{
try
{
return Convert.ToInt64(message);
}
catch (Exception e)
{
return 0;
}
}
//判断是否是INT32
public static int isInt(object message)
{
try
{
return Convert.ToInt16(message);
}
catch (Exception e)
{
return 0;
}
}
//判断是否NULL
public static string isStrNull(object message)
{
try
{
if (message == null)
{
return "";
}
else
{
return message.ToString().Trim();
}
}
catch (Exception e)
{
return "";
}
}
//判断是否双精度
public static double isDoule(object message)
{
try
{
return Convert.ToDouble(message);
}
catch (Exception e)
{
return 0;
}
}
////判断是否双精度 并返回保留小数
public static string isDoule(object message, int n)
{
try
{
return Convert.ToDouble(message).ToString("F"+n.ToString());
}
catch (Exception e)
{
return "";
}
}
//布尔转为字符
public static string BoolToString(object b)
{
try
{
if (Convert.ToBoolean(b))
return "1";
else
return "0";
}
catch (Exception e)
{
return "0";
}
}
//判断布尔
public static bool isBool(object message)
{
try
{
return Convert.ToBoolean(message);
}
catch (Exception e)
{
return false;
}
}
//判断是否 单精度
public static Single isSingle(object message)
{
try
{
return Convert.ToSingle(message);
}
catch (Exception e)
{
return 0;
}
}
//判断2个日期的大小
///
/// 比较2个日期的大小
///
/// 日期1
/// 日期2
/// -1 日期1小于日期2 0 相等 1 日期1大于日期2
public static int TwoDateCompare(object Date1,object Date2)
{
string Date3 = ClsPub.isDate(Date1, -1);
string Date4 = ClsPub.isDate(Date2,-1);
if (DateTime.Parse(Date3) > DateTime.Parse(Date4))
{
return 1;
}
else if (DateTime.Parse(Date3) == DateTime.Parse(Date4))
{
return 0;
}
else
{
return -1;
}
}
//判断是否是
public static Enum_Color GridToColor(object message)
{
try
{
switch (Convert.ToInt64(message))
{
case 0:
return Enum_Color.hx_Black;
case 16711680:
return Enum_Color.hx_Blue;
case 65280:
return Enum_Color.hx_Green;
case 255:
return Enum_Color.hx_Red;
case 16777215:
return Enum_Color.hx_Write;
case 65535:
return Enum_Color.hx_Yellow;
case 13425104:
return Enum_Color.hx_Control;
default:
return Enum_Color.hx_Black;
}
}
catch (Exception e)
{
return Enum_Color.hx_Black;
}
}
//双精度 四舍五入
public static double ChinaRound(Single value, int decimals)
{
return Math.Round(value, decimals, MidpointRounding.AwayFromZero);
}
///
/// 返回 日期的字符串
///
///
/// d日期dt日期时间t时间
///
public static string DataTimeToStr(object oVal,string sType)
{
try
{
DateTime dt;
if (sType == "d")
{
if (oVal == null)
{
return "1900-01-01" ;
}
else
{
dt = Convert.ToDateTime(oVal);
return dt.ToShortDateString();
}
}
else if (sType == "dt")
{
if (oVal == null)
{
return "1900-01-01 00:00:00" ;
}
else
{
dt = Convert.ToDateTime(oVal);
return dt.ToShortDateString() + " " + dt.ToShortTimeString();
}
}
else if (sType == "t")
{
if (oVal == null)
{
return "00:00:00";
}
else
{
dt = Convert.ToDateTime(oVal);
return dt.ToShortTimeString();
}
}
else
{
if (oVal == null)
{
return "1900-01-01" ;
}
else
{
dt = Convert.ToDateTime(oVal);
return dt.ToShortDateString();
}
}
}
catch (Exception e)
{
return "1900-01-01";
}
}
//判断是否 是日期类型
public static DateTime isDate(object oVal)
{
DateTime dt;
if (oVal == null)
{
return Convert.ToDateTime("1900-01-01");
}
try
{
dt = Convert.ToDateTime(oVal);
if (dt > Convert.ToDateTime("1900-01-01"))
{
return Convert.ToDateTime(oVal);
}
else
{
return Convert.ToDateTime("1900-01-01");
}
}
catch (Exception e)
{
return Convert.ToDateTime("1900-01-01");
}
}
//判断是否 是日期类型 并按格式返回
///
///
///
///
/// -1 全部 0 日期 1 时间
///
public static string isDate(object oVal,int n)
{
if (oVal == null)
{
if (n == -1)
{
return Convert.ToDateTime("1900-01-01 00:00:00").ToString("yyyy-MM-dd HH:mm:ss");
}
else if (n == 0)
{
return Convert.ToDateTime("1900-01-01").ToString("yyyy-MM-dd");
}
else
{
return Convert.ToDateTime("1900-01-01 00:00:00").ToString("HH:mm:ss");
}
}
try
{
if (n == -1)
{
return Convert.ToDateTime(oVal).ToString("yyyy-MM-dd HH:mm:ss");
}
else if (n == 0)
{
return Convert.ToDateTime(oVal).ToString("yyyy-MM-dd");
}
else
{
return Convert.ToDateTime(oVal).ToString("HH:mm:ss");
}
}
catch (Exception e)
{
if (n == -1)
{
return Convert.ToDateTime("1900-01-01 00:00:00").ToString("yyyy-MM-dd hh:mm:ss");
}
else if (n == 0)
{
return Convert.ToDateTime("1900-01-01").ToString("yyyy-MM-dd");
}
else
{
return Convert.ToDateTime("1900-01-01 00:00:00").ToString("hh:mm:ss");
}
}
}
//转化为密码
public static string StrToPsd(string Str)
{
string MmJm = "";
int Zf = 0;
for (int i = 0; i <= Str.Length - 1; i++)
{
Zf = ChrToAsc(Str.Substring(i, 1)) + ChrToAsc(Str.Substring(Str.Length - i - 1, 1)) + Str.Length + 1 + i;
MmJm = MmJm + Zf.ToString().Trim();
}
return MmJm;
}
//字符转ASCII码:
public static int ChrToAsc(string character)
{
if (character.Length == 1)
{
System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
int intAsciiCode = (int)asciiEncoding.GetBytes(character)[0];
return (intAsciiCode);
}
else
{
throw new Exception("Character is not valid.");
}
}
//ASCII码转字符:
public static string AscToChr(int asciiCode)
{
if (asciiCode >= 0 && asciiCode <= 255)
{
System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
byte[] byteArray = new byte[] { (byte)asciiCode };
string strCharacter = asciiEncoding.GetString(byteArray);
return (strCharacter);
}
else
{
throw new Exception("ASCII Code is not valid.");
}
}
//数据导出
public static bool ExportGrid(Form oFrm)
{
foreach (Control ct in oFrm.Controls)
{
switch (ct.GetType().Name)
{
case "AxVSFlexGrid":
try
{
//string s = "";
//AxVSFlex7.AxVSFlexGrid ogrd;
//ogrd = (AxVSFlex7.AxVSFlexGrid)ct;
////选择路径
//SaveFileDialog oDlg = new SaveFileDialog();
//oDlg.Title = "数据导出";
//oDlg.Filter = "数据格式(*.XLS)|*.XLS|数据格式(*.CSV)|*.CSV";
//oDlg.ShowDialog();
//if (oDlg.FileName.Trim() != "")
//{
// ogrd.SaveGrid(oDlg.FileName, VSFlex7.SaveLoadSettings.flexFileTabText, true);
//}
return true;
}
catch (Exception e)
{
return false;
}
default:
break;
}
}
return false;
}
//拷贝表格
public static bool CopyGrid(Form oFrm)
{
foreach (Control ct in oFrm.Controls)
{
switch (ct.GetType().Name)
{
case "AxVSFlexGrid":
try
{
//string s = "";
//AxVSFlex7.AxVSFlexGrid ogrd;
//ogrd = (AxVSFlex7.AxVSFlexGrid)ct;
//s = ogrd.get_Cell(VSFlex7.CellPropertySettings.flexcpText, 0, 0, ogrd.Rows - 1, ogrd.Cols - 1).ToString();
//Clipboard.Clear();
//Clipboard.SetText(s);
return true;
}
catch (Exception e)
{
return false;
}
default:
break;
}
}
return false;
}
//遍历子控件
public static void ForEachControl(Control oControl, bool b)
{
foreach (Control ct in oControl.Controls)
{
if (ct.HasChildren == true)
{
ForEachControl(ct, b);
}
else
{
switch (ct.GetType().Name)
{
case "AxVSFlexGrid":
try
{
if (b)
{
string s = "";
//AxVSFlex7.AxVSFlexGrid ogrd;
//ogrd = (AxVSFlex7.AxVSFlexGrid)ct;
//s = ogrd.get_Cell(VSFlex7.CellPropertySettings.flexcpText, 0, 0, ogrd.Rows - 1, ogrd.Cols - 1).ToString();
//Clipboard.Clear();
//Clipboard.SetText(s);
//MessageBox.Show("拷贝成功!");
return;
}
else
{
string s = "";
//AxVSFlex7.AxVSFlexGrid ogrd;
//ogrd = (AxVSFlex7.AxVSFlexGrid)ct;
////选择路径
//SaveFileDialog oDlg = new SaveFileDialog();
//oDlg.Title = "数据导出";
//oDlg.Filter = "数据格式(*.XLS)|*.XLS|数据格式(*.CSV)|*.CSV";
//oDlg.ShowDialog();
//if (oDlg.FileName.Trim() != "")
//{
// ogrd.SaveGrid(oDlg.FileName, VSFlex7.SaveLoadSettings.flexFileTabText, true);
//}
//MessageBox.Show("导出成功!");
return;
}
}
catch (Exception e)
{
return;
}
default:
break;
}
}
}
}
//得到下查SQL
public static string GetDownBillSql(ref string HBillType, ref string tRight, ref string FrmName, ref string FrmCaption, ref string sViewName, string SourceType, long SourceMainID, long SourceSubID)
{
ClsSqlHelper oCn = new ClsSqlHelper();
DataSet Ds;
try
{
//得到下查单据 类型
Ds = oCn.RunProcReturn("exec h_p_Xt_GetDownBillSql " + SourceMainID.ToString() + "," + SourceSubID.ToString() + ",'" + SourceType.Trim() + "'", "gy_czygl");
if (Ds == null || Ds.Tables[0].Rows.Count == 0)
{
return "";
}
HBillType = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillType"]);
tRight = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRightName"]);
FrmCaption = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HName"]);
FrmName = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HTemplate"]);
sViewName = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HViewName"]);
return "select top 10000 * from " + sViewName + " Where 源单主内码=" + ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HSourceInterID"]) +
" and 源单子内码=" + ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HSourceEntryID"]) +
" and 源单类型='" + ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HSourceBillType"]) + "'";
}
catch (Exception e)
{
MessageBox.Show("关联信息失败,原因: " + e.Message);
return "";
}
}
//得到上查SQL
public static string GetUpBillSql(ref string HBillType, ref string tRight, ref string FrmName, ref string FrmCaption, ref string sViewName, string SourceType, long SourceMainID, long SourceSubID)
{
ClsSqlHelper oCn = new ClsSqlHelper();
DataSet Ds;
try
{
//得到下查单据 类型
Ds = oCn.RunProcReturn("exec h_p_Xt_GetUpBillSql " + SourceMainID.ToString() + "," + SourceSubID.ToString() + ",'" + SourceType.Trim() + "'", "gy_czygl");
if (Ds == null || Ds.Tables[0].Rows.Count == 0)
{
return "";
}
HBillType = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillType"]);
tRight = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HRightName"]);
FrmCaption = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HName"]);
FrmName = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HTemplate"]);
sViewName = ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HViewName"]);
return "select top 10000 * from " + sViewName + " Where hmainid=" + ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HInterID"]) +
" and hsubid=" + ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HEntryID"]) +
" and 单据类型='" + ClsPub.isStrNull(Ds.Tables[0].Rows[0]["HBillType"]) + "'";
}
catch (Exception e)
{
MessageBox.Show("关联信息失败,原因: " + e.Message);
return "";
}
}
//根据名字获取K3用户ID
///
/// 根据名字获取K3用户ID
///
///
///
public static long GetUser_K3(string HUserName)
{
try
{
ClsSqlHelper oCn = new ClsSqlHelper();
DataSet ds;
long HK3UserID = 0;
ds = oCn.RunProcReturn("select * from h_v_K3_User where hname='" + HUserName + "'", "xt_xtgnb");
if (ds == null || ds.Tables[0].Rows.Count == 0)
{
return 0;
}
HK3UserID = ClsPub.isLong(ds.Tables[0].Rows[0]["hitemid"]);
return HK3UserID;
}
catch (Exception e)
{
return 0;
}
}
//得到电脑名和IP
public static void SetIPAddress()
{
IPAddress[] arrIPAddresses = Dns.GetHostAddresses(Dns.GetHostName());
foreach (IPAddress ip in arrIPAddresses)
{
if (ip.AddressFamily.Equals(AddressFamily.InterNetwork))
{
IPAddress = ip.ToString();
ComputerName = System.Net.Dns.GetHostName();
}
}
}
//成本结账得到当前会计年份
public static bool Sub_CBGetCurPeriod()
{
DataSet Ds = new DataSet();
ClsSqlHelper oCn = new ClsSqlHelper();
Ds = oCn.RunProcReturn("select top 1 HYear,HPeriod,HBeginDate,HEndDate from xt_AcCountPeriod where HCBEndFlag=0 order by HYear,HPeriod", "xt_AcCountPeriod");
if (Ds == null || Ds.Tables[0].Rows.Count == 0)
{
return false;
}
else
{
ClsPub.CBCurYear = ClsPub.isInt(Ds.Tables[0].Rows[0]["HYear"].ToString());
ClsPub.CBCurPeriod = ClsPub.isInt(Ds.Tables[0].Rows[0]["HPeriod"].ToString());
ClsPub.CBCurBDate = ClsPub.isDate(Ds.Tables[0].Rows[0]["HBeginDate"].ToString());
ClsPub.CBCurEDate = ClsPub.isDate(Ds.Tables[0].Rows[0]["HEndDate"].ToString());
return true;
}
}
//消费结账得到当前会计年份
public static bool Sub_XFGetCurPeriod()
{
DataSet Ds = new DataSet();
ClsSqlHelper oCn = new ClsSqlHelper();
Ds = oCn.RunProcReturn("select top 1 HYear,HPeriod,HBeginDate,HEndDate from xt_AcCountPeriod where HXFEndFlag=0 order by HYear,HPeriod", "xt_AcCountPeriod");
if (Ds == null || Ds.Tables[0].Rows.Count == 0)
{
return false;
}
else
{
ClsPub.XFCurYear = ClsPub.isInt(Ds.Tables[0].Rows[0]["HYear"].ToString());
ClsPub.XFCurPeriod = ClsPub.isInt(Ds.Tables[0].Rows[0]["HPeriod"].ToString());
ClsPub.XFCurBDate = ClsPub.isDate(Ds.Tables[0].Rows[0]["HBeginDate"].ToString());
ClsPub.XFCurEDate = ClsPub.isDate(Ds.Tables[0].Rows[0]["HEndDate"].ToString());
return true;
}
}
//考勤结账得到当前会计年份
public static bool Sub_KQGetCurPeriod()
{
DataSet Ds = new DataSet();
ClsSqlHelper oCn = new ClsSqlHelper();
Ds = oCn.RunProcReturn("select top 1 HYear,HPeriod,HBeginDate,HEndDate from xt_AcCountPeriod where HKqEndFlag=0 order by HYear,HPeriod", "xt_AcCountPeriod");
if (Ds == null || Ds.Tables[0].Rows.Count == 0)
{
return false;
}
else
{
ClsPub.KQCurYear = ClsPub.isInt(Ds.Tables[0].Rows[0]["HYear"].ToString());
ClsPub.KQCurPeriod = ClsPub.isInt(Ds.Tables[0].Rows[0]["HPeriod"].ToString());
ClsPub.KQCurBDate = ClsPub.isDate(Ds.Tables[0].Rows[0]["HBeginDate"].ToString());
ClsPub.KQCurEDate = ClsPub.isDate(Ds.Tables[0].Rows[0]["HEndDate"].ToString());
return true;
}
}
//设置 年 月 下拉框
public static void Sub_SetYearPeriodCmb(ComboBox oYearCmb,ComboBox oPeriodCmb)
{
oYearCmb.Items.Clear();
oYearCmb.Items.Add(DateTime.Today.Year - 10);
oYearCmb.Items.Add(DateTime.Today.Year - 9);
oYearCmb.Items.Add(DateTime.Today.Year - 8);
oYearCmb.Items.Add(DateTime.Today.Year - 7);
oYearCmb.Items.Add(DateTime.Today.Year - 6);
oYearCmb.Items.Add(DateTime.Today.Year - 5);
oYearCmb.Items.Add(DateTime.Today.Year - 4);
oYearCmb.Items.Add(DateTime.Today.Year - 3);
oYearCmb.Items.Add(DateTime.Today.Year - 2);
oYearCmb.Items.Add(DateTime.Today.Year - 1);
oYearCmb.Items.Add(DateTime.Today.Year);
oYearCmb.Items.Add(DateTime.Today.Year + 1);
oYearCmb.Items.Add(DateTime.Today.Year + 2);
oYearCmb.Items.Add(DateTime.Today.Year + 3);
oYearCmb.Items.Add(DateTime.Today.Year + 4);
oYearCmb.SelectedIndex = 10;
oPeriodCmb.Items.Clear();
//oPeriodCmb.Items.Add("0");
oPeriodCmb.Items.Add("1");
oPeriodCmb.Items.Add("2");
oPeriodCmb.Items.Add("3");
oPeriodCmb.Items.Add("4");
oPeriodCmb.Items.Add("5");
oPeriodCmb.Items.Add("6");
oPeriodCmb.Items.Add("7");
oPeriodCmb.Items.Add("8");
oPeriodCmb.Items.Add("9");
oPeriodCmb.Items.Add("10");
oPeriodCmb.Items.Add("11");
oPeriodCmb.Items.Add("12");
oPeriodCmb.Text = DateTime.Today.Month.ToString();
}
///
/// DataTable转成Json
///
///
///
///
public static string DataTableToJson(DataTable dt, string jsonName)
{
StringBuilder Json = new StringBuilder();
if (string.IsNullOrEmpty(jsonName))
jsonName = dt.TableName;
Json.Append("{" + jsonName + ":[");
//Json.Append("[");
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
Json.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
Type type = dt.Rows[i][j].GetType();
Json.Append("" + dt.Columns[j].ColumnName.ToString().ToLower() + ":" + StringFormat(dt.Rows[i][j].ToString(), type));
if (j < dt.Columns.Count - 1)
{
Json.Append(",");
}
}
Json.Append("}");
if (i < dt.Rows.Count - 1)
{
Json.Append(",");
}
}
}
//Json.Append("]}");
Json.Append("]}");
Json.Replace(Convert.ToChar("\""), Convert.ToChar("\'"));
return Json.ToString();
}
///
/// 格式化字符型、日期型、布尔型
///
///
///
///
private static string StringFormat(string str, Type type)
{
if (type == typeof(string))
{
str = String2Json(str);
str = "\"" + str + "\"";
}
else if (type == typeof(DateTime))
{
str = "\"" + str + "\"";
}
else if (type == typeof(bool))
{
str = str.ToLower();
}
return str;
}
///
/// 过滤特殊字符
///
///
///
private static string String2Json(String s)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.Length; i++)
{
char c = s.ToCharArray()[i];
switch (c)
{
case '\"':
sb.Append("\\\""); break;
case '\\':
sb.Append("\\\\"); break;
case '/':
sb.Append("\\/"); break;
case '\b':
sb.Append("\\b"); break;
case '\f':
sb.Append("\\f"); break;
case '\n':
sb.Append("\\n"); break;
case '\r':
sb.Append("\\r"); break;
case '\t':
sb.Append("\\t"); break;
default:
sb.Append(c); break;
}
}
return sb.ToString();
}
}
}