-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPanType.h
123 lines (115 loc) · 2.82 KB
/
PanType.h
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
#ifndef _AgroHold_PanType_h_
#define _AgroHold_PanType_h_
class PanType : public WithPanelLayout<ParentCtrl> {
GridCtrl grid;
Sql sql;
Id ID;
String TableName;
EditString edName;
EditInt edMin;
EditInt edMax;
void Insert()
{
try
{
String sqlrequest;
sql.Execute("SELECT MAX(ID) FROM " + TableName);
sql.Fetch();
int x = sql[0];
int newid;
if (x > 0)
newid = x + 1;
else
newid = 1;
sql.Execute("SELECT * FROM [" + TableName + "] LIMIT 1");
for(int i = 1; i < sql.GetColumns(); i++)
{
sqlrequest += AsString(grid(i)) + "'";
if(i != sql.GetColumns() - 1)
sqlrequest +=", '";
}
sqlrequest = "INSERT INTO [" + TableName + "] VALUES ('" + AsString(newid) + "', '" + sqlrequest + ")";
sql.Execute(sqlrequest);
grid(0) = newid;
}
catch(SqlExc &e)
{
grid.CancelInsert();
Exclamation("[* " + DeQtfLf(e) + "]");
}
}
void Update()
{
try
{
String sqlrequest;
sql.Execute("SELECT * FROM [" + TableName + "] LIMIT 1");
for(int i = 1; i < sql.GetColumns(); i++)
{
sqlrequest += sql.GetColumnInfo(i).name + "='" + AsString(grid(i)) + "' ";
if(i != sql.GetColumns() - 1)
sqlrequest +=",";
}
sql.Execute("UPDATE [" + TableName + "] SET " + sqlrequest + "WHERE ID=" + AsString(grid(0)));
}
catch(SqlExc &e)
{
grid.CancelUpdate();
Exclamation("[* " + DeQtfLf(e) + "]");
}
}
void Remove()
{
try
{
if (Prompt("Агроплан", CtrlImg::question(), "Видалити запис?", "Так", "Ні"))
{
sql.Execute("DELETE FROM [" + TableName + "] WHERE ID=" + AsString(grid(0)));
}
else
{
grid.CancelRemove();
}
}
catch(SqlExc &e)
{
grid.CancelRemove();
Exclamation("[* " + DeQtfLf(e) + "]");
}
}
public:
void Populate()
{
// заполнение таблицы
grid.Clear();
sql.Execute("SELECT * FROM " + TableName + " ORDER BY Name");
int row = 0;
while(sql.Fetch())
{
grid.Add(sql[0]);
for (int i = 0; i < sql.GetColumns(); i++)
{
grid.Set(row, i, sql[i]);
}
row++;
}
}
typedef PanType CLASSNAME;
PanType()
{
CtrlLayout(*this);
Add(grid.SizePos());
TableName = "CultureType"; // >>>> Название таблицы
grid.AddIndex(ID);
grid.AddColumn("Тип культури", 150).Edit(edName);
grid.AddColumn("Мінімум, %", 80).AlignRight().Edit(edMin);
grid.AddColumn("Максимум, %", 80).AlignRight().Edit(edMax);
grid.WhenInsertRow = THISBACK(Insert);
grid.WhenUpdateRow = THISBACK(Update);
grid.WhenRemoveRow = THISBACK(Remove);
grid.Absolute();
grid.Appending().Removing().Editing().Accepting().Canceling().Indicator().Searching();
grid.SetToolBar();
};
};
#endif