补足空行



 如果最后一页的数据较少,则打印出来的最后一页明显比前几页会短一些,如果有客户需要数据不足一页时用空白行表示该如何来做呢?我们接着看下面的操作,

 

第一步:打开设计器

 

第二步:连接数

 

第三步:打开报表

第四步:定义表达式

如图image545.lpg

1,  在第4行后插入一行  插入行

 

2,  A5单元格输入表达式:=to(1,15-ds1.count()%15)  to函数说明

 

3,  选中A5单元格,将右侧属性栏中的【可视】属性去掉

function! AlignVerilogSignals() range let s:max_type = 0 let s:max_reg = 0 let s:max_bits = 0 let s:max_name = 0 let s:port_list = [] let signal_lines = getline(a:firstline, a:lastline) " 解析阶段保持不变 for raw_line in signal_lines let line = substitute(raw_line, '\s*$', '', '') if line =~ '^\s*//' call add(s:port_list, {'type': 'comment', 'content': line}) continue elseif line =~ '^\s*$' call add(s:port_list, {'type': 'blank'}) continue endif let clean_line = substitute(line, '\s*//.*$', '', '') let clean_line = substitute(clean_line, '^\s*,', '', '') let parts = matchlist(clean_line, \ '^\s*\(logic\|bit\|reg\|wire\)\?\s*\(\[.*\]\)\?\s*\(\w\+\)') if !empty(parts) let name = substitute(parts[3], '\s*;.*', '', '') let regwire = !empty(parts[1]) ? parts[1] : '' let bits = !empty(parts[2]) ? substitute(parts[2], '\t', ' ', 'g') : '' let comment = matchstr(line, '//.*$') let s:max_reg = max([s:max_reg, len(regwire)+1]) let s:max_bits = max([s:max_bits, len(bits)]) let s:max_name = max([s:max_name, len(name)]) call add(s:port_list, { \ 'type': 'port', \ 'regwire': regwire, \ 'bits': bits, \ 'name': name, \ 'comment': comment}) endif endfor " 生成阶段添加位宽前补足逻辑 let formatted = [] let s:last_blank = 0 for item in s:port_list if item.type == 'comment' call add(formatted, item.content) let s:last_blank = 0 elseif item.type == 'blank' if !s:last_blank call add(formatted, '') let s:last_blank = 1 endif else let port = item " 新增位宽前补足12字符逻辑 let reg_str = printf('%-'.s:max_reg.'s', port.regwire) let pad_after_reg = repeat(' ', max([12 - s:max_reg, 0])) " 新增补足逻辑 let bit_str = printf('%-'.s:max_bits.'s', port.bits) let name_str = printf('%-'.s:max_name.'s', port.name) " 组合带补足空格的新前缀 let prefix_part = reg_str . pad_after_reg . bit_str . ' ' " 修改组合方式 let prefix_length = strlen(prefix_part) let padding = repeat(' ', max([30 - prefix_length, 0])) let line = prefix_part . padding . name_str . ' ;' if !empty(port.comment) let line .= repeat(' ', 2) . port.comment endif let line = substitute(line, '\t', ' ', 'g') let line = substitute(line, '\s\+$', '', '') call add(formatted, line) let s:last_blank = 0 endif endfor execute a:firstline.','.a:lastline.'d' call append(a:firstline-1, formatted) endfunction " 保持快捷键定义不变 command! -range AlignSignals <line1>,<line2>call AlignVerilogSignals() vnoremap <silent> <leader>as :AlignSignals<CR> nnoremap <silent> <leader>as :AlignSignals<CR> 优化以上脚本,只有符合信号声明语法的才进行对齐,不符合的就维持原样。 做最少的修改,修改完成后输出完整脚本
最新发布
04-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值