powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Отображение данных после сохранения записей
41 сообщений из 41, показаны все 2 страниц
Отображение данных после сохранения записей
    #39862108
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые форумчане!
Помогите решить проблему с отображением данных в гриде.
На главной форме (fmMain) программы использую DBGrid, TQuery, TDataSource. База данных MDB. В свойстве TQuery, SQL (select * from CashDok). Создал другую форму (fmChange1) для ввода новых записей в таблице CashDok.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
procedure TfmChange1.Button1Click(Sender: TObject);
begin
  Sum := 0;
  Bal := 0;
  if (Edit1.Text <> null) and (Edit2.Text <> null) then
  begin
    Sum := StrtoFloat(Edit2.text) * StrtoFloat(Edit1.Text);

    dm.qCash.close;
    dm.qCash.sql.Clear;
    dm.qCash.sql.Add('insert into CashDok (cDate,cKod,cName,cCurs,cSum,cOper,cDiscount,TotalSum) values (:p1,:p2,:p3,:p4,:p5,:p6,:p7,:p8)');
    dm.qCash.ParamByName('p1').Value:=DateTimeToStr(Now); //Дата и время
    dm.qCash.ParamByName('p2').Value:=0; //Код валюты
    dm.qCash.ParamByName('p3').Value:=dxButtonEdit1.Text; //Обозначение валюты
    dm.qCash.ParamByName('p4').Value:=Edit1.Text; // Курс валюты
    dm.qCash.ParamByName('p5').Value:=Edit2.Text; // Сумма
    dm.qCash.ParamByName('p6').Value:='Покупка'; // Операция
    dm.qCash.ParamByName('p7').Value:=Edit3.Text; //Скидка
    dm.qCash.ParamByName('p8').Value:=Sum; // Сумма после обмена, т.е. Сумма * Курс
    dm.qCash.Prepare;
    dm.qCash.ExecSQL;
    fmChange1.Close;

    Bal := StrtoFloat(Edit4.Text) - StrtoFloat(Edit2.Text);
    Edit5.Text := FloatToStr(Round(Bal*100)/100); //FloatToStr(Bal);
    dm.qSprVal.close;
    dm.qSprVal.sql.Clear;
    dm.qSprVal.sql.Add('update SprVal set vBalance = '''+ Edit5.Text +''' where vOboz = '''+ dxButtonEdit1.Text+'''');
    dm.qSprVal.Prepare;
    dm.qSprVal.ExecSQL;

  end
    else
    ShowMessage('Не все поля заполнены');
end;



После нажатия кнопки "Сохранить", новая запись сохраняется в таблице CashDok, но на главной форме в гриде таблица закрывается, соответственно не отображаются записи.
Использую следующее, но ни как не помогает.
Код: sql
1.
2.
3.
4.
5.
    dm.qCash.Refresh;
или
    fmMain.DBGridEh1.Refresh;
или
    dm.qCash.Active:=True;


Что я делаю не правильно. Помогите. Заранее благодарен.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862128
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoft,

как называется компонент TQuery, к которой привязан грид главной формы?
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862129
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoft
Код: sql
1.
2.
3.
    dm.qCash.close;
    dm.qCash.sql.Clear;
    dm.qCash.sql.Add('insert into CashDok (cDate,cKod,cName,cCurs,cSum,cOper,cDiscount,TotalSum) values (:p1,:p2,:p3,:p4,:p5,:p6,:p7,:p8)');


ularsoft
Код: sql
1.
2.
3.
4.
5.
    dm.qCash.Refresh;
или
    fmMain.DBGridEh1.Refresh;
или
    dm.qCash.Active:=True;


Один и тот же запрос для грида и вставки?
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862130
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В модуле редактирования создайте функцию, которая будет создавать форму редактирования, заполнять предварительными значениями, показывать её, и возвращать результат. Сам Query-редактирования путь будет в форме, а не в DataModule, когда таких форм будет много, ваша DataModule отсанется не захламлённым
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
function fmChange1Show(TheInsert: boolean; Другие параметры): integer;
begin
  Result := -1;
  with TfmChange1.Create(Application) do begin
    // занести данные в контролы
    if TheInsert then begin
      Edit1.Text := 'какое то значение';
    end;
    if ShowModal = 1 then begin
      // произвести изменения в базе
      if TheInsert
        then Query.SQL.Text := 'insert into CashDok (cDate,cKod,cName,cCurs,cSum,cOper,cDiscount,TotalSum) values (:p1,:p2,:p3,:p4,:p5,:p6,:p7,:p8) return @@identity' 
        else Query.SQL.Text := 'update CashDok set cDate = :p1 where Id = :Id';
      Query.Prepare;
      Query.ParamByName('p1').Value := DateTimeToStr(Now); //Дата и время
       ...
      Query.ExecSQL;
      if TheInsert 
        then Result := Query.ParamByName('@RETURN_VALUE').Value // возвращаем Id новой строки
        else Result := Id;
      Free;
    end;
  end;
end; 



// в форме с гридом
procedure TMainFrm.ButtonUpdateClick(Sender: TObject);
var Id: integer;
begin
  Id := fmChange1Show(Sender=ButtonUpdate,.....); // вызываем форму редактирования
  if Id >= 0 then begin// данные успешно вставлены/изменены
    ShowAction.Execute; // перечитываем данные грида
    DatasetShow.Locate('Id',Id,[]); // позиционируем курсор на новой/изменённой записи
  end;
end;
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862169
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanularsoft
Код: sql
1.
2.
3.
    dm.qCash.close;
    dm.qCash.sql.Clear;
    dm.qCash.sql.Add('insert into CashDok (cDate,cKod,cName,cCurs,cSum,cOper,cDiscount,TotalSum) values (:p1,:p2,:p3,:p4,:p5,:p6,:p7,:p8)');


ularsoft
Код: sql
1.
2.
3.
4.
5.
    dm.qCash.Refresh;
или
    fmMain.DBGridEh1.Refresh;
или
    dm.qCash.Active:=True;


Один и тот же запрос для грида и вставки?Да, один и тот же.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862189
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoftwadmanпропущено...

пропущено...

Один и тот же запрос для грида и вставки?Да, один и тот же.
Надо книжку почитать.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862276
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoftДа, один и тот же.
Если вы используете один компонент для просмотра (select * from CashDok) и вставки (insert into CashDok), то изменив SQL с просмотра на вставку и выполнив его, необходимо SQL опять заменить на просмотр (select* from CashDok).
А лучше использовать разные компоненты для просмотра и вставки.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862313
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
goldmi45А лучше использовать разные компоненты для просмотра и вставки. Н-р, какие?
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862321
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoftgoldmi45А лучше использовать разные компоненты для просмотра и вставки. Н-р, какие?
Имеется в виду, разные TQuery на вставку и на отображение.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862342
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
goldmi45ularsoftпропущено...
Н-р, какие?
Имеется в виду, разные TQuery на вставку и на отображение.Так и сделал dm.qCashMain для просмотра и dm.qCash для вставки. Все равно грид не обновляется в гл меню.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862366
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoftgoldmi45пропущено...

Имеется в виду, разные TQuery на вставку и на отображение.Так и сделал dm.qCashMain для просмотра и dm.qCash для вставки. Все равно грид не обновляется в гл меню.
После вставки записи, набор данных должен быть перечитан. Т.е. выполнена операция Close-Open. Refresh обновляет существующие (ранее считанные) данные.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862406
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
goldmi45ularsoftпропущено...
Так и сделал dm.qCashMain для просмотра и dm.qCash для вставки. Все равно грид не обновляется в гл меню.
После вставки записи, набор данных должен быть перечитан. Т.е. выполнена операция Close-Open. Refresh обновляет существующие (ранее считанные) данные.
Это с чего такое нездоровое мнение?
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862421
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёgoldmi45пропущено...

После вставки записи, набор данных должен быть перечитан. Т.е. выполнена операция Close-Open. Refresh обновляет существующие (ранее считанные) данные.
Это с чего такое нездоровое мнение?
Это здоровое мнение. Вариантов кроме Close-Open я тоже не знаю.

ularsoft, и вообще выполняй запрос через Connect.Execute() или как там у тебя. А потом Close-Open у qCash.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862424
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потом через Locate надо вернуть курсор на свое место если был апдейт. И еще, желательно, вернуть строчку в гриде на свое место, но это пока не знаю как.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862550
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
didgikularsoft, и вообще выполняй запрос через Connect.Execute() или как там у тебя. А потом Close-Open у qCash.Сделал как вы сказали Close-Open и все хорошо,т.е.
Код: sql
1.
2.
3.
4.
    dm.qCash.Close;
    dm.qCash.SQL.Clear;
    dm.qCash.SQL.Add('select * from CashDok');
    dm.qCash.Open;
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862553
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoftdidgikularsoft, и вообще выполняй запрос через Connect.Execute() или как там у тебя. А потом Close-Open у qCash.Сделал как вы сказали Close-Open и все хорошо,т.е.
Код: sql
1.
2.
3.
4.
    dm.qCash.Close;
    dm.qCash.SQL.Clear;
    dm.qCash.SQL.Add('select * from CashDok');
    dm.qCash.Open;


Два красавца...
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862570
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ёёёёёДва красавца... А че? Работает же...
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862691
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, теперь возникла другая проблема :(
Имеется справочник валют (таблица - SprVal) с остатками: v_kod vOboz vName vBalance840USDДоллары США41000978EURЕвро60000643RUBРоссийские рубли150000При обмене одной валюты на другую, н-р, доллары США на Российские рубли, остаток (доллары США) увеличивается, остаток (Российские рубли) уменьшается.
Увеличение по первой валюте делаю следующим образом:
Код: sql
1.
2.
3.
4.
5.
6.
7.
    Bal := StrtoFloat(Edit4.Text) + StrtoFloat(Edit2.Text);
    Edit5.Text := FloatToStr(Round(Bal*100)/100);
    dm.qSprVal.close;
    dm.qSprVal.sql.Clear;
    dm.qSprVal.sql.Add('update SprVal set vBalance = '''+ Edit5.Text +''' where vOboz = '''+ dxButtonEdit1.Text+'''');
    dm.qSprVal.Prepare;
    dm.qSprVal.ExecSQL;

Где Edit4.Text - Остаток, Edit2.Text - Сумма. Как сделать уменьшение по второй валюте? Подскажите пожалуйста.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862709
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если клиент продает 100 долларов, покупает рубли, то остаток (доллары) 41000+100=41100, остаток (рубли) 150000-6383=143617, курс доллара к рублю по ЦБ РФ 63,83.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862836
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не правильная постановка задачи.
Должно быть
1. Справочник валют
2. Начальное сальдо по валютам
3. Операции движения.

Конечное сальдо вычисляется как начальное+операции
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862838
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёularsoftпропущено...
Сделал как вы сказали Close-Open и все хорошо,т.е.
Код: sql
1.
2.
3.
4.
    dm.qCash.Close;
    dm.qCash.SQL.Clear;
    dm.qCash.SQL.Add('select * from CashDok');
    dm.qCash.Open;


Два красавца...
Я то что не так сказал?
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862856
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
didgik,

код рабочий, все отлично!
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862876
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
didgikёёёёёпропущено...

Два красавца...
Я то что не так сказал?Все хорошо. Не переживайте.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862885
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBrНе правильная постановка задачи.
Должно быть
1. Справочник валют
2. Начальное сальдо по валютам
3. Операции движения.

Конечное сальдо вычисляется как начальное+операцииВсе это у меня есть.
Справочник валют (таблица - SprVal) с остатками: v_kod vOboz vName vBalance840USDДоллары США41000978EURЕвро60000643RUBРоссийские рубли150000Начальное сальдо по валютам: iDate iKod iOboz iName iSum iKom17.09.2019 08:58:56840USDДоллары США41000Приход17.09.2019 09:55:24840EURЕвро60000Приход17.09.2019 11:39:36643RUBРоссийские рубли150000ПриходОперации движения: cDate cKod cName cCurs cSum cOper cDiscount TotalSum17.09.2019 12:05:09840Доллары США63.83500Покупка03191517.09.2019 14:25:17840Доллары США63.83500Покупка03191517.09.2019 16:10:58978Евро70.75400Покупка028300Может я не правильно делаю? Помогите пожалуйста.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39862894
didgik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёdidgik,

код рабочий, все отлично!
Нет! А чо я сделал то?

Скажи уж, как надо то, не томи.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39863056
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoftВсе это у меня есть.
Тогда в чём проблема ?
БалансПоВалюте = СтартовоеСальдоВалюты + ПокупкаВалюты - ПоокупкаЗаЭтуВалюту
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39863057
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас в таблице не хватает, за какую валюту была произведена покупка !
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select, ikod,vBalance = sum(iSum)
from (
  select i_kod, iSum from StartSaldo -- сальдо
  union all
  select cKod, cSum from Operation -- покупка валюты
  union all
  select xKod, -cSum*cCurs from Operation) X - расходование средств на покупку, xKod - валюта за которую купили
group by ikod
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39863097
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ularsoft,

http://www.sql.ru/forum/1028058/knigi-po-rabote-s-bd

Мне в свое время многое дал как раз Шумаков со своей книгой.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39863130
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBrУ вас в таблице не хватает, за какую валюту была произведена покупка !
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select, ikod,vBalance = sum(iSum)
from (
  select i_kod, iSum from StartSaldo -- сальдо
  union all
  select cKod, cSum from Operation -- покупка валюты
  union all
  select xKod, -cSum*cCurs from Operation) X - расходование средств на покупку, xKod - валюта за которую купили
group by ikod

Это же просто sql запрос объединяющий 3 таблиц. Мне бы минус и плюс, уменьшение и увеличение остатков.
Если клиент продает 100 долларов, покупает рубли, то остаток (доллары) 41000+100=41100, остаток (рубли) 150000-6383=143617, курс доллара к рублю по ЦБ РФ 63,83.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39863138
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Остатки должны вычисляться динамически. Хранить их в таблице не нужно.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39866632
ularsoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DimaBrОстатки должны вычисляться динамически. Хранить их в таблице не нужно.Извините, а первоначальный ввод, т.е. начальное сальдо?
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39866642
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первоначальное сальдо - это инвентаризация.
По хорошему, их тоже может быть несколько.
ДатаИнвентаризации, Валюта, Сумма

Тогда Сальдо на любой день можно вычислить как: БлижайшаяИнвентаризация + Приход - Расход.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39866689
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
18.09.2019 7:52, DimaBr пишет:
> Остатки должны вычисляться динамически. Хранить их в таблице не нужно.

для больших систем такой подход не приемлем.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39866690
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийдля больших систем такой подход не приемлем.

Приемлем, учитывая что считать то нужно от последней инвентаризации
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39866696
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
25.09.2019 10:25, DimaBr пишет:
> Приемлем, учитывая что считать то нужно от последней инвентаризации

не надо натягивать свою сову на каждый глобус.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39866712
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийне надо натягивать свою сову на каждый глобус.
Кто же мешает озвучить свой механизм вычисления остатков на любой промежуток времени ?
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39866729
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
25.09.2019 10:52, DimaBr пишет:
> Кто же мешает озвучить свой механизм вычисления остатков на любой промежуток времени ?

в больших системах есть понятие "закрытого периода" и "открытого периода".
в закрытом периоде ничего не пересчитывается.
всё посчитано и записано.
открытый же период начинает танцевать от конца закрытого, а не от "начала времён"
и дальше считает считает так, как ты описываешь.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39866886
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийв больших системах есть понятие "закрытого периода" и "открытого периода".
в закрытом периоде ничего не пересчитывается.
всё посчитано и записано.
открытый же период начинает танцевать от конца закрытого, а не от "начала времён"
и дальше считает считает так, как ты описываешь.

Где в "моём" механизме "от начала времён" ? Отсчёт от ближайшей инвентаризации.
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39866887
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
25.09.2019 14:16, DimaBr пишет:
> Отсчёт от ближайшей инвентаризации.

инвентаризация - вполне конкретная операция в бухгалтерском/складском учёте.
её может и не быть.
кроме того не ко всем разделам учёта она применима.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39866889
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Инвентаризировать можно всё что угодно.
Инвентаризация - это точка отсчёта
...
Рейтинг: 0 / 0
Отображение данных после сохранения записей
    #39867100
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет смысла переводить спор в терминологическое русло.
Инвентаризировать, в принципе, можно даже "что сделано,
что не сделано, что откладываем/отменяем нафиг".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
41 сообщений из 41, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Отображение данных после сохранения записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]