Fly天夏 2018-01-04 08:27 采纳率: 0%
浏览 2679
已结题

java怎么生成128B的条形码

我现在用的barcode4j只能生成128Auto的条形码,但需求是必须是128B的,求教怎么设置至声称128B的

  • 写回答

4条回答 默认 最新

  • weixin_38554150 2018-01-04 08:37
    关注

    FUNCTION get_char(char_code IN PLS_INTEGER) RETURN VARCHAR2 IS
    LANGUAGE JAVA NAME 'xxfnd.XxfndBarcodeUtil.getChar(int) return String';

    FUNCTION code128b(data_to_encode IN VARCHAR2) RETURN VARCHAR2 IS
    v_c128_start VARCHAR2(3 );
    v_c128_end VARCHAR2(3 );
    n_checksum PLS_INTEGER := 104 ;
    n_data_length PLS_INTEGER;
    n_curr_char_code PLS_INTEGER;
    BEGIN
    -- Save the length of the content to cache.
    n_data_length := length(data_to_encode);
    fnd_message.set_name( 'CUX', 'CUX_FND_BARCODE_001' );
    v_c128_start := fnd_message.get;
    fnd_message.set_name( 'CUX', 'CUX_FND_BARCODE_002' );
    v_c128_end := fnd_message.get;
    FOR i IN 1 .. n_data_length LOOP
    n_curr_char_code := ascii(substr(data_to_encode, i, 1));
    IF n_curr_char_code >= 32 THEN
    n_checksum := n_checksum +
    (i * (ascii(substr(data_to_encode, i, 1)) - 32 ));
    ELSE
    n_checksum := n_checksum +
    (i * (ascii(substr(data_to_encode, i, 1)) + 64 ));
    END IF ;
    END LOOP ;
    n_checksum := MOD(n_checksum, 103 );

    IF n_checksum < 95 THEN
      n_checksum := n_checksum + 32;
    ELSE
      n_checksum := n_checksum + 100;
    END IF ;
    
    RETURN v_c128_start || data_to_encode || get_char(n_checksum) || v_c128_end;
    

    END code128b;
    借鉴一下

    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?