有一数据库   编号    分类     拆价
             A007    13B    
             A008    13C
             A009    13BB
             A010    13CB
             A011    15B
             A012    15CB用什么可以让分类为13的(不管后面的)乘以1.12,分类为15乘1.50(还会有更多的型号,如18,19,22等,如果用if 语句,应该如何判定呀??在线等,好急,谢谢

解决方案 »

  1.   

    sFLStr := Left(ADOQuery.FieldByName('分类').AsString,2)case StrToInt(sFLStr) of
      13 : XX * 1.12;
      14 : xx * 1.5;
      18 :;
      19 :;
      22 :;
    end;
      

  2.   

    sFLStr := Left(ADOQuery.FieldByName('分类').AsString,2)case StrToInt(sFLStr) of
      13 : XX * 1.12;
      14 : xx * 1.5;
      18 :;
      19 :;
      22 :;
    end;其中“XX”是什么意思?
      

  3.   

    来格来讲是 13分类的 ADOQuery.FieldByName('拆价').AsString * 1.12
               15分类的 ADOQuery.FieldByName('拆价').AsString * 1.50
               ....
                 
      

  4.   

    但他那种方法不太行,如果用
    if adoquery.fieldbyname(分类).asstring=13bb and adoquery.fieldbyname(分类).asstring=13cc and adoquery.fieldbyname(分类).asstring=13cb... then
     adoquery.fieldbyname(拆价).asstring*1.12
    else if adoquery.fieldbyname(分类).asstring=15bb...这样行不行
      

  5.   

    to:moment99(罐装蓝带)
    但他那种方法不太行,如果用
    if adoquery.fieldbyname(分类).asstring=13bb and adoquery.fieldbyname(分类).asstring=13cc and adoquery.fieldbyname(分类).asstring=13cb... then
     adoquery.fieldbyname(拆价).asstring*1.12
    else if adoquery.fieldbyname(分类).asstring=15bb...这样行不行
    -------------------
    你的这种方法可以,但太烦锁!
    按你的方法应修改为:
    var sFlStr sFlStr :=adoquery.fieldbyname(分类).asstring;
    if sFlStr = '13bb' or sFlStr = '13cc' or sFlStr = '13cb' then
      adoquery.fieldbyname(拆价).AsFloat := 100 * 1.12
    else if sFlStr = '15B' or sFlStr = '15CB' then
      adoquery.fieldbyname(拆价).AsFloat := 100 * 1.5
    else if sFlStr = '18BB' ........
      

  6.   

    晕! 这个问题hqhhh(枫叶) 兄回答的不错, 比你的要好多了 ,快给他分吧! 真是的! 支持hqhhh(枫叶)