110,533
社区成员
发帖
与我相关
我的任务
分享
public void GenerateIdoc()
{
if (Checked())
{
string s_ConsignmentId = "";
foreach (int RowIndex in ColumnSeleted)
{
s_ConsignmentId = s_ConsignmentId + staticMethodClass.ToStringAndTrim(dgvdata.Rows[RowIndex].Cells[1].Value.ToString()) + ",";
}
s_ConsignmentId = s_ConsignmentId.Substring(0, s_ConsignmentId.LastIndexOf(","));
string s_SqlConsignment = "SAP_ADMIN.P_INSERT_CONSIGNMENT";
string sOb_no = "";
string sConsignmentId = "";
string s_IDocSql = "SELECT OB_NO,INDEX_NO,DATA FROM SAP_ADMIN.BELKIN_EDI_IDOC_TAB WHERE OB_NO=@Ob_No ORDER BY INDEX_NO ASC";
string s_Sql = "SAP_ADMIN.P_Belkin_Create_Idoc_Table";
if (sqlExecute == null)
{
sqlExecute = new SQLExecute();
}
try
{
Hashtable hs_parameters = new Hashtable();
Hashtable hs_Para = new Hashtable();
hs_Para.Add("@ConsignmentId", s_ConsignmentId);
sqlExecute.executeProceduce(hs_Para, s_SqlConsignment);
hs_parameters.Add("@Return", 'N');
sqlExecute.executeProceduce(hs_parameters, s_Sql);
ReadIni Read = new ReadIni(staticVariableClass.s_IniFilePath);
FtpServerName = Read.ReadInivalue("FTPSERVE", "FTPSERVERNAME");
FtpUserName = Read.ReadInivalue("FTPSERVE", "FTPUSERNAME");
FtpPassword = Read.ReadInivalue("FTPSERVE", "FTPPASSWORD");
foreach (int RowIndex in ColumnSeleted)
{
Hashtable hs_CongimentId = new Hashtable();
sConsignmentId = staticMethodClass.ToStringAndTrim(dgvdata.Rows[RowIndex].Cells[1].Value.ToString());
hs_CongimentId.Add("@ConsignmentId", sConsignmentId);
string s_SqlSelect = "SELECT OB_NO FROM SAP_ADMIN.CONSIGNMENT_ORDER_TAB WHERE Consignment_Id=@ConsignmentId";
if (sqlExecute == null)
{
sqlExecute = new SQLExecute();
}
DataSet Ds_Consignment = sqlExecute.getDataset(s_SqlSelect, hs_CongimentId);
if (Ds_Consignment.Tables[0].Rows.Count > 0)
{
DataTableReader S_ObReader = Ds_Consignment.Tables[0].CreateDataReader();
while (S_ObReader.Read())
{
FilePath = Read.ReadInivalue("IDOCFILEPATH", "IDOC_PATH");
sOb_no = staticMethodClass.ToStringAndTrim(S_ObReader["OB_NO"].ToString());
Hashtable Hs_parameters = new Hashtable();
Hs_parameters.Add("@Ob_No", sOb_no);
DataSet Ds = new DataSet();
Ds = sqlExecute.getDataset(s_IDocSql, Hs_parameters);
FilePath = FilePath + "\\" + "Idoc_" + sOb_no + ".txt";
FileStream fs = new FileStream(FilePath, FileMode.OpenOrCreate);
StreamWriter Sw = new StreamWriter(fs);
DataTableReader Sdr = Ds.Tables[0].CreateDataReader();
while (Sdr.Read())
{
Sw.Write(staticMethodClass.ToStringAndTrim(Sdr[2].ToString()) + "\r\n");
}
Sdr.Close();
Sw.Close();
fs.Close();
Upload(FilePath);
}
S_ObReader.Close();
}
string s_Sql2 = "UPDATE SAP_ADMIN.CONSIGNMENT_TAB SET S_FLAG_SEND='Y' WHERE Consignment_Id=@ConsignmentId ";
if (sqlExecute == null)
{
sqlExecute = new SQLExecute();
}
sqlExecute.executeSQL(hs_CongimentId, s_Sql2);
}
}
catch (Exception ex)
{
staticMethodClass.showInformationMessageBox(ex.Message, "Information");
return;
}
staticMethodClass.showInformationMessageBox("IDoc File haves been send to Ftp! ", "Infomation");
}
else
{
staticMethodClass.showInformationMessageBox("Pls Select the data", "Information");
}
}
public void Upload(string filename)
{
FileInfo fileInf = new FileInfo(filename);
string Uri = "ftp://" + FtpServerName + "/" + fileInf.Name;
Connect(Uri);
ReqFtp.KeepAlive = false;
ReqFtp.Method = WebRequestMethods.Ftp.UploadFile;
ReqFtp.ContentLength = fileInf.Length;
int BuffLength = 2048;
byte[] buff = new byte[BuffLength];
int ContentLen;
FileStream Fs = fileInf.OpenRead();
try
{
Stream Strm = ReqFtp.GetRequestStream();
ContentLen = Fs.Read(buff, 0, BuffLength);
while (ContentLen != 0)
{
Strm.Write(buff, 0, ContentLen);
Strm.Flush();
ContentLen = Fs.Read(buff, 0, BuffLength);
}
Strm.Close();
Fs.Close();
}
catch (Exception ex)
{
staticMethodClass.showInformationMessageBox("Upload Error:" + ex.Message, "Information");
}
}