Browse Source

参数为空不允许打印

callm 2 weeks ago
parent
commit
216c28e726

+ 5 - 0
UAS_MES_YDCY/FunctionCode/Make/Make_SNLabelCheckSH.cs

@@ -331,6 +331,11 @@ namespace UAS_MES_NEW.Make
         {
             if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, code.Text, User.UserCode, out oMakeCode, out oMsid, out ErrorMessage))
             {
+                if (dh.getFieldDataByCondition("makecbr", "MC_HASHVALUE", "MC_SNCODE='" + code.Text + "'").ToString() == "")
+                {
+                    OperateResult.AppendText("<<序列号:" + code.Text + "未获取到HashValue,不允许核对\n", Color.Red, code);
+                    return;
+                }
                 nextstepcode = dh.getFieldDataByCondition("makeserial", "ms_nextstepcode", "ms_id='" + oMsid + "'").ToString();
                 if (nextstepcode != User.CurrentStepCode)
                 {

+ 25 - 2
UAS_MES_YDCY/PublicMethod/Print.cs

@@ -47,7 +47,7 @@ namespace UAS_MES_NEW.PublicMethod
             }
             //打开模板路径
             //查询模板对应的取值SQL和参数名称
-            dt = (DataTable)dh.ExecuteSql("select lp_name,lp_sql from label left join LABELPARAMETER on la_id=lp_laid where la_id='" + LaID + "'", "select");
+            dt = (DataTable)dh.ExecuteSql("select lp_name,lp_sql,nvl(lp_ifnull,0)lp_ifnull from label left join LABELPARAMETER on la_id=lp_laid where la_id='" + LaID + "'", "select");
             StringBuilder sb = new StringBuilder();
             if (doc == null)
             {
@@ -58,6 +58,8 @@ namespace UAS_MES_NEW.PublicMethod
             for (int i = 0; i < dt.Rows.Count; i++)
             {
                 string sql = dt.Rows[i]["lp_sql"].ToString();
+                string lp_name = dt.Rows[i]["lp_name"].ToString();
+                string lp_ifnull = dt.Rows[i]["lp_ifnull"].ToString();
                 try
                 {
                     Regex ConnoteA = new Regex("{\\w+}");
@@ -68,7 +70,14 @@ namespace UAS_MES_NEW.PublicMethod
                     }
                     DataTable Param = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
                     if (Param.Rows.Count == 0)
+                    {
+                        if (lp_ifnull != "0")
+                        {
+                            MessageBox.Show("参数" + lp_name + "为空,不允许打印");
+                            return false;
+                        }
                         continue;
+                    }
                     //查询的结果的参数个数大于1需要给标签的多个参数赋值
                     if (Param.Rows.Count > 0)
                     {
@@ -236,7 +245,7 @@ namespace UAS_MES_NEW.PublicMethod
             FileInfo PrintFile = new FileInfo(LabelName);
             //打开模板路径
             //查询模板对应的取值SQL和参数名称
-            dt = (DataTable)dh.ExecuteSql("select lp_name,lp_sql from label left join LABELPARAMETER on la_id=lp_laid where la_id='" + LaID + "'", "select");
+            dt = (DataTable)dh.ExecuteSql("select lp_name,lp_sql,nvl(lp_ifnull,0)lp_ifnull from label left join LABELPARAMETER on la_id=lp_laid where la_id='" + LaID + "'", "select");
             StringBuilder sb = new StringBuilder();
             if (!PrintFile.Exists)
             {
@@ -263,6 +272,8 @@ namespace UAS_MES_NEW.PublicMethod
             for (int i = 0; i < dt.Rows.Count; i++)
             {
                 string sql = dt.Rows[i]["lp_sql"].ToString();
+                string lp_name = dt.Rows[i]["lp_name"].ToString();
+                string lp_ifnull = dt.Rows[i]["lp_ifnull"].ToString();
                 try
                 {
                     Regex ConnoteA = new Regex("{\\w+}");
@@ -273,10 +284,22 @@ namespace UAS_MES_NEW.PublicMethod
                     }
                     DataTable Param = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
                     if (Param.Rows.Count == 0)
+                    {
+                        if (lp_ifnull != "0")
+                        {
+                            MessageBox.Show("参数" + lp_name + "为空,不允许打印");
+                            return false;
+                        }
                         continue;
+                    }
                     //查询的结果的参数个数大于1需要给标签的多个参数赋值
                     if (Param.Rows.Count > 0)
                     {
+                        if (lp_ifnull != "0" && Param.Rows[0][0].ToString() == "")
+                        {
+                            MessageBox.Show("参数" + lp_name + "为空,不允许打印");
+                            return false;
+                        }
                         int LoopTime = Param.Rows.Count > 1000 ? 1000 : Param.Rows.Count;
                         for (int j = 0; j < LoopTime; j++)
                         {