using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Data;
using System.IO;
using System.Windows.Forms;
//add 2013-08-22 weiyj 修改XML文件格式
namespace yjs_cl_seq
{
public class TXTHelper
{
public void createTxt(string DocTitle, string path, DataTable sampTable, DataTable zfTable, string CurrentUserName,string netUser,string netPwd, string netIP )
{
path = path + @"\" + CurrentUserName;
try
{
//访问的是网络路径
if (!string.IsNullOrEmpty(netUser) && !string.IsNullOrEmpty(netPwd) && !string.IsNullOrEmpty(netIP))
{
if (ConnectHelper.impersonateValidUser(netUser, netIP, netPwd) == false)
{
MessageBox.Show("网络路径不存在");
return;
}
}
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
}
catch (Exception ex)
{
MessageBox.Show("访问路径错误" + ex.ToString());
return;
}
FileStream fs = new FileStream(path + @"\" + DocTitle + "_" + DateTime.Now.ToString("yyyy-MM-dd hhmmssfff") + ".txt", FileMode.Create, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, Encoding.Default);
DateTime datenow = new DateTime();
datenow = DateTime.Now;
StringBuilder str = new StringBuilder();
str.Append("[Header]");
str.AppendLine();
str.AppendFormat("Batch File Name {0}", "DB\\Sample_LC_EN\\1\\Admin");
str.AppendLine();
str.AppendFormat("Output Date {0}", datenow.ToString("yyyy-MM-dd"));
str.AppendLine();
str.AppendFormat("Output Time {0}", datenow.ToString("hh:mm:ss"));
str.AppendLine();
str.AppendLine();
str.Append("[File Information]");
str.AppendLine();
str.Append("Type Batch File");
str.AppendLine();
str.AppendFormat("Generated {0}", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
str.AppendLine();
str.AppendFormat("Generated by {0}", "System Administrator");
str.AppendLine();
str.AppendFormat("Modified {0}", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));
str.AppendLine();
str.AppendFormat("Modified by {0}", "System Administrator");
str.AppendLine();
str.AppendLine();
str.AppendFormat("[File Description]");
str.AppendLine();
str.AppendLine();
str.AppendLine();
str.AppendFormat("[Instrument Type]");
str.AppendLine();
str.AppendFormat("Type 0");
str.AppendLine();
str.AppendLine();
str.AppendLine("[ASCII Convert]");
str.AppendLine("Mode 1");
str.AppendLine("File C:\\Users\\peng\\Desktop\\LIMS_Export\\ASCIIData.txt");
str.AppendLine("Auto-Increment 1");
str.AppendLine("Items 1.2.3");
str.AppendLine("Delimiter \", \"");
str.AppendLine();
str.AppendFormat("[Batch Table]");
str.AppendLine();
str.AppendFormat("# of Row 1");
str.AppendLine();
str.AppendFormat("运行模式\t样品瓶架\t样品瓶号\t样品名\t样品ID\t样品类型\t分析类型\t方法文件\t数据文件\t背景\t背景文件\t级别号\t进样体积\t内标量\t样品量\t稀释因子\t系统检查\t输出报告\t报告格式文件\t用户程序\t措施\t数据描述\t自动排气\t基线检查\t选项1\t选项2\t选项3\t选项4\t选项5\t定制参数\t自动调谐\t调谐文件\tPsiPort Instrument Method File\t输出汇总报告\t汇总报告格式文件\t选项6\t选项7\t选项8\t选项9\t选项10\t浓度覆盖");
//str.AppendFormat("运行模式\t样品瓶架\t样品瓶号\t样品名\t样品ID\t样品类型\t数据文件\t级别号\t数据描述\t");
str.AppendLine();
#region
if (sampTable != null && sampTable.Rows.Count > 0)
{
int index = 0;
for (int i = 0; i < sampTable.Rows.Count; i++)
{
//进样次数
int jycsInt = 0;
string jycs = sampTable.Rows[i]["进样次数"].ToString();
if (int.TryParse(jycs, out jycsInt))
{
jycsInt = int.Parse(jycs);
}
//进样次数是多少就生成多少行
for (int j = 0; j < jycsInt; j++)
{
index++;
str.AppendFormat("{0}\t", "DL AQ DP");//运行模式
str.AppendFormat("{0}\t", "1");//样品瓶架
str.AppendFormat("{0}\t", "1");//样品瓶号
str.AppendFormat("{0}\t", sampTable.Rows[i]["别名"].ToString() + "/" + sampTable.Rows[i]["项目"].ToString() + "/" + sampTable.Rows[i]["称量次数"].ToString());//样品名
str.AppendFormat("{0}\t", sampTable.Rows[i]["名称"].ToString());//样品ID
str.AppendFormat("{0}\t", "1:标准");//样品类型
str.AppendFormat("{0}\t", "");//分析类型
str.AppendFormat("{0}\t", "1");//方法文件
str.AppendFormat("{0}\t", sampTable.Rows[i]["名称"].ToString() +"_"+ index);//数据文件
str.AppendFormat("{0}\t", "");//背景
str.AppendFormat("{0}\t", "");//背景文件
str.AppendFormat("{0}\t", "1");//级别号
str.AppendFormat("{0}\t", "");//进样体积
str.AppendFormat("{0}\t", "");//内标量
str.AppendFormat("{0}\t", "");//样品量
str.AppendFormat("{0}\t", "");//稀释因子
str.AppendFormat("{0}\t", "");//系统检查
str.AppendFormat("{0}\t", "");//输出报告
str.AppendFormat("{0}\t", "");//报告格式文件
str.AppendFormat("{0}\t", "");//用户程序
str.AppendFormat("{0}\t", "");//措施
str.AppendFormat("{0}\t", sampTable.Rows[i]["项目编号"].ToString());//数据描述
str.AppendFormat("{0}\t", "");//自动排气
str.AppendFormat("{0}\t", "");//基线检查
str.AppendFormat("{0}\t", "");//选项1
str.AppendFormat("{0}\t", "");//选项2
str.AppendFormat("{0}\t", "");//选项3
str.AppendFormat("{0}\t", "");//选项4
str.AppendFormat("{0}\t", "");//选项5
str.AppendFormat("{0}\t", "");//定制参数
str.AppendFormat("{0}\t", "");//自动调谐
str.AppendFormat("{0}\t", "");//调谐文件
str.AppendFormat("{0}\t", "");//PsiPort Instrument Method File
str.AppendFormat("{0}\t", "");//输出汇总报告
str.AppendFormat("{0}\t", "");//汇总报告格式文件
str.AppendFormat("{0}\t", "");//选项6
str.AppendFormat("{0}\t", "");//选项7
str.AppendFormat("{0}\t", "");//选项8
str.AppendFormat("{0}\t", "");//选项9
str.AppendFormat("{0}\t", "");//选项10
str.AppendFormat("{0}\t", "");//浓度覆盖
str.AppendLine();
}
}
}
#endregion
#region
if (zfTable != null && zfTable.Rows.Count > 0)
{
int index = 0;
for (int i = 0; i < zfTable.Rows.Count; i++)
{
//进样次数
int jycsInt = 0;
string jycs = zfTable.Rows[i]["进样次数"].ToString();
if (int.TryParse(jycs, out jycsInt))
{
jycsInt = int.Parse(jycs);
}
for (int j = 0; j < jycsInt; j++)
{
index++;
str.AppendFormat("{0}\t", "DL AQ DP");//运行模式
str.AppendFormat("{0}\t", "1");//样品瓶架
str.AppendFormat("{0}\t", "1");//样品瓶号
str.AppendFormat("{0}\t", zfTable.Rows[i]["检品名称"].ToString() + "/" + zfTable.Rows[i]["项目"].ToString() + "/" + zfTable.Rows[i]["称量次数"].ToString());//样品名
str.AppendFormat("{0}\t", zfTable.Rows[i]["检品编号"].ToString());//样品ID
str.AppendFormat("{0}\t", "0:未知");//样品类型
str.AppendFormat("{0}\t", "");//分析类型
str.AppendFormat("{0}\t", "1");//方法文件
str.AppendFormat("{0}\t", zfTable.Rows[i]["检品编号"].ToString() + "_" + index);//数据文件
str.AppendFormat("{0}\t", "");//背景
str.AppendFormat("{0}\t", "");//背景文件
str.AppendFormat("{0}\t", "1");//级别号
str.AppendFormat("{0}\t", "");//进样体积
str.AppendFormat("{0}\t", "");//内标量
str.AppendFormat("{0}\t", "");//样品量
str.AppendFormat("{0}\t", "");//稀释因子
str.AppendFormat("{0}\t", "");//系统检查
str.AppendFormat("{0}\t", "");//输出报告
str.AppendFormat("{0}\t", "");//报告格式文件
str.AppendFormat("{0}\t", "");//用户程序
str.AppendFormat("{0}\t", "");//措施
str.AppendFormat("{0}\t", zfTable.Rows[i]["项目编号"].ToString());//数据描述
str.AppendFormat("{0}\t", "");//自动排气
str.AppendFormat("{0}\t", "");//基线检查
str.AppendFormat("{0}\t", "");//选项1
str.AppendFormat("{0}\t", "");//选项2
str.AppendFormat("{0}\t", "");//选项3
str.AppendFormat("{0}\t", "");//选项4
str.AppendFormat("{0}\t", "");//选项5
str.AppendFormat("{0}\t", "");//定制参数
str.AppendFormat("{0}\t", "");//自动调谐
str.AppendFormat("{0}\t", "");//调谐文件
str.AppendFormat("{0}\t", "");//PsiPort Instrument Method File
str.AppendFormat("{0}\t", "");//输出汇总报告
str.AppendFormat("{0}\t", "");//汇总报告格式文件
str.AppendFormat("{0}\t", "");//选项6
str.AppendFormat("{0}\t", "");//选项7
str.AppendFormat("{0}\t", "");//选项8
str.AppendFormat("{0}\t", "");//选项9
str.AppendFormat("{0}\t", "");//选项10
str.AppendFormat("{0}\t", "");//浓度覆盖
str.AppendLine();
}
}
}
#endregion
sw.Write(str);
sw.Close();
fs.Close();
}
}
}