|
|
|
Editable crosstab
|
|||
|---|---|---|---|
|
#18+
По форуму лазил, были ссылки. Но ничего не могу найти, чтобы могло помочь организовать на ПБ редактируемое перекрестное ДВ. В гугле тоже искал. Подскажите как сделать такое ДВ или его функциональный аналог с минимальными трудозатратами. Вообще можно ли такое сделать используя для обновления БД встроенные возможности ДВ.? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2005, 13:22 |
|
||
|
Editable crosstab
|
|||
|---|---|---|---|
|
#18+
iLLerПо форуму лазил, были ссылки. Но ничего не могу найти, чтобы могло помочь организовать на ПБ редактируемое перекрестное ДВ. В гугле тоже искал. Нашел? http://groups-beta.google.com/groups?hl=en&lr=&ie=ISO-8859-1&c2coff=1&q=%22editable+crosstab%22group%3Apowersoft.public.powerbuilder.* iLLerПодскажите как сделать такое ДВ или его функциональный аналог с минимальными трудозатратами. Вот тут осталось определить понятие минимальности трудозатрат :-) iLLerВообще можно ли такое сделать используя для обновления БД встроенные возможности ДВ.?Кодировать придется. Теперь по существу (навскидку, сам не проверял): 1. В синтаксисе включить возможность редактирования (taborder = 10) 2. В run-time превести в static mode 3. После завершения внесения изменений по команде "Сохранить" выполнить действия (скорее всего вызвать соответствующие хранимые процедуры) для каждого из измененных полей, учитывая при этом, что если оригинальное значение было null, то, вероятно, следует делать Insert, а если null новое значение - delete. Еще одно соображение. Можно не заморачиваться с кросстабом, а поднимать для редактирования отдельное окно. Последнее (на самом деле первое, к чему следует стремиться:-). А может можно вообще без кросстаба обойтись? Все IMHO, разумеется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2005, 17:19 |
|
||
|
Editable crosstab
|
|||
|---|---|---|---|
|
#18+
Я тоже склоняюсь к варианту без crosstab'а. Придумал вариант с временной табличкой и нормальным ДВ. А из времянки перегонять в нормальную таблицу при помощи ХП. По ссылке нашел идею: для первичных данных использовать ДС, для отображения ДВ, апдейтить через ДС. Без crosstab'а плохо только одно, нельзя добиться динамичности второго измерения. Если только через динамическое создание ДВ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2005, 17:49 |
|
||
|
Editable crosstab
|
|||
|---|---|---|---|
|
#18+
iLLer...Без crosstab'а плохо только одно, нельзя добиться динамичности второго измерения. Если только через динамическое создание ДВ.Можно даже не создавать DW динамически, а создать шаблон с максимально необходимым кол-вом полей, ненужные поля скрывать по мере необходимости. Пожалуй, этот подход будет самый дешевый, в смысле трудозатрат на реализацию :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2005, 18:08 |
|
||
|
Editable crosstab
|
|||
|---|---|---|---|
|
#18+
PL99Еще одно соображение. Можно не заморачиваться с кросстабом, а поднимать для редактирования отдельное окно. А можно даже окна не поднимать, а так сделать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2005, 18:58 |
|
||
|
Editable crosstab
|
|||
|---|---|---|---|
|
#18+
Филипп PL99Еще одно соображение. Можно не заморачиваться с кросстабом, а поднимать для редактирования отдельное окно. А можно даже окна не поднимать, а так сделать... Филипп, спасибо, крнечно, но ссылка на редкость дохлая. Можно как-нибудь ещё zip кинуть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2005, 01:50 |
|
||
|
Editable crosstab
|
|||
|---|---|---|---|
|
#18+
Астралопитек Филипп, спасибо, крнечно, но ссылка на редкость дохлая. Можно как-нибудь ещё zip кинуть? Там всего-то 20К. Хорошо бы прямо сюда приатачить ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2005, 02:20 |
|
||
|
Editable crosstab
|
|||
|---|---|---|---|
|
#18+
Features Full keyboard movement: Up/Down/Tab/Shift+Tab. Enter Key can be used to move the cell across or down (or even ignored). Responds to datawindow column resizing. Responds to Horizontal Split Scrolling. Responds to standard horizontal and vertical scrolling. DataWindow status flags are maintained, so code can be written to scan for modified rows (using GetNextModified) and modified values (using GetItemStatus). Recalculates crosstab totals 100% PurePB (no API or external DLL calls) Free commented source code Download (20K) Quick Start Before using the demo, use the supplied SQL script (CROSSTAB.SQL) to create and populate the demo table. Without this table, the demo will not run. In order to use the uem_cell user object, you need to add code to the following events (see the example application for the actual code listings): Window open event (or DataWindow constructor event) to initialize the control DataWindow Clicked event DataWindow Paint event (user event mapped to PBM_PAINT) DataWindow ScrollHorizontal and ScrollVertical Events ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2005, 03:16 |
|
||
|
Editable crosstab
|
|||
|---|---|---|---|
|
#18+
Филипп, раз пошла такая пьянка, очень прошу выслать по почте или опубликовать здесь сервис запрещающий ресайз колонок в гриде. Знаю у вас есть, в и-нете не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2005, 11:50 |
|
||
|
Editable crosstab
|
|||
|---|---|---|---|
|
#18+
1) Map pbm_lbuttondown on your datawindow control ancestor 2) Import the object attached 3) Make it an instance variable on your datawindow of the type n_cst_noresize_columns_ingrid 4) Create it in the constructor and call it's method of_setrequestor(..) 5) Call it's method of_registernoresizecolumn(..) 6) In the event mapped in step 1), write (assuming that the name of the instance variable is 'nv_grid'): IF inv_grid.of_hittest(flags, xpos, ypos) THEN message.processed = TRUE RETURN 1 END IF Код: plaintext 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. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2005, 18:34 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=33120725&tid=1338297]: |
0ms |
get settings: |
12ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 404ms |

| 0 / 0 |
