Repository navigation
Expand file tree
/
Copy pathitemsrange.cpp
More file actions
executable file
·148 lines (129 loc) · 3.99 KB
/
Copy pathitemsrange.cpp
File metadata and controls
executable file
·148 lines (129 loc) · 3.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#include "itemsrange.h"
#include <QDebug>
ItemsRange::ItemsRange(QObject *parent,int first,int visibleFirst,int count,
int pageItemNum,int total) :
QObject(parent)
{
//qDebug()<<"B first:"<<first<<" visibleFirst:"<<visibleFirst<<" count:"<<count<<" pageItemNum:"<<pageItemNum<<" total:"<<total;
//确保所有数据不为负数
first = (first >= 0) ? first : 0;
visibleFirst = (visibleFirst >= 0) ? visibleFirst : 0;
count = (count >= 0) ? count : 0;
pageItemNum = (pageItemNum >= 0) ? pageItemNum : 0;
total = (total >= 0) ? total : 0;
//如果当前数据表为空
if (total == 0) {
first = 0;
count = 0;
}
//如果缓冲区数据总数大于当前数据表中的总数据数
if (count > total) {
count = total;
}
//如果可见第一行小于第一行
if (visibleFirst < first) {
visibleFirst = first;
}
//如果最后一行大于总数据行数,则自动重新设置可见第一行的位置
if ((visibleFirst + pageItemNum - 1) > total) {
visibleFirst = total - pageItemNum + 1;
visibleFirst = (visibleFirst >= 0) ? visibleFirst : 0;
}
//存储计算后的值
this->first = first;
this->visibleFirst = visibleFirst;
this->count = count;
this->last = first + count - 1;
this->pageItemNum = pageItemNum;
this->total = total;
//如果最后一行大于等于当前数据表中的数据总数,则重新设置最后一行
if (this->last >= total) {
this->last = total - 1;
this->first = total - count;
}
//qDebug()<<"E first:"<<first<<" visibleFirst:"<<visibleFirst<<" count:"<<count<<" pageItemNum:"<<pageItemNum<<" total:"<<total;
}
/*
* 函数名称: getFirst()
* 函数版本: 1.0.0
* 作者: HXL
* 创建日期: 2017.2.16
* 函数功能: 获取缓冲区范围第一行
* 输入参数: 无
* 输出参数: 无
* 返回值: 返回缓冲区范围第一行
*/
int ItemsRange::getFirst()
{
return first;
}
/*
* 函数名称: getVisibleFirst()
* 函数版本: 1.0.0
* 作者: HXL
* 创建日期: 2017.2.16
* 函数功能: 获取缓冲区范围可见的第一行
* 输入参数: 无
* 输出参数: 无
* 返回值: 返回缓冲区范围可见的第一行
*/
int ItemsRange::getVisibleFirst()
{
return visibleFirst;
}
/*
* 函数名称: getLast()
* 函数版本: 1.0.0
* 作者: HXL
* 创建日期: 2017.2.16
* 函数功能: 获取缓冲区范围最后一行
* 输入参数: 无
* 输出参数: 无
* 返回值: 返回缓冲区范围最后一行
*/
int ItemsRange::getLast()
{
return last;
}
/*
* 函数名称: getCount()
* 函数版本: 1.0.0
* 作者: HXL
* 创建日期: 2017.2.16
* 函数功能: 获取缓冲区范围数据总行数
* 输入参数: 无
* 输出参数: 无
* 返回值: 返回缓冲区范围数据总行数
*/
int ItemsRange::getCount()
{
return count;
}
/*
* 函数名称: getPageItemNum()
* 函数版本: 1.0.0
* 作者: HXL
* 创建日期: 2017.2.16
* 函数功能: 获取屏幕一次能够完整显示的行数
* 输入参数: 无
* 输出参数: 无
* 返回值: 返回屏幕一次能够完整显示的行数
*/
int ItemsRange::getPageItemNum()
{
return pageItemNum;
}
/*
* 函数名称: getTotal()
* 函数版本: 1.0.0
* 作者: HXL
* 创建日期: 2017.2.16
* 函数功能: 获取当前数据表的总数据行数
* 输入参数: 无
* 输出参数: 无
* 返回值: 返回当前数据表的总数据行数
*/
int ItemsRange::getTotal()
{
return total;
}