101

(10 replies, posted in Russian)

DriveSoft wrote:

6. Необходимо не позволять сохранять запись если данные в компонентах не удовлетворяют данным условиям?

То что вы имеете ввиду я уже сделал. Вот полный скрипт
Form1_Save_OnClick (Sender: string; var Cancel: boolean);
begin
   if Form1.Date.Checked and Form1.Date1.Checked then
      begin 
                 if Form1.Date.DateTime < Form1.Date1.DateTime then ShowMessage('Text');
                 Cancel:= True;
      end;
   if Form1.Date.Checked and Form1.Date2.Checked then
      begin 
                 if Form1.Date.DateTime > Form1.Date2.DateTime then ShowMessage('Text');
                 Cancel:= True;
      end;
end;

Необходимо чтобы Showmessage не заработало если данные в компонентах не удовлетворяют данным условиям.

Пример
В Date стоит дата 20.12.2016
В Date1 стоит дата 20.12.2016
В Date2 стоит дата 20.12.2016

Из примера следует что:

                                    Date        <      Date1
первое условие 20.12.2016 < 20.12.2016 это не верно, значит условие не удовлетворительное, а значит сообщение Text не должно появится, но у меня это сообщение появляется. В чем же проблема?
В приложенном проекте выберите вторую запись и попытайтесь изменить его, у меня не получается.

102

(10 replies, posted in Russian)

6. Есть такой скрипт

if Form1.Date.Checked and Form1.Date1.Checked then
   begin 
              if Form1.Date.DateTime < Form1.Date1.DateTime then ShowMessage('Text');
   end;

if Form1.Date.Checked and Form1.Date2.Checked then
   begin 
              if Form1.Date.DateTime > Form1.Date2.DateTime then ShowMessage('Text');
   end;

Моя идея в следующем. Дата в поле Date должна быть: Date1<=Date<=Date2

Теперь проблема:
Пример
В Date стоит дата 20.12.2016
В Date1 стоит дата 20.12.2016
В Date2 стоит дата 20.12.2016
В норме это не удовлетворяет условию запроса, но к сожалению сообщение показывается. В чем может быть проблема?

103

(10 replies, posted in Russian)

Уважаемый Дмитрий.

1. Как в гриде указать время в виде hh:mm?
2. Как указать время в виде 24 часов, данный момент он стоит 12:00, не могу сделать 13:00 и так далее?
2. Как запретить открытия программы если она уже открыта?
3. Как запретить пользователю изменять ширину колонки в гриде?
4. В версии 3.1 во всех компонентах появились новые свойства. Есть ли мануал?
5. Как указать ширину колонки исходя из содержимого колонки с учетом двух нижеследующих примеров?
Примеры.
- Название шапки колонки Дата прибытия а в строках имеются 12.12.2016
Как видно название шапки колонки больше чем содержимое строки, таким образом ширина колонки должна быть ширине шапки
- Ширина названия шапки меньше ширины содержимого строки
I № I    Имя    I Должность     I
1        Иван     Фрезеровщик
После введения новой записи должна выглядит так
I № I    Имя    I Должность                    I
1        Иван     Фрезеровщик
2        Петр     Столяр-фрезеровщик

Надеюсь смог объяснить.

Вы хоть знаете что такое СУБД?

Еще раз скажу, что с ваших слов вытекает что вы не имеете никакого представления о СУБД и морочите здесь всем голову. Больше ничего сказать не могу.

stas.kodpi wrote:

аааа, вот вот оно что...)
тогда ясно.
ну мне все равно не понятна проблема вывода или отображения фицр в гриде в версии 3.1 (после версии 2.8), я считаю это именно проблемой.
и текстовки. почему когда ставится сочетание слов - оно правильно отображается, а когда цифра и затем слово - то оно наоборот отображается?

Приложите проект

107

(2 replies, posted in Russian)

Уважаемый Дмитрий.
Хочу сделать примечание к посту №2. Vacuum будет произведена во всех строках таблицы кроме той строки которая является PRIMARY KEY и не связана с другими таблицами.

Цитата критика:
-сами посудите, ИНН - это исключительно ЦИФРЫ (!)...
-какой смысл тогда в цифрах вообще, если все шарашить через текст можно?
-смысл то теряется тогда...

Цитата разработчика:
- Т.к. с ИНН обычно не производят никаких математических операций, хранить его в поле с типом "Целое число" смысла нет, для его хранения используйте поле с типом "ТЕКСТ"

Вам был дан ясный ответ.

stas.kodpi wrote:

спасибо, но:
сами посудите, ИНН - это исключительно ЦИФРЫ (!)...
какой смысл тогда в цифрах вообще, если все шарашить через текст можно?
смысл то теряется тогда...
и это ваши упущения, и только ваши, как разработчика!
и это не "доколупывания"   -  а правда в глаза... smile

К защите разработчика могу сказать одно. У вас не имеются базовые представления о СУБД, отсюда вытекают такие претензии. Не поленитесь и прогуглите в инете что такое СУБД и прочтите. Может поймете и не будете критиковать разработчика. Я и, надеюсь, другие пользователи довольны программой MVD и разработчиком, так как он отзывчив и отвечает на любые конкретные вопросы. Вы уж простите меня, но я должен это сказать, так как вы уже не первый раз критикуете и программу и разработчика.

На сайте имеется раздел обучающие материалы и видеоролики. Дальше уже вы обучитесь сами. Вы сказали показать направление, я вам показал. Дальше уже вы сами. Если вам эту программу заказали то поделитесь оплатой и вам сразу все сделают.

111

(10 replies, posted in Russian)

Уважаемый Дмитрий!
Поскольку данный вопрос остался открыт, мой следующий вопрос связан с этим вопросом и я решил задать его здесь. Итак....
Представьте тот же проект PhoneBook. На форме frmAbonent в моем случае имеются DTPbirthdate (дата рождения) и DTPincome (дата принятия на работу).
1. DTPbirthdate должна быть меньше DTPincome.
2. Я создал событие frmAbonent_bOk_OnClick: Если DTPbirthdate больше DTPincome то показывается Panel1 в котором имеется текстовое сообщение -"дата рождения должна быть меньше даты принятия работы" и действие сохранения отменяется.
3. Если вышеупомянутое условие отрицательное то при нажатии на кнопку bAddNumber выскакивает тот же Panel1, но frmNumber не показывается и записи на frmAbonent не сохраняются в базе - это хорошо.
Все три пункта отлично работали в версии 2.8. Теперь в версии 3.1 третий пункт не работает, т.е. если условие отрицательное то Panel1 показывается но одновременно frmNumber то же показывается. В чем может быть проблема?

stas.kodpi wrote:

посмотрел я задачку, что вы поправили, но
1 Вот я внес данные, закрыл программу, снова открываю, и пытаюсь просмотреть внесенные данные, а строка "Поставленные задачи" пустая.
2. Надо не одну запись делать, а вплоть до 24 записей начиная с 00:00 и до 23:00).

Еще с этим подскажите.

1. Исправлена, скачайте заново
2. Кликните на новый запись и поставьте время и дату

stas.kodpi wrote:

все сначала переделываю.
подскажите - в правильно направлении  двигаюсь?
только мне нужно , что-бы была связь первое время + первая задача + первая стадия + первый исполнитель
затем второе время + вторая задача + вторая стадия + второй исполнитель

т.е. за каждым выбором времени закреплялоись свои данные. ну и плюс в грид ишло несколько записей по выбранным часам

подскажите...

прикладываю проект

Задача решена, но в следующий раз не говорите что вам тут никто не помогает, так как тут ставятся конкретные задачи. Под конкретней задачей подразумевается например как вывести данные из грида в экзель. А вы когда ставите вопросы то пишите целый ряд задач - это не конкретная задача.

Да вы правильно поняли.
заказчик много чего может хотеть, но вы как программист должны объяснить ему что такой подход к программированию, во первых, не правилен и, во вторых, вам будет трудно это реализовать.

У вас не правильно создана структура базы и вообще формы. В каждой программе с начало должна быть визуальная картина, т.е. как минимум на форме должна быть TableGrid, в котором показывается все данные из базы данных. Также должны быть кнопки создания новой записи, редактирования и удаления записи. А у вас первая форма уже не правильно структурирована, так как она является формой для создания новой записи.

116

(6 replies, posted in Russian)

спасибо, попробую отпишусь

117

(6 replies, posted in Russian)

По вашему скрипту все отлично понятно.
Объясню еще раз на примере. На форме имеется грид, в котором имеется 6 колонок. Также на форме имеется 6 чекбоксов.

№   Имя    Фамилия    Адрес     Телефон    Должность

Чекбокс №1 - №
Чекбокс №2 - Имя
Чекбокс №3 - Фамилия
Чекбокс №4 - Адрес
Чекбокс №5 - Телефон
Чекбокс №6 - Должность

По умолчанию в гриде показываются все 6 колонок. Чекбоксы отмечены, т.е. во всех чекбоксах имеются галочки. Если снять галочку с чекбокс №3 и №5 то в гриде не будет отображаться Фамилия и Телефон. Затем при нажатии кнопки Export to Excel экспортирую оставшиеся в экзель. Если востановить галочки №3 и №5 то соответственно в гриде будут отображаться Фамилия и Телефон с другими колонками. И опять же при нажатии на кнопку экспортирую все колонки в Excel. Типа вот так.

118

(5 replies, posted in Russian)

спасибо все понятно

119

(5 replies, posted in Russian)

DriveSoft wrote:

Если используете SQLite, тогда выч. поле будет таким:

date('now') - dates + (case when strftime('%m-%d', 'now') < strftime('%m-%d', dates) then -1 else 0 end)

Что означает это выражение?
(case when strftime('%m-%d', 'now') < strftime('%m-%d', dates)

120

(6 replies, posted in Russian)

Можно ли сделать это при помощи чекбокс? Например каждая колонка имеет свой чекбокс и если в чекбоксе стоит галочка то соответствующая колонка будет отображена на гриде и наоборот при снятии галочки она будет не видна, т.е. спрятана.

121

(6 replies, posted in Russian)

Уважаемый Дмитрий!
На форме имеется TableGrid, в котором имеется 20 колонок. Также имеется кнопка вывода результатов в экзел. На экзеле будет данные всех 20 колонок. Теперь вопрос.
В делфи насколько я помню имеется выбор колонок которые будут отображаться на TableGrid, т.е. могу выбрать те колонки которые мне нужны для вывода в экзель. Как реализовать эту идею в MVD? Спасибо заранее.

122

(2 replies, posted in Russian)

Уважаемый Дмитрий.
Как в базе данных начать Id с новой цифры, так как при сохранении записи последнему присваивается уникальный Id.
Что то слышал про Vacuum, но не знаю как его применить. Дайте пример его использования.

123

(7 replies, posted in General)

stelios91 wrote:

Here it is i removed exe and dll's as tou said.

What is the file FORMS CORRECTION.xml in your attached file? I dont see in your program any script that refers to this file.

124

(10 replies, posted in Russian)

Вы правы, я тоже об этом подумал, но если даже так, то может возникать и такой случай что и фамилию абонента, и все поля которые надо будет заполнять не надо будет, т.е. отменяем весь процесс.

125

(10 replies, posted in Russian)

Может быть другие не замечали эту проблему, но так как ваша программа основана на базе данных, а это в свою очередь составляет статистику, то при отмене действий записывается пустая или не нужная запись, которая будет искажать статистику. Если нет четких статистических данных, то получается что ваша программа будет не годна. Вы уж извините меня, но это настолько трудно для вас, как разработчик данной программы, исправить эту ситуацию?