使用功能号配置查询条件以及后台接收值的简便写法
查询函数
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); }

浙公网安备 33010602011771号