Супер! Благодарю!

Опять же, чтоб не плодить темы. Не нашел пока способ вычистить ячейку при редактировании в TableGrid (поле деньги) до ввода. Этот "0" по умолчанию портит жизнь при оперативном вводе.
Может кто-то сталкивался?

k245 wrote:

Вы задачу вашу хотите решить или разобраться в тонкостях работы событий редактирования таблицы? Сформулируйте точней, какой вам нужен результат.

Наверное я не правильно понял. Помощь нужна мне в решении следующей проблемы:
Мне нужно получить сразу же вводимый в ячейку результат. Сейчас, при "OnEditAccept" я получаю предыдущий результат. При "OnAfterEdit" вообще никакого.

Буду благодарен за помощь!

k245 wrote:

Вы задачу вашу хотите решить или разобраться в тонкостях работы событий редактирования таблицы? Сформулируйте точней, какой вам нужен результат.

Решить задачу, постепенно вникая в тонкости работы событий. )

Прошу прощения. Надо высыпаться. Рабочий вариант:

SQLExecute('SELECT count(id) FROM day WHERE results < "0,00" and date= '+sDate))

Не удается получить правильный результат запросами (поле "Деньги"):

SQLExecute('SELECT count(id) FROM day WHERE results < 0 and date= '+sDate))

Этот вариант вообще работать не хочет:

SQLExecute('SELECT count(id) FROM day WHERE results < '''0,00''' and date= '+sDate))

Пробовал засунуть "0,00" в переменную:

SQLExecute('SELECT count(id) FROM day WHERE results < '''+sNul+''' and date= '+sDate))

Возвращает все записи без условия.

Запрос в SQLiteStudio возвращает правильно:

SELECT count(id) FROM day WHERE results < '0,00' and date='2023-04-14'

Кто-нибудь сталкивался?

Не могу вникнуть, что не так делаю.
В данном случае:

procedure Form1_TableGrid1_OnEditAccept (Sender: TObject; ACol, ARow: Integer; Value: String; var Accept: Boolean);
begin
    if ACol = 0 then Form1.Label1.Caption := Form1.TableGrid1.Cells[0, Form1.TableGrid1.SelectedRow];
end;

Получаю предыдущее, а не текущее значение.
В данном:

procedure Form1_TableGrid2_OnAfterEdit (Sender: TObject; ACol, ARow: Integer; Value: String);
begin
    if ACol = 0 then Form1.Label2.Caption := Form1.TableGrid1.Cells[0, Form1.TableGrid1.SelectedRow];
end;

Вообще ничего не получаю.

Где не углядел?

sparrow wrote:

Для всей формы и ячеек

Спасибо, но это сильно жесткое решение. )) Однако, работает.

pavlenko.vladimir.v wrote:

Вы точно используете поле деньги?

Точно. В том-то и дело. Если вводить в текстовое поле в форме - проблемы не возникает как с ".", так и с ",". Ставится сама. Проблема при редактирование ячейки в TableGrid.

p.s. Со мной можно "ты".

pavlenko.vladimir.v wrote:

события
// вводимую точку меняет на запятую

Спасибо! Я пробовал аналогичный вариант. Он работает для текстового поля, но не для поля "Деньги".

Мне же нужно в процессе перехватывать символ. Вошел в ячейку, при попытке ввести "500,2" на английской раскладке я получу "5002".

При редактировании в TableGrid в числовом поле разделителем должна являться запятая. При работе на нумпаде нужно заморачиваться раскладкой клавиатуры. В связи с чем вопрос: Можно ли как-то "перехватывать" точку и менять ее на запятую при работе в данных полях?

И, чтоб темы не плодить. Если числовое поле пока пустое, при входе в ячейку появляется "0". Есть ли возможность получать пустую ячейку? Или же сразу выделить все содержимое ячейки?

k245 wrote:

Если речь идет о расположении таблиц на вкладке "Таблицы базы данных", то вы можете отредактировать текстовый файл tables.ini , переставив разделы в нужном порядке следования.

Вполне себе вариант. Спасибо!

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

Мдааа. Я мог бы быть и повнимательней.

Спасибо! С меня сто грамм и пончик! smile

16

(2 replies, posted in Russian)

У меня лично обычный *.bat по расписанию пускается с содержимым:

mysqldump -uПОЛЬЗОВАТЕЛЬ -pПАРОЛЬ БАЗА | bzip2 > ПУТЬ\backup_%date:~-10%.sql.bz2

Спасибо за оперативный ответ! Как бы работает, но не работает. smile Результат:

Rows matched: 226 Changed: 0 Warnings: 0

MySQL. Необходимо "перевезти" все файлы, сохраненные методом "CopyTo" в другое место. Нашел решение сменить пути запросом:

UPDATE docs SET file_filename = REPLACE(file_filename, '\\server\D\Files\Docs\', '\\server1\Files\Docs\');

однако запрос при встрече "\" "кончается".
Подскажите, пожалуйста, кто сталкивался? Как пути пакетно поменять?

19

(14 replies, posted in Russian)

Спасибо! Получилось.

20

(14 replies, posted in Russian)

При:

s := SQLExecute('SELECT messsms FROM sending WHERE id = '+IntToStr(idN));
sms := HTTPEncode(s);
HTTPGet('https://sms.ru/sms/send?api_id='+SMS_API+'&to='+tel+'&msg='+sms+'&json=1');

приходит сообщение нормально.
При:

s := SQLExecute('SELECT messsms FROM sending WHERE id = '+IntToStr(idN));
sms := HTTPEncode(s);

slParam := TStringList.Create;
slParam.Add('api_id='+SMS_API);
slParam.Add('text='+sms);
slParam.Add('to='+tel);
slParam.Add('json=1');
HTTPPost('http://sms.ru/sms/send', slParam);

иероглифы.

SMS.ru рекомендуют, при большом кол-ве адресатов телефоны отправлять методом POST. Конечно, работает вариант:

HTTPPost('http://sms.ru/sms/send?text='+msms, slParam);

Но, красоты ради... smile

21

(14 replies, posted in Russian)

Не хочется плодить темы. А как поправить кодировку при HTTPPost?

Супер! Спасибо огромное!
Из примера изначального "Booking" решил добавить "Hint" к записи. Удалось, однако не удается поставить пробелы между значениями полей.Запрос в чистом виде работает верно:

SELECT id, date, time, timeEnd, id_users1, (SELECT CONCAT (surname, ' ', name, ' (',  tel,')') FROM clients WHERE clients.id = mc.id_clients) AS client FROM mc WHERE date = '2018-12-25'

В проекте - ни в какую. Подсобите, пожалуйста.

vovka3003 wrote:
Raspr wrote:

знаний не хватает, чтоб в скрипте разобраться.

И не надо. Констекстное меню не пробовали открыть в дереве? Там есть "Delete Record" и "Add top record".
Так ведь нужно сделать?:
https://i.imgur.com/jrXlFnK.png

Не совсем. Точнее - совсем не. smile Там где номера комнат - будет список врачей. Там где даты - часы (кратно 30ти минутам).  Т.е. в этом примере я хотел сделать проживание по часам и только с 9 до 20. smile

Сколько лет, сколько зим... Здравствуйте!
В связи с выходом новой версии MVD очень захотелось расписание приема врачей у себя из табличного вида к TreeView привести. Поковырялся, но знаний не хватает, чтоб в скрипте разобраться. Не будет ли у кого-нибудь времени пример "переложить" на часы? С кратностью в 30 минут и с 9 до 20?

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