Skip to forum content
My Visual Database
A Simple Solution for Creating Databases
You are not logged in. Please login or register.
Active topics Unanswered topics
Search options (Page 22 of 61)
Topics by k245 User defined search
Posts found: 526 to 550 of 1,517
Хорошая и нужная программа. Но не хватает возможности продолжения чтения с того места, где остановился.
Оказалось, это легко исправить: открываем файл Sumatra\SumatraPDFSettings.txt и правим строки:
RememberOpenedFiles = true
RememberStatePerDocument = true
Теперь файл будет открываться на том месте, где его закрыли.
SNKip wrote:k245 wrote:SNKip wrote:Еще хочу прикрутить к своей базе, web gui на FastAPI, чтобы заказчики могли сами отчеты смотреть, общий функционал уже сформирован.
Перестаньте угрожать ))) Добавьте пост по рекомендуемому формату, а для обсуждения проекта создайте отдельную ветку, пожалуйста
Как скажите! Просто я подумал, что если кому надо, то выложу! Если нет, ну и ладно.
Я так и сказал: надо, выкладывайте )))
SNKip wrote:Еще хочу прикрутить к своей базе, web gui на FastAPI, чтобы заказчики могли сами отчеты смотреть, общий функционал уже сформирован.
Перестаньте угрожать ))) Добавьте пост по рекомендуемому формату, а для обсуждения проекта создайте отдельную ветку, пожалуйста
Конкурент или партнёр?
После удачного приобретения программы для документирования Dr.Explain я начал создавать файлы помощи для всех своих проектов, в том числе для ClassExplorer – “Справочник разработчика”. И тут мне вдруг подумалось: а не заменил ли мне мой новый инструмент создаваемую программу? Не превратится ли мой новый помощник в убийцу данного проекта?
Читать: https://k245.ru/mvdb/konkurent-ili-partnyor.html
Destiny wrote:Good evening, I would like to include a font in the program so that it is an integral part of it, how to recognize it by default in the database.
Sorry, I didn't read the question carefully. You cannot change the default font in the application development system.
Unless you edit the MyVisualBD.exe file - replace the font name "Segoe UI" with a different one, but of the same length. This is a joke, I do not advise you to do this.
To use any font on Windows, it must be copied to the c:\Windows\Fonts\ folder anyway
You can do this by including the font in the program's installer files. Or make it a script when the application starts. That is, first check if there is such a file in the destination folder. If not, then copy it and restart the application so that when creating application forms, the desired font file is already in the c:\Windows\Fonts\ folder
Аутентификация
Если приложение содержит коммерческую или приватную информацию, то разумно ограничить доступ к данным, добавив форму аутентификации.
Читать: https://k245.ru/mvdb/autentifikatsiya.html
So what is the actual question? Option 03 is working. If you are confused by the fact that each time an encode-decode is performed, add a check like this:
procedure Form2_OnShow (Sender: TObject; Action: string);
begin
Form2.PageControl1.TabIndex := 0; //** always show first tab
if Form2.TabSheet2.TabVisible then
Form2.tbDetail.Text := DecryptRC5(form2.tbDetail.text,form2.lblKey.caption); //** decrypt
end;
procedure Form2_bSave_OnClick (Sender: TObject; var Cancel: boolean);
begin
if Form2.TabSheet2.TabVisible then
Form2.tbDetail.Text := EncryptRC5(form2.tbDetail.text,form2.lblKey.caption); //** encrypt
end;
Модульное лицензирование
В своей книге “Визуальное программирование” я описывал простую систему лицензирования, в основе которой лежат алгоритмы кодирования аппаратных атрибутов компьютера, на который устанавливается программное обеспечение. Алгоритм простой и надёжный, но, как показала практика, современные тенденции маркетинга требуют более гибкого подхода в лицензировании программного обеспечения: кроме пожизненной лицензии требуются ещё две категории лицензий: лицензии на определенную версию программы и лицензии на отдельные модули программы.
Читать: https://k245.ru/bez-rubriki/modulnoe-li … vanie.html
Судить не будут, только обсуждать Добавьте, пожалуйста, отдельную тему на форуме для обсуждения вашего проекта, а ссылку вставьте в ваш пост (который можно отредактировать).
sparrow wrote:if AWinControl is TdbButton then
TdbButton(AWinControl).TabOrder := ATabOrder
else
if AWinControl is TdbEdit then
TdbEdit(AWinControl).TabOrder := ATabOrder
else
if ...
TdbMemo
TdbCheckBox
TdbDateTimePicker
and ...
Аbsolutely right!
Hello All!
I confirm that the compilation of the project with each version is slower. This can be easily explained, since with each version the set of components and their properties that the framework supports is expanding. The assembly of the XML file with forms is very slow. I have a project that has over 50 forms. It compiles in about a minute, although my computer is quite powerful. There are also delays when launching applications if: 1) they have a lot of forms 2) they have a lot of drop-down lists that are connected to tables with a large number of records. The last point is due to the automatic execution of the UpdateDatabase procedure when the application starts.
P.S.I have a lifetime license, but it seems to me that there will be no new versions of MVDB.
As I wrote in a comment in the script, the WinControl_GetTabOrder() and WinControl_SetTabOrder() procedures need to be improved: they need to be written in ALL visual components that have the taborder property. I hope you can do this part of the work yourself.
When transferring controls, their taborder changes. I finalized the transfer procedure and added saving the taborder.
procedure AddScrollBox( AForm:TAForm;);
var
SB:TScrollBox;
i: integer;
List:TStringList; // list for storing controls taborder
begin
List := TStringList.Create;
List.Sorted := True;
SB := TScrollBox.Create(AForm);
SB.Parent := AForm;
SB.Align := alClient;
for i := AForm.controlCount - 1 downto 0 do
begin
if AForm.Controls[i] <> SB then
begin
// for window controls remember their taborder
if AForm.Controls[i] is TWinControl then
List.AddObject( IntToStr( WinControl_GetTabOrder( TWinControl(AForm.Controls[i]) ) ), AForm.Controls[i] );
AForm.Controls[i].Parent := SB;
end;
end;
// restoring the taborder
for i := 0 to List.Count - 1 do
begin
WinControl_SetTabOrder(TWinControl( List.Objects(i) ), StrToInt( List.Strings(i) ) );
end;
List.Free;
end;
// since in My Visual Database for window controls forgot to implement the taborder property,
// we need two auxiliary functions that need to be supplemented with all the visual components used in the project
function WinControl_GetTabOrder(AWinControl:TWinControl):integer;
begin
if AWinControl is TdbButton then
result := TdbButton(AWinControl).TabOrder
else
if AWinControl is TdbEdit then
result := TdbEdit(AWinControl).TabOrder
end;
procedure WinControl_SetTabOrder(AWinControl:TWinControl; ATabOrder:integer);
begin
if AWinControl is TdbButton then
TdbButton(AWinControl).TabOrder := ATabOrder
else
if AWinControl is TdbEdit then
TdbEdit(AWinControl).TabOrder := ATabOrder;
end;
Комплект - некий набор из одинаковых или разных элементов. И операции: комплектовать / разукомплектовать. Это если чисто складской вариант. В торговле обычно используется понятие заказ. В принципе то же самое, но привязанное к контрагенту: покупателю или поставщику. В производстве операция комплектации анизотропная - собрали так собрали, на века )))
Это игра с элементами случайности, поэтому даже применение выигрышной стратегии не всегда будет приводить к выигрышу )))
pavlenko.vladimir.v wrote:эта программа нaталкиевает меня на мысль о создании складского учета с приминением штрихкодов, вот только какую БД использовать ??
Имеется ввиду поддержка специальных принтеров для печати штрихкодов на наклейках? И автоматический поиск по полю, в котором хранится штрих-код при нажатии кнопки сканера?
Я забыл удалить файл проекта. Но для подписчиков библиотеки "Визуальное программирование" (https://k245.ru/biblioteka) доступны исходники версии 1.0b и других опубликованных в моём блоге проектов.
Тип БД выбирается исходя из количества одновременно работающих с программой пользователей и необходимости в удаленном доступе:
SQLite - однопользовательская система, доступ к БД в пределах локальной сети.
MySQL - многопользовательская система, возможен доступ в глобальной сети интернет.
SQLite теоретически может обслуживать несколько пользователей, но во время записи данных происходит блокировка и остальные пользователи в этот момент могут получать сообщения об ошибке. Это надо учитывать и как-то обрабатывать.
ПРЕДЛОЖЕНИЕ
Mars GO! Игровая программа
БЕСПЛАТНО
Mars GO! - компьютерный вариант настольной игры, в которой игроки по очереди захватывают соседние клетки, выставляя новые блоки. Размер блока определяется случайно. Побеждает тот, кто сможет захватить больше клеток.
Скачать: https://drive.google.com/file/d/1np5ZQd … sp=sharing
Обсудить: http://myvisualdatabase.com/forum/viewtopic.php?id=7658
ПРЕДЛОЖЕНИЕ
Производство
БЕСПЛАТНО
Предназначена для учета материалов, используемых в производстве, а также готовой продукции.
Скачать: https://drive.google.com/file/d/1kaHzHM … sp=sharing
Обсудить: http://myvisualdatabase.com/forum/viewt … 172#p46172
Бесплатная программа "Производство" предназначена для учета материалов, используемых в производстве, а также готовой продукции.
Ключевые особенности
• Партионный метод учета материалов и продукции
• Мастер формирования документов списания в производство
• Расчет себестоимости продукции по фактическим затратам
• Учет остатков, в том числе по партиям
• Учет прибыли
• Быстрое формирования первичной документации (использование значений по умолчанию)
Операции, которые реализованы в программе:
• Приход от поставщика
• Возврат поставщику
• Списание в производство
• Приход из производства
• Реализация покупателю
• Возврат от покупателя
• Внутреннее перемещение
• Списание брака
Версия 1.0: https://drive.google.com/file/d/1kaHzHM … sp=sharing
Возможна платная доработка программы по вашему ТЗ.
I don't see such an effect. It is possible that the traversal order is changing due to the addition of a scroll area. Please send a test project for analysis and solution.
Эй, люди, помогите! Вы мне нужны, поймите! Эй, мне нужен кто-нибудь.
The Beatles
Как только программа вырастает из коротких штанишек, ей обязательно понадобится помощь. Точнее, помощь потребуется пользователю вашей программы: даже, если он является профессионалом в своем деле, ему нужно освоиться с интерфейсом.
Читать: https://k245.ru/mvdb/help.html
function IncYear(ADate:TDateTime; AValue:integer = 1):TDateTime;
// увеличить дату на год или несколько лет
var
Year,Month,Day: Word;
begin
DecodeDate(ADate,Year,Month,Day);
Inc(Year,AValue);
if (Month = 2) and (Day = 29) and (not IsLeapYear(Year)) then
Day := 28;
Result := EncodeDate(Year,Month,Day);
end;
Использование:
Form.my_date.Date := IncYear(form.my_date2.Date,2);
pavlenko.vladimir.v wrote:k245 wrote:Революция откладывается
Community Edition хорош.. но вот как раз , большое количество компонентов (которые нужно настроить для работы с БД) реально бесят ...
Зато их можно настраивать программно - это я про BDE.
Я вот пока не вкурил, можно ли программно настраивать FireDAC + FireMonkey. В примере, который я разобрал, приходится для каждого обращения к базе (Чтение/Добавление/Редактирование/Удаление) писать свой запрос в отдельном компоненте. Такое себе удовольствие, особенно если поменяется структура данных.
Posts found: 526 to 550 of 1,517