Re: новичок начинает "проект" | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
> текст1.клик(column2):
REPLACE vibor WITH IIF(EMPTY(vibor), 'X', ' ') && Ошибка: Data type mismatch. Про тип поля vibor (L) уже сказали, надо: REPLACE vibor WITH NOT vibor Ты не путай изобразительную настройку (.ControlSource = "IIF(EMPTY(vibor),'','+')" ) и физическое действие с полем БД (REPLACE vibor WITH NOT vibor). Не надо пихать в физическое поле изображаемые символы ('X') > А если вот так:
В REPLACE (в текст1.клик(column2) ) НИЧЕГО кроме REPLACE vibor WITH NOT vibor НЕ НАДО, изображение в колонке сменится автоматически (да, данный 2х-колоночный можно делать без кода в ран-тайм, если не интересно с ран-таймом, то можно собственно не продолжать, я не против) |
Re: новичок начинает "проект" | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
ProbaSP
Вы все же, пытаетесь решить, какую то реальную задачу? Тогда начинать... перечитать 3й пост. Ответ Игоря Королева. Либо вы хотите чему то обучиться? Может не прав, но пока, на мой взгляд, вы учитесь, чему то плохому) Скачал ваш проект. Код в кнопках
Они бы сработали, будь вызываемая форма модальной. Дальше, судя по вашим вопросам, и способам их решения, у вас пока не... сформировалось понимание))) Поймите, есть данные. Таблицы. И как правило, манипулировать надо именно данными. И есть их отображение - на форме. Не только отображение, но и управление, внесение, изменение. Но, все равно, работа с данными. Боюсь непонятно объяснил))) 1. Любой проект, даже тренировочный, начинают с ТЗ. Пусть внутреннего, для себя. Но коли хотите научиться, напишите его все таки, и выложите здесь. 2. Далее, строят структуру данных, которая удовлетворяет ТЗ. 3. И вот только теперь стоит кодировать. Еще добавлю. Фох не типизированный язык. Но данные в таблицах, плевать хотели на его не типизацию)))) Они очень строго типизированы. Знаете о типах данных? Если да, то надо с этим аккуратнее, потому как не типизация фокса, позволяет, наворотить глупостей... И если обучаетесь. Так решите, разберитесь до конца с какой то проблемой, что бы этот момент довести до "просветления" )))) Как то странно, я привел, как мне казалось, очень простой пример, с более вменямым интерфейсом. (кнопки ОК сделал))) Но у вас по прежнему... что то ... неясное. Вносится по закрытию формы. (пере индексация при закрытии формы - бред) Как то спросил, подошел к классам... и забросил эту тему))) Зачем в гриде раскрашиваешь, непонятно. Ну для тренировки... ------------------ |
Re: новичок начинает "проект" | |
---|---|
ProbaSP Автор Сообщений: 94 Откуда: Урал Дата регистрации: 28.01.2016 |
Все работает.
сделал AllowCellSelection=false и код повесил на клик по гриду. thisform.Visible= .F. DO FORM form1 thisform.Visible= .T. это я эксперимент проводил, он один раз сработал, я больше к нему не касался. про пере индексация тоже самой. Вы сейчас указали, уже убрал эту ерунду... И этот "проект" ВЕСЬ - эксперимент для МЕНЯ. "у вас пока не... сформировалось понимание", ну дик я и не спорю... я вообще ни чего не утверждал, что я какой-то опытный. НО благодаря этому форуму понимание пусть медленно, но появляется. Все советы которые мне здесь написали проходят через МОЁ понимание. И поэтому из ВСЕХ советов, примеров я выбираю то, что МНЕ хоть как-то понятен. А остальные я хочу отдельно изучить и понять. У меня, к сожалению, время тоже ограничено. А за то, что я тут "творю" мне, я надеюсь, только скажет "спасибо" пожилая дама в очках из бухгалтерии. И мне этого будет достаточно. (я написал про очки, чтоб было понятно почему на формах такие кнопки). Аспид я понимаю, что Вы пытаетесь направить на "правильный" путь. Спасибо Вам огромное. Ну видимо мне это не дано(В смысле программирования). А я как из фильма "чародеи", сказал себе "А я сделаю это". И мне не передать те эмоции, когда после очередной подсказки меня "осиняет". пи-пи-пи-пи да как так-то пи-пи-пи-пи почему я сам этого не увидел Для правильного подхода специально заведу новую тему и начну заново... Спасибо ещё раз. |
Re: новичок начинает "проект" | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
сие заменяется на
А вообще для начала новичку лучше сделать в гриде колонку с чекбоксом и просто менять обычным образом состояние чекбокса - не морочиться пока на REPLACE, тем более по горячим клавишам или хитрым кликам непонятно где ------------------ WBR, Igor |
Re: новичок начинает "проект" | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
А мне вот это "понравилось":
------------------ Лень - это неосознанная мудрость. |
Re: новичок начинает "проект" | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Еще один перл:
Цитата:Из чего можно сделать вывод, что три первые строки процитированного кода, мягко говоря, не особо нужны ибо делают то, что и так будет сделано, замусоривают код и никак не ускоряют его выполнение. Далее.
Например, если для Thisform.text7 в ControlSource написать M.rck, то последняя строка процитированного кода становится бесполезной и ненужной. МыслЯ понятна? ------------------ Лень - это неосознанная мудрость. |
Re: новичок начинает "проект" | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Ерунда. Надо просто понять объектную модель. Ну и БД тоже))) Уже кто то упоминал, что она , мягко говоря, даже для теста... не того. Накидал твой проект, переведя формы в классы. И на базе классов, создал формы. Посмотри. Упростил как мог) Если непонятно, спрашивай. Там... настолько упрощено, что так бы не сделал в реале никогда. Чисто для понимания. Увидишь, что строчек кода, стало куда меньше И главное... логику понять, того что написано. А потом уж можно его улучшать бесконечно. Это конечно не о раскраске грида))) зы. Все формы работают в своих DS. И тем не менее, все работает. Формы не модальные, но впечатление, для юзера, что модальные ------------------ Исправлено 1 раз(а). Последнее : Аспид, 20.03.16 13:25 |
Re: новичок начинает "проект" | |
---|---|
ProbaSP Автор Сообщений: 94 Откуда: Урал Дата регистрации: 28.01.2016 |
Сам конечно. Уже прочитал про Структурный CDX. Убрал... медленно но привыкаю, что 9 фокс "сам все делает". Убрал... а-а-а (семён семёныч) получается в моем случае не нужно заботиться о передачи нескольких параметров между формами. написать на форме1 в св-ве текстбокса7 - Thisform.text7.ControlSource=M.rck и как только "вернёмся" с формы2(на которой определится значение M.rck) на форму1, оно автоматом примет это значение. Дык у меня тут половина лишнего получается. Я ж стараюсь как-бы "сам" все контролировать - открытие, закрытие, передачу... нужно пореже заглядывать в книгу по 2-му фоксу. переделал... (только пришлось строчку вставить - thisform.text7.Refresh) Обещаю, как только я прочитаю про классы, еще раз пересмотрю все примеры которые мне все дали. Ну и тогда уж точно появятся вопросы. уже отвечал... добил я этот вариант! пристегнут... |
Re: новичок начинает "проект" | |
---|---|
ProbaSP Автор Сообщений: 94 Откуда: Урал Дата регистрации: 28.01.2016 |
Эх, нужна помощь...
Как копировать, импортировать и т.д. в excel прочитал. Вроде пока все понятно. НО не могу сделать сложную (для меня)ВЫБОРКУ которую мне нужна В КУРСОР. (я потом хочу его в excel перевести. С этим вроде нет вопросов.) нужно следующее: на моей форме для отчета выбрали фамилии(пометили +), месяц и нажимаем "сформировать" т.к. шапки в excele вроде не получить, то пусть будет первое поле: 1. месяц(mes) 2. порядковый номер 3. фамилия (fio) (только те которые есть в этом месяце) дальше должно столько колонок, сколько разных названий деталей за месяц(выбранный) всего встречается из выбранных фамилий. Например 1-й сделал - 2, 2-й сделал - 4, 3-й сделал-1, значит колонок 4. 4. зп(за 1 деталь) (zp) 5. зп(за 1 деталь) (zp) 6. пусто (это например, человек эту деталь не делал, а другой делал, значит значения нет, а у другого стоит здесь значение) 7. пусто 8. итого(сумма все зп) (zp+zp) 9. пусто 10. пусто 11. пусто 12. пусто 13. итог*0.1 14. труд. ((zatr+zatr)*итого) 15. пусто где пусто, значит в курсоре пустое поле. Как мог объяснил... У меня в папке report лежит файл shablon.xls. Я в нем попытался сделать шаблон и пример, как должно быть организована готовая таблица (курсор). Наверно уж сильно замарочено Спасибо. Исправлено 1 раз(а). Последнее : ProbaSP, 21.03.16 20:23 |
Re: новичок начинает "проект" | |
---|---|
AndyNigmatec Сообщений: 1574 Откуда: Волгоград Дата регистрации: 28.06.2015 |
- через OLE можете командовать экселькой как угодно ))) я вам специально пример такого выложил ранее в этом топике - метод ExcelOut у формы frm_report1 далее, судя по описанию вам нужна стандартная "шахматка" ... тут на форуме сей вопрос всплывает подозрительно часто - не далее как сегодня ))) - посмотрите, а вкратце - вам нужно сделать либо свой запрос либо процедурку который(я) формировал бы оную шахматку. вот не люблю я 100500 столбцов ... но не всегда юзверя можно победить, особенно ежели он (она) - бух со стажем )))) Вы уверены что у вас кол-во возможных деталей не превысит кол-во допустимых столбцов (которое еще и от версии офиса зависит)? Исправлено 2 раз(а). Последнее : AndyNigmatec, 21.03.16 21:13 |
Re: новичок начинает "проект" | |
---|---|
AndyNigmatec Сообщений: 1574 Откуда: Волгоград Дата регистрации: 28.06.2015 |
вот вам набросал простой для понимания вариант по-быстрому:
выбирает из вашей bd
нужно иметь в виду что данное решение орграничено кол-вом столбцов - поскольку в курсор больше чем 255 (наскока помню) полей не запихать. вот результат - курсор cRes Исправлено 15 раз(а). Последнее : AndyNigmatec, 22.03.16 00:39 |
Re: новичок начинает "проект" | |
---|---|
ProbaSP Автор Сообщений: 94 Откуда: Урал Дата регистрации: 28.01.2016 |
спасибо, щас буду разбирать пример по "полочкам"
да, уверен. максимум деталей 10 в месяц. |
Re: новичок начинает "проект" | |
---|---|
AndyNigmatec Сообщений: 1574 Откуда: Волгоград Дата регистрации: 28.06.2015 |
вот, на соседней теме аналогичную "шахматку" перетирают ))) forum.foxclub.ru
там кстати более логично для обхода null-значений используют ф-ю NVL() , а не IIF(ISNULL(... как я вам нарисовал вот тож самое тока с использованием NVL
курсор cD можно сразу не закрывать как у меня в примере - а использовать при выводе в эксель - чтоб названия ваших деталей в ячейках-заголовках прописать в целом думаю суть вам понятна - так что до нужного вида уже сможете допилить ))) Исправлено 4 раз(а). Последнее : AndyNigmatec, 22.03.16 20:30 |
Re: новичок начинает "проект" | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
И опять имеем прямо таки параноидальную страсть работать исключительно со строковым представлением даты. Которое, естественно, сильно зависит от формата ОТОБРАЖЕНИЯ даты в строку. А возможность полностью не зависит от этого формата полностью игнорируется. Попробуйте написать так
А потом подумайте, нужны ли в процитированном в начале сообщения коде настройка формата даты и затем использование функции конвертации строки в дату? ------------------ Лень - это неосознанная мудрость. |
Re: новичок начинает "проект" | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Сергей, возможно, эту деталь, представления даты, можно пропускать мимо ужей
CTOD(01.01/2016) {01/10/2016} {^2016-01-01} ... не знаю, как в си это все обустраивают, дату типа сказать в переменную записать |
Re: новичок начинает "проект" | |
---|---|
AndyNigmatec Сообщений: 1574 Откуда: Волгоград Дата регистрации: 28.06.2015 |
- даже не зацикливаюсь на этом - нужно было две даты в переменную запихать для использования в примере - запихнул из строки, запись cDate1={^2016/03/01} ничуть не хуже, но зрительно привыкли все к германскому ддммгггг представлению - так и прописал для наглядности. А вообще в рабочих проектах стараюсь избегать по возможности конвертаций дата-строка и наоборот и работать везде с пременной типа дата как с датой без кувырканий. Исправлено 1 раз(а). Последнее : AndyNigmatec, 22.03.16 21:18 |
Re: новичок начинает "проект" | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Для наглядности, то оно может... А чтобы оно корректно работало нужны SET-ы, причём по хорошему все 3 штуки - DATE, CENTURY, STRICTDATE... А это лишние (при том ненужные) телодвижения и глупые вопросы. ------------------ WBR, Igor |
Re: новичок начинает "проект" | |
---|---|
ProbaSP Автор Сообщений: 94 Откуда: Урал Дата регистрации: 28.01.2016 |
Извините, но вынужден задать очередной глупый вопрос.
не могу найти информацию. (как всегда плохо искал...) я разобрался с кодом который мне дал AndyNigmatec. но мне не понятна одна запись в строчке: lcScript=[SELECT a.fio]. a.fio - это как читается или как её понимает фокс? пожалуйста, ткните носом где почитать... или, если это не сложно, объясните. правило обращения к полю базы данных ИмяАлиаса.ИмяПоля а здесь получается алиас "а" поле "fio". И ещё lcDate1={^2016/03/01} ^(символ степень) перед датой, что означает? Спасибо! |
Re: новичок начинает "проект" | |
---|---|
VeterVFP Сообщений: 413 Откуда: Москва Дата регистрации: 26.12.2006 |
"a" в данном случае локальный алиас, который используется для упрощения обращения к курсору. Он берется/указывается в секции FROM у SELECT-SQL: [DatabaseName!]Table [[AS] Local_Alias] в данном случае:
|
Re: новичок начинает "проект" | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Цитата: ------------------ Лень - это неосознанная мудрость. |
© 2000-2024 Fox Club  |