Topic: Открытие файла через TableGrid

добрый день!
1) подскажите к записи привязан файл с помощью компонента DBFile, возможно ли нажав 2 кликом в TableGrid по записи сразу открывался файл без нажатия на компонент DBFile -> открыть файл?
2)Возможно ли использую свойство multiselect компонента ComboBox сразу нескольким записям привязать файл DBFile?

Re: Открытие файла через TableGrid

Здравствуйте.


1.  Сделал для вас проект с примером.


2. Думаю можно, файлы должны хранится в отдельной таблице БД. Сделайте небольшой тестовый проект, чтобы было ясно, как это должно выглядеть, постараюсь помочь.

Post's attachments

Attachment icon LinkFile open file by script from TableGrid.zip 9.22 kb, 634 downloads since 2017-08-30 

Dmitry.

Re: Открытие файла через TableGrid

1. Спасибо!!!
2. Набросал проект если получится с multiselect будет оч неплохо. планируется для канцелярии наподобии документооборота в дальнейшем с напоминаниями, отчетами и т. д.

Post's attachments

Attachment icon Док.rar 296.52 kb, 547 downloads since 2017-08-31 

Re: Открытие файла через TableGrid

pt.82 wrote:

1. Спасибо!!!
2. Набросал проект если получится с multiselect будет оч неплохо. планируется для канцелярии наподобии документооборота в дальнейшем с напоминаниями, отчетами и т. д.

Не забудьте потом проектом поделиться ))

5 (edited by pt.82 2017-09-06 06:25:12)

Re: Открытие файла через TableGrid

Добрый день! не стал плодить темы, подскажите что не так

procedure Form1_GridEmployees_OnChange (Sender: string);
var
    i,c: integer;
begin
 c := Form1.GridEmployees.RowCount - 1;
    for i := 0 to c do
    begin
       if Form1.GridEmployees.Cells[4,i] <> 'Выполнено' and StrToDateTime(Form1.GridEmployees.Cells[3,i]) < Now()  then Form1.GridEmployees.Cell[3,i].Color := clRed;
    end;
end;

по отдельности каждое условие работает, как только связываю and  ошибка "Incompatible types"

Re: Открытие файла через TableGrid

попробуйте так

if (Form1.GridEmployees.Cells[4,i] <> 'Выполнено') and (StrToDateTime(Form1.GridEmployees.Cells[3,i]) < Now)  then Form1.GridEmployees.Cell[3,i].Color := clRed;
Dmitry.

Re: Открытие файла через TableGrid

Спасибо! вроде заработало, так делал но с Now(), без () не додумался, потестирую. еще раз спасибо!

Re: Открытие файла через TableGrid

можно еще вопрос скрипт запускается но при выводе значений в гриде ошибка "" is not valid date and time

if ((Form1.GridEmployees.Cells[4,i] <> 'Выполнено') and ((StrToDateTime(Form1.GridEmployees.Cells[3,i]) <= Now) or (Form1.GridEmployees.Cells[3,i] = '' )))  then Form1.GridEmployees.Cell[3,i].Color := clRed;

опять же если использовать в or условия по отдельности то срабатывает
задача в чем состоит: если невыполнено и дата исполнения меньше сегодняшней или пусто то красным.
по отдельности раскрашивает

Re: Открытие файла через TableGrid

попробуйте так

if ((ValidDate(Form1.GridEmployees.Cells[3,i]) and (Form1.GridEmployees.Cells[4,i] <> 'Выполнено') and ((StrToDateTime(Form1.GridEmployees.Cells[3,i]) <= Now) or (Form1.GridEmployees.Cells[3,i] = '' )))  then Form1.GridEmployees.Cell[3,i].Color := clRed;
Dmitry.

10 (edited by pt.82 2017-10-09 09:32:07)

Re: Открытие файла через TableGrid

Добрый день! подскажите не появилось время реализовать
1)Возможно ли использую свойство multiselect компонента ComboBox сразу нескольким записям сохранить данные в компонентах, которые в данный момент находятся на форме в том числе и связи
2)есть ли проект, в котором выбрав запись в гриде сделать ее копию в том числе и связи и при этом открылась открылась форма новой запись с заполненными данными выделенной записи в грид.
ps
проект приложил он черновой много лишнего повыкидывал. для чего надо пришел документ в нем например 5 приложений. 1) создаем документ присоединяем файлы,  2) созданный документ надо раздать определенным пользователям и вот тут проблемка, можно конечно создать опять документ привязать файлы и прявязать пользователя (исполнителя), а хотелось бы создать документ один раз, затем его через комбобок используя multiselect привязать сразу многим пользователям, или создать документ затем при помощи кнопки копия создать такой же и в копиях менять только пользователей.
Спасибо!

Post's attachments

Attachment icon тест3.rar 954.63 kb, 490 downloads since 2017-10-09 

Re: Открытие файла через TableGrid

pt.82
Приветствую.


1. К сожалению не могу понять вопроса.


2. В данном вопросе есть противоречие. Создание копии записи, подразумевает собственно ее создание, тогда форма будет открыта уже не для создания новой записи, а редактирования.


Можете сделать так, на форме редактирования записи разместите кнопку, которая будет сохранять открытую запись как новую, для данной кнопки создайте событие OnClick

procedure Form2_Button2_OnClick (Sender: string; var Cancel: boolean);
begin
    Form2.Button2.dbGeneralTableId:=-1;
    Form2.Button2.Click;
end;
Dmitry.

12 (edited by ZBear 2017-11-17 09:07:24)

Re: Открытие файла через TableGrid

Напишу здесь же.
Пробовал как в примере:

procedure dogovor_TableGrid1_OnCellDoubleClick (Sender: string; ACol, ARow: Integer);
var
    FileName: string;
begin
    FileName := SQLExecute('SELECT scan_filename FROM scandog WHERE id='+dogovor.TableGrid1.sqlValue);
    FileName := ExtractFileDir(Application.ExeName)+FileName;
    if FileExists(FileName) then OpenFile(FileName);
end;

ни какой реакции. В чем может быть проблема?

Да, запрет на открытие формы по двойному клику естественно прописал тоже.

Re: Открытие файла через TableGrid

ZBear
попробуйте с помощью ShowMessage посмотреть, что содержит переменная FileName

    FileName := ExtractFileDir(Application.ExeName)+FileName;
    ShowMessage(FileName);
    if FileExists(FileName) then OpenFile(FileName);
Dmitry.

Re: Открытие файла через TableGrid

Уже проверил - содержит полный путь откуда файл был сохранен в базу

Re: Открытие файла через TableGrid

В принципе работает такой скрипт:

procedure dogovor_TableGrid1_OnCellDoubleClick (Sender: string; ACol, ARow: Integer);
var
   s: string;
begin

     s := SaveFileFromDataBase('scandog', 'scan', dogovor.TableGrid1.dbItemID);
     OpenFile(s);
end;

но, выскакивает надоедливый запрос

Post's attachments

Attachment icon Безымянный.jpg 16.48 kb, 281 downloads since 2017-11-17 

Re: Открытие файла через TableGrid

Скачайте пожалуйста снова последнюю версию программы, поправил, больше не будет сообщения с запросом
http://myvisualdatabase.com/download/myvisualdb.exe

Dmitry.

Re: Открытие файла через TableGrid

Так и осталось

Re: Открытие файла через TableGrid

версия 4.02?


приложите пожалуйста проект, проверю

Dmitry.

Re: Открытие файла через TableGrid

В понедельник

Re: Открытие файла через TableGrid

Проверил, ошибки нет.
Попробуйте снова скачать последнюю версию, затем посмотрите окно О Программе, должна быть версия 4.04
http://myvisualdatabase.com/download/myvisualdb.exe

Dmitry.

Re: Открытие файла через TableGrid

Спасибо, по предыдущей ссылке скачивалась 4.02

Re: Открытие файла через TableGrid

Добрый день.
А как реализовать все тоже самое только чтоб открывался не файл а папка?
соответственно в свойствах DBFile стоит LinkFolder

Re: Открытие файла через TableGrid

Всем спасибо, сам спросил и сам ответил!
адаптированная под мой проект версия но думаю поймёте...

procedure frmOne_TableWork_OnDoubleClick (Sender: string);
var
    FileName: string;
begin
    FileName := SQLExecute('SELECT folder_filename FROM Work WHERE id='+frmOne.TableWork.sqlValue);
    if OpenFile(FileName) then;
end;

Re: Открытие файла через TableGrid

builov.maikl wrote:

Всем спасибо, сам спросил и сам ответил!
адаптированная под мой проект версия но думаю поймёте...

procedure frmOne_TableWork_OnDoubleClick (Sender: string);
var
    FileName: string;
begin
    FileName := SQLExecute('SELECT folder_filename FROM Work WHERE id='+frmOne.TableWork.sqlValue);
    if OpenFile(FileName) then;
end;

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

Re: Открытие файла через TableGrid

DriveSoft wrote:

Здравствуйте.


1.  Сделал для вас проект с примером.


2. Думаю можно, файлы должны хранится в отдельной таблице БД. Сделайте небольшой тестовый проект, чтобы было ясно, как это должно выглядеть, постараюсь помочь.

Что почитать, чтобы понять, как таким образом открыть pdf документ на нужной странице?

http://b.link/besthost Надежный хостинг по выгодным ценам.