51

(38 replies, posted in Russian)

tcoton wrote:

Do you have an example on how to do these designs? The rounded boxes look nice, how about the special icons next to the window controls?

https://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=10219&download=0

I had to “invent” and create many components myself (date input, scroll bar, checker, etc.). But this process was not completed: the color of the drop-down list is not controlled, problems with tables (color of scroll bars and footer/header lines). A lot of code was written, a whole library of “virtual classes”, but for a private project. Perhaps after some time I will have the opportunity to publish applied solutions.

Наверное, это работает... Для 10 строк в таблице. И даже для 30. Но если их больше ста, то бедная база.... попробуйте убрать SQL-запрос из цикла: включите его в основной запрос для выборки данных, а результат разместите в невидимой колонке.

53

(38 replies, posted in Russian)

Отличный дизайн интерфейса!


Насчет скруглений - можно заморочиться и сделать так:
1) убрать штатные границы и добавить картинки с нарисованными круглыми рамками
2) убрать штатные границы и добавить TShape c закругленными углами.
3) убрать штатные границы и рисовать на канве формы/панелей


https://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=10213&download=0

Первый способ дает больше красоты, но дизайн жёстко привязывается к размеру форм и компонентов. Второй боле гибкий, но нужно писать много кода. Третий не пробовал )))

54

(4 replies, posted in General)

pavlenko.vladimir.v wrote:

Я делал проект с кассой, но маленький и в нем использовался сканер штрих-кодов.
Этот проект я внедрял в сервисную программу https://myvisualdatabase.com/forum/view … hp?id=6853
если не разберетесь, пишите!

I did a project with a cash register, but it was small and it used a barcode scanner.
I implemented this project into the service program https://myvisualdatabase.com/forum/view ... hp?id=6853
If you don't understand, write!

Фигасе маленький. Да тут без проектной документации не разобраться...


I wouldn't say it's small.
It’s impossible to figure this out without project documentation.


https://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=10200&download=0

P.S. Из плюсов отмечу возможность локализации.

55

(38 replies, posted in Russian)

Обычно формируют два SQL-запроса по одному ID. Первый запрос  для шапки документа, второй - для детализации.

SELECT * FROM acts 
LEFT JOIN MyFirm ON MyFirm.id = acts.id_MyFirm 
LEFT JOIN ConuterParty ON ConuterParty.id = acts.id_ConuterParty
WHERE act.id = <значение>
SELECT * FROM ActsPosition
LEFT JOIN nomenclature ON nomenclature.id = ActsPosition.id_nomenclature
WHERE ActsPosition.id_acts = <значение>

Первый запрос возвращает реквизиты документа, второй - все записи, которые относятся к документу:

56

(4 replies, posted in General)

It is unlikely that you will find a ready-made free project that fully meets your needs.


There are many opportunities on this forum: find a ready-made similar solution, find tips for creating the application you need yourself, or find a specialist who will create the software product you need. So what are you looking for? Formulate your requirements more precisely.

57

(38 replies, posted in Russian)

А зачем вам привязываться к одной таблице? Поищите на форуме скрипты, которые позволяют формировать отчет из любого количества таблиц и параметров.


Если не найдете, то посмотрите здесь:
https://k245.ru/software-ru/clearapp.html


Модуль: report.pas
Процедура: Report_Open()


Пример использования:
https://k245.ru/mvdb/linejnyj-raskroj.html


UserApp_LinearCalc_Report()

There is one caveat. If there are several users in the database with the same name, then you need to decide how to display the search result. Typically in this case the result is displayed as a comma separated list of values. The group_concat() SQL-function will help in implementing such functionality.

procedure option1 (Sender: TObject);
begin
  form1.edit2.text := sqlexecute('select GROUP_CONCAT(age,",") from example where name = "'+form1.edit1.text+'"');
end;

https://myvisualdatabase.com/forum/misc.php?action=pun_attachment&amp;item=10193&amp;download=0

franklabre wrote:

Hello,

Can this be done with MVD?

Add a treeview to create and select entries,
then auto-display previously filled form fields when selecting treeview entries.

Adding new entries.

Create groups.

Filter groups from the form data.

Here is a 3 minutes Youtube ID of the reference video.
o6wqnpdtFQg

0:10 Clicking treeview entries / auto-display in form
0:31 Creating new entries / filling the form
1:02 Creating Groups
1:19 Filtering groups using form data
1:40 default / pre-made data in database

Thank you for your insights.

https://youtu.be/o6wqnpdtFQg

I am sure that all this can be done at the MVDB. But scripts will be required to implement functions such as displaying data in the work area depending on the selected tree element. Most of all you will have to tinker with the mechanism of smart groups, but it can also be implemented. But you need to start not with the interface, but with the data structure. And everything else will follow. ))


There are two implementation options: 1) place all interface elements on one form (use TdbPageControl); 2) use several forms, displaying them on the main form. The first one is easier in the short term, the second one is better in the long term.


But again, you need to start with the data structure.

60

(4 replies, posted in General)

Unfortunately, the table columns are displayed from left to right. But you can add the first empty column and achieve the desired visual effect by setting the width of the first (empty) and all other data columns with a script.

TColorEdit
https://k245.ru/wp-content/uploads/2023/10/kraski.jpg
My Visual Database. Composant d'édition de couleurs DIY TColorEdit.
https://k245.ru/fr/mvm-fr/tcoloredit-3.html


Traduction : Yann Yvnec

Тема интересная: действительно, в большинстве случаях нужно блокировать одновременное редактирование, чтобы не было перетёрыча.


Хотя добавить в каждую таблицу поле проще, но я бы сделал вариант с отдельной таблицей - это позволит реализовать легко переносимое в другие проекты решение, не требующее модификации имеющихся таблиц. Спасибо за идею для очередной доработки моей коллекции библиотечных функций. Можно её развить в журнал аудита: кто какую форму открывал, когда и для чего (добавление, редактирование, удаление).


P.S. Есть опыт написания подобной программы ("Оргкомитет фестиваля" - https://k245.ru/software-ru/orgkomitet-festivalya.html). Интересно сравнить с вашим решением.

https://k245.ru/wp-content/uploads/2023/08/of2-1024x506.png

Пользовательский классификатор
https://k245.ru/wp-content/uploads/2023/12/klassifikatsiya.png
Реализация пользовательской системы классификации объектов на примере грамматического словаря русского языка.
https://k245.ru/mvdb/polzovatelskij-klassifikator.html

tcoton wrote:

The latest version 3.44.2 https://www.sqlite.org/index.html works very well.

Thank you! Indeed, this version works more stable! After installing this library, the inexplicable error when accessing the database, which was driving me crazy, disappeared.


Спасибо! Действительно, эта версия работает более стабильно! После установки данной библиотеки исчезла необъяснимая
ошибка при обращении к БД, которая сводила меня с ума.

Ressources et Internationalisation
https://k245.ru/wp-content/uploads/2023/04/Flagi.png
Un mécanisme de localisation pratique qui ne nécessite pas de réécriture du code d'application créé dans My Visual Database.
https://k245.ru/fr/mvdb-fr/ressources-e … ation.html


Traduction : Yann Yvnec

k245 wrote:

I observed problems with column width in two cases: during the first launch and when the program crashed.
As for intelligent alignment of column widths, you can’t do without scripts. I agree that in some cases the proposed alignment options look good, but firstly, they provide an additional delay when displaying data, and secondly, they are not always convenient, so this, perhaps, can be done as an option in the grid settings through the pop-up menu. Thanks for the tip, I'll probably add such an option in the next version of Data Keeper.

Setting Column Width
https://k245.ru/wp-content/uploads/2023/12/Rovnye-gryadki.jpg
Custom control of column width alignment in grid.


https://k245.ru/en/mvdb-en/setting-column-width.html


https://k245.ru/wp-content/uploads/2023/12/image.png

tcoton wrote:

I see that you are using an outdated sqlite.dll (2014)  in your project, you would be better of with a newer version which provides new features!!

Which version do you recommend using?

Автовыравнивание колонок
https://k245.ru/wp-content/uploads/2023/12/Rovnye-gryadki.jpg
Пользовательское управление выравниванием ширины колонок в табличном представлении.


https://k245.ru/mvdb/avtovyravnivanie-kolonok.html

Derek, You are absolutely right: this combobox does not have a name. But you can get to it through the form's components[] property
https://myvisualdatabase.com/forum/misc.php?action=pun_attachment&amp;item=10160&amp;download=0

For research, you can use Component Explorer, which is included in the free ClearApp program

https://k245.ru/en/software-en/clearapp-2.html

70

(5 replies, posted in General)

There are no exact data. But the feature indicated in the description significantly speeds up debugging applications that have many screen forms.

Читаем

select *
from z
left join x on  x.id = (select max(x2.id) from x as x2 where x2.id_z = z.id )
left join y on  y.id = (select max(y2.id) from y as y2 where y2.id_z = z.id )

и переводим на русский язык:

Выбрать все данные
из таблицы Z,
присоединив к каждой записи данные из таблицы X по правилу: значение Х.ID равно результату выборки подзапроса,
присоединив к каждой записи данные из таблицы Y по правилу: значение Y.ID равно результату выборки подзапроса.

Разбираем подзапрос

select max(x2.id) from x as x2 where x2.id_z = z.id

Выбрать максимальное значение из таблицы X, которую мы будем называть X2, при условии, что значение поля id_z равно значению поля id из таблицы Z


X2 - это алиас, чтобы не нарваться на коллизии имен полей, так как подзапрос использует ту же таблицу, что и основной запрос.

72

(5 replies, posted in Russian)

Если не хотите выкладывать проект,  то найдите на форуме человека, который решит ваш вопрос за деньги или даром, и напишите ему в личку. Разработчик MVDB не занимается разработкой или доработкой проектов, созданных на платформе MVDB.

73

(3 replies, posted in General)

I suggested selecting a date in only one form - the calendar form. And in other forms, select the link to the entry with the desired date. But something tells me that the problem is in the accuracy of the formulation of the requirements for the program. It would be easier to answer this question if you presented your project so that it would be clear what forms you are talking about.

74

(5 replies, posted in General)

Negrita wrote:

Hi Jean

Ok thanks for you feedback, and as you said it´s a shame.
I know that the last version is 6.5 , so where i can get te 6.6 ?

Thanks for your help

DC

The unofficial beta version of the My Visual Database database designer is 6.61 beta.
https://k245.ru/en/mvdb-en/last-beta-2.html

75

(2 replies, posted in General)

procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
begin
    Form1.TableGrid1.dbItemId := -1;
end;