Начальные координаты НомерСтроки1 НомерСтроки2 НомерСтолбца1 НомерСтол

  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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
// Начальные координаты
НомерСтроки1 = 2
НомерСтроки2 = 8
НомерСтолбца1 = 1
НомерСтолбца2 = 7
// Заголовок
Header = Data.Range("A1:G1")
Header.Merge
Header.RowHeight = 40
Header.Font.Name = "Courier New"
Header.Font.Size = 12
Header.Value = "ОБРАЩЕНИЯ В ИВЦ"
Header.HorizontalAlignment = -4108
R = 255
G = 255
B = 255
// Цвет для статус ячейки
if State == "В работе"
R = 178
G = 248
B = 195
endif
if State == 'Прекращена'
R = 209
G = 208
B = 232
endif
if State == 'На контроле'
R = 254
G = 254
B = 160
endif
if State == 'Выполнена'
R = 215
G = 215
B = 215
endif
// Результат выполнения
if ExResult == "Д"
ExResult = " [Отправлено на доработку]"
endif
if ExResult == "С"
ExResult = " [Выполнено]"
endif
if ExResult == 'И'
ExResult = " [Передано исполнителю в работу]"
endif
if ExResult == 'Р'
ExResult = " [Принято в работу]"
endif
// Формируем карточку обращения
CellHL = Data.Cells(НомерСтроки1; НомерСтолбца1) // Верхний левый угол
CellBR = Data.Cells(НомерСтроки2; НомерСтолбца2) // Нижний правый угол
SelectionTab = Data.Range(CellHL;CellBR)
SelectionTab.Font.Name = "Arial"
SelectionTab.Font.Size = 8
SelectionTab.HorizontalAlignment = -4108
SelectionTab.VerticalAlignment = -4108
SelectionTab.Borders(7).LineStyle = 1
SelectionTab.Borders(8).LineStyle = 1
SelectionTab.Borders(9).LineStyle = 1
SelectionTab.Borders(10).LineStyle = 1
SelectionTab.Borders(7).Weight = 3
SelectionTab.Borders(8).Weight = 3
SelectionTab.Borders(9).Weight = 3
SelectionTab.Borders(10).Weight = 3
//---------------- Устанавливаем заголовки параметров-------------------------
// {Номер}
Номер = Data.Cells(НомерСтроки1;НомерСтолбца1)
Номер.Font.Bold = True
Номер.Value = "№:"
Номер.Borders(10).LineStyle = 1
Номер.RowHeight = 20
// {Дата создания}
ДатаСоздания = Data.Cells(НомерСтроки1;НомерСтолбца1+2)
ДатаСоздания.Font.Bold = True
ДатаСоздания.Value = "Дата создания:"
ДатаСоздания.Borders(7).LineStyle = 1
ДатаСоздания.Borders(10).LineStyle = 1
// {Инициатор}
Инициатор = Data.Cells(НомерСтроки1;НомерСтолбца1+4)
Инициатор.Font.Bold = True
Инициатор.Value = "Инициатор:"
Инициатор.Borders(7).LineStyle = 1
Инициатор.Borders(10).LineStyle = 1
// {Тема}
Тема = Data.Range("A"&(НомерСтроки1+1)&":F"&(НомерСтроки1+1))
Тема.RowHeight = 20
Тема.Borders(8).LineStyle = 1
Тема.Borders(9).LineStyle = 1
Тема = Data.Range("C"&(НомерСтроки1+1)&":F"&(НомерСтроки1+1))
Тема.Merge
Тема = Data.Range("A"&(НомерСтроки1+1)&":B"&(НомерСтроки1+1))
Тема.Merge
Тема.Borders(10).LineStyle = 1
Тема = Data.Cells(НомерСтроки1+1;НомерСтолбца1)
Тема.Font.Bold = True
Тема.Value = "Тема:"
// {Обращение}
Обращение = Data.Range("A"&(НомерСтроки1+2)&":F"&(НомерСтроки1+2))
Обращение.RowHeight = 30
Обращение.Borders(9).LineStyle = 1
Обращение = Data.Range("C"&(НомерСтроки1+2)&":F"&(НомерСтроки1+2))
Обращение.Merge
Обращение = Data.Range("A"&(НомерСтроки1+2)&":B"&(НомерСтроки1+2))
Обращение.Merge
Обращение.Borders(10).LineStyle = 1
Обращение = Data.Cells(НомерСтроки1+2;НомерСтолбца1)
Обращение.Font.Bold = True
Обращение.Value = "Обращение:"
// {Исполнители}
Исполнители = Data.Range("A"&(НомерСтроки1+3)&":F"&(НомерСтроки1+3))
Исполнители.Merge
Исполнители.RowHeight = 20
Исполнители.Borders(9).LineStyle = 1
Исполнители = Data.Cells(НомерСтроки1+3;НомерСтолбца1)
Исполнители.Font.Bold = True
Исполнители.Value = "Исполнители"
Исполнители = Data.Range("C"&(НомерСтроки1+4)&":F"&(НомерСтроки1+4))
Исполнители.Merge
Исполнители = Data.Range("A"&(НомерСтроки1+4)&":B"&(НомерСтроки1+4))
Исполнители.Merge
Исполнители.Borders(10).LineStyle = 1
Исполнители = Data.Range("A"&(НомерСтроки1+4)&":F"&(НомерСтроки1+4))
Исполнители.Borders(9).LineStyle = 1
Исполнители.RowHeight = 30
Sheet.Rows((НомерСтроки1+4)&":"&(НомерСтроки1+4)).Hidden = true
Исполнители = Data.Range("C"&(НомерСтроки1+5)&":F"&(НомерСтроки1+5))
Исполнители.Merge
Исполнители = Data.Range("A"&(НомерСтроки1+5)&":B"&(НомерСтроки1+5))
Исполнители.Merge
Исполнители.Borders(10).LineStyle = 1
Исполнители = Data.Range("A"&(НомерСтроки1+5)&":F"&(НомерСтроки1+5))
Исполнители.Borders(9).LineStyle = 1
Исполнители.RowHeight = 30
Sheet.Rows((НомерСтроки1+5)&":"&(НомерСтроки1+5)).Hidden = true
Исполнители = Data.Range("C"&(НомерСтроки1+6)&":F"&(НомерСтроки1+6))
Исполнители.Merge
Исполнители = Data.Range("A"&(НомерСтроки1+6)&":B"&(НомерСтроки1+6))
Исполнители.Merge
Исполнители.Borders(10).LineStyle = 1
Исполнители = Data.Range("A"&(НомерСтроки1+6)&":F"&(НомерСтроки1+6))
Исполнители.Borders(9).LineStyle = 1
Исполнители.RowHeight = 30
Sheet.Rows((НомерСтроки1+6)&":"&(НомерСтроки1+6)).Hidden = true
// Заполняем данными шаблон
Номер = Data.Cells(НомерСтроки1;НомерСтолбца1+1)
Номер.Font.Underline = True
Номер.Value = TaskId
ДатаСоздания = Data.Cells(НомерСтроки1;НомерСтолбца1+3)
ДатаСоздания.Value = StartDate
Инициатор = Data.Cells(НомерСтроки1;НомерСтолбца1+5)
Инициатор.Value = Author
Тема = Data.Cells(НомерСтроки1+1;НомерСтолбца1+2)
Тема.HorizontalAlignment = -4131
Тема.Value = Subject
Обращение = Data.Cells(НомерСтроки1+2;НомерСтолбца1+2)
Обращение.HorizontalAlignment = -4131
Обращение.Value = Autext
if (Length(Autext))>100
Обращение.RowHeight = Обращение.RowHeight + Round(Length(Autext)/70;1)*10
endif
// Заполняем Исполнителей
Count = 1
ExCount = SubStringCount(Executor;'###')
ExecutorStr = НомерСтроки1 + 4
while Count<=ExCount
Ex = SubString(Executor;'###';Count)
Cell = Data.Cells(ExecutorStr;1)
Cell.Value = Ex
Count = Count + 1
Sheet.Rows(ExecutorStr&":"&ExecutorStr).Hidden = false
ExecutorStr = ExecutorStr + 1
endwhile
// Ответ исполнителей
Count = 1
ExCount = SubStringCount(Extext;'###')
ExtextStr = НомерСтроки1 + 4
while Count<=ExCount
Ext = SubString(Extext;'###';Count)
Cell = Data.Cells(ExtextStr;3)
Cell.HorizontalAlignment = -4131
if (Length(Ext))>100
Cell.RowHeight = Cell.RowHeight + Round(Length(Ext)/70;1)*12
endif
Cell.Value = Ext & ExResult
Count = Count + 1
ExtextStr = ExtextStr + 1
endwhile
// {Статус обращения}
Статус = Data.Range("G"&НомерСтроки1&":G"&(ExecutorStr-1))
Статус.Merge
Статус.Borders(7).LineStyle = 1
Статус.ColumnWidth = 6
Статус.Orientation = -4166
Статус.VerticalAlignment = -4108
Статус.Interior.Color = R + G * 256 + B * 256 * 256
Статус.Value = State
Data.Range("A"&(ExecutorStr-1)&":G"&(ExecutorStr-1)).Borders(9).Weight = 3
// Пустая строка для разделения обращений
Исполнители = Data.Range("A"&(НомерСтроки1 + 7)&":F"&(НомерСтроки1 + 7))
Исполнители.RowHeight = 20
НомерСтроки1 = НомерСтроки1 + 8
НомерСтроки2 = НомерСтроки2 + 8