|
|
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
Есть таблица disp4(code3,code,year,month,sum) и эта таблица должна заполняться в таком Gride. Т.е. если я ставлю крестик в каком нибудь поле (1,2.....,12) то это значение должно записаться в таблицу в поле в disp11.month. И наоборот если disp11.month=3 то крестики должны стоять в колонке 3. Не спрашивайте зачем так мудрить просто так должно быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 09:07 |
|
||
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
Ошибочка, таблица disp11(code3,code,year,month,sum) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 09:09 |
|
||
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
Источником грида д.б. курсор или RV/LV, например select code3, code, year, (month=1) Month1, , (month=2) Month2, (month=3) Month3, ... into cursor MyCursor ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 09:24 |
|
||
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
Тебе для какой версии Фокса надо то? Впринципе для VFP больших сложностей нет - вставляешь в колонку чекбокс, в качестве источника для стобца пишешь чтото вроде IIF(seek(disp4.code3+disp4.code+disp4.year+<новер столбца>,'disp11'),.t.,.f.) Ключь поиска указан от балды так как ни типов полей ни имеющихся индексо не указано. В Clik-е чекбокса просто прописываешь добавление или удаление соотвествующей строки из disp11 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 09:31 |
|
||
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
AleksMedИсточником грида д.б. курсор или RV/LV, например select code3, code, year, (month=1) Month1, , (month=2) Month2, (month=3) Month3, ... into cursor MyCursor Я сделал так в Form16.Init я написал Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. И ещё вопрос , при select значения колонок 1..12 принимает значения .F. или .T.. Я хочу что если .F. то поле пустое, иначе Х. Я понимаю надо проверку if this.grid1.column5.text="F" this.grid1.column5.text.value=" " но куда ето прописать . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 11:50 |
|
||
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
авторИ ещё вопрос , при select значения колонок 1..12 принимает значения .F. или .T.. Я хочу что если .F. то поле пустое, иначе Х. Перепиши запрос: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 11:54 |
|
||
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
Подскажите, если я Грид описал в инит формы. То где обрабатывать нажатие на колонку , ячейку грида. Нажимая правой кнопкой на гриде и вызывая Code кроме общей Грид ничего нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 20:35 |
|
||
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
Создать свой класс грида,хидера,колонок, контролов внутри с необходимым кодом. Или почитать про функцию BindEvent() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 21:12 |
|
||
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
МашкоБ.В.Подскажите, если я Грид описал в инит формы. То где обрабатывать нажатие на колонку , ячейку грида. Нажимая правой кнопкой на гриде и вызывая Code кроме общей Грид ничего нет. А все-таки, какая версия VFP у вас? Поверьте, не праздный вопрос. От версии существенно зависит функциональность именно объекта GRID. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 21:57 |
|
||
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
У меня 9. Вопрос очень для меня важный т.к. с классами дела не имел и сейчас нет времени что-то такое делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 23:00 |
|
||
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
BurnТебе для какой версии Фокса надо то? Впринципе для VFP больших сложностей нет - вставляешь в колонку чекбокс, в качестве источника для стобца пишешь чтото вроде IIF(seek(disp4.code3+disp4.code+disp4.year+<новер столбца>,'disp11'),.t.,.f.) Ключь поиска указан от балды так как ни типов полей ни имеющихся индексо не указано. В Clik-е чекбокса просто прописываешь добавление или удаление соотвествующей строки из disp11 Идея интересная но как oбратится к методу Click, только если сздавать класс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2006, 19:22 |
|
||
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
Прошу прощения что ввел в заблуждение, пишу прогу под старые таблицы, только сейчас разобрался как заполняется этот Грид. Есть таблицы disp4(code3,code,year,sum,proz) disp7(code3, code2,month,year,account) Где code=code2 В гриде(как на рисунке) Год , Отдел и Сумма заполняются из disp4 а колонки 1,2...12 из disp7 При этом месяцев может быть несколько, т.е. в одной строчке несколько Х Код я написал такой Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2006, 01:22 |
|
||
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
Может я неправильно что пояснил, в принципе должно быть так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 14:18 |
|
||
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
МашкоБ.В.Может я неправильно что пояснил, в принципе должно быть так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Если все надо в одном запросе, то без корреляционных подзапросов не обойтись. Примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 14:31 |
|
||
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
МашкоБ.В.Может я неправильно что пояснил, в принципе должно быть так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Да ну, господа ... Все же просто !!! :-)) http://]SELECT d.code3, d.name, Max(iif((r.month = 1) > 0, 'X', ' ')) AS m1, Max(iif((r.month = 2) > 0, 'X', ' ')) AS m2, Max(iif((r.month = 3) > 0, 'X', ' ')) AS m3, Max(iif((r.month = 4) > 0, 'X', ' ')) AS m4, Max(iif((r.month = 5) > 0, 'X', ' ')) AS m5, Max(iif((r.month = 6) > 0, 'X', ' ')) AS m6, Max(iif((r.month = 7) > 0, 'X', ' ')) AS m7, Max(Iif((r.month = 8) > 0, 'X', ' ')) AS m8, Max(iif((r.month = 9) > 0, 'X', ' ')) AS m9, Max(iif((r.month = 10) > 0, 'X', ' ')) AS m10, Max(iif((r.month = 11) > 0, 'X', ' ')) AS m11, Max(iif((r.month = 12) > 0, 'X', ' ')) AS m12 from disp4 d Left Join disp7 r on r.code3=d.code3 order by d.code3 Group by d.code3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 15:25 |
|
||
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
Maltsev Max Да ну, господа ... Все же просто !!! :-)) http://]SELECT d.code3, d.name, Max(iif((r.month = 1) > 0, 'X', ' ')) AS m1, Max(iif((r.month = 2) > 0, 'X', ' ')) AS m2, Max(iif((r.month = 3) > 0, 'X', ' ')) AS m3, Max(iif((r.month = 4) > 0, 'X', ' ')) AS m4, Max(iif((r.month = 5) > 0, 'X', ' ')) AS m5, Max(iif((r.month = 6) > 0, 'X', ' ')) AS m6, Max(iif((r.month = 7) > 0, 'X', ' ')) AS m7, Max(Iif((r.month = 8) > 0, 'X', ' ')) AS m8, Max(iif((r.month = 9) > 0, 'X', ' ')) AS m9, Max(iif((r.month = 10) > 0, 'X', ' ')) AS m10, Max(iif((r.month = 11) > 0, 'X', ' ')) AS m11, Max(iif((r.month = 12) > 0, 'X', ' ')) AS m12 from disp4 d Left Join disp7 r on r.code3=d.code3 order by d.code3 Group by d.code3 Может и просто, но запрос синтаксически не верный с точки зрения ANSI: (и при SET ENGINEBEHAVIOR 80) 1. В список полей включены поля по которому нет группировки и не применена агрегатная функция. 2. ORDER BY должно быть после GROUP BY С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 15:40 |
|
||
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
Aleksey-K Если все надо в одном запросе, то без корреляционных подзапросов не обойтись. Примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Решение интересное но при выполнении selecta у меня возникает ошибка 1845 Visual FoxPro ran out of memory when it tried to expand the SELECT statement in order to analyze it. Типа не хватает памяти, для вычисления selecta как можно по другому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 23:28 |
|
||
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
А что дает вариант Maltsev Max ? В VFP он должен работать. С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 08:02 |
|
||
|
Как сделать такой Grid
|
|||
|---|---|---|---|
|
#18+
Aleksey-K Maltsev Max Да ну, господа ... Все же просто !!! :-)) http://]SELECT d.code3, d.name, Max(iif((r.month = 1) > 0, 'X', ' ')) AS m1, Max(iif((r.month = 2) > 0, 'X', ' ')) AS m2, Max(iif((r.month = 3) > 0, 'X', ' ')) AS m3, Max(iif((r.month = 4) > 0, 'X', ' ')) AS m4, Max(iif((r.month = 5) > 0, 'X', ' ')) AS m5, Max(iif((r.month = 6) > 0, 'X', ' ')) AS m6, Max(iif((r.month = 7) > 0, 'X', ' ')) AS m7, Max(Iif((r.month = 8) > 0, 'X', ' ')) AS m8, Max(iif((r.month = 9) > 0, 'X', ' ')) AS m9, Max(iif((r.month = 10) > 0, 'X', ' ')) AS m10, Max(iif((r.month = 11) > 0, 'X', ' ')) AS m11, Max(iif((r.month = 12) > 0, 'X', ' ')) AS m12 from disp4 d Left Join disp7 r on r.code3=d.code3 order by d.code3 Group by d.code3 Может и просто, но запрос синтаксически не верный с точки зрения ANSI: (и при SET ENGINEBEHAVIOR 80) 1. В список полей включены поля по которому нет группировки и не применена агрегатная функция. 2. ORDER BY должно быть после GROUP BY С уважением, Алексей. Вот. Пожалуйста..... Учтены все пожелания про соответствие ANSI и исправлены синтаксические ошибки ... Прошу прощения, не проверял, наугад запрос писал ... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 12:01 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34209040&tid=1590122]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 419ms |

| 0 / 0 |
