DriveSoft wrote:

поправил баг, который вы описали в предыдущем сообщении но почему то удалили, пока я его исправлял )

Просто разобрался в чем дело )). Чем чаще практикуешься в написании скрипта, тем понятнее всё становится.
Кстати, точно так же сделал.

DriveSoft wrote:

d.v.aleinikov
Поправил ваш проект.

Спасибо. Все работает с небольшой корректировкой)

СКРИПТ - ПРОВЕРКА НА ЗАПОЛНЕННОСТЬ "DateTimePicker"

Доброго времени суток! Как прописать проверку на заполненность поля "DateTimePicker":

procedure frmDogovor_knpkAddDog_OnClick (Sender: string; var Cancel: boolean);
begin
    if (frmDogovor.addVidDog.Text='') or (frmDogovor.addKontragent.Text='') or (frmDogovor.addINN.Text='') or (frmDogovor.DateDog.!!!!!!!!!!!!!!) then
        begin
            ShowMessage('Обязательные поля не заполнены!');
            Cancel := True;
            Exit;
        end;
    if (Length(frmDogovor.addINN.Text)<>10) and (Length(frmDogovor.addINN.Text)<>12) then
        begin
            ShowMessage('Не верный ИНН!');
            Cancel := True;
        end;
end;

Выкладываю.
По двойному клику на записи в таблице "pskTblDogovor", расположенной в форме "frmPoisk", должна запускаться форма "frmDogovor2" (для просмотра выбранной записи).
В проекте функция запуска формы "frmDogovor" для "редактирования" уже отключена. Иначе запускается две формы.

Помогло!

Второй вариант для меня. Но в таком случае высвечивается только пустая форма, а не форма в варианте "показать запись".  Задача в том, чтобы по двойному клику на записи высвечивалась форма, в которой не возможно отредактировать данные. В моем проекте две аналогичные формы: одна с возможностью редактировать данные, а другая - просто для просмотра.
P.S. Может я замудрил и можно открывать одну и туже форму с возможностью редактировать данные и без неё? ))

Доброго времени суток!
Дмитрий, а Вы не планируете записать ролик по созданию простейшего отчета - для наглядности? Так проще будет в дальнейшем изучать по литературе.

СКРИПТ ДЛЯ ТАБЛИЦЫ:
Доброго времени суток!
Подскажите пожалуйста скрипт для таблицы (TableGrid) - необходимо, чтобы при двойном щелчке на записи в таблице (например, отображенной в таблице по результатам поиска) запускалась определенная форма, а не та которая задается по умолчанию при назначении действия "редактирование" для кнопки.

Продолжение следует )). Сказывается отсутствие опыта в программировании )). Как можно, в таком случае, написать скрипт, если ИНН может состоять только из 10 или 12 знаков? Все иные варианты должны выдавать ошибку. А при вводе 10-значного или 12-тизначного числа - производилась бы запись.


P.S. После того как покумекал, вот что придумал и таки работает. Может можно проще написать?

procedure frmDogovor_knpkAddDog_OnClick (Sender: string; var Cancel: boolean); // проверка на заполнение обязательных полей и соответствие ИНН количеству введенных символов
begin
    if Length(frmDogovor.addINN.Text)<10 then
        begin
            ShowMessage('Не верный ИНН!');
            Cancel := True;
            Exit;
        end;
    if Length(frmDogovor.addINN.Text)=10 then
        begin
            Exit;
        end;
    if Length(frmDogovor.addINN.Text)<>12 then
        begin
            ShowMessage('Не верный ИНН!');
            Cancel := True;
        end;
end;

Спасибо!

Ограничение минимального размера окна при установленной функции "Sizeable"- возможно ли такое?

Спасибо! Переустановка MVD помогла.

Доброго времени суток!
Необходима помощь с реализацией проекта - технической его части. Буду иногда задавать вопросы в этой теме по этому проекту, если позволите )).
Проект частично реализован, но есть технические моменты, которые не дают мне покоя.
Итак, вопрос первый:
В проекте ведется учет договоров и счетов. Счета привязаны к договорам по типу "телефонной книги" (в примерах к программе), где к каждому абоненту может быть привязано несколько номеров. В моем случае - к договору привязываются счета.
Добавление нового договора и счетов к нему выполняется в одной форме (frmDogovor).
Проблема вот в чем: на главной форме (или из формы поиска) жмем кнопку добавить НОВЫЙ договор (записи в таблице о нем еще нет и счетов к нему нет), появляется форма "frmDogovor". По порядку заполняем все данные. Доходим до кнопки "добавить счет", жмем, высвечивается форма заполнения счета и, параллельно, поскольку счет привязан к договору, сохраняется запись о НОВОМ договоре. После сохранения счета жмем кнопку "ОК" в форме "frmDogovor" и тут происходит повторное сохранение НОВОГО договора, поскольку есть возможность сохранения договора без добавления счета через ту же форму.
Подскажите как можно сделать так, чтобы кнопка "ОК" не работала на сохранение, если запись о НОВОМ договоре уже добавлена через "добавление счета"?
Чтобы не выглядело все сумбурным, прилагаю проект.

Спасибо!

И еще один вопрос: как изменить надпись в окне сообщения? Картинку прилагаю
http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&amp;item=1127&amp;download=0

Хочу немного оптимизировать под свой проект. Есть необходимость в прерывании процедуры на определенном этапе (в моем случае на первом этапе), не дожидаясь ее исполнения до конца.
Вот что у меня есть:

procedure frmDogovor_knpkAddDog_OnClick (Sender: string; var Cancel: boolean);
begin
    if (frmDogovor.addVidDog.Text='') or (frmDogovor.addKontragent.Text='') or (frmDogovor.addINN.Text='') then
    begin
        ShowMessage('Обязательные поля не заполнены!');
        Cancel := True;
    end;
    if Length(frmDogovor.addINN.Text)<>10 then
    begin
         ShowMessage('Поле "ИНН" должно содержать 10 знаков');
         Cancel := True;
    end;
end;

Применил, все работает. Возник второй вопрос: как во втором варианте прописать проверку нескольких полей одновременно и выводить только одно сообщение?

Спасибо!

Доброго времени суток! Подскажите пожалуйста способ реализации маски ввода - десятизначное число. Необходимо чтобы в поле (в форме) вводилось десятизначное число, а при попытке сохранения другого числа (меньшего или большего) - выводилось необходимое сообщение - об ошибке или другое.
И еще один момент - если поле является обязательным, то при попытке сохранить его пустым выдается системное сообщение об ошибке. Как его отредактировать или создать свой текст сообщения об ошибке?

Заранее благодарен.

P.S. Необходима маска для ИНН. Поле является обязательным.

Спасибо за разъяснение. А вообще, кончено, эта особенность (неизменяемый размер файла базы данных) странная. Неужели невозможно ничего с этим сделать?! Это риторический вопрос.

Версия моей программы - 1.51.  Выкладываю исходный вариант базы. Попробуйте сделать изменения. И попутный вопрос - почему файл sqlite.db не уменьшается в объеме при удалении данных из базы?

Пока создавал архивы, разобрался в чем дело - при удалении файла sqlite.db удаляются и данные базы данных. Создалось впечатление, что формы не работают, а на самом деле просто отсутствуют данные для отображения.
При этом возник другой вопрос. Возможно ли провести изменение параметра поля таблицы без потери данных и как это сделать в рамках программных средств MVD?

Доброго времени суток!
Интересует такой вопрос: понадобилось в готовом проекте изменить параметр поля определенной таблицы - изменить значение на "обязательное". Как подсказывает программа - для этого удалил файл sqlite.db. Внес изменения - сделал одно поле "обязательным". Сохранил проект. После этого перестали работать все формы как работали до изменений. проверил все связи - все осталось без изменений. В чем тут дело? Чего я не понимаю и как вернуть работоспособность всех форм в проекте - неужели заново переназначать все функции???

24

(5 replies, posted in Russian)

Спасибо за совет. Только через буфер обмена копируются исключительно данные, названия столбцов не копируются - сойдет, пока не освою создание отчетов. Пошел изучать.

25

(5 replies, posted in Russian)

Спасибо огромное. Вопрос не в тему - возможно ли каким-то образом экспортировать данные в другие редакторы - например в Open Office?