Можно, для этого необходимо деактивировать пункт меню в TableGrid, который отвечает за это. Сделать это можно так
procedure Form1_OnShow (Sender: string; Action: string);
begin
Form1.TableGrid1.dbPopupMenu.Items[0].Enabled := False;
end;
My Visual Database → Posts by DriveSoft
Можно, для этого необходимо деактивировать пункт меню в TableGrid, который отвечает за это. Сделать это можно так
procedure Form1_OnShow (Sender: string; Action: string);
begin
Form1.TableGrid1.dbPopupMenu.Items[0].Enabled := False;
end;
Astra30
Использование подотчетов возможно только с использованием скрипта, который есть в примере, который я вам дал выше.
Чтобы вывести имя файла, необходимо в этой же таблице БД создать вычисляемое поле. Например если поле с типом ФАЙЛ имеет имя "userfile", тогда создайте вычисляемое поле с именем (имя можно любое)
calc_userfilename
в самом вычисляемом поле напишите
userfile_filename
теперь можете вывести данное выч. поле в грид.
Raspr
Можно и так, только у вас нет проверки при редактировании записи, если вдруг кто то сменит телефон, который уже есть в базе.
mikhail_a
1. Можно проверять имя файла (Msg.MessageParts.Items[k]).Filename) на недопустимые символы и заменить их на допустимые функцией ReplaceStr
2. Можете узнать тип сообщения так
TIdText(Msg.MessageParts.Items[k]).ContentType
если нужен текстовый формат, то переменная будет иметь значение
text/plain
или
text/plain; format=flowed
3. Для этого есть функция escape_special_characters()
4. http://www.e-iter.net/Knowledge/Indy9/007617.html
http://www.e-iter.net/Knowledge/Indy9/007544.html
Рисовать можно на компоненте Image, пример
procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
Form1.Image1.Canvas.Brush.Style := bsClear;
Form1.Image1.Canvas.Font.Orientation := 2700;
Form1.Image1.Canvas.MoveTo(50, 50);
Form1.Image1.Canvas.LineTo(100, 100);
Form1.Image1.Canvas.TextOut(150, 150, 'X=###');
Form1.Image1.Canvas.Ellipse(30, 30, 45, 45);
end;
Скачайте пожалуйста последнюю бета версию 3.5
https://www.dropbox.com/s/f3j4kfpnttm1o … b.zip?dl=0
Пример
procedure FillGridFiles(Grid: TdbStringGridEx; path: string);
var
sl: TStringList;
i,c: integer;
NxTextColumn: TNxTextColumn;
begin
sl := TStringList.Create;
sl.Text := GetFilesList(path);
Grid.Columns.Clear;
try
Grid.Columns.Add(TNxTextColumn);
except
end;
Grid.Columns[0].Color := clWhite;
c := sl.Count-1;
for i := 0 to c do
begin
Grid.AddRow;
Grid.Cells[0, Grid.RowCount-1] := sl[i];
end;
sl.Free;
end;
procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
FillGridFiles(Form1.TableGrid1, 'C:\Backup');
end;
К сожалению не сталкивался с таким, лучше конечно использовать ip или имя компьютера в сети, чтобы не допустить такого.
Если все же ресурс доступен в сети по имени или ip, думаю можно скриптом подставлять ip ресурса вместо буквы диска при выборе файла.
Ни кто не может подсказать, почему одни и те же строки выводятся в отчёте несколько раз?
Я в тупике...
Вот пример - https://yadi.sk/d/IEHxLESa3KhVYV
В вашем случае необходимо использовать подотчеты, как в данном примере
http://myvisualdatabase.com/forum/viewtopic.php?id=1665
Ругается на строке IdPOP3: TIdPOP3;
Пишет "Unknown type: 'TIdPOP3' at 7:18.
Очевидно библиотеки не хватает. Где ее взять и как подключить?
Забыл, скачайте пожалуйста последнюю бета версию
https://www.dropbox.com/s/f3j4kfpnttm1o … b.zip?dl=0
Да, лицензию я сегодня приобрел после того, как Вы пообещали в течение недели реализовать получение почты Кстати, просьба обратить внимание на необходимость корректно обрабатывать различные кодировки писем и случаи, когда письмо в HTML формате.
Получение почты (POP3) (начиная с версии 3.5)
Пример:
procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
i, MsgCount: integer;
k, AttachCount: integer;
IdPOP3: TIdPOP3;
Msg: TIdMessage;
begin
IdPOP3 := TIdPOP3.Create(Form1);
IdPOP3.Host := '';
IdPOP3.Port := 110;
IdPOP3.Username := '';
IdPOP3.Password := '';
IdPOP3.Connect;
if IdPOP3.Connected then
begin
Msg := TIdMessage.Create(Form1);
MsgCount:=IdPOP3.CheckMessages;
// emails
for i:=1 to MsgCount do
begin
Msg.Clear;
IdPOP3.Retrieve(i, Msg);
//IdPOP3.RetrieveHeader(i, Msg);
//IdPOP3.Delete(i)
Form1.Memo1.Lines.Add(IntToStr(i)+'--- Size: ' + IntToStr(IdPOP3.RetrieveMsgSize(i)));
Form1.Memo1.Lines.Add('Subject: ' +Msg.Subject);
Form1.Memo1.Lines.Add('===============');
Form1.Memo1.Lines.Add('ContentType: '+Msg.ContentType);
Form1.Memo1.Lines.Add('Date: '+DateToStr(Msg.Date));
Form1.Memo1.Lines.Add('From: '+Msg.From.Address);
Form1.Memo1.Lines.Add('Body:');
Form1.Memo1.Lines.Add(Msg.Body.Text);
// Attachments
AttachCount := Msg.MessageParts.Count-1;
for k := 0 to AttachCount do
begin
if (Msg.MessageParts.Items[k] is TIdAttachment) then // Save file
begin
if FileExists(TIdAttachment(Msg.MessageParts.Items[k]).Filename) then
DeleteFile(TIdAttachment(Msg.MessageParts.Items[k]).Filename);
// Save attachment to the current folder
Form1.Memo1.Lines.Add(' -- File: '+TIdAttachment(Msg.MessageParts.Items[k]).Filename);
TIdAttachment(Msg.MessageParts.Items[k]).SaveToFile(TIdAttachment(Msg.MessageParts.Items[k]).Filename);
end else
if (Msg.MessageParts.Items[k] is TIdText) then // Text attachment
begin
Form1.Memo1.Lines.Add(' -- Begin attachment '+IntToStr(k));
Form1.Memo1.Lines.Add(' '+ TIdText(Msg.MessageParts.Items[k]).Body.Text );
Form1.Memo1.Lines.Add(' -- End attachment '+IntToStr(k));
end;
end;
Form1.Memo1.Lines.Add('===============');
end;
Msg.Free;
IdPOP3.Disconnect;
end;
IdPOP3.Free;
end;
Проект с примером: http://myvisualdatabase.com/forum/misc. … download=1
Read email messages (POP3) (version 3.5 and above)
Example:
procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
i, MsgCount: integer;
k, AttachCount: integer;
IdPOP3: TIdPOP3;
Msg: TIdMessage;
begin
IdPOP3 := TIdPOP3.Create(Form1);
IdPOP3.Host := '';
IdPOP3.Port := 110;
IdPOP3.Username := '';
IdPOP3.Password := '';
IdPOP3.Connect;
if IdPOP3.Connected then
begin
Msg := TIdMessage.Create(Form1);
MsgCount:=IdPOP3.CheckMessages;
// emails
for i:=1 to MsgCount do
begin
Msg.Clear;
IdPOP3.Retrieve(i, Msg);
//IdPOP3.RetrieveHeader(i, Msg);
//IdPOP3.Delete(i)
Form1.Memo1.Lines.Add(IntToStr(i)+'--- Size: ' + IntToStr(IdPOP3.RetrieveMsgSize(i)));
Form1.Memo1.Lines.Add('Subject: ' +Msg.Subject);
Form1.Memo1.Lines.Add('===============');
Form1.Memo1.Lines.Add('ContentType: '+Msg.ContentType);
Form1.Memo1.Lines.Add('Date: '+DateToStr(Msg.Date));
Form1.Memo1.Lines.Add('From: '+Msg.From.Address);
Form1.Memo1.Lines.Add('Body:');
Form1.Memo1.Lines.Add(Msg.Body.Text);
// Attachments
AttachCount := Msg.MessageParts.Count-1;
for k := 0 to AttachCount do
begin
if (Msg.MessageParts.Items[k] is TIdAttachment) then // Save file
begin
if FileExists(TIdAttachment(Msg.MessageParts.Items[k]).Filename) then
DeleteFile(TIdAttachment(Msg.MessageParts.Items[k]).Filename);
// Save attachment to the current folder
Form1.Memo1.Lines.Add(' -- File: '+TIdAttachment(Msg.MessageParts.Items[k]).Filename);
TIdAttachment(Msg.MessageParts.Items[k]).SaveToFile(TIdAttachment(Msg.MessageParts.Items[k]).Filename);
end else
if (Msg.MessageParts.Items[k] is TIdText) then // Text attachment
begin
Form1.Memo1.Lines.Add(' -- Begin attachment '+IntToStr(k));
Form1.Memo1.Lines.Add(' '+ TIdText(Msg.MessageParts.Items[k]).Body.Text );
Form1.Memo1.Lines.Add(' -- End attachment '+IntToStr(k));
end;
end;
Form1.Memo1.Lines.Add('===============');
end;
Msg.Free;
IdPOP3.Disconnect;
end;
IdPOP3.Free;
end;
Project example:
График довольно специфичный, думаю его можно реализовать только рисуя непосредственно скриптом.
Thank you AD1408. Appreciated!
But again the messagebox intended to SAVE is still displaying when you press the print Button. For me this is a bug.. can we solve this problem?
So conceived. The report system gets data from database, thus before report system will get data from database, a current data on form must be saved to database by automatically pressed save button.
I have added a script to prevent showing MessageBox when you click report button.
Check out this topic
http://myvisualdatabase.com/forum/viewtopic.php?id=2277
Здравствуйте.
В отчете вы можете вставлять графики, не могли бы вы привести пример необходимого графика? т.к. у вас три координаты, он должен быть трехмерным?
Скачайте пожалуйста последнюю бета версию программы
https://www.dropbox.com/s/f3j4kfpnttm1o … b.zip?dl=0
Данным скриптом можно заблокировать прокрутку значений в ComboBox-ах
procedure Form1_OnShow (Sender: string; Action: string);
begin
Form1.OnMouseWheel := @OnMVDMouseWheel;
end;
procedure OnMVDMouseWheel(Sender: TObject; isShift, isAlt, isCtrl: boolean; WheelDelta: Integer; X, Y: Integer; var Handled: Boolean);
begin
if Form1.ActiveControl is TdbComboBox then Handled := True;
end;
zenja
Для того чтобы создать web интерфейс для доступа к БД, вы должны использовать MySQL для вашего проекта.
Далее на вкладке "Таблицы базы данных" нажимаете кнопку "WebGrid", где вводите данные для доступа к базе данных и нажимаете кнопку "Создать Web таблицу", ее настройка аналогична настройке кнопки с действием "Поиск". Также вы можете создать несколько web таблиц, которые можно будет переключать в браузере через вкладки.
После настройки нажимаете кнопку "Сохранить..." и программа генерирует для вас папку с набором скриптов, которые вам остается загрузить на сервер, открываете файл index.html в браузере и готово.
Здесь можете найти пример как подключаться к MySQL с помощью скрипта
http://myvisualdatabase.com/forum/viewtopic.php?id=1804
Таким образом вы можете реализовать свой диалог подключения к серверу.
AD1408
Please download latest beta version
https://www.dropbox.com/s/f3j4kfpnttm1o … b.zip?dl=0
Now you can set bookmarks using hot key: Ctrl+Shift+[n], where n = 1...9
Go to bookmark press Ctrl+[n]
Здравствуйте.
Пример
procedure Form1_CheckBox1_OnClick (Sender: string);
begin
if Form1.CheckBox1.Checked then
begin
Form1.ComboBox1.dbFilter := '(id<>1) and (id<>3)';
Form1.ComboBox1.dbUpdate;
end else
begin
Form1.ComboBox1.dbFilter := '';
Form1.ComboBox1.dbUpdate;
end;
end;
Настроил кнопку отчет, в данном случае необходимо было создать пару вычисляемых полей, т.к. кнопка Отчет не всегда позволяет автоматически правильно связать три последовательные таблицы.
При редактировании открывается две формы редактирования, т.к. на форме присутствуют две кнопки с действием "Показать запись", небольшим скриптом изменил это.
тут можно как то OpenURL('http://mysite/download.html'); при нажатие на кнопку сахарить можно было и суда выбрать а то когда нажимаешь
на кнопу сразу открывается файл ?
К сожалению не понял вопроса, перефразируйте пожалуйста.
Будет проще просто задействовать редактирование и добавление данных непосредственно в гриде. Для этого установите свойства грида
Editable > AllowCreate = True
Editable > AllowEdit = True
My Visual Database → Posts by DriveSoft
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi