17 个解决方案
#1
使Datawindow每页打印固定行
---- 第一步:增加一个计算列,此计算列必须放在Detail段,Expression中输入: ceiling(getrow()/20) <--这里20还可以用全局函数取代,这样可以允许用户任意设置每页打印多少行。
---- 第二步:定义分组,选择菜单Rows->Create Group...
---- 按计算列字段分组,并一定将check box-->New Page On Group Break选中。
---- 第三步:将此计算列设为不可视。
---- 另外,如果需要最后一页不足补空行。也很简单,如下:
long ll_pagerow = 6 //每页打印行数
long ll_count, ll_row
ll_count = dw_report.retrieve(...)
//取得现有报表的总行数
ll_count = ll_pagerow - mod(ll_count, ll_pagerow)
If ll_count < ll_pagerow Then
for ll_row = 1 to ll_count
dw_print.insertrow(0) //补足空行
next
end If
---- 第一步:增加一个计算列,此计算列必须放在Detail段,Expression中输入: ceiling(getrow()/20) <--这里20还可以用全局函数取代,这样可以允许用户任意设置每页打印多少行。
---- 第二步:定义分组,选择菜单Rows->Create Group...
---- 按计算列字段分组,并一定将check box-->New Page On Group Break选中。
---- 第三步:将此计算列设为不可视。
---- 另外,如果需要最后一页不足补空行。也很简单,如下:
long ll_pagerow = 6 //每页打印行数
long ll_count, ll_row
ll_count = dw_report.retrieve(...)
//取得现有报表的总行数
ll_count = ll_pagerow - mod(ll_count, ll_pagerow)
If ll_count < ll_pagerow Then
for ll_row = 1 to ll_count
dw_print.insertrow(0) //补足空行
next
end If
#2
早晨,新意这么早就来上班了!
#3
mark ...
#4
呵呵,彼此,彼此
路过看看
#5
使Datawindow每页打印固定行
---- 第一步:增加一个计算列,此计算列必须放在Detail段,Expression中输入: ceiling(getrow()/20) <--这里20还可以用全局函数取代,这样可以允许用户任意设置每页打印多少行。
---- 第二步:定义分组,选择菜单Rows->Create Group...
---- 按计算列字段分组,并一定将check box-->New Page On Group Break选中。
---- 第三步:将此计算列设为不可视。
---- 另外,如果需要最后一页不足补空行。也很简单,如下:
long ll_pagerow = 6 //每页打印行数
long ll_count, ll_row
ll_count = dw_report.retrieve(...)
//取得现有报表的总行数
ll_count = ll_pagerow - mod(ll_count, ll_pagerow)
If ll_count < ll_pagerow Then
for ll_row = 1 to ll_count
dw_print.insertrow(0) //补足空行
next
end If
学习
---- 第一步:增加一个计算列,此计算列必须放在Detail段,Expression中输入: ceiling(getrow()/20) <--这里20还可以用全局函数取代,这样可以允许用户任意设置每页打印多少行。
---- 第二步:定义分组,选择菜单Rows->Create Group...
---- 按计算列字段分组,并一定将check box-->New Page On Group Break选中。
---- 第三步:将此计算列设为不可视。
---- 另外,如果需要最后一页不足补空行。也很简单,如下:
long ll_pagerow = 6 //每页打印行数
long ll_count, ll_row
ll_count = dw_report.retrieve(...)
//取得现有报表的总行数
ll_count = ll_pagerow - mod(ll_count, ll_pagerow)
If ll_count < ll_pagerow Then
for ll_row = 1 to ll_count
dw_print.insertrow(0) //补足空行
next
end If
学习
#6
我还有四个字段要做作为分组条件,这种方法我也试了不好使啊。
#7
根据这四个分组条件来分组然后分页打印,然后在判断每页有几行不足的补空行
#8
新意的是个思路,顶!
#9
可以先判断检索出来的数据有多少行,然后先往datawindow插入空行,最后再赋值
#10
retrieve后从第一页开始到最后一页,插一遍空行
for g = 0 to 9 //9为总页数减1,用page()取
n = g* 5 + 1 //5为每页想要的行数,n每页第一行
i= dw_1.getitemdecimal(n,"compute_1") // 计算列count(getrow() for group 1)的值,分组后每页行数
if i < 5 then
for j = 1 to 5 - i
dw_1.insertrow(n+i) //从每页最后一行开始插。。
next
else
//分组后某页行数大于5情况 看你需求结合新意哥写的自己想吧
end if
next
我用了,可以达到要求,你试下
for g = 0 to 9 //9为总页数减1,用page()取
n = g* 5 + 1 //5为每页想要的行数,n每页第一行
i= dw_1.getitemdecimal(n,"compute_1") // 计算列count(getrow() for group 1)的值,分组后每页行数
if i < 5 then
for j = 1 to 5 - i
dw_1.insertrow(n+i) //从每页最后一行开始插。。
next
else
//分组后某页行数大于5情况 看你需求结合新意哥写的自己想吧
end if
next
我用了,可以达到要求,你试下
#11
请问如果有多页时,如何打印页尾相关信息出来?
我的信息都放在SUMMARY上的,信息内容主要是相关提示内容的。
因现在凡是打印多于一页时,前一页就不会显示SUMMARY的内容出来。
谢谢!
我的信息都放在SUMMARY上的,信息内容主要是相关提示内容的。
因现在凡是打印多于一页时,前一页就不会显示SUMMARY的内容出来。
谢谢!
#12
把summary里的内容放到footer区里
#13
前面说的都差不错了,用repeater控件也行,方法前面都说的差不多了,你总结一下就行了,祝你早点解决!!!
#14
我也在做这个,没法发只能向后台绑定的datatable里添加行了
#15
这样可以,思路是没问题的,如果有必要还可以把分组依据列和排序列赋上值。
#16
一般 兩種方式:
1.detail 顯示 不是 自動 折行的情況,直接可以在 sql 語法 加入空 行 用 union all 處理
如:一頁顯示5行,加 4 個 union all 可以用 嵌套 方式 此部份數據
2.每頁判斷 ,不足 插入分組行。
1.detail 顯示 不是 自動 折行的情況,直接可以在 sql 語法 加入空 行 用 union all 處理
如:一頁顯示5行,加 4 個 union all 可以用 嵌套 方式 此部份數據
2.每頁判斷 ,不足 插入分組行。
#17
另外一種方式 也可以 在 每行的 放一個空 嵌套報表 (參數根據 當前分組當前頁的行數 傳進做補充的行條件)
#1
使Datawindow每页打印固定行
---- 第一步:增加一个计算列,此计算列必须放在Detail段,Expression中输入: ceiling(getrow()/20) <--这里20还可以用全局函数取代,这样可以允许用户任意设置每页打印多少行。
---- 第二步:定义分组,选择菜单Rows->Create Group...
---- 按计算列字段分组,并一定将check box-->New Page On Group Break选中。
---- 第三步:将此计算列设为不可视。
---- 另外,如果需要最后一页不足补空行。也很简单,如下:
long ll_pagerow = 6 //每页打印行数
long ll_count, ll_row
ll_count = dw_report.retrieve(...)
//取得现有报表的总行数
ll_count = ll_pagerow - mod(ll_count, ll_pagerow)
If ll_count < ll_pagerow Then
for ll_row = 1 to ll_count
dw_print.insertrow(0) //补足空行
next
end If
---- 第一步:增加一个计算列,此计算列必须放在Detail段,Expression中输入: ceiling(getrow()/20) <--这里20还可以用全局函数取代,这样可以允许用户任意设置每页打印多少行。
---- 第二步:定义分组,选择菜单Rows->Create Group...
---- 按计算列字段分组,并一定将check box-->New Page On Group Break选中。
---- 第三步:将此计算列设为不可视。
---- 另外,如果需要最后一页不足补空行。也很简单,如下:
long ll_pagerow = 6 //每页打印行数
long ll_count, ll_row
ll_count = dw_report.retrieve(...)
//取得现有报表的总行数
ll_count = ll_pagerow - mod(ll_count, ll_pagerow)
If ll_count < ll_pagerow Then
for ll_row = 1 to ll_count
dw_print.insertrow(0) //补足空行
next
end If
#2
早晨,新意这么早就来上班了!
#3
mark ...
#4
呵呵,彼此,彼此
路过看看
#5
使Datawindow每页打印固定行
---- 第一步:增加一个计算列,此计算列必须放在Detail段,Expression中输入: ceiling(getrow()/20) <--这里20还可以用全局函数取代,这样可以允许用户任意设置每页打印多少行。
---- 第二步:定义分组,选择菜单Rows->Create Group...
---- 按计算列字段分组,并一定将check box-->New Page On Group Break选中。
---- 第三步:将此计算列设为不可视。
---- 另外,如果需要最后一页不足补空行。也很简单,如下:
long ll_pagerow = 6 //每页打印行数
long ll_count, ll_row
ll_count = dw_report.retrieve(...)
//取得现有报表的总行数
ll_count = ll_pagerow - mod(ll_count, ll_pagerow)
If ll_count < ll_pagerow Then
for ll_row = 1 to ll_count
dw_print.insertrow(0) //补足空行
next
end If
学习
---- 第一步:增加一个计算列,此计算列必须放在Detail段,Expression中输入: ceiling(getrow()/20) <--这里20还可以用全局函数取代,这样可以允许用户任意设置每页打印多少行。
---- 第二步:定义分组,选择菜单Rows->Create Group...
---- 按计算列字段分组,并一定将check box-->New Page On Group Break选中。
---- 第三步:将此计算列设为不可视。
---- 另外,如果需要最后一页不足补空行。也很简单,如下:
long ll_pagerow = 6 //每页打印行数
long ll_count, ll_row
ll_count = dw_report.retrieve(...)
//取得现有报表的总行数
ll_count = ll_pagerow - mod(ll_count, ll_pagerow)
If ll_count < ll_pagerow Then
for ll_row = 1 to ll_count
dw_print.insertrow(0) //补足空行
next
end If
学习
#6
我还有四个字段要做作为分组条件,这种方法我也试了不好使啊。
#7
根据这四个分组条件来分组然后分页打印,然后在判断每页有几行不足的补空行
#8
新意的是个思路,顶!
#9
可以先判断检索出来的数据有多少行,然后先往datawindow插入空行,最后再赋值
#10
retrieve后从第一页开始到最后一页,插一遍空行
for g = 0 to 9 //9为总页数减1,用page()取
n = g* 5 + 1 //5为每页想要的行数,n每页第一行
i= dw_1.getitemdecimal(n,"compute_1") // 计算列count(getrow() for group 1)的值,分组后每页行数
if i < 5 then
for j = 1 to 5 - i
dw_1.insertrow(n+i) //从每页最后一行开始插。。
next
else
//分组后某页行数大于5情况 看你需求结合新意哥写的自己想吧
end if
next
我用了,可以达到要求,你试下
for g = 0 to 9 //9为总页数减1,用page()取
n = g* 5 + 1 //5为每页想要的行数,n每页第一行
i= dw_1.getitemdecimal(n,"compute_1") // 计算列count(getrow() for group 1)的值,分组后每页行数
if i < 5 then
for j = 1 to 5 - i
dw_1.insertrow(n+i) //从每页最后一行开始插。。
next
else
//分组后某页行数大于5情况 看你需求结合新意哥写的自己想吧
end if
next
我用了,可以达到要求,你试下
#11
请问如果有多页时,如何打印页尾相关信息出来?
我的信息都放在SUMMARY上的,信息内容主要是相关提示内容的。
因现在凡是打印多于一页时,前一页就不会显示SUMMARY的内容出来。
谢谢!
我的信息都放在SUMMARY上的,信息内容主要是相关提示内容的。
因现在凡是打印多于一页时,前一页就不会显示SUMMARY的内容出来。
谢谢!
#12
把summary里的内容放到footer区里
#13
前面说的都差不错了,用repeater控件也行,方法前面都说的差不多了,你总结一下就行了,祝你早点解决!!!
#14
我也在做这个,没法发只能向后台绑定的datatable里添加行了
#15
这样可以,思路是没问题的,如果有必要还可以把分组依据列和排序列赋上值。
#16
一般 兩種方式:
1.detail 顯示 不是 自動 折行的情況,直接可以在 sql 語法 加入空 行 用 union all 處理
如:一頁顯示5行,加 4 個 union all 可以用 嵌套 方式 此部份數據
2.每頁判斷 ,不足 插入分組行。
1.detail 顯示 不是 自動 折行的情況,直接可以在 sql 語法 加入空 行 用 union all 處理
如:一頁顯示5行,加 4 個 union all 可以用 嵌套 方式 此部份數據
2.每頁判斷 ,不足 插入分組行。
#17
另外一種方式 也可以 在 每行的 放一個空 嵌套報表 (參數根據 當前分組當前頁的行數 傳進做補充的行條件)