请问一下我有这样一段打印的命令JOB NM=cmdprint,ID=1234
{标签编号}
PAPER PG=20,PW=1260,PH=600
{单据编号}
ENV MK=2,DR=1,DK=10,SP=1,PS=207,PO=0,TO=0,CO=0,
{数量}
XO=0,YO=0,MD=1,CP=0
START
RECT SX=138,SY=70,EX=887,EY=513,WD=2,TP=1
FONT TP=3,AT=2,DR=1,
{11位的工令单号}
WD=28,LG=28,SL=0
TEXT X=160,Y=119,L=1
TPOPart:{数量}另外我有一张这样的表
打印命令里的{XX}是打印的参数,
现在我要做的事情是,如果打印命令里的参数{XX}和这张表的字段ColumnDescription的某个值相同,如打印命令里是{数量},那么,就从这张表里查出ColumnDescription值为“数量”的对应字段TableName为 NN_WorkoutEntry 表里查询对应字段ColumnName 为FAmount的值,也就是
select FAmount from NN_WorkoutEntry where ...
然后将这个查询出来的结果第一行第一列的FAmount 实际值替换打印命令参数里的{数量},,,,,同理,如果打印命令里有出现{单据编号},那么根据这张表显示的,就应该执行命令select FBillNo from nn_workout where ...
然后将这个查询出来的结果第一行第一列的FAmount 实际值替换打印命令参数里的{单据编号},,,,,注:打印命令里的参数个数和参数是什么,都是不确定的。这个应该怎么实现呢???请各位老大们帮忙啊!!!
{标签编号}
PAPER PG=20,PW=1260,PH=600
{单据编号}
ENV MK=2,DR=1,DK=10,SP=1,PS=207,PO=0,TO=0,CO=0,
{数量}
XO=0,YO=0,MD=1,CP=0
START
RECT SX=138,SY=70,EX=887,EY=513,WD=2,TP=1
FONT TP=3,AT=2,DR=1,
{11位的工令单号}
WD=28,LG=28,SL=0
TEXT X=160,Y=119,L=1
TPOPart:{数量}另外我有一张这样的表
打印命令里的{XX}是打印的参数,
现在我要做的事情是,如果打印命令里的参数{XX}和这张表的字段ColumnDescription的某个值相同,如打印命令里是{数量},那么,就从这张表里查出ColumnDescription值为“数量”的对应字段TableName为 NN_WorkoutEntry 表里查询对应字段ColumnName 为FAmount的值,也就是
select FAmount from NN_WorkoutEntry where ...
然后将这个查询出来的结果第一行第一列的FAmount 实际值替换打印命令参数里的{数量},,,,,同理,如果打印命令里有出现{单据编号},那么根据这张表显示的,就应该执行命令select FBillNo from nn_workout where ...
然后将这个查询出来的结果第一行第一列的FAmount 实际值替换打印命令参数里的{单据编号},,,,,注:打印命令里的参数个数和参数是什么,都是不确定的。这个应该怎么实现呢???请各位老大们帮忙啊!!!
我怎么根据打印命令里有什么参数去查这张表的ColumnDescription字段?
只要能将打印命令里的参数{XXX}和ColumnDescription字段对应上,那剩下的我就能做了??请问各位老大,应该怎么做》?
我要的最后结果就是将打印命令内的所有{参数}都替换为数据库中表的相应字段的实际值!!!!
dataset ds=new dataset()
string sql1="select TableName,ColumnName from 表 where ColumnDes='"++"'"
SqlDataAdapter adp=new SqlDataAdapter(sql1,conn)
adp.fill(ds)
string tablename=ds.table[0].rows[0][0].tostring()
string columnname=ds.table[0].rows[0][1].tostring()
string sql2="select "+columnname+" from "+tablename+""
执行sql2
string str = @"JOB NM=cmdprint,ID=1234
{标签编号}
PAPER PG=20,PW=1260,PH=600
{单据编号}
ENV MK=2,DR=1,DK=10,SP=1,PS=207,PO=0,TO=0,CO=0,
{数量}
XO=0,YO=0,MD=1,CP=0
START
RECT SX=138,SY=70,EX=887,EY=513,WD=2,TP=1
FONT TP=3,AT=2,DR=1,
{11位的工令单号}
WD=28,LG=28,SL=0
TEXT X=160,Y=119,L=1
TPOPart:{数量} ";
Regex reg = new Regex("{(?<param>.*)}");
List<string> list = new List<string>();
Match m = reg.Match(str);
while (m.Success)
{
list.Add(m.Groups["param"].Value);
m = m.NextMatch();
}
using (SqlConnection conn = new SqlConnection("连接字符串"))
{
conn.Open();
foreach (string s in list)
{
string replacement = "", tableName = "", columnName = "";
using (SqlCommand cmd = new SqlCommand("select * from yourtable where ColumnDescription='" + s + "'", conn))
{
using (SqlDataReader dr = cmd.ExecuteReader())
{
if (dr.Read())
{
tableName = dr["TableName"].ToString();
columnName = dr["ColumnName"].ToString();
}
}
}
using (SqlCommand cmd = new SqlCommand("select " + columnName + " from " + tableName, conn))
{
replacement = cmd.ExecuteScalar().ToString();
}
str.Replace(s, replacement);
}
}