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.
77 2023-12-14 04:58:59
Re: Is MyVisualdatabase died? (5 replies, posted in General)
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
78 2023-12-12 09:54:43
Re: Remove Selection from Tablegrid (2 replies, posted in General)
procedure Form1_Button1_OnClick (Sender: TObject; var Cancel: boolean);
begin
Form1.TableGrid1.dbItemId := -1;
end;
79 2023-12-12 09:53:33
Re: Help (8 replies, posted in Russian)
наблюдаю тенденцию превращение топиков форума в страницы персональной поддержки автора... а потом пользователи жалуются, что на форуме найти инфу сложно.... эх, модераторы...
80 2023-12-10 14:31:37
Re: Date for more table (3 replies, posted in General)
Create a "Calendar" table that will store dates. And the remaining tables in which dates are needed must be connected to the “Calendar” table - refer to it. This relationship works better than subsequently filtering by date in each table.
81 2023-12-10 14:21:58
Re: Выборка из нескольких таблиц по нескольким критериям (22 replies, posted in Russian)
Хотя сейчас начал понимать идею к245, но боюсь не сработает.
Даже задумался, не сделать ли всё на Acsess`e.
Страх порой лишает радости победы. Прислать свой проект или поверите на слово, что всё работает как надо?
82 2023-12-10 14:15:15
Re: Выборка из нескольких таблиц по нескольким критериям (22 replies, posted in Russian)
Поддерживаю sparrow, без max() будет быстрее работать:
select *
from z
left join x on x.id = (select x2.id from x as x2 where x2.id_z = z.id order by 1 desc limit 1 )
left join y on y.id = (select y2.id from y as y2 where y2.id_z = z.id order by 1 desc limit 1 )
83 2023-12-10 14:10:09
Re: Выборка из нескольких таблиц по нескольким критериям (22 replies, posted in Russian)
Спасибо, sparrow, тут есть над чем подумать, проверю.
Для К245 - к сожалению таблицы X и Y находятся СПРАВА, поэтому LEFT JOIN не проходит.
У таблицы Z слева ещё есть справочники, просто я не стал усложнять вопрос :-)
Обожаю теоретиков - у них такие красивые, большие глаза, когда смотрят на результат практиков:
84 2023-12-03 12:36:32
Re: [Скрипт] Сделать дубликат записи (23 replies, posted in FAQ)
Дело в том, что у моей организации очень тонкие условия, допустим если "Системный блок" изменил цвет, то человек должен удалить старый цвет и записать новый, но при этом в истории должно сохраниться изменения данных о цвете, но историю я сделаю, у меня в этом только проблема стоит в дубликате таблиц и всё.
Так как бывают поставки одной и той же техники, какое то время у них одинаковые характеристики, но потом начинает меняться и это должно отобразиться в таблице. Но я почитаю данную статью, спасибо
Вы всё в кучу свалили...
1. История изменения характеристики (параметра) товара в справочнике товаров
2. Хранение актуальных на момент сделки характеристик товара в документах.
Эти процессы могут быть связанными, а могут быть сами по себе. Всё зависит от требований бизнеса.
Если вам нужна полноценная история, то вам нужно реализовывать партионный учёт, при котором есть одна запись в таблице номенклатуры и несколько записей в таблице партий. В номенклатуре - только название и артикул, а характеристики - в партиях. Тогда при списании товара происходит указание на партию, с её характеристиками (цветом, весом и т.д.). Вплоть до того, что у разных партий может быть разный набор характеристик (параметров). Чтобы человек, составляющие аналитические отчеты, двинулся кукушкой ))))
Какие требования у бизнеса? Учёт цвета ржавчины гвоздей на каждой партии товара или анализ продаж товаров по определенным критериям? Подумайте об этом, прежде чем вносить правки в структуру данных...
85 2023-12-03 12:18:02
Re: Выборка из нескольких таблиц по нескольким критериям (22 replies, posted in Russian)
идея такая:
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 )
86 2023-11-30 06:17:59
Re: [Скрипт] Сделать дубликат записи (23 replies, posted in FAQ)
Точность вопроса влияет на точность ответа.
В вашем случае вопрос стоит шире: как скопировать связанные данные?
Универсального решения для этого нет. Для этого понадобятся несколько SQL-запросов, которые должны учитывать структуру конкретной БД. Написание таких запросов - это и есть РАБОТА программиста.
87 2023-11-28 09:50:59
Re: Создается пустая строчка во вложенных таблицах (14 replies, posted in Russian)
k245 wrote:Godless wrote:А, т.е. нужно скрипт прописывать? Только в визуальном, это не сделать ни как?
да, нужно
Эх... грустно , досадно Спасибо
А не подскажете как ? Единственный косяк, который осталось "подтереть"
Раз у вас проблема с отчетом, то в кнопке, которая его вызывает, добавьте обработчик onClick, в котором выполните описанное выше действие.
88 2023-11-28 07:04:17
Re: Создается пустая строчка во вложенных таблицах (14 replies, posted in Russian)
А, т.е. нужно скрипт прописывать? Только в визуальном, это не сделать ни как?
да, нужно
89 2023-11-28 07:02:05
Re: Делаю тетрис (1 replies, posted in Russian)
Лучше разделить логику (данные) и отображение. Отдельно хранить массив с кубиками, которые упали в стакан, и фигуру, которая опускается в стакан. А таблицу использовать для отображения совмещения стакана и падающей фигуры.
90 2023-11-28 06:49:44
Re: Создается пустая строчка во вложенных таблицах (14 replies, posted in Russian)
91 2023-11-28 06:20:04
Re: Создается пустая строчка во вложенных таблицах (14 replies, posted in Russian)
Вы не путайте "выделение выбранной записи" и "выбранная запись". При переносе фокуса на другой элемент интерфейса выделение выбранной записи в таблице можно отключить, но выбранная запись останется прежней. Чтобы у таблицы сбросить выбранную запись, присвойте значение -1 свойству dbItemID. Но я не вижу тут прямой связи с FastReport. Или это ваша условность в программном коде?
92 2023-11-27 06:12:30
Re: [Скрипт] Сделать дубликат записи (23 replies, posted in FAQ)
Здравствуйте.
Можно ли как через SQL или другим способом создать дубликат записи из выбранной записи? в выбаррной записи находятся индивидуальные таблицы со значениями в строковой структуре и вот, взять все данные из индивидуальной таблицы и продублировать в созданный дубликат записи?
function DB_CopyRecord( ATableName: string; AID: integer ):integer;
// универсальная функция копирования записи
begin
// создаем временную таблицу со структурой, идентичной копируемой записи
SQLExecute('CREATE TEMPORARY TABLE tmp AS SELECT * FROM ['+ATableName+'] WHERE id = '+IntToStr(AID));
// сбрасываем значение поля ID
SQLExecute('UPDATE tmp SET id = NULL');
// вставляем запись обратно
SQLExecute('INSERT INTO ['+ATableName+'] SELECT * FROM tmp');
// получаем ID новой записи
Result := Last_Insert_ID();
// удаляем временную таблицу
SQLExecute('DROP TABLE tmp');
end;
93 2023-11-24 07:48:46
Re: [Solved] Subtable in a combobox (10 replies, posted in General)
The script should run after the editing form opens.
procedure frmAddPayee_OnShow (Sender: TObject; Action: string);
var
IDStreet : integer;
IDRegion : integer;
begin
if Action = 'ShowForm' then
begin
if (SearchPayments.TableGrid1.SelectedRow>=0) then
begin
IDStreet := SQLExecute('SELECT PayeeRegister.id_Street FROM PayeeRegister WHERE id='+ IntToStr(SearchPayments.TableGrid1.dbItemID) );
IDRegion := SQLExecute('SELECT Street.id_Region FROM Street WHERE id='+ IntToStr(IDStreet) );
frmAddPayee.ComboBox2.dbitemid := IDRegion;
frmAddPayee.ComboBox2.DoOnChange;
frmAddPayee.ComboBox1.dbitemid := IDStreet;
frmAddPayee.Edit1.Text := SQLExecute('SELECT "'+ frmAddPayee.Edit1.dbField +'" FROM PayeeRegister WHERE id='+ IntToStr(SearchPayments.TableGrid1.dbItemID) );
frmAddPayee.Edit2.Text := SQLExecute('SELECT "'+ frmAddPayee.Edit2.dbField +'" FROM PayeeRegister WHERE id='+ IntToStr(SearchPayments.TableGrid1.dbItemID) );
end;
end;
end;
96 2023-11-23 08:52:24
Re: [Solved] Subtable in a combobox (10 replies, posted in General)
MVDB does not work well if the nesting depth when setting up a table exceeds 2. In your case, it is enough to replace the nested table with a calculated field
97 2023-11-22 10:23:56
Re: [Solved] Subtable in a combobox (10 replies, posted in General)
You can add a calculated field and use it in a dropdown list.
98 2023-11-22 10:11:44
Re: Merge two sqlite (1 replies, posted in General)
If the namespace (tables, forms, procedures) in two projects does not overlap, then you can combine them by simple merging. In theory. But in practice, difficulties may arise if the code contains direct access to system objects of the main form (components related to reports, authorization, etc.). And most likely the problems will be due to the same name of the forms (especially the main form).
99 2023-11-18 16:35:24
Re: COM порт, ошибка в программе? (9 replies, posted in Russian)
k245 wrote:Таймер создайте, в обработчике таймера читайте данные из порта и записывайте в БД.
Или вам нужна готовая программа?Вообще готов обсудить вариант готовой программы, если это возможно. Могу написать Вам на почту?
В целом хочется разобраться самому, но сроки достаточно сжаты.
Пишите, договоримся ))
100 2023-11-18 12:01:59
Re: COM порт, ошибка в программе? (9 replies, posted in Russian)
Таймер создайте, в обработчике таймера читайте данные из порта и записывайте в БД.
Или вам нужна готовая программа?