Если можно, доработать действие "Открыть в Excel" при установленном OpenOffice.

Спасибо, отлично!
Только получается в первой строке без кавычек надо. Иначе они в запись идут. Т.е.:

mess := 'Вы приглашены в разработку: '+SQLExecute('SELECT name FROM teamWork WHERE id='+idTW)+'.';

Надо полагать, на первой кавычке строка заканчивается?

mess := '"Вы приглашены в разработку: '+SQLExecute('SELECT name FROM teamWork WHERE id='+idTW+'."';
SQLExecute('INSERT INTO alerts (id_users1, date, note) VALUES('+idTWuser+','+sCurrentDate+','+mess+')');

Как изолировать ошибку, которая возникает при наличии кавычек в значении name?

mess := '"Разработка '+SQLExecute('SELECT name FROM teamWork WHERE id='+IntToStr(iTW))+' открыта."';

Огромное спасибо!

Есть потребность включать определенные компоненты на форме по "секретному" сочетанию клавиш. Предположим "Ctrl+Shift+8". Можно как-то это реализовать?

32

(6 replies, posted in Russian)

Если я все правильно понял: https://yadi.sk/d/KKBrGXxJ3RoasF

derek wrote:

Здравствуйте Raspr,
If I understand you correctly, use calculated fields for id_user1, id_user2......
Please see attachment,
Derek.

Excellent! Thank you!

Ответа на форуме не нашел, если тема поднималась. Есть необходимость в таблице несколько раз связываться с таблицей другой. Предположим, таблицы:

users
id | login | ...

events
id | id_users | id_users1 | id_users2 | ...

Можно ли вывести в TablegGrid значение id_users1 или id_users2? В смысле, login. ID, ясно дело можно.

Из готового примера. Адаптивная высота строки в TableGrid по содержимому:

procedure frmIndex_tgNews_OnColumnResize (Sender: string; ACol: Integer);
begin
    frmIndex_tgNews_OnChange ('');
end;

procedure frmIndex_tgNews_OnChange (Sender: string);
var
    i, c: integer;
begin
    frmIndex.tgNews.Options := frmIndex.tgNews.Options or goRowResizing;

    c := frmIndex.tgNews.Columns.Count - 1;
    for i := 0 to c do
    begin
        frmIndex.tgNews.Columns[i].VerticalAlignment := taAlignTop;
        frmIndex.tgNews.Columns[i].WrapKind := wkWordWrap;
    end;

    c := frmIndex.tgNews.RowCount - 1;
    for i := 0 to c do frmIndex.tgNews.BestFitRow(i);
end;

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

Отлично! Большое спасибо! Работает!

smtp.yandex.ru

Точно скачал и точно установил. Сейчас удалил MVD и установил заново. Результат тот же.

Спасибо за оперативную реакцию, однако я так и получаю ошибку "Bad recipient address syntax" при списке получателей вида: "mail@mail.com;mail@mail.ru".

Есть таблица в которую складываются id_users, id_teamwork, subs (ДА/НЕТ). Комбобоксом с мультивыбором туда складываются участники. По задумке, каждый может подписаться на уведомления. Теоретически к afterclick на кнопке добавления записи можно прикрутить отправку почты. С одним пользователем проблем нет. Но. Мне не удалось поставить несколько получателей (как принято, через ";") в примере с форума (http://myvisualdatabase.com/forum/viewtopic.php?id=1365). Отправлять несколько писем одно за другим как-то не логично.

Нет возможности помочь со скриптом, как выбрать подписчиков, сложить их в одну переменную и отправить только одно письмо?

При работе с SQLite этой ошибки нет. Может дело в тут? )

42

(3 replies, posted in Russian)

DriveSoft wrote:

Что именно залогировать?

Просто сам факт изменения/удаления записи.

Мануала свежего, вроде, нет? Как скриптом разрешить редактирование, удаление в гриде?

И, можно ли как-то залогировать данные события? С кнопкой все проще.

Кнопка с действием "Отчет" привязанная к DateTimePicker дает ошибку при фильтрах ">, >=,<".
Версия 3.7b.

Я такой один?

Может просто на форму Date Time Picker поставить и с него сохранять?

А Ларчик просто открывался. (с)

Спасибо! smile

Вопрос, думаю, замудренный. smile
Пригодился пример сохранения multiselect combobox. Тема http://myvisualdatabase.com/forum/viewtopic.php?id=3016. Проект http://myvisualdatabase.com/forum/misc. … download=1

Помогите, пожалуйста, на этом примере отобрать в грид только людей с конкретными предпочтениями в еде. Предположим, еда id=3. smile

Пример на DateTimePicker.

procedure Form1_Button1_OnClick (Sender: string; Action: string);
var
    YY,MM,DD,YY2,MM2,DD2: integer;

begin
    DecodeDate(Form1.DateTimePicker1.Date, YY, MM, DD);
    DecodeDate(Form1.DateTimePicker2.Date, YY2, MM2, DD2);

    Form1.Label1.Caption := IntToStr(DD2-DD);
end;

Присваивается как надо. Вы выборку делаете не там. Да простит меня админ, влажу тут... ))

Если планируется в главной форме видеть список клиентов, а при редактировании клиента видеть услуги - то должно быть так: https://yadi.sk/d/yuEp_nRZ3NTiw8

Таблицы-то связаны, но обратите внимание на свойство кнопки сохранить. Вы там выбираете конкретную таблицу для записи, ОДНУ таблицу, а не несколько.

Не понятно, с какой целью созданы таблицы "фото" и "файл"? В таблице Клиенты создать эти поля не достаточно?

В общем, трудно что-то подсказать. Вам необходимо пересмотреть структуру БД исходя из потребностей.