1

(237 replies, posted in Russian)

DriveSoft, вопрос по DBFile - хотелось бы иметь возможность указывать несколько файлов, с возможностью их последующего отдельного просмотра. Это важно, например, когда поле содержит файлы проекта. Их может быть достаточно много, а архив не совсем удобный формат для работы.

с уважением,

savage

2

(41 replies, posted in Russian)

DriveSoft, версия 1.46 последняя бета тоже имеет триальный характер?

С уважением,
Savage

в этом примере не понятно какой должен быть скрипт в случае "not checked".  Имхо, конечно же

DriveSoft, все работает.

PS  Я не учел, что действия открытия/сохранения файла в базу  и открытия файла/сохранения из базы разнесены по разным кнопкам (левая и правая). Все у Вас продуманно. :-)

с уважением,

savage

DriveSoft, извиняюсь за настырность, но из

При значении свойства True, будет установлена галочка в компоненте.

пример:
Form1.DateTimePicker1.Checked := True; либо Form1.DateTimePicker1.Checked := False;

if Form1.DateTimePicker1.Checked then ShowMessage('Компонент задействован');

не очень явно вытекает, что Checked еще и служит для проверки состояния, например:

 If Form1.DateTimePicker1.Checked = False/True then 
               begin 
                *************************
              end;
;

Я правильно понимаю?:

procedure Form1_DBFile1_OnLeftButtonClick (Sender: string);
begin
     Form1.DBFile1.dbInitialDir := ExtractFileDir(Application.Exename)+'\Projects';
end;

Надо ли будет вводить проверку на пустое поле ввода (если файл уже выбран, открываться должен он, а не папка поумолчанию). Сейчас не рядом с ПК. А любопытство разбирает...
Не думаете разместить данный параметр в свойствах компоненты?

DriveSoft wrote:

savage

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

DriveSoft, можно поподробнее о синтаксисе?

с уважением,

savage

Код задания открытия папки в домашнем каталоге программы (спасибо за помощь DriveSoft):

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
   OpenDialog: TOpenDialog;
begin
    OpenDialog := TOpenDialog.Create(Form1);
    OpenDialog.InitialDir := ExtractFileDir(Application.Exename)+'\FilesCurs';

    if openDialog.Execute   then
       begin
       ShowMessage('File : '+openDialog.FileName)
       end else ShowMessage('Open file was cancelled');

     // Освобождение диалога
     openDialog.Free;
end;

DriveSoft, если не сложно:
1. посмотрите все ли гут. Вроде работает, но в коде не уверен
2. как это прикрутить к диалоговому окну открытия DBFile?

9

(237 replies, posted in Russian)

DriveSoft, именно это я и имел ввиду. Не смог найти в функциях, вот и обеспокоился..

спасибо за помощь

10

(237 replies, posted in Russian)

Я имел в виду указание относительного пути...
Т.е. Путь к папке с программой - относительно, а потом уже путь к своей папке внутри программной..

11

(237 replies, posted in Russian)

DriveSoft, сильно не хватает функционал по работе с OpenDialog и SaveDialog (например, "открытие" и "сохранение в"  заданной по умолчанию папки, находящейся в каталоге созданной программы)

Спасибо за оперативный ответ

День добрый,

У меня с одной и той же базой должны работать на разных ПК разные юзеры.
Раньше я был уверен, что внесение новых записей в одну таблицу происходит с обязательным присвоением уникального id вне зависимости от того сколько и когда с ней работает пользователей.
Почитав же топик http://myvisualdatabase.com/forum/viewtopic.php?id=583, теперь не уверен в этом.
DriveSoft, проясните, пож-та, вопрос необходимо ли вводить обязательную проверку на уникальность id, если есть вероятность, что 2 или больше пользователя одновременно работают с одной и той же таблицей?

DriveSoft, в справке:
- компонент: Кнопка -> Методы и Свойства немного непонятно для начинающего юзера, как пользоваться "dbGeneralTableId". Имхо, хорошо было бы привести пример скрипта, как у других

Form1.Button1.dbGeneralTableId - возвращает идентификатор (id) текущей записи. Если запись - новая, то по умолчанию возвращает -1 

- компонент  "Дата/Время" -> Методы и Свойства вообще нет упоминания про возможность " изменить либо прочитать состояние компонента"

Form1.DateTimePicker1.Checked := False/True;

15

(237 replies, posted in Russian)

DriveSoft, не планируете немного развить групповой захват компонентов с последующими действиями (перемещение, удаление, копирование)? Я имею в виду, например, двигать выделенные вместе через меню компонента  "свойства" -> left/top/width...

с уважением,

savage

понял.
Спасибо за пояснение.

DriveSoft,  выделил красным (обрезает поля с надписями, comboboxы с датами, летят поля грида). Это еще не самый "удачный" пример..

на всякий прикрепил архив с проектом

Всем привет.

Столкнулся с такой проблемой - на некоторых мониторах с нестандартной диагональю  некорректно отображаются надписи и поля окна программы. Наглядный пример - см. прикрепленные файлы "косяк" vs "нет косяка".
Как-нить это можно побороть?

с уважением,

savage

немного некорректно выразился:
мне необходимо, чтобы:
1. в 2 разных DBFile, по умолчанию, при загрузке пути до файлов диалоговое окно открывалось в разных папках. Не подскажите, каким образом это можно реализовать?
2. как указать относительный путь к папкам (привязка к папке проекта, сама папка проета может быть в любом месте диска/сети) ?

DriveSoft, потихоньку двигаюсь вперед и, соответственно, появляются вопросы:
1. как сделать, чтобы отчет показывал только записи из грида
2. как вывести в отчет период времени "с ... по..." (по которому идет отбор в гриде)
хотелось бы все это реализовать без использования sql - запросов (раз уж появился такой функционал)...
3. на настоящий момент отчет формируется с группировкой по юзерам (штатно) и задачам, но опять есть вопросы:
   а) например, задача 111 с подзадачами 1111_1 и 1111_2  -  как сделать, чтобы обе подзадачи группировались под 1 задачей, а не как на рисунке (см. 1)
  б) напрягают пробелы между задачами. я так понимаю, это пробелы из-за того, что у этих задач нет подзадач, а место зарезервировано...

с уважением,

savage

DriveSoft, спасибо большое, особенно за п.2. буду иметь в виду.
Немного не в тему вопрос - столкнулся с тем, что отчет выводит даже удаленные строки в базе. посмотрел в SqliteStudio - они, действительно остались (эти записи) в базе...как такое могло случиться?

PS Студию скачал намедни и здорово порадовался, т.к. Раньше приходилось выискивать косяки методом тыка..

DriveSoft, сделал аналогично. Все отрабатывает наура.
Единственное, я привязывался не к состоянию CheckBox , а получал значение поля blockT из таблицы Tasks (если 1 - блокируем, если 0 - разблокируем).
CheckBox я использовал для возможности вручную под admin разблокировать ту-иную запись + для информирования юзеров, что записи заблокированы злобным админом.

DriveSoft, может глянуть на этот код:

//// блокировка всех Задач и Подзадач если даты плановые определены и задачи/подзадачи имеют статус "Активна"
procedure Dicts_bBlock_OnClick (Sender: string; var Cancel: boolean);
begin

 SQLExecute ('UPDATE Tasks SET blockT = (CASE WHEN (start_PF IS NOT NULL) and (finishPL IS NOT NULL) then 1 else 0 end) WHERE (active_task = 1);');
 SQLExecute ('UPDATE SubTasks SET blockST = (CASE WHEN (start_pf IS NOT NULL) and (finish_plan IS NOT NULL) then  1 else 0 end) WHERE (active_st =1) ;');
 Dicts.bBlock.Enabled := False;
 ShowMessage('Записи заблокированы!');
 Dicts.bBlock.Enabled := True;
end;

Все ли здесь гут?

Вечер добрый, DriveSoft

дошли, наконец, руки до отчета и сразу столкнулся с такой проблемой:
1. не работает группировка по сотруднику - см. файл report.xls (вкладка "Как есть" vs "Как должно")
2. не могу сделать под каждой задачей (таблица Tasks) вывод списка подзадач (таблица SubTasks). Подзадачи должны группироваться  под задачами и иметь такие же поля как у задач + еще и поле "сотрудник". Как только пытаюсь начинать добавлять в форме отчета поля из SubTasks - при нажатии на кнопку "Отчет" программа сразу ругается - см. файл "косяк.png"

Посмотрите, пож-та, где я косячу

PS пароль  - admin

Вечер добрый.
Есть такой вопрос: у меня есть необходимость загружать файлы из 2 разных папок:   1 вариант - через скрипт открывается диалоговое окно и я указываю путь к файлу; 2 вариант - через поле DBFile ->LinkFile.
Проблема в том, что программа по умолчанию запоминает последний путь при отрывании папки и файла.
Как сделать так, чтобы в каждом из вариантов сохранялся свой путь к конкретной папке?

с уважением,

savage