使用功能号配置查询条件以及后台接收值的简便写法

查询函数

        private void Query()
        {
            try
            {
                EI.EIInfo inBlock = new EI.EIInfo();
                EI.EIInfo inInfo = EF.Utility.GetSingleGridValue(efDevGrid2);

                //查询使用参数
                inBlock.Tables[0].Columns.Add("COLSNAME");
                inBlock.Tables[0].Rows.Add();
                inBlock.Tables[0].Rows[0]["COLSNAME"] = Grid_Style.GetColsName(efDevGrid1, gridView1);

                /* 新增一个Tables */
                inBlock.Tables.Add();
                inBlock.Tables[1].Merge(inInfo.Tables[0]);

                //调用调用后台程序
                EI.EIInfo outBlock = EI.EIManager.Instance.CallService("MA1RM", "pmommacs05_inq", inBlock);
                if (outBlock.sys_info.flag < 0)
                {
                    this.EFMsgInfo = outBlock.sys_info.msg + "\n" + outBlock.sys_info.sysmsg;
                }
                else
                {
                    this.EFMsgInfo = "查询成功!";
                }
                EF.Utility.SetCustomGridValue(efDevGrid1, outBlock);//绑定查询数据
                this.gridView1.BestFitColumns();
            }
            catch (Exception e)
            {
                this.EFMsgInfo = e.Message;
            }
        }

后台接受函数

    try
    {
        //获取前台输入数据
        colsname = bcls_rec->Tables[0].Rows[0]["COLSNAME"].ToString().Trim();//需要查询的列
        Log::Trace("", __FUNCTION__, "colsname={0} ", colsname);

        cnt = bcls_rec->Tables[1].Columns.get_Count();
        Log::Trace("", __FUNCTION__, "cnt={0} ", cnt);

        strSqlWhere = " WHERE  UNIT_CODE = 'S001' AND NEXT_UNIT_CODE = 'H031' ";
        for (int k = 0; k < cnt; k++)
        {
            // 列名
            lpsz_column_name = bcls_rec->Tables[1].Columns[k].get_ColumnName().Trim();
            //
            lpsz_column_value = bcls_rec->Tables[1].Rows[0][k].ToString().Trim();
            Log::Trace("", __FUNCTION__, "lpsz_column_name={0} ", lpsz_column_name);
            Log::Trace("", __FUNCTION__, "lpsz_column_value={0} ", lpsz_column_value);
            // 不为空拼接where条件
            if (!lpsz_column_value.Trim().IsEmpty())
            {
                if (lpsz_column_name == "APP_STATUSFROM")
                {
                    strSqlWhere += " AND APP_STATUS >= '" + lpsz_column_value + "' ";
                }
                else if (lpsz_column_name == "APP_STATUSTO")
                {
                    strSqlWhere += " AND APP_STATUS <= '" + lpsz_column_value + "' ";
                }
                else
                {
                    strSqlWhere += " AND " + lpsz_column_name + " LIKE '" + lpsz_column_value + "%'";
                }
            }
        }
        Log::Trace("", __FUNCTION__, "strSqlWhere={0} ", strSqlWhere);

        sqlstr = " SELECT DISTINCT " + colsname + " FROM PMOMMA.TPMOMMA00 " + strSqlWhere;
        Log::Trace("", __FUNCTION__, "sqlstr={0} ", sqlstr);
        cmd.SetCommandText(sqlstr);
        cmd.ExecuteQuery(bcls_ret->Tables[0]);
        cmd.Close();
        bcls_ret->Tables[0].Columns.Add(DT_STRING, "PONOSTART");
        bcls_ret->Tables[0].Columns.Add(DT_STRING, "PONOEND");

        cnt = bcls_ret->Tables[0].Rows.get_Count();
        Log::Trace("", __FUNCTION__, "cnt={0} ", cnt);

        for (int i = 0; i < cnt; i++)
        {
            steel_app_date = bcls_ret->Tables[0].Rows[i]["STEEL_APP_DATE"].ToString().Trim();
            pre_cast_lot_no = bcls_ret->Tables[0].Rows[i]["PREC_CAST_LOT_NO"].ToString().Trim();

            sqlstr = " SELECT  MIN(PONO),MAX(PONO) "
                " FROM PMOMMA.TPMOMMA00 "
                " WHERE  UNIT_CODE = 'S001' AND NEXT_UNIT_CODE = 'H031' AND PONO<>'' "
                " AND PREC_CAST_LOT_NO = '" + pre_cast_lot_no + "' ";
            Log::Trace("", __FUNCTION__, "sqlstr={0} ", sqlstr);
            cmd.SetCommandText(sqlstr);
            cmd.ExecuteReader();
            if (cmd.Read())
            {
                bcls_ret->Tables[0].Rows[i]["PONOSTART"] = cmd.GetString(1);
                bcls_ret->Tables[0].Rows[i]["PONOEND"] = cmd.GetString(2);
            }
            cmd.Close();
        }
    }

原本的写法

try
    {
        //系统的分页类信息。
        CPageInfo pageInfo;

        //获取分页信息
        try
        {
            pageInfo.MergeFrom(bcls_rec->Tables["PageInfo"].Rows[0]);
        }
        catch (CException& ce)
        {
            pageInfo.RecordFrom = 0;
            pageInfo.PageSize = 1000;
        }

        //获取查询参数块 
        if (bcls_rec->Tables.Contains("QUERY_MODE"))
        {
            if (bcls_rec->Tables["QUERY_MODE"].Columns.Contains("CTRL_FLAG"))
                v_ctrl_flag = bcls_rec->Tables["QUERY_MODE"].Rows[0]["CTRL_FLAG"].ToString().Trim();

            Log::Trace("", __FUNCTION__, "v_ctrl_flag = [{0}]", v_ctrl_flag);

            if (bcls_rec->Tables["QUERY_MODE"].Columns.Contains("QUERY_FLAG"))
                v_query_flag = bcls_rec->Tables["QUERY_MODE"].Rows[0]["QUERY_FLAG"].ToString().Trim();

            if (bcls_rec->Tables["QUERY_MODE"].Columns.Contains("IN_LINE_TYPE"))
                v_in_line_type = bcls_rec->Tables["QUERY_MODE"].Rows[0]["IN_LINE_TYPE"].ToString().Trim();


            Log::Trace("", __FUNCTION__, "v_query_flag = [{0}]", v_query_flag);
        }

        //获取查询条件
        if (bcls_rec->Tables[0].Columns.Contains("PROD_DIF"))
        {
            v_prod_dif = bcls_rec->Tables[0].Rows[0]["PROD_DIF"].ToString().Trim();
            Log::Trace("", __FUNCTION__, "v_prod_dif = [{0}]", v_prod_dif);
        }

        if (bcls_rec->Tables[0].Columns.Contains("ORDER_DELIVERY_DATE"))
        {
            v_delivy_date_f = bcls_rec->Tables[0].Rows[0]["ORDER_DELIVERY_DATE"].ToString().Trim();
            Log::Trace("", __FUNCTION__, "v_delivy_date_f = [{0}]", v_delivy_date_f);
        }

        if (bcls_rec->Tables[0].Columns.Contains("ORDER_DELIVERY_DATE2"))
        {
            v_delivy_date_t = bcls_rec->Tables[0].Rows[0]["ORDER_DELIVERY_DATE2"].ToString().Trim();
            Log::Trace("", __FUNCTION__, "v_delivy_date_t = [{0}]", v_delivy_date_t);
        }

        if (bcls_rec->Tables[0].Columns.Contains("LATEST_END_DATE"))
        {
            v_latest_end_date_sm_f = bcls_rec->Tables[0].Rows[0]["LATEST_END_DATE"].ToString().Trim();
            Log::Trace("", __FUNCTION__, "v_latest_end_date_sm_f = [{0}]", v_latest_end_date_sm_f);
        }

        if (bcls_rec->Tables[0].Columns.Contains("LATEST_END_DATE2"))
        {
            v_latest_end_date_sm_t = bcls_rec->Tables[0].Rows[0]["LATEST_END_DATE2"].ToString().Trim();
            Log::Trace("", __FUNCTION__, "v_latest_end_date_sm_t = [{0}]", v_latest_end_date_sm_t);
        }

        if (bcls_rec->Tables[0].Columns.Contains("PLAN_END_DATE"))
        {
            v_plan_end_date_sm_f = bcls_rec->Tables[0].Rows[0]["PLAN_END_DATE"].ToString().Trim();
            Log::Trace("", __FUNCTION__, "v_plan_end_date_sm_f = [{0}]", v_plan_end_date_sm_f);
        }

        if (bcls_rec->Tables[0].Columns.Contains("PLAN_END_DATE2"))
        {
            v_plan_end_date_sm_t = bcls_rec->Tables[0].Rows[0]["PLAN_END_DATE2"].ToString().Trim();
            Log::Trace("", __FUNCTION__, "v_plan_end_date_sm_t = [{0}]", v_plan_end_date_sm_t);
        }

        if (bcls_rec->Tables[0].Columns.Contains("URG_ORDER_FLAG"))
        {
            v_urg_order_flag = bcls_rec->Tables[0].Rows[0]["URG_ORDER_FLAG"].ToString().Trim();
            Log::Trace("", __FUNCTION__, "v_urg_order_flag = [{0}]", v_urg_order_flag);
        }

        if (bcls_rec->Tables[0].Columns.Contains("MAT_TYPE_NO"))
        {
            v_mat_type_no = bcls_rec->Tables[0].Rows[0]["MAT_TYPE_NO"].ToString().Trim();
            Log::Trace("", __FUNCTION__, "v_mat_type_no = [{0}]", v_mat_type_no);
        }
        if (bcls_rec->Tables[0].Columns.Contains("ORDER_NO"))
        {
            v_order_no = f_get_multi_value(bcls_rec->Tables[0].Rows[0]["ORDER_NO"].ToString().Trim(), "\n", conn);
            Log::Trace("", __FUNCTION__, "v_order_no = [{0}]", v_order_no);
        }
        
        if (bcls_rec->Tables[0].Columns.Contains("LG_ST"))
        {
            v_lg_st = bcls_rec->Tables[0].Rows[0]["LG_ST"].ToString().Trim();
            Log::Trace("", __FUNCTION__, "v_lg_st = [{0}]", v_lg_st);
        }
        
        if (bcls_rec->Tables[0].Columns.Contains("ST_NO"))
        {
            v_st_no = bcls_rec->Tables[0].Rows[0]["ST_NO"].ToString().Trim();
            Log::Trace("", __FUNCTION__, "v_st_no = [{0}]", v_st_no);
        }

        if (bcls_rec->Tables[0].Columns.Contains("SLAB_DEST"))
        {
            v_slab_dest = bcls_rec->Tables[0].Rows[0]["SLAB_DEST"].ToString().Trim();
            Log::Trace("", __FUNCTION__, "v_slab_dest = [{0}]", v_slab_dest);
        }

        if (bcls_rec->Tables[0].Columns.Contains("MODEL_CAST_DIV"))
        {
            model_cast_div = bcls_rec->Tables[0].Rows[0]["MODEL_CAST_DIV"].ToString().Trim();
            Log::Trace("", __FUNCTION__, "model_cast_div = [{0}]", model_cast_div);
        }
        
        if (bcls_rec->Tables[0].Columns.Contains("CROSS_DESC"))
        {
            v_cross_desc = bcls_rec->Tables[0].Rows[0]["CROSS_DESC"].ToString().Trim();
            Log::Trace("", __FUNCTION__, "v_cross_desc = [{0}]", v_cross_desc);
        }

        //if (bcls_rec->Tables[0].Columns.Contains("OUT_INGOT_CODE"))
        //{
        //    v_ingot_code = bcls_rec->Tables[0].Rows[0]["OUT_INGOT_CODE"].ToString().Trim();
        //    Log::Trace("", __FUNCTION__, "v_ingot_code = [{0}]", v_ingot_code);
        //}
        if (bcls_rec->Tables[0].Columns.Contains("INGOT_CODE"))
        {
            v_ingot_code = bcls_rec->Tables[0].Rows[0]["INGOT_CODE"].ToString().Trim();
            Log::Trace("", __FUNCTION__, "v_ingot_code = [{0}]", v_ingot_code);
        }

        if (bcls_rec->Tables[0].Columns.Contains("ORDER_THICK"))
        {
            v_order_thick = bcls_rec->Tables[0].Rows[0]["ORDER_THICK"].ToDecimal();
            Log::Trace("", __FUNCTION__, "v_order_thick = [{0}]", v_order_thick);
        }

        if (bcls_rec->Tables[0].Columns.Contains("ORDER_LEN_FROM"))
        {
            v_order_len_f = bcls_rec->Tables[0].Rows[0]["ORDER_LEN_FROM"].ToDecimal();
            Log::Trace("", __FUNCTION__, "v_order_len_f = [{0}]", v_order_len_f);
        }

        if (bcls_rec->Tables[0].Columns.Contains("ORDER_LEN_TO"))
        {
            v_order_len_t = bcls_rec->Tables[0].Rows[0]["ORDER_LEN_TO"].ToDecimal();
            Log::Trace("", __FUNCTION__, "v_order_len_t = [{0}]", v_order_len_t);
        }

        if (bcls_rec->Tables[0].Columns.Contains("PASS_BACKLOG"))
        {
            v_pass_backlog = bcls_rec->Tables[0].Rows[0]["PASS_BACKLOG"].ToString().Trim();
            Log::Trace("", __FUNCTION__, "v_pass_backlog = [{0}]", v_pass_backlog);

            v_pass_backlog = v_pass_backlog.Remove(",").Trim();
        }

        if (bcls_rec->Tables[0].Columns.Contains("MONTH_FLAG"))
        {
            is_curr_month_order = (bool)bcls_rec->Tables[0].Rows[0]["MONTH_FLAG"];
            Log::Trace("", __FUNCTION__, "is_curr_month_order = [{0}]", is_curr_month_order);
        }

        if (bcls_rec->Tables[0].Columns.Contains("LACK_FLAG"))
        {
            is_lack_order = (bool)bcls_rec->Tables[0].Rows[0]["LACK_FLAG"];
            Log::Trace("", __FUNCTION__, "is_lack_order = [{0}]", is_lack_order);
        }

        if (bcls_rec->Tables[0].Columns.Contains("EXPORT_FLAG"))
        {
            is_export_order = (bool)bcls_rec->Tables[0].Rows[0]["EXPORT_FLAG"];
            Log::Trace("", __FUNCTION__, "is_export_order = [{0}]", is_export_order);
        }

        //可选择制程时,获取前台全程途径
        if (bcls_rec->Tables[0].Columns.Contains("WHOLE_BACKLOG"))
        {
            v_whole_backlog = bcls_rec->Tables[0].Rows[0]["WHOLE_BACKLOG"].ToString().Trim();
            Log::Trace("", __FUNCTION__, "v_whole_backlog = [{0}]", v_whole_backlog);
        }
        if (bcls_rec->Tables[0].Columns.Contains("WHOLE_BACKLOG_NO"))
        {
            v_whole_backlog_no = bcls_rec->Tables[0].Rows[0]["WHOLE_BACKLOG_NO"].ToDecimal();
            Log::Trace("", __FUNCTION__, "v_whole_backlog_no = [{0}]", v_whole_backlog_no);
        }

 

posted @ 2021-03-10 14:17  gitee1412  阅读(478)  评论(0)    收藏  举报