Hello.
Yes you can set the padding to cells, example:
procedure Form1_GridEmployees_OnChange (Sender: string);
var
i, c: integer;
begin
Form1.GridEmployees.Columns[0].Padding := 10;
Form1.GridEmployees.Columns[1].Padding := 20;
.......
My Visual Database → Posts by DriveSoft
Hello.
Yes you can set the padding to cells, example:
procedure Form1_GridEmployees_OnChange (Sender: string);
var
i, c: integer;
begin
Form1.GridEmployees.Columns[0].Padding := 10;
Form1.GridEmployees.Columns[1].Padding := 20;
.......
К сожалению я не могу найти ошибку лишь по одной строчке кода.
Отправил Вам по электронной почте
Попробуйте данный SQL запрос
SELECT
"$autoinc",
strftime('%d.%m.%Y',"Account".register),
F1.statusaccount,
"Account".Email,
F2.location,
F4.Country,
"Account".balance,
f5.editaction,
"Account".id
FROM "Account"
LEFT OUTER JOIN statusaccount F1 ON F1.id="Account".id_statusaccount
LEFT OUTER JOIN location F2 ON F2.id="Account".id_location
LEFT OUTER JOIN country F4 ON F4.id="Account".id_country
LEFT OUTER JOIN editaction f5 ON f5.id="Account".id_Editaction
WHERE
(CASE WHEN {Basesearchstatusaccount}=-1 THEN 1=1 ELSE {Basesearchstatusaccount}="Account".id_statusaccount END)
AND
(CASE WHEN {Basesearchlocation}=-1 THEN 1=1 ELSE {Basesearchlocation}="Account".id_location END)
AND
(CASE WHEN {Combo_country}=-1 THEN 1=1 ELSE {Combo_country}="Account".id_country END)
AND
(CASE WHEN {DateTimePicker3} IS NOT NULL THEN date(f5.editaction) = date({DateTimePicker3}) ELSE 1=1 END)
Но в принципе я не вижу смысла в данном случае использовать SQL запрос. Используйте кнопку с действием "Поиск", в ее настройках просто укажите компоненты, с помощью которых вы бы хотели фильтровать записи и выберите необходимые поля из таблиц, которые бы вы хотели видеть в результате поиска.
You can't just paste a bitmap from clipboard, because database also should store file name of this bitmap.
Можно. Создайте вычисляемое поле вида
(CASE WHEN Поле3=100 THEN 0 ELSE 1 END)
Также на форме разместите CheckBox с заголовком "Скрывать/Показать 100%" и присвойте данному компоненту созданное выч. поля с помощью свойств TableName и FieldName, не забудьте добавить данный компонент в настройку кнопки Поиск.
Также включите у данного CheckBox свойство AllowGrayed=True, чтобы была возможность игнорировать компонент при поиске.
Unfortunately I can't understand your database structure.
Проще всего скрыть записи можно с помощью скрипта, пример
procedure frmmainmenu_tgeqiup_OnChange (Sender: string);
var
i,c: integer;
begin
c := frmmainmenu.tgeqiup.RowCount-1;
if frmmainmenu.tgeqiup.Columns.Count > 3 then
for i:= c downto 0 do
if frmmainmenu.tgeqiup.Cells[3,i]='0' then frmmainmenu.tgeqiup.DeleteRow(i);
end;
kovalenko
Что именно не получается? В вашей базе запись "Расход" в словаре skladOperation имеет id=4, просто добавьте данное поле в грид, чтобы видеть его значение.
Hello.
1.
In the report you can change display format of text object, right mouse click and select "Display format", then select Category = Date/Time
In the excel you can change format of cell in the menu "Format Cells..."
Also you can format date using calculated field.
2. Unfortunately I can't find the way how to do it.
kovalenko
Достаточно знать только id записи, которая обозначает расход, т.к. только в этом случае необходимо умножать количество на -1, чтобы получилось отрицательное число при подсчете расхода.
avmakarov91
Пожалуйста, приложите ваш проект (zip файл без exe и dll), с указанием на какой форме используется данное вычисляемое поле.
nitin.ingale08
I think you have wrong database structure, or I can understand it. Please describe your goal, what exactly you want to do?
Попробуйте такой запрос
SELECT
parts.partName
,(
TOTAL( sklad.quanity * (CASE WHEN sklad.id_skladOperation = 4 THEN -1 ELSE 1 END) )
-
ifnull((SELECT
SUM(partsApp.quanty) as result
FROM partsApp
LEFT OUTER JOIN parts ON partsApp.id_parts=parts.id
WHERE partsApp.id_parts = sklad.id_parts),0)
)
FROM sklad
LEFT OUTER JOIN parts ON sklad.id_parts=parts.id
GROUP BY parts.partName;
обратите внимание на
id_skladOperation = 4
запись "Расход" в справочнике имеет id = 4
hutley
Приложите пожалуйста ваш проект (zip файл без exe и dll)
AD1408
Check it out
// global event for all exceptions related database
function OnSQLException(Sender: TObject; Msg: string; SQL: string): boolean;
begin
// exception from button Form1.Button6
if Sender = Form1.Button6 then
begin
if Pos('FOREIGN KEY constraint failed', Msg)=1 then
begin
result := True; // to prevent system message
MessageBox('Selected record contains...', 'Error', MB_OK+MB_ICONWARNING);
end;
end;
end;
Project:
Не могли бы еще раз проверить Ваш приложенный проект (Show last added records (highlight) MySQL.zip)
В целом это работает, но возникают случаи, когда пользователю всплывает оповещение при входе, что были добавлены записи, но по факту ему ничего не добавлялось.Точнее,в процедуре Form1.onShow, для вывода текстового оповещения я добавил строчку:
if slLastAddedID.Count>0 then ShowMessage('Добавлено '+IntToStr(slLastAddedID.Count)+' записи(ей)' );
возможно данное условие некорректно?
В моем приложенном проекте нет всплываюших оповещений.
Это условие составлено верно.
Пожалуйста приложите проект полностью, также опишите необходимые действия, приводящих к неправильной работе.
Instead
Form1.Edit1.Text
try to use
Form1.Edit1.sqlValue
Hello.
I made another example for you
Здравствуйте.
Вы не можете сохранить данные в вычисляемых полях, т.к. вычисляемое поле, это просто вычисление. Да и не принято сохранять данные, которые можно вычислить имея другие поля.
На форме "new" в настройках кнопки "сохранить" уберите компоненты из списка, которые принадлежат вычисляемым полям, таким как p_101, p_105, p_109 и т.д.
Hello.
You need merge fields in the report?
Just double click on text field in the report, and write two fields, like this:
[Report."firstname"] [Report."lastname"]
Using this example
http://myvisualdatabase.com/forum/misc. … download=1
you can catch exceptions from a database and replace system message.
С подсчётом разобрался, спасибо.
Как я понял (касаемо скрипта очистки) мне надо в данный скрипт загнать все мои поля, которые используются в открываемой форме для поиска?
Да, только не поля, а компоненты.
Здравствуйте.
Попробуйте такой скрипт
procedure Form1_TableGrid1_OnEnter (Sender: string);
begin
if Form1.TableGrid1.SelectedRow = -1 then Form1.TableGrid1.SelectedRow := 0;
end;
т.е. при попадании фокуса ввода на TableGrid, выделяется первая строка, если до этого пользователь не выделил какую либо строку.
Здравствуйте.
Здесь можете найти историю изменений
http://drive-software.com/myvisualdatabase_ru.html (в правой колонке)
1. Добавил выч. поле в ваш проект для форматирования времени
2.
Спасибо за найденную ошибку в программе, исправил, скачайте пожалуйста последнюю бета версию
https://www.dropbox.com/s/4sb2tk75rauoj … b.zip?dl=0
My Visual Database → Posts by DriveSoft
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi