реально косяк в проге с условиями на 3 кнопки

Прописываешь каждый раз

MessageBox('...')

работает, но каждый раз окно открывает

А так всегда работает по сценарию 2х кнопок MessageBox...

Наверно, касяк в проге, если убрать на NO действие, и работает NO и CANCEL... Нужен мощный совет...

if IDYES = MessageBox('Распечатать заявку: ' +frmNew.edIdYear.Text,'Подтверждение',MB_YESNOCANCEL+MB_ICONQUESTION) then
            begin
                //Печать. при наличии кл.Сохранить, сохранение производится автоматически
                frmNew.Button1.Click;
            end else
            if IDNO then
            begin
                //Только сохранение
                frmNew.Button2.Click;
            end else
            if IDCANCEL then
            begin

            end;

Сейчас, CANCEL у меня делает то же, что и пункт NO (создает новую запись). А еще можно клавиши переименовать?

79

(2 replies, posted in Russian)

Подскажите, а как вызвать диалоговое окно для выбора куда сохранить...

Такой вариант ко к раз для записи в текствое поле, так у меня есть... А вот как записать в базу значение DataTimePicker1, что оно, значение, было ДАТА... Это действие хорошо получается в свойствах кнопки сохранить, а как это выражается в скрипте - не понятно...

Понятно, что меняя значение потеряется. Поэтому у меня был выбор делать поля только ДАТА, где не понятно, как сохранять значение DataTimePicker или Все поля ТЕКСТ, где все проще и извесно...

Сделал так

Trunc(now) - Trunc(StrToDate(SQLexecute('SELECT data FROM req WHERE id='

До 3D еще рости рости smile

А вот в в скрипте часто использую

 cId:=SQLEXecute('SELECT id FROM request WHERE id='+frmMain.TableGrid1.sqlValue); 

Вот каждый раз базе приходится создавать переменную и делать выборку. Это можно или не нужно выносить "за скобку"...

Есть конструкция

SQLexecute('SELECT (julianday("now") - julianday(dataR)  ...)

Она хорошо работает если dataR в базе имеет "тип поля" ДАТА
Но вот незадача, в процессе работы базы, мне надо до закидывать новые значения реального времени, как сделать не понял... т.к. это делает кнопка сохранить, а как в скрипте это выполнить непонятно...
Перевел "тип поля" в ТЕКСТ, и julianday ругается на разность представления значения...

Подскажите, в скрипте часто используются одинаковые переменные. Существует практика, где одна и та же переменная вынесена в глобальную и скрипт заработал бы "плавнее"... В машинном коде макрос бы сэкономил объем памяти...

Победа... принцип: из цикла дубликатов выдергиваем id главной таблицы, затем подставляем в ShowRecord и вуаля...

Что-то получается поправить, а что-то нет... т.к. у меня в окне просмотра не зависимая таблица, то когда вызывается просмотр, то в таблицу сливаются все значения. И не хочется править основу. Может есть скрипт вызова из основной таблицы ссылкой из дубликата... Приложил фото, что 000, то это по стандарту, а можно как на фото 001?

Наверно, из графики надо добавить в прогу картинки клавишь в серых тонах. Т.е. есть у меня кнопки только с рисунком, и когда управляешь параметром Enable, то клавиша вроде посерела, а картинка на ней по-прежнему "сочная".... smile. И может быть непонятно...

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

Этот вариант был первый...

Осталась проблема, как вызвать значения из таблицы, к которой привязан словарь...

rId:=SQLEXecute('SELECT id FROM request WHERE id='+list[i]);
cId:=SQLEXecute('SELECT id FROM client WHERE id='+list[i]);

gr := SQLexecute('SELECT setGroup FROM groupN LEFT OUTER JOIN client ON groupN.id=client.id_groupN WHERE client.id='+list[i]);

Вот так, выдергивается у меня значение setGroup из таблицы  client принадлежащей request. В таблице дубликате все отображается, но если просмотреть эту запись, то  таблицы client, request выдают нужный (выбранный) id записи, а вот из таблицы groupN не выдергивается значение...

Сделал так. Раз в базе формируется из двух независимых частей номер, то

nmY := SQLexecute('SELECT year FROM request WHERE id='+list[i]);
nmId := SQLexecute('SELECT ident FROM request WHERE id='+list[i]);

SQLExecute('INSERT INTO reminders(r_num)VALUES("'+nmY+'-'+Format('%.3d',[StrToInt(nmId)])+'"')');

на выходе 20-001, как и надо.

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

У меня как в основной есть вставка нестандартного счетчика

frmNew.edIdYear.Text := frmNew.edYear.Text + '-' + Format('%.3d', [id]);

И настроено, чтоб в базе сохранялось поле edIdYear в ячейку year-ident. А значит в дубле таблицы, должно отображаться содержимое поля, но у меня отображается id...
Вызываю в дубль скриптом

rId:=SQLEXecute('SELECT id FROM request WHERE id='+list[i]);
nm := SQLexecute('SELECT year-ident FROM request WHERE id='+list[i]);

Как можно поправить...

Через "батон" работает, значит еще не разобралмя с инструментом "чекбокс". Спасибо

У меня в проге выключены элементы

frmFon.mniFile.Visible := False;
    frmFon.mniOptions.Visible := False;
    frmFon.mniAbout.Visible := False;

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

Вот что нашел... почему-то, когда есть клавиша с настройкой "Посмотреть форму", все работает через эту клавишу. А при использование скрипта "Форма.Show" - нет. Получается как-то id не выбирается... или косяк в проге?

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

Закомментировал, и все равно не работает... sad

Блин, что-то сломалось и не в какую юлианское сравнение не работает... посмотрите опытным глазом...

Всем спасибо за участие.