Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Открыть новую тему     Написать ответ в эту тему

Zvezdmii_Lord

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
4seasons да суть и так ясна, полениться хотел чутка)

Всего записей: 20 | Зарегистр. 25-08-2017 | Отправлено: 12:16 13-03-2019
4seasons



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zvezdmii_Lord
Цитата:
полениться хотел чутка

Если хочется полениться, ленитесь не здесь.


Всего записей: 5509 | Зарегистр. 31-05-2009 | Отправлено: 12:54 13-03-2019 | Исправлено: 4seasons, 12:55 13-03-2019
CWolfy

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
День добрый!  
Возник вопрос по использованию DevExpress 17.2 в ASP MVC 5
Есть некое приложение, приложение выводит список документов, и должно уметь показывать прикрепленные сканы оригиналов документов. Попытался реализовать это через Master Detail Grid и Gallery

Код:
 
@(Html.DevExtreme().DataGrid<QualityPassport>()
  .ShowBorders(true)
  .DataSource(d => d.WebApi()
      .RouteName("QualityPassport")
      .LoadAction("Get")
      .Key("Id"))
  .Columns(columns => {
      columns.AddFor(m => m.Id);
      columns.AddFor(m => m.DocNumber);
      columns.AddFor(m => m.DocDate);
      columns.AddFor(m => m.UserDescr);
      columns.AddFor(m => m.ScanDate);
      columns.AddFor(m => m.DocHexNrec);
  })
  .Paging(p => p.PageSize(20))
  .FilterRow(f => f.Visible(true))
  .HeaderFilter(f => f.Visible(true))
  .RemoteOperations(true)
  .MasterDetail(md =>
  {
md.Enabled(true);
      md.Template(@<text><div class="master-detail-caption"> список файлов:
                      @(Html.DevExtreme().Gallery()
                      .ID("gallery")
                      .DataSource(d => d.WebApi()
                          .RouteName("QualityPassport")
                          .LoadAction("GetPictures")
                          .LoadParams(new { id = new JS("data.Id") })
                          )
                      .Height(2000)
                      .Loop(true)
                      .SlideshowDelay(4000)
                      .ShowNavButtons(true)
                      .ShowIndicator(true)
                      )
                      </div>  </text>);
})
 

Вроде как работает, но попросили добавить некоторые элементы. Сделал еще один контроллер и представление Пытаюсь передать ему данные

Код:
 
md.Enabled(true);
  md.Template(@<text><div class="master-detail-caption"> список файлов:
                  @(Html.Action("Index", "Image", new {id = new JS("data.Id")}))
                  </div>  </text>);})
 

но в этом случае id всегда null. Если же при отладке жестко задать id, то все в порядке детализация показывается. Вопрос. Как правильно передавать данные?

Всего записей: 66 | Зарегистр. 15-01-2008 | Отправлено: 11:41 21-03-2019
Zvezdmii_Lord

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую, вопрос тоже по DevExpress 18.2, а именно по DateEdit.  
Есть gridView, столбец с датой рождения, на этот столбец через дизайнер devExpress наложен dateEdit, тобишь кликая на йчейку в этом столбце появляется календарь с выбором даты. Mask = "d" (только дата), EditFormat = DateTime "d", DisplayFormat = DateTime "d".
Читал документацию на оф сайте, по сути должна писаться только дата, но у меня же при выборе в EditForm показывает просто дату, но в базу пишется значение типа дата 00:00:0000 (проставляется время в виде нулей)
 
Как убрать эти нули? Можно попробовать привязать к столбцу эдитор через код, но как убрать это время поганое?) Данные беру из мускула так же средствами DataSource. Столбец Дата рождения в мускуле формата varchar.

Всего записей: 20 | Зарегистр. 25-08-2017 | Отправлено: 13:54 28-03-2019
dneprcomp



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zvezdmii_Lord

Цитата:
 но в базу пишется значение типа дата 00:00:0000

Передавайте в базу преобразованные в стринг данные.

Код:
DateTime.Now.ToString("MM/dd/yyyy")     05/29/2015

DateTime Format In C#

Всего записей: 3920 | Зарегистр. 31-03-2002 | Отправлено: 16:14 28-03-2019
Zvezdmii_Lord

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
привет, может кто сталкивался
Я работаю с сертификатами, подумал надо бы себе сделать табличку с фирмой к примеру в один столбец  gridview (creat_time) забивать значение окончания срока сертификата, а во втором столбце (end_time)  выводить значение ДатаОкончания - Datetime.now = значение (как понимаю timespan):
 

Код:
 
 
        private void gridView2_CustomUnboundColumnData(object sender, CustomColumnDataEventArgs e)
        {
            GridView view = sender as GridView;
            if (e.Column.FieldName == "end_time" && e.IsGetData) e.Value =
     getTotalValue(view, e.ListSourceRowIndex);
        }
 
        TimeSpan getTotalValue(GridView view, int listSourceRowIndex)
        {
            DateTime endCert = Convert.ToDateTime(view.GetListSourceRowCellValue(listSourceRowIndex, "creat_time"));
            DateTime datanow = DateTime.Now;
            TimeSpan raznica = endCert - datanow;
            return raznica;
 
        }
 
 
 

 
Добавил собственно unbound column
 

Код:
 
GridColumn unbColumn = gridView2.Columns.AddField("До окончания");
            unbColumn.VisibleIndex = gridView2.Columns.Count;
            unbColumn.UnboundType = DevExpress.Data.UnboundColumnType.DateTime;
            // Disable editing.  
            unbColumn.OptionsColumn.AllowEdit = false;
            // Specify format settings.  
            unbColumn.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime;
            unbColumn.DisplayFormat.FormatString = "d";
            // Customize the appearance settings.  
            unbColumn.AppearanceCell.BackColor = Color.LemonChiffon;
 

 
При расчете мне во всех ячейках этой колонки выводится разное значение:
 
   
 
Может считаю не так? пробовал просто вывести DateTime.Now, Выводит корректно. Т.е. если в ячейке нет Даты окончания срок сертификата соответственно ничего не проставлять, если есть то считать. И как сделать только в количестве дней?

Всего записей: 20 | Зарегистр. 25-08-2017 | Отправлено: 07:28 23-04-2019 | Исправлено: Zvezdmii_Lord, 08:57 23-04-2019
Mextrom



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zvezdmii_Lord
DateTime.Now - метод (по сути). При каждом вызове новое значение даёт, соответственно, каждый раз новая разница. В getTotalValue можно добавить текущую дату параметром и передавать одно и то же значение.

Цитата:
И как сделать только в количестве дней?

если "в лоб", то

Код:
 
return raznica.Days;  
 

https://docs.microsoft.com/ru-ru/dotnet/api/system.timespan?view=netframework-4.8
ну и подправить тип колонки, т.к. это не дата.

Всего записей: 854 | Зарегистр. 30-03-2005 | Отправлено: 00:29 28-04-2019
4seasons



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Создал DataGridView без подключения DataSource.
На гриде и на всех колонках по отдельности выставил ReadOnly = False.
Программно добавил в неё пару строк, но никак не получается редактировать значение ячеек вручную.
На этой же форме создал новый DataGridView с теми же данными и настройками и на нем всё редактируется.
 
А что моей DataGridView не хватает?


Всего записей: 5509 | Зарегистр. 31-05-2009 | Отправлено: 12:46 15-07-2019 | Исправлено: 4seasons, 19:17 15-07-2019
mxm1975



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А что моей DataGridView не хватает?  

 
https://stackoverflow.com/a/26926133/133460

Всего записей: 279 | Зарегистр. 31-07-2002 | Отправлено: 01:25 17-07-2019
4seasons



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В Бухгалтерии 1С8 есть текстовый файл со списком конфигураций, который программа использует для заполнения стартового меню и запуска конфигураций.
Находится он здесь:
C:\Users\User\AppData\Roaming\1C\1CEStart\ibases.v8i
Пользователь User с обычными правами.
 
Вручную я могу его редактировать и даже удалять, а когда пытаюсь сделать это программно, то система все время выдает ошибку, что файл занят другим процессом, хотя 1С8 при этом не запущена. ProcessExplorer ничего на этот файл не показал.
Ради эксперимента программно создал копию этого файла в этой же папке под названием test.txt и он тоже оказался занят другим процессом и его тоже программно отредактировать не получилось
Создал вручную новый текстовый файл в этой папке, так и с ним программно тоже ничего не сделать.
Выходит, что в папке C:\Users\User\AppData\Roaming\1C\1CEStart\ программно ничего с файлами сделать нельзя.  
И в чем тут дело так и не смог понять.
 
Может у кого есть соображения на этот счет?

Всего записей: 5509 | Зарегистр. 31-05-2009 | Отправлено: 19:01 28-07-2019 | Исправлено: 4seasons, 19:37 28-07-2019
Sp44

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не пробовал редактировать под аккаунтом, который не имеет админовских прав? Может антивирус шалит?

Всего записей: 70 | Зарегистр. 20-09-2006 | Отправлено: 19:37 28-07-2019
4seasons



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sp44
Цитата:
Не пробовал редактировать под аккаунтом, который не имеет админовских прав? Может антивирус шалит?

Так у меня и так обычный аккаунт User. Выгрузил КИС - не помогло.
Чтобы отвязаться от 1С, создал тестовую папку с тестовым файлом:
C:\Users\User\AppData\Roaming\Test\ibases.txt
 
Так с ним такая же ерунда, программно ничего не сделать, занят другим процессом.
Похоже, что дело тут в самой папке C:\Users\User\AppData\Roaming.
Система почему программно редактировать файлы в ней не дает.
 
Неужто с этим ничего не поделать?

Всего записей: 5509 | Зарегистр. 31-05-2009 | Отправлено: 19:47 28-07-2019 | Исправлено: 4seasons, 19:49 28-07-2019
mxm1975



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Вручную я могу его редактировать и даже удалять, а когда пытаюсь сделать это программно, то система все время выдает ошибку

 
 
если бы точно знать что ты имеешь ввиду под этими "вручную" и "программно".
судя по

Цитата:
Чтобы отвязаться от 1С, создал тестовую папку с тестовым файлом:  
C:\Users\User\AppData\Roaming\Test\ibases.txt  

 
возможно ты запускаешь нечто "програмно" из студии, и студия держит процесс в памяти (для отладки) и твой файл занят\блокирован.
 
попробуй из командной строки написать нечто типа "echo 12345 >>  C:\Users\User\AppData\Roaming\Test\ibases.txt"
 
обрати внимание под каким пользователем, с какими правами (UAC) запущен cmd
 
если всё получилось, попробуй своё "программно" из под этого cmd (не из студии)
 
 
Добавлено:
ну и код покажи, конечно

Всего записей: 279 | Зарегистр. 31-07-2002 | Отправлено: 03:08 29-07-2019 | Исправлено: mxm1975, 03:09 29-07-2019
4seasons



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mxm1975
В общем как всегда, сам во всем виноват. Проглядел открытый стримридер, он то файл и держал.

Всего записей: 5509 | Зарегистр. 31-05-2009 | Отправлено: 11:20 29-07-2019 | Исправлено: 4seasons, 13:01 29-07-2019
Sp44

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Это не дурдом. У меня если что то подобное происходит - первым делом отстреливаю все процессы Visual Studio. Она знатно шалит с блокировкой файлов.

Всего записей: 70 | Зарегистр. 20-09-2006 | Отправлено: 13:56 29-07-2019
Zvezdmii_Lord

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
всем привет, подскажите пожалуйста. Пишу простую программку для пользователя для переподключения общего диска:

Код:
 
private void restartDisk_Click(object sender, EventArgs e)
        {
            WshNetwork network = new WshNetwork();
 
            //поиск сетевого диска
            foreach (DriveInfo d in DriveInfo.GetDrives())
            {
                if (d.DriveType == DriveType.Network && d.Name == "Z" + @":\")
                {
                    network.RemoveNetworkDrive("Z:", true, true); //Отключение найденного сетевого диска
                }
                 
            }
            //Подключение сетевого диска
            object save = false;
            object user = "логин", pass = "пароль";
            network.MapNetworkDrive("Z:", @"\\server\share", ref save, ref user, ref pass);
        }
 

 
так же при запуске программы у меня выводится статус vpn (диск подключается через openvpn) и статус самого диска, т.е. подключен он уже на компе или нет:
 

Код:
 
foreach (DriveInfo d in DriveInfo.GetDrives())
            {
                if (d.DriveType == DriveType.Network && d.Name == "Z" + @":\")
                {
                    label4.Text = "Подключен";
                    label4.ForeColor = Color.Green;
                }
                else
                {
                    label4.Text = "Отключен";
                    label4.ForeColor = Color.Red;
                }
            }
 

 
Сама проверка находится в таймере, проверяется каждую секунду.  
Когда я запускаю проект из студии то все прекрасно работает, если сначала диск не подключен, статус висит "Отключен", нажимаю на кнопку переподключения, диск цепляется и статус меняется на "Подключен". Так же беру, из Мой компьюетр, вручную, отключаю диск и статус меняется на "Отключен", нажимаю опять на переподключить и он опять подключается и статус горит "Подключен".
 
Собираю Release. Запускаю .exe от имени админа. Статус диска горит "Подключен". Отключаю диск, но статус не меняется, делаю переподключение по кнопке, не переподключает. В чем мой косяк?
 
Добавлено:
Сейчас посмотрел, что при запуске не от администратора все работает, но как быть. в данной форме у меня так же есть кнопка которая отвечает за перезапуск службы openvpn, а она только от имени администратора.
 
 
Добавлено:
и еще проверил на 7ке, нормально работает. У меня 10ка

Всего записей: 20 | Зарегистр. 25-08-2017 | Отправлено: 11:04 30-07-2019
RemComm



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zvezdmii_Lord

Цитата:
Запускаю .exe от имени админа

 
В этом и все дело. Подключение диска/установление соединения VPN  в текущем сеансе пользователя выполняется, а не для всех пользователей. От админа когда запускаете - создается новый пользовательский сеанс. В нем ваш код и работает и мониторит состоянии диска/управляет VPN соединением. А отключение вы делаете в сеансе текущего пользователя.
 

Цитата:
но как быть

А мутить сервис, который будет работать от (скажем) локальной системы и по сигналу от приложения, запущенного в сеансе текщего пользователя, будет перестартовывать сервис ooenvpn. Передать данные из процесса в просесс в. NET можно, например, через memory mapped files. Или Named Pipes. Для подробностей гуглевать IPC.
 
Или можно запускать отдельный процесс который перестартует опенвпн и завершится. Что-то вроде такого:
 

Код:
Process p = new Process();
p.StartInfo.Verb = "runas";

 
При этом будут запрошены учётные данные админа.

Всего записей: 838 | Зарегистр. 30-09-2003 | Отправлено: 00:32 31-07-2019 | Исправлено: RemComm, 03:54 31-07-2019
Zvezdmii_Lord

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Код:
Process p = new Process();
p.StartInfo.Verb = "runas";  

Спасибо, помогло.
 

Код:
 
            WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
            bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator);
 
            if (hasAdministrativeRight == false)
            {
 
                ProcessStartInfo processInfo = new ProcessStartInfo(); //создаем новый процесс
                processInfo.Verb = "runas"; //в данном случае указываем, что процесс должен быть запущен с правами администратора
                processInfo.FileName = "reloadVPN.bat";
                try
                {
                    Process.Start(processInfo);
                }
                catch (Win32Exception)
                {
                    //Ничего не делаем, потому что пользователь, возможно, нажал кнопку "Нет" в ответ на вопрос о запуске программы в окне предупреждения UAC (для Windows 7)
                }
            }
 

 
рядом положил батник для перезапуска

Всего записей: 20 | Зарегистр. 25-08-2017 | Отправлено: 12:09 31-07-2019
Zvezdmii_Lord

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
еще такой вопрос: я собираю проект в один .exe-файл с помощью ILMerge-GUI. Собирает нормально, только вот сам этот батник по перезапуску службы не берет. Как с этим быть подскажите?
 
Добавлено:
не стал изобретать велосипед, сложил все в папку подальше от глаз и кинул ярлык на стол, всем спасибо

Всего записей: 20 | Зарегистр. 25-08-2017 | Отправлено: 09:57 01-08-2019
Zvezdmii_Lord

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите еще по проверке запуска копии программы:

Код:
 
namespace Restart_Servises_and_Disk
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
 
            bool createdNew;
            // ReSharper disable once ObjectCreationAsStatement
            Mutex mtx = new Mutex(false, "Restart Servise and Disk", out createdNew);
            if (createdNew)
            {
               
                BonusSkins.Register();
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
            else
            {
                MessageBox.Show("Программа уже запущена!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                 
            }
             
        }
    }
}
 

вроде должно работать, но все равно вторая копия запускается

Всего записей: 20 | Зарегистр. 25-08-2017 | Отправлено: 12:08 02-08-2019
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование в среде .NET (ASP.NET,ADO.NET) на C#/VB.NET


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru