我现在用的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;
借鉴一下解决 无用评论 打赏 举报