zoukankan      html  css  js  c++  java
  • 模板维护-模板测试

     前面写了关于模板分析的父模板和子模板解析,今天把最后的内容完成!

       

    主要是12位编码的生成过程

    第一步:

    定义前六位:

    string matlcatehigh =string.Empty;

    定义后六位:

    string matlcateLow ="FFFFFF";

    定义一个变量:

    string Templetid = string.Empty;(关于这个变量 当M和S不同时,值也是不相同的)

    首先判断是否有主模板的存在(意思同:子模板存在::符号)

    后六位的第一位就是选择子模板的系列号

    前六位的取值,选中树的事件中就可以获得,所以matlcatehigh的获取不是重点。

    第二步:

    进入for循环语句 目的是获得编码的后六位

    依次对dataview的每行 获取编码

    例:

    首先定义三个为空的字符串

        string smblx =string.Empty;

        string nstart =string.Empty;

        string nend =string.Empty;

     

    获取一行 数据为z,x,y 将其转化为数组形式 根据对数组长度的判断依次把z,x,y赋值

    Smblx=z  nstart=x nend=y

     

    对x 和y 进行为空判断  如果不为空

    要保证x是不大于y的

    然后定义一个变量ncounts = y-x+1

     

    在这里要获取最大站位数midnend

    如果nend是正数,则最大站位数midnend =y

    否则最大站位数midnend =0

     

    对z进行判断 是否为空和等于M和S

    如果等于M

    获取dataview 的值为Templetid

     

    如果等于S

    对z判断是否存在 + - * / 等运算符 ( 个人理解:关于 *  / 的判断是多余的,因为最后的取值都是用零去乘以或者除以一个数值,最后结果还是0.

    下面只进行 + -的判断 如果存在 就取 表达式 + - 后面的数值,进行字符串转化,赋值给 Templetid。

     

    下面这段代码 不管是M和S都要运行的:

    对Templetid进行为空判断  如果不为空

    比较ncounts和Templetid的长度

    如果前者大于后者则定义一个变量oncounts

    oncounts = ncounts- Templetid.length 然后进行循环 对Templetid进行赋值

    for (int j = 0; j < oncounts; j++)

         {

            Templetid = "0" + Templetid;

         }

    如果前者不大于后者则

    Templetid = Templetid.Substring(0, ncounts);

     

    最后就可以用到上面定义的变量了,通过下面这段代码得到后六位编码:

    matlcateLow=matlcateLow.Substring(0,Convert.ToInt16(x)-1)+Templetid+matlcateLow.Substring(Convert.ToInt16(y), matlcateLow.Length - (Convert.ToInt16(y)));

      第三步:

    循环结束后:

    如果后六位数值中还存在F

    临时总编码 = matlcatehigh +matlcateLow. Substring(0,midnend)(midnend上面提到是最大站位)

    如果后六位数值中不存在F

    临时总编码 =  前六位+后六位

     

    最后对隐藏域hidmatlcode是否为空

    如果是空 则将新得到的临时总编码作为参数,调用方法(取出完整物资编号)去数据库进行查询,结果就是最终总编码。

    如果不为空 则根据临时总编码截取hidmatlcode的字符串 得到新的编码 和临时总编码进行对比,如果相等,则将hidmatlcode赋值最终总编码 如果不等,则再次调用方法(取出完整物资编号)去数据库进行查询,结果就是最终总编码。

    第四步:

    取出完整物资编号的方法解析

    if (matlcateall != null &&!string.IsNullOrEmpty(matlcateall.Trim())) 

    如果数据为空(Null),则要为Null后面一直加0,直到等于12位

    取出后六位 对后六位进行处理,如下编码:

    string matlcode =Convert.ToString((Convert.ToInt64(matlcateallcode) + 1));

    如果matlcode 不等于6 就要在前面补0

    如果数据不为空

    Matlzero =” 000000000000”

    matlcateall=matlcates+matlzero.Substring(matlcates.Length,matlzero.Length- matlcates.Length);

     

  • 相关阅读:
    Idea中配置tomcat启动maven项目读取指定的profile文件
    idea下将springboot项目打成war包发布到本地tomcat服务器上
    NameNode多目录配置
    Android 集成百度ocr报错[283506] Load jni so library error
    Android 集成科大讯飞语音识别(语音听写)报错‘创建对象失败,请确认libmsc.so放置正确,且有调用createUtility进行初始化’
    Android 集成百度地图,定位,导航,围栏,禁区功能
    Android 加载本地图片失败的问题
    Android 闪光灯测心率
    剑指offer(一)
    腾讯云重启慢
  • 原文地址:https://www.cnblogs.com/xzpblog/p/5117915.html
Copyright © 2011-2022 走看看