分情况报表打印和Form消息屏蔽

问题一:关于报表打印时需要不同的模板
    需求:如果CURRENCY_CODE为CNY 则打印中文模板
      如果CURRENCY_CODE为USD 则打印英文模板

    解决方案:在模板中套用
    <?choose:?>
    <?when:expression?>
    ……
    <?when:expression?>
    ……
    <?otherwise?>

    示例代码:

    <?choose:?>
    <?when:CURRENCY_CODE='CNY'?>
    中国  〈这里显示中文模板〉
    <?end when?>
    <?otherwise:?>
    CHINA  〈这里显示英文模板〉
    <?end otherwise?>
    <?end choose?>
  
    问题二:关于FORM的消息屏蔽
    需求:页面上的复选框打上勾后不需要用户自己执行保存,当点击“打印”
    按钮时,自动执行保存动作,再调用打印的请求

    解决方案:
    在打印按钮的 WHEN-BUTTON-PRESSED 触发器中添加
    do_key('commit_form'),执行保存动作。

   问题:在执行了commit_form后,会带出一个消息框,提示用户保存数据
   是否被保存。
   需求:需要屏蔽弹出的消息

   解决方案:在do_key('commit_form')后,执行
      if message_code in (40400,40401,40406,40407)   then
           clear_message;
      end if;
      清空消息栈

   问题三:根据固定格式自动生成编号
   格式要求:C2008090001,C2008090002。。。。
   C+系统时间的年+月+0001<自动增长>
   解决方案:<我在这里写了一个方法,用来自动生成编号>
   -- 获取对帐单编号
  FUNCTION get_verification_number RETURN VARCHAR2 IS
    l_verification_number VARCHAR2(100);
  BEGIN
    l_verification_number := to_char('C' ||
                                     (to_number(to_char(SYSDATE, 'yyyymm') ||
                                                '0000') +
                                     g_verification_number));
    RETURN(l_verification_number);
  END get_verification_number;
 
  其中g_verification_number为全局变量,初始值为0,每次调用该方法后执行
  g_verification_numbe:=g_verification_number+1;


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/meteorlWJ/archive/2008/10/10/3052502.aspx

你可能感兴趣的:(c,function,报表)