|
|
|
Вычисляемые поля в DataTable
|
|||
|---|---|---|---|
|
#18+
Реализация вычисляемых полей в DataTable - малофункциональна. В свойстве Expression в вычисляемом выражении можно использовать лишь поля текущей таблицы и несколько функций (среди функций нет даже функции текущей даты). Для сравнения : в Delphi (продукт намного более старый) у объекта TTable есть событие OnCalculate, в котором можно реализовать вычисления, используя всю мощь языка разработки. Как в ADO.Net и VS.Net можно реализовать такое простое вычисляемое поле в DataTable, как возраст человека = DateTime.ToDay - [Дата рождения] ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2003, 15:32 |
|
||
|
Вычисляемые поля в DataTable
|
|||
|---|---|---|---|
|
#18+
у datatable есть такое событие RowChanging, по которому можно подключать всю мощь .Net ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2003, 15:50 |
|
||
|
Вычисляемые поля в DataTable
|
|||
|---|---|---|---|
|
#18+
Кузя, можно немного поподробней о RowChanging и вычисляемых полях ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2003, 13:57 |
|
||
|
Вычисляемые поля в DataTable
|
|||
|---|---|---|---|
|
#18+
ДаутовКузя, можно немного поподробней о RowChanging и вычисляемых полях Да, микрософт говорит - все просто, а на самом деле datatable, как и все микрософтовское надо делать руцями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2004, 14:06 |
|
||
|
Вычисляемые поля в DataTable
|
|||
|---|---|---|---|
|
#18+
ДаутовРеализация вычисляемых полей в DataTable - малофункциональна. В свойстве Expression в вычисляемом выражении можно использовать лишь поля текущей таблицы и несколько функций (среди функций нет даже функции текущей даты). Для сравнения : в Delphi (продукт намного более старый) у объекта TTable есть событие OnCalculate, в котором можно реализовать вычисления, используя всю мощь языка разработки. Правильно сказал Кузя аналогично OnCalculate можно использовать RowChanging, RowChanged - это решение на все случаи жизни. Не правда то что в вычисляемом выражение можно использовать только поля текущей таблицы. А как же функции Child, Parent, функции агрегирования и механизм DataRelation???? Gens Да, микрософт говорит - все просто, а на самом деле datatable, как и все микрософтовское надо делать руцями. А что руками так сложно одну строчку написать для одного expression column Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2004, 14:33 |
|
||
|
Вычисляемые поля в DataTable
|
|||
|---|---|---|---|
|
#18+
Я тут сильно увлекся с этими вычисляемыми полями в одном заказе. Каскадные вычисления в трех таблицах с показом сумм в парентах. Для количество записей до 10 : 50 : 5 (на стольких тестировал :( ) все было нромально. Теперь у заказчика это соотношение стало немного больше и пришел кранты проге. Загружается 7 минут. Попробоваль всякие enablrConstraints, beginInit т.д., толку нет. Нет ли возможности как нибудь это дело убыстрить? Вариант загрузить поменьше данных, подзагузка и т.д. не принимается. Это большая переделка и по видимому придется делать если ничего нельзя придумать. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2006, 20:42 |
|
||
|
Вычисляемые поля в DataTable
|
|||
|---|---|---|---|
|
#18+
Сахават ЮсифовЯ тут сильно увлекся с этими вычисляемыми полями в одном заказе. Каскадные вычисления в трех таблицах с показом сумм в парентах. Для количество записей до 10 : 50 : 5 (на стольких тестировал :( ) все было нромально. Теперь у заказчика это соотношение стало немного больше и пришел кранты проге. Загружается 7 минут. Попробоваль всякие enablrConstraints, beginInit т.д., толку нет. Нет ли возможности как нибудь это дело убыстрить? Вариант загрузить поменьше данных, подзагузка и т.д. не принимается. Это большая переделка и по видимому придется делать если ничего нельзя придумать. :( Пришлось блин, чтобы интерфейс не менят пойти на такие вещи (отчет в форме ввода :) ) Все теперь за 3 секунды :) Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2006, 16:31 |
|
||
|
Вычисляемые поля в DataTable
|
|||
|---|---|---|---|
|
#18+
Не будешь же при каждом изменении какого-нибудь поля вызывать ХП, тем более, что сами итоговые поля не храняться в БД? Expression очень удобная штука, но как оказалось не надо использовать Parent, Child и не работать с большими объемами, ограничив форму семантически там, где возможно. А еще лучше по старинке, ввод и отчеты по отдельности. Хотя мне это не нравится, я за то что бы отчеты и форма ввода совместить. А сейчас я просто выкинул, Expression, при считывании формирую отчет, а при вводе сам корректирую вычисляемы поля. Вобщем, свои Expressions. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2006, 17:10 |
|
||
|
Вычисляемые поля в DataTable
|
|||
|---|---|---|---|
|
#18+
конечно не всегда, например для НДС ехпрессион можно исползывать (field1*0.18) :) ---- www.hramin.jino-net.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2006, 19:51 |
|
||
|
Вычисляемые поля в DataTable
|
|||
|---|---|---|---|
|
#18+
вот проблема,использую столбец с выражением ,в выражении пишу "child.name" имееться две таблицы,они связаны. хочу в родительскую таблицу добавить столбец из дочерней. для этого делаю столбец с выражением "child.name" и получаю ошибку Код: plaintext слово parent тоже не работает.при указании "parent(relname).id" -взять значение своего столбца из себя же,говорит не вижу отношения с именем relname.но в коллекции relations у dataset это отношение имееться. как так ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 17:50 |
|
||
|
Вычисляемые поля в DataTable
|
|||
|---|---|---|---|
|
#18+
а если пишу в выражении sum(child.id) ,то мне выводит значение id из дочерней таблицы и все ок. это как так то :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 17:52 |
|
||
|
Вычисляемые поля в DataTable
|
|||
|---|---|---|---|
|
#18+
авторA column in a child table may be referenced in an expression by prepending the column name with Child. However, because child relationships may return multiple rows, you must include the reference to the child column in an aggregate function. For example, Sum(Child.Price) would return the sum of the column named Price in the child table. это ,что получаеться нельзя реализовать,то что я задумал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 17:55 |
|
||
|
Вычисляемые поля в DataTable
|
|||
|---|---|---|---|
|
#18+
не понимаю,что за child[1..3] ? у меня один родитель,другая дочерняя. child это ссылка на дочернюю таблицу. чутьчуть поясните откуда такое дерево береться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 18:17 |
|
||
|
Вычисляемые поля в DataTable
|
|||
|---|---|---|---|
|
#18+
типа у меня связь 1 к 1 логически.программано я нигде это не уточнял. то есть 1 запись в родителе = 1 записи в дочерке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 18:18 |
|
||
|
Вычисляемые поля в DataTable
|
|||
|---|---|---|---|
|
#18+
я создал теперь связь иначе. поменял в создании связи столбцы . то есть столбец из род таблы сделал дочерним. и в выражении использую parent слово и получаю то что мне надо. это так задумывалось чтоли? то есть я типа определил связь 1 к 1 таким образом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 18:29 |
|
||
|
Вычисляемые поля в DataTable
|
|||
|---|---|---|---|
|
#18+
AlexeiKя создал теперь связь иначе. поменял в создании связи столбцы . то есть столбец из род таблы сделал дочерним. и в выражении использую parent слово и получаю то что мне надо. это так задумывалось чтоли? то есть я типа определил связь 1 к 1 таким образом? что не понятно? у родителя может быть много детей. формально имеем отношение 1:n, если ты точно знаешь, что практически у тебя всегда 1:1, пиши в выражении например агрегат min, или max ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2008, 18:51 |
|
||
|
Вычисляемые поля в DataTable
|
|||
|---|---|---|---|
|
#18+
chpasha AlexeiKя создал теперь связь иначе. поменял в создании связи столбцы . то есть столбец из род таблы сделал дочерним. и в выражении использую parent слово и получаю то что мне надо. это так задумывалось чтоли? то есть я типа определил связь 1 к 1 таким образом? что не понятно? у родителя может быть много детей. формально имеем отношение 1:n, если ты точно знаешь, что практически у тебя всегда 1:1, пиши в выражении например агрегат min, или max Так не ясно одно: связь формализуеться до какого то типа 1ко1,1коМногим ? или это принято за начальное условие,что все связи типа 1 ко многим? я сделал иначе. так как у меня связь 1 к 1.мне надо в левой таблице видеть поле из правой таблицы,без всяких ухищрений min,max(child.columnname),я просто в relations.add() поменял концы у связи.и использую Parent(columnname) и все работает. это не принципиально я понимаю. просто как одно из решений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2008, 13:18 |
|
||
|
|

start [/forum/topic.php?fid=17&fpage=85&tid=1352404]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 354ms |

| 0 / 0 |
