1.提取清单名称中某字段(如[项目特征])前的所有字符(以字段第一个字符始):
mid([分部分项清单.Description],1,(pos('[项目特征]',[分部分项清单.Description])-1))
(如果清单名称中,不是“[项目特征]”,而是【项目特征】,则需要把其改成一模一样,报表显示才会是正确。下同)
2.提取清单名称中某字段(如[项目特征])后的所有字符:
mid([分部分项清单.Description],(pos('[项目特征]',[分部分项清单.Description])),length([分部分项清单.Description]))
3.费率:如果费率为空白(即百分之百),输出为空,否则输出费率
if([CostRatio]='0',' ',([CostRatio]+'%'))
4,单位那一列:如果费率为0,输出单位为,否则输出为
if([CostRatio]='0','','%')
5.提取[项目特征]/[工作内容]后面的内容,[项目特征]/[工作内容]本身不显示
Mid([分部分项清单.Description], Pos('[项目特征]', [分部分项清单.Description]) + Length('[项目特征]'), Length([分部分项清单.Description]))
Mid([分部分项清单.Description], Pos('[工作内容]', [分部分项清单.Description]) + Length('[工作内容]'), Length([分部分项清单.Description]))
6.提取清单名称中[项目特征]之后[工作内容]之前的字符
mid(mid([分部分项清单.Description],pos('项目特征',[分部分项清单.Description])+9,Length([分部分项清单.Description])),1,pos('[工作内容]',mid([分部分项清单.Description],pos('项目特征',[分部分项清单.Description])+9,Length([分部分项清单.Description])))-1)
7.对宏变量进行加减运算,例如{税金}+{字符串截取后四位方法规费},在软件中不能这么直接加,函数如下:
strtofloat({税金})+strtofloat({规费})
8.人材机序号处理方法:
  1)格式一:12345……
    [记录号]-1
  2)格式二:1.11.2……2.12.2……
    [清单单价构成.SequenceNo]+'.'+IntToStr([记录号]-1)
  3)格式三:a,b,c,d……
    if([记录号]-1 > 26,'',Mid('abcdefghijklmnopqrstuvwxyz', [记录号]-1, 1))
  4)格式四:A,B,C,D……
    if([记录号]-1 > 26,'',Mid('ABCDEFGHIJKLMNOPQRSTUVWXYZ', [记录号]-1, 1))
9、措施项目,编码如果是序号就不输出,清单、定额编码就输出
IF([IsQuantifiableBill], [AddiCode] + [Code], '')
10、格式化工程量代码    [FormatedQuantity]
11、借用定额库,要求报表中编码不显示“借”字
if(MID([Code],0,2)='',MID([Code],3,length([Code])),[Code])

解析:其实就是做一下判断,判断[Code]的开头是不是,如果是借,就只输出后面的部分,这其中需要用到的三个函数是:
    if(条件,结果1,结果2——判断函数,当条件为真是输出结果1,否则输出结果2
    MID(字符串,起始位置,终止位置)——字符串函数,从字符串中截取从起始位置到终止位置的字符。
    length(字符串)——此函数返回字符串的长度
因此,上面一串就可以解释为,从[Code]中截取前两位(一个汉字两位),如果是,则单元格显示从[Code]中截取从第三位开始到末尾的字符串,否则,直接显示[Code]
12、费率是0时输出为0,不然有费率就保留两位小时,费率是空就输出为空
if(([CostRatio]=''),'',if([costratio]='0','0',
Formatfloat('#0.00', StrToFloat([CostRatio]))) )
13、费率保留两位小数,为空就输出空
IF([CostRatio] = '', '',  Formatfloat('#0.00', StrToFloat([CostRatio])))
14、整数就取整,其他就保留两位小数,空的也为空
IF(([CostRatio] = '0') or ([CostRatio] = ''), '', FloatToStr(FRound
(StrToFloat([CostRatio]), 2) ))
14、分部小计前面加分部的名称:''+[所有分部(含分部小计).Description]+''+'小计:'

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。