Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262

TextBox свойства

14.01.2020, 19:57. Показов 2861. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

ТехтBox... даже не знаю как сказзать -то...
вводишь знак в поле и когда он в фокусе кажется значение далее не "проваливатся" в регистр что-ли.
Когда переносишь фокус на другой объект, то TextBox как-бы двигает значение далее и с ним можно работать.

Можно как-то без "фокуса" это делать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.01.2020, 19:57
Ответы с готовыми решениями:

Привязка свойства к TextBox
Доброго времени суток, возникла, как я подозреваю простая проблема: есть просто окно, где есть всего два элемента текстбокс и кнопка. Хочу...

Передача значений из textbox в свойства классов
На скриншоте выше у меня есть 4 textbox. Я хочу вводить с клавиатуры значения в эти textbox и передавать их свойствам из другого класса. ...

Обновление связанного с TextBox свойства в момент набора текста
Добрый день. Хочу, чтоб моя программа удовлетворяла требованиям MVVM, в частности, чтобы Вью ничего не знало про Бехайнд-код. У меня есть...

33
 Аватар для Рядовой
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
14.01.2020, 20:35
Ахромчон, ничего не понял
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
14.01.2020, 21:24
Ахромчон, вы за передачу значений по привязкам?
Если да, то за это отвечает свойство привязки UpdateSourceTrigger .
Для передачи значений сразу, а не после потери фокуса надо задать UpdateSourceTrigger=PropertyChanged
1
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
14.01.2020, 22:07  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Ахромчон, вы за передачу значений по привязкам?
Если да, то за это отвечает свойство привязки UpdateSourceTrigger .
Для передачи значений сразу, а не после потери фокуса надо задать UpdateSourceTrigger=PropertyChanged
Типа?
XML
1
Text="{Binding address, UpdateSourceTrigger=PropertyChanged, Delay=1000}"
а еще Mode=TwoWay обязательно?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
14.01.2020, 23:17
Цитата Сообщение от Ахромчон Посмотреть сообщение
а еще Mode=TwoWay обязательно?
Если нужна двухсторонняя передача данных между свойствами, то да - обязательно.

НО! Для большинства свойств это режим по умолчанию.
Для TextBox.Text - точно этот режим и так установлен.

Добавлено через 2 минуты
Цитата Сообщение от Ахромчон Посмотреть сообщение
Delay=1000
Не многовато?
Задержка целую секунду. Может раздражать.
Для чего вы, вообще, установили этот параметр?

Он имеет смысл только при очень частых (десятки и более раз в секунду) и масштабных (десятки привязок) обновлений значений.
1
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
15.01.2020, 08:11  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Не многовато?
Задержка целую секунду. Может раздражать.
Для чего вы, вообще, установили этот параметр?
По вашей наводке подсмотрел на стеке как это выглядит и себя ведет. Поигрался с задержкой, понял что мне это не нужно.

Вы когда -нибудь делали себе такое?

-кнопка. Жмете ее. происходит (1-10сек.) операция вызванная этой кнопкой. Button event сработал.
Чтобы юзер (особенно буйные ) не "долбили" эту кнопку во время операции, она становится что-то типа "disabled" на время 2-3 сек (время подгоняется).

это "красиво" делает кнопку "disabled",
но и убивает Event.

C#
1
2
3
4
5
6
7
8
9
private async void button_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
 
{
            UIElement element = (UIElement)sender;
            element.IsEnabled = false;
            await Task.Delay(3000); // 3 seconds
            element.IsEnabled = true;
 
}
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
15.01.2020, 10:53
Цитата Сообщение от Ахромчон Посмотреть сообщение
Вы когда -нибудь делали себе такое?
-кнопка. Жмете ее. происходит (1-10сек.) операция вызванная этой кнопкой. Button event сработал.
Чтобы юзер (особенно буйные ) не "долбили" эту кнопку во время операции, она становится что-то типа "disabled" на время 2-3 сек (время подгоняется).
это "красиво" делает кнопку "disabled",
но и убивает Event.
Это в принципе не верно!
Так делать нельзя - только путаете сами себя.

Что такое "Нажал на кнопку" - это обратился к команде обрабатывающей данные.
Что такое " не "долбили" эту кнопку во время операции" - это во время каких-то действия состояние команды должно быть неактивно.
То есть у нас в Модели должно быть свойство которое возвращает, что этот метод не может выполняться.
В View, в принципе, не должно быть других потоков.
Они могут быть в Модели, могут быть в ViewModel со стороны Модели.

Вот примерно как это должно выглядеть.

Есть некая Модель обрабатывающая данные.
Обработка долгая.
В Модели есть свойство-флаг возвращающее готовность метода принять следующую порцию данных.
Сама обработка данных происходит во ВНУТРЕННЕМ приватном методе модели.
Обращение к этому методу возможно через ВНЕШНИЙ публичный асинхронный метод.
C#
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
38
39
40
41
42
43
44
45
46
47
48
49
50
    /// <summary>Model с асинхронными методами</summary>
    public class AsyncModel : OnPropertyChangedClass
    {
        /// <summary>Поле для хранения значения свойства</summary>
        private bool _isReadyMetod = true;
        /// <summary>Свойство-флаг отражающее возможность вызова метода</summary>
        public bool IsReadyMetod { get => _isReadyMetod; private set => SetProperty(ref _isReadyMetod, value); }
 
        public AsyncModel(/* Данные для инициализации если нужно */)
        {
            /// Какая-то работа по инициализации модели
            /// Допустим - загрузка начальных данных
 
            /// Когда модель готова к работе устанавливается свойство готовности
            IsReadyMetod = true;
        }
 
        /// <summary>Внутрений метод обрабатывающий данные</summary>
        /// <param name="data">Данные для метода</param>
        private void Metod(object data)
        {
            /// Эмуляция времени работы метода
            Thread.Sleep(5000);
        }
 
        /// <summary>Метод возвращающий данные из Модели</summary>
        /// <returns>Данные</returns>
        public object GetData()
        {
            return "НАБОР ДАННЫХ";
        }
 
        /// <summary>Публичный метод для обращения к внутренему методу</summary>
        /// <param name="data">Жанные для метода</param>
        public async void MetodAsync(object data)
        {
            /// Отказ в исполнении если метод не готов
            if (!IsReadyMetod)
                return;
 
            /// Установление флага занятости метода  
            IsReadyMetod = false;
 
            /// Вызов внутреннего метода модели
            await Task.Factory.StartNew(Metod, data);
 
            /// Установление флага готовности метода  
            IsReadyMetod = true;
        }
    }

Для согласования Model с View создаётся ViewModel.
В ней для подключения кнопки создаются КОМАНДА.
У команды два метода. Один для обработки данных, второй для сообщения о состоянии команды - может она выполняться сейчас или нет.
Так же у команды есть метод Invalidate через который можно сообщить о необходимости перепроверки её состояния.
C#
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
    /// <summary>ViewModel для согласования Model с View</summary>
    public class AsyncVM : OnPropertyChangedClass
    {
        /// <summary>Поле со сылкой на Модель</summary>
        private readonly AsyncModel model = new AsyncModel(/* Данные для инициализации если нужно */);
 
        public AsyncVM()
        {
            /// Подключение прослушки к Модели
            model.PropertyChanged += Model_PropertyChanged;
 
            /// Инициализация команды
            FirstCommand = new RelayCommand(p => model.MetodAsync(p), p => model.IsReadyMetod);
        }
 
        /// <summary>Метод-прослушка Модели</summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Model_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            /// Если изменилось свойство-флаг готовности метода, то перепроврить состояние команды
            if (e.PropertyName == nameof(AsyncModel.IsReadyMetod))
                FirstCommand.Invalidate();
        }
 
        /// <summary>Команда для кнопки</summary>
        public RelayCommand FirstCommand { get; }
    }
И подключается VM к окну
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    <Window.DataContext>
        <local:AsyncVM/>
    </Window.DataContext>
    <StackPanel>
        <!--List  - выбранный элемент которого надо передать как данные-->
        <ListBox x:Name="listBox">
            <sys:String>Один</sys:String>
            <sys:String>Два</sys:String>
            <sys:String>Три</sys:String>
        </ListBox>
        <Button  Content="Обработать выбранный элемент"
                 Command="{Binding FirstCommand}"
                 CommandParameter="{Binding SelectedItem, ElementName=listBox}"/>
    </StackPanel>
Добавлено через 3 минуты
Используемые классы - они (или их аналоги) должны быть в любом WPF решении

Новая реализация OnPropertyChangedClass [WPF, Элд Хасп]

Новая реализация RelayCommand с исправлениями от proa33 и kolorotur [WPF, Элд Хасп]
1
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
15.01.2020, 11:11  [ТС]
Элд Хасп,

Это конечно все круто. Много строк и все такое... и не читаемо.

Элд Хасп такие сложности не нужны для такого класса аппликаций!

Mне просто кнопку сделать "disable" на время выполнения операции (занимает 1-2 сек).


C#
1
2
3
4
5
6
7
8
9
10
11
12
private void Button_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
                 // do smth
        }
 
        
 
 
private void Button_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
               // do smth
        }

Последовательность:
-кнопка нажата, кнопка "disabled" (на 1-2 сек.),выполняется содержимое в теле метода buttonDown.
-кнопка "enabled" выполняется содержимое в теле метода buttonUp
-состояние покоя (default)
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
15.01.2020, 11:53
Цитата Сообщение от Ахромчон Посмотреть сообщение
Это конечно все круто. Много строк и все такое... и не читаемо.
Элд Хасп такие сложности не нужны для такого класса аппликаций!
Что такое "аппликации"?

Вы, судя по обрывкам кода, работаете с данными в CB окна.
Если это так, то это ОЧЕНЬ НЕ ПРАВИЛЬНО!

WPF - инструмент специально созданный для реализации View в паттерне MVVM.
И использование его вне этого паттерна возможно, но превращает приложение в гору костылей которая разваливается от любого чиха.
И сделать в такой манере сколько нибудь существенное реальное решение самостоятельно и, тем более, в команде просто не выйдет.

Поэтому все эти "много строк" - они в любом случае должны быть в WPF решении.
Всё, что непосредственно относится к вашей задаче (отключение кнопки на время работы метода) - это только одна строчка из метода прослушки - вызов метода команды Invalidate().

Остальное "не читаемое" - научитесь читать. Иначе никогда не сможете делать нормальных WPF решений.
0
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
15.01.2020, 12:12  [ТС]
Элд Хасп,
В корне неправильно для данной App. Годится только для офисной муры.

то, что метод выполнился здесь в этой App, не означает того, что этот метод запустил что-то где-то в "другой степи", завершилось.
Особенно если "из другой степи" нет обратной связи, а есть только примерное время исполнения.
Если "слушать" так это флаг исполнения в "другой степи", а так как его нет и не будет. Просто "банится" кнопка.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
15.01.2020, 12:27
Цитата Сообщение от Ахромчон Посмотреть сообщение
то, что метод выполнился здесь в этой App, не означает того, что этот метод запустил что-то где-то в "другой степи", завершилось.
Естественно.
Я же не буду здесь для примера писать приложение с WEB, БД и т.п.

Речь идет только о том, что определять может выполняться обработка следующей порции данных или нет - это функционал обработчика данных, то есть Модели.
Даже, если нет желания всерьёз в это влазить и просто делается задержка перед следующей порцией данных, то эту задержку должна делать Модель, а не View.

Допустим, по тем или иным причинам, изменился алгоритм обработки данных и время этой обработки.
Изменения затрагиваю Модель и там же если надо меняется время задержки - потому, что это связанные ДАННЫЕ.

При реализации же этой задержки в View, изменяя алгоритм Модели придётся ещё и лезть в View - на два уровня вверх.
Это НЕ нормально!
0
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
15.01.2020, 12:34  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
то эту задержку должна делать Модель, а не View.
Хорошо, допустим Model "забанила" все клики долбящего кнопку "дятла-юзера" на время t=response.
но в любом случае нужно показать "дятлу", что не стоит долбиться, -вот гляди кнопка "disabled".
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
15.01.2020, 13:21
Цитата Сообщение от Ахромчон Посмотреть сообщение
Хорошо, допустим Model "забанила" все клики долбящего кнопку "дятла-юзера" на время t=response.
но в любом случае нужно показать "дятлу", что не стоит долбиться, -вот гляди кнопка "disabled".
Ну, так я же показал как это передать от Модели в View.
C#
18
19
20
21
22
23
24
25
26
27
28
29
30
        /// <summary>Внутрений метод обрабатывающий данные</summary>
        /// <param name="data">Данные для метода</param>
        private void Metod(object data)
        {
            /// Эмуляция времени работы метода
             
            /// Обращаемся к БД или в WEB типа socket.Send(....);
           /// Не ждём обратной реакции просто задаём достаточное время для ожидания
           /// Если изменится наше обращение, то тут же мы можем поменять и время ожидания
 
            Thread.Sleep(5000); /// Наше время ожидания. Можно задать литералом, можно константой, можно взять из поля
 
        }
0
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
15.01.2020, 13:47  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Ну, так я же показал как это передать от Модели в View.
Вообще не пойму куда и что мне вставлять в мой App. превращение простейшей App в какого-то не читаемого монстра. Ради того чтобы "забанить" кнопку на время.
Это для меня сложно... убийство времени на не нужные вещи. Наверняка есть пути более читаемые и в тоже время работоспособные.


C#
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
private void Button_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
 
                var btn = (Button)sender;
                btn.IsEnabled = false; //Disable button.
                var fooTimer = new System.Timers.Timer(1000); //Exceute after 5000 milliseconds
                fooTimer.Elapsed += (fooTimer_s, fooTimer_e) =>
                {
                    //It has to be dispatched because of thread crossing if you are using WPF.
                    Dispatcher.Invoke(() =>
                        {
                            btn.IsEnabled = true; //Bring button back to life by enabling it.
                            fooTimer.Dispose();
                        });
                };
                fooTimer.Start();
 
 
 
            try
            {
                // check up if it functions properly with try/catch operator
 
                MessageBox.Show("привет Элд Хасп!");
 
 
            }
 
 
            catch (Exception ex)
            {
 
              // still nothing 
 
 
 
            }
 
 
 
        }
 
 
        private void Button_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
 
            
            
 
            try
            {
                // check up if it functions properly with try/catch operator
 
                MessageBox.Show("I'm from ButtonUp");
 
                // Как сделать чтобы здесь все выполнялось?
            }
 
 
            catch (Exception ex)
            {
 
                // still nothing 
 
 
 
            }
 
        }
Добавлено через 12 минут
Элд Хасп,

может выложите sample-project с кнопкой. Я хотя бы гляну в целом как это работает. Из кусков кода вообще не вижу ничего.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
15.01.2020, 14:18
Цитата Сообщение от Ахромчон Посмотреть сообщение
может выложите sample-project с кнопкой. Я хотя бы гляну в целом как это работает. Из кусков кода вообще не вижу ничего.
Я же целиком выложил вам пример.
Там больше нет ничего.

Два типовых класса RelayCommand и OnProperyCnahgedClass.
Два класса для Модели и ViewModel.
И окно.
Всё полностью приведено в посте #7.
CB окна полностью ПУСТОЕ!
Так желательно чтобы всегда у окон было.
Там только
C#
1
2
3
4
    public partial class MainWindow : Window
    {
        public MainWindow() => InitializeComponent();
    }
0
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
15.01.2020, 14:23  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
CB окна полностью ПУСТОЕ!
Вам все очевидно потому что вы это делали! Вы не можете быть объективны.

Уже неправда, в CB должно хотя бы быть событие click той кнопки что "банится"... Иначе как исполнять метод?
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
15.01.2020, 14:32
Цитата Сообщение от Ахромчон Посмотреть сообщение
в CB должно хотя бы быть событие click той кнопки что "банится"... Иначе как исполнять метод?
В CB можно делать всякие свисто-перделки, типа анимации и т.п. операции не влияющие на бизнес-логику.
А про метод вам уже пояснили
0
21 / 17 / 1
Регистрация: 01.09.2019
Сообщений: 262
15.01.2020, 14:36  [ТС]
Почтальон, да вы не в теме вообще о чем мы...
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
15.01.2020, 14:50
Ахромчон, сделал для вас отдельное решение с демонстрацией.
Добавил туда ещё отображение времени ожидания.
В проекте скопировалось ещё несколько WPF конвертеров.
Для решения они не нужны, но удалять не стал - может вам где-то в другом решении пригодятся.
Вложения
Тип файла: 7z WpfAhromchon.7z (167.0 Кб, 2 просмотров)
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,142
Записей в блоге: 2
15.01.2020, 14:52
Цитата Сообщение от Ахромчон Посмотреть сообщение
Уже неправда, в CB должно хотя бы быть событие click той кнопки что "банится"... Иначе как исполнять метод?
Кнопка привязывается к команде.
А событие Click используется только если нужно ВНУТРИ View. Допустим, для запуска анимации.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.01.2020, 14:52
Помогаю со студенческими работами здесь

Нужно во время выполнения приложения менять свойства IsEnabled TextBox'ов
Ситуация такая: Есть шаблон TextBox, мне нужно во время выполнения приложения менять свойства IsEnabled TextBox'ов. Если задать его...

Изменение забиндинного свойства Text компонента TextBox по нажатию Enter
Столкнулся со следующей проблемой: есть форма, на ней всего 2 активных элемента - кнопка и текстбокс код: &lt;Window...

Выполнить команду в set свойства для свойства SelectedItem (ComboBox ) MVVM
Хай Коротко: при каждом выборе элемента из ComboBox нужно выполнять команду, для которой в качестве параметра нужно передать экземпляр...

Биндинг свойства контрола к одной из переменных свойства класса
Добрый день. У меня есть вопрос по биндингу. Ситуация следующая: У меня есть структура, которой содержится несколько переменных....

Реализовать зависимость свойства volume у mediaElement от свойства Value у slider
Добрый день! Как можно реализовать зависимость свойства volume у mediaElement от свойства Value у slider? Что бы при увеличении значения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru