sdhale29 wrote:

Hello Dmitry,

Thanks for the quick response, however it still isn't working for me.  I have not made any changes to the example.  I just added a picture to John over and over again and it is still the same. I have attached a screenshot.

Thanks,
Sonny

Please check the script

procedure frmAbonent_bOK_OnAfterClick (Sender: string);
var
    dbFileName, sFileName, sNewFileName: string;
begin
    if frmAbonent.dbPhoto.dbImageIsChanged then
    begin
        sFileName := frmAbonent.dbPhoto.dbFileName;
        sFileName := ExtractFileDir(Application.ExeName)+sFileName;
        sNewFileName := ExtractFilePath(Application.ExeName) + frmAbonent.dbPhoto.dbCopyTo + '\'+ frmAbonent.EditCounter.Text + '_' + DateToStr(frmAbonent.dtDate.Date) + ExtractFileExt(sFileName);

        dbFileName := '"\'+frmAbonent.dbPhoto.dbCopyTo + '\'+ frmAbonent.EditCounter.Text + '_' + DateToStr(frmAbonent.dtDate.Date) + ExtractFileExt(sFileName)+'"';

        if FileExists(sNewFileName) then
        begin
            if IDYES = MessageBox('File exists.' + #13+ sNewFileName+#13+ 'Overwrite?', 'Warning', MB_YESNO+MB_ICONQUESTION) then
            begin
                DeleteFile(sNewFileName);
                if RenameFile(sFileName, sNewFileName) then SQLExecute('UPDATE person SET photo_filename = '+dbFileName + ' WHERE id='+IntToStr(frmAbonent.bOK.dbGeneralTableId));
            end;
        end else if RenameFile(sFileName, sNewFileName) then SQLExecute('UPDATE person SET photo_filename = '+dbFileName + ' WHERE id='+IntToStr(frmAbonent.bOK.dbGeneralTableId));
    end;
end;

Pay attention to this line

        end else if RenameFile(sFileName, sNewFileName) then SQLExecute('UPDATE person SET photo_filename = '+dbFileName + ' WHERE id='+IntToStr(frmAbonent.bOK.dbGeneralTableId));

152

(16 replies, posted in Script)

I checked, it works for me. Please attach your project (zip file without exe and dll), I'll test it.

sdhale29 wrote:

Hello,

I downloaded the example, and I cannot get it to work.  Even with no changes to the phonebook example.  It just keeps adding 1 to the photo names.  Like
image.jpg,  image(1).jpg, image(2).jpg and so on. 
It doesn't rename them from the original name, or give a warning that the file exists.  I would just like to delete the existing file from the folder (or overwrite) when I select a new one.  Any help would be appreciated.  I love MVD!!!!!!

Thanks,
Sonny
MVD 6.2

Correction MVD 6.3!!!!!!

Hello.


Thank you for the bug report, fixed, please download the example again
http://myvisualdatabase.com/forum/misc. … download=1

154

(22 replies, posted in General)

Please describe your question in more details.

155

(1 replies, posted in General)

Hello.


More info http://docs.embarcadero.com/products/ra … aleBy.html

156

(6 replies, posted in Russian)

Если я правильно понял, вам необходимо сгенерировать XML документ, в котором присутствуе раздел с материалами, которые принадлежат выбранному вендору.


Для этого вам необходимо выполнять SQL запро с помощью функции SQLQuery.


добавьте в данную процедуру переменную Results

procedure form1_TableGrid1_OnCellClick (Sender: TObject; ACol, ARow: Integer);
var
    Results: TDataSet;
begin
...

затем вместо этого участка,

            for rows :=1 to i do
            begin
                Form1.XML.Lines.Add('          <product>');
                Form1.XML.Lines.Add('            <ndsAmount>0</ndsAmount>');
                Form1.XML.Lines.Add('            <priceWithTax>'+ IntToStr(m) +'</priceWithTax>');
                m:=m+1;

            end;

сделайте так

    SQLQuery('SELECT g17 FROM material WHERE id_vendor='+form1.tablegrid1.sqlValue, Results);

    while not Results.Eof do
    begin
        Form1.XML.Lines.Add('          <product>');
        Form1.XML.Lines.Add('            <ndsAmount>0</ndsAmount>');
        Form1.XML.Lines.Add('            <priceWithTax>'+ Results.FieldByName('g17').asString +'</priceWithTax>');
        Form1.XML.Lines.Add('          </product>');
        Results.Next;
    end;

    Form1.XML.Lines.Add('        </products>');

157

(6 replies, posted in General)

prahousefamily wrote:

function ExportToCSV
how to set
- text Qualifier ?
- Separator by tab ?
- Format value date,datetime or float,integer ?

Separator you can specify by parameter of the function "Separator"
According rfc4180 text Qualifier is double quotes, you can't change it.

for date and datetime used default format for SQLite and MySQL (YYYY-MM-DD HH:MM:SS)
for float values, used a symbol dot as decimal separator.

function ExportToCSV(FileName: string; SQL: string; ShowProgress: boolean = False; FirstRowFieldsName: boolean = True; Separator: string = ','; Enclosing: boolean = True; EndOfLine: TCsvEndOfLine = ceCrLf): integer
stas.kodpi wrote:

вот такую фигню выдает при выборе даты,
хотя вроде все верно

Измените свойсва компонентов DateTimePicker на
TableName = bd
FieldName=install_kart_in

159

(6 replies, posted in Russian)

В приложенной вами проекте нет файла forms.xml, поэтому его никак не открыть.

В настройках кнопки "Очистить таблицу" просто оставьте пустой опцию "Выберите компонент таблицы..."
Данный SQL запрос не возвращает какой либо результат, поэтому данную опцию в данном случане не нужно использовать.

На форме jan, в компонентах DateTimePicker1 и DateTimePicker2 видимо неправильно указаны свойства TableName и FieldName


там должно быть
TableName = bd
FieldName=install_kart_in


Также для DateTimePicker1 необходимо установить свойство Filter = ">="
Для DateTimePicker2 необходимо установить свойство Filter = "<="



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

162

(22 replies, posted in General)

Hello.


You just forget to specify TableName and FieldName properties for DateTimePicker1 and DateTimePicker2 component.

TableName = Product
FieldName = Expiry

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


В принципе вы все делаете правильно, приложите пожалуйста ваш проект, проверю.


Также для поиска по конкретному месецу, можете использовать один компонент DateTimePicker установив его свойство Kind = MonthYear

164

(6 replies, posted in General)

Version 6.3
http://myvisualdatabase.com/download/myvisualdb.exe


What's new?

• Added a new function ExportAllToCSV, now you can export whole the database to csv files


   Function parameters

function ExportAllToCSV(Path: string; OverwriteIfExists: boolean = True; ShowProgress: boolean = False; FirstRowFieldsName: boolean = True; Separator: string = '',''; Enclosing: boolean = True; EndOfLine: TCsvEndOfLine = ceCrLf): boolean;

   example

if ExportAllToCSV('e:\temp\') then ShowMessage('Done') else ShowMessage('Error');


• Added a new function ExportToCSV, now you can export SQL result to csv file

   Function parameters

function ExportToCSV(FileName: string; SQL: string; ShowProgress: boolean = False; FirstRowFieldsName: boolean = True; Separator: string = ','; Enclosing: boolean = True; EndOfLine: TCsvEndOfLine = ceCrLf): integer

   example

procedure Form1_Button5_OnClick (Sender: TObject; var Cancel: boolean);
var
    i: integer;
begin
    i := ExportToCSV('d:\123.csv', 'SELECT id, lastname, firstname FROM employees');
    ShowMessage('Exported ' + IntToStr(i) + ' records.');
end;


• Added a new class Application.User, to access current user properties

   the following properties are available

Application.User.id;
Application.User.Username;
Application.User.Email; 
Application.User.First_name; 
Application.User.Last_name; 
Application.User.Role; 
Application.User.RoleId; 
Application.User.is_admin; 
Application.User.is_active;
Application.User.is_logged; 
Application.User.Last_login; 
Application.User.Date_joined;

• Now you can specify for a ComboBox component sorting order, using properties "SoftField" and "SortOrder" via Object Inspector.
• Added two new methods for Image component: function PasteBitmapFromClipboard: boolean and function CanPasteBitmapFromClipboard: boolean
• Added a new event OnAfterEdit for TableGrid component
• Added a new method ScaleBy for Form
• Fixed some bugs

Нет такой возможности и скорей всего это не самый лучший способ.
Опишите пожалуйста подробней, что именно вы пытаетесь реализовать?

166

(0 replies, posted in Russian)

Версия 6.3
http://myvisualdatabase.com/download/myvisualdb.exe


Что нового?
• Добавлена возможность экспортировать базу данных целиком в CSV файлы, из диалога: Инструменты > Экспорт данных



• Добавлена функция ExportAllToCSV, позволяющая экспортировать БД целиком в CSV файлы


   описание параметров функции

function ExportAllToCSV(Path: string; OverwriteIfExists: boolean = True; ShowProgress: boolean = False; FirstRowFieldsName: boolean = True; Separator: string = '',''; Enclosing: boolean = True; EndOfLine: TCsvEndOfLine = ceCrLf): boolean;

   пример использования

if ExportAllToCSV('e:\temp\') then ShowMessage('Готово') else ShowMessage('Ошибка');


• Добавлена функция ExportToCSV, позволяющая экспортировать результат произвольного SQL запроса в CSV файл


   описание параметров функции

function ExportToCSV(FileName: string; SQL: string; ShowProgress: boolean = False; FirstRowFieldsName: boolean = True; Separator: string = ','; Enclosing: boolean = True; EndOfLine: TCsvEndOfLine = ceCrLf): integer

   пример использования

procedure Form1_Button5_OnClick (Sender: TObject; var Cancel: boolean);
var
    i: integer;
begin
    i := ExportToCSV('d:\123.csv', 'SELECT id, lastname, firstname FROM employees');
    ShowMessage('Экспортировано ' + IntToStr(i) + ' записей.');
end;


• Добавлен класс Application.User, чтобы иметь доступ к свойствам текущего пользователя


   доступны следующие свойства

Application.User.id; // идентификатор пользователя
Application.User.Username; // имя пользователя
Application.User.Email; // e-mail пользователя
Application.User.First_name; // имя пользователя
Application.User.Last_name; // фамилия пользователя
Application.User.Role; // имя роли у пользователя
Application.User.RoleId; // идентификатор роли пользователя
Application.User.is_admin; // является ли пользователь администратором
Application.User.is_active; // является ли пользователь активным
Application.User.is_logged; // был ли авторизован пользователь
Application.User.Last_login; // дата и время последнего входа пользователя
Application.User.Date_joined; // дата и время создания пользователя


• Для компонента ComboBox добавлены свойства "SoftField" и "SortOrder", позволяющие указать поле и тип сортировки
• Для компонента Image добавлен метод PasteBitmapFromClipboard и свойство CanPasteBitmapFromClipboard позволяющие вставить в компонент рисунок из буфера обмена
• Для компонента TableGrid добавлено событие OnAfterEdit
• Для формы добавлен метод ScaleBy
• Исправлено несколько ошибок

К сожалению не понял, о какой именно галки идет речь.

procedure Form1_ComboBox1_OnKeyPress (Sender: TObject; var Key: Char);
begin
    if not (key in['0'..'9']) then key:=#0;
end;

169

(1 replies, posted in General)

Please attach your project and describe the problem in more details.

170

(4 replies, posted in Database applications)

Unfortunately I don't know nothing about this problem.

171

(10 replies, posted in General)

You should use event OnResize of the TableGrid component, not form.


instead

procedure frmReview_OnResize (Sender: TObject; Action: string);

you should use

procedure frmReview_TableGrid1_OnResize (Sender: TObject);

172

(4 replies, posted in Database applications)

What the message you have got?

173

(13 replies, posted in General)

Check it out

174

(10 replies, posted in General)

Example for three columns: 50+30+20=100%

procedure Form1_TableGrid1_OnResize (Sender: TObject);
begin
    Form1.TableGrid1.Columns[0].Width := Trunc(Form1.TableGrid1.ClientWidth * (50 / 100)); // 50%
    Form1.TableGrid1.Columns[1].Width := Trunc(Form1.TableGrid1.ClientWidth * (30 / 100)); // 30%
    Form1.TableGrid1.Columns[2].Width := Trunc(Form1.TableGrid1.ClientWidth * (20 / 100)); // 20%
end;

175

(10 replies, posted in General)

Hello.


You can do it using this simple script

procedure Form1_TableGrid1_OnResize (Sender: TObject);
var
    i, c: integer;
begin
    c := Form1.TableGrid1.Columns.Count-1;
    for i := 0 to c do
    begin
        Form1.TableGrid1.Columns[i].Width := Form1.TableGrid1.ClientWidth div Form1.TableGrid1.Columns.Count;
    end;
end;