Просмотр полной версии : ND Apllication Framework
Stanislav Lvovskiy
26.07.2010, 14:36
Всем известно что разработка проект с нуля дело затруднительное и сложное - по этой причине большое распространение получают платформы по разработке различных приложений.
Компания NetDec рада вам представить свою собственную платформу ND.
На данный момент платформа ND используется более чем в 20 крупных и средних проектах, написанных компанией NetDec за последние 3 года.
На данный момент платформа подхвачена несколькими компаниями Ташкента, Андижана, Бухары.
Касимов Отабек
17.08.2010, 22:49
Мне прислал вопрос. и я решшил ответить на него сдесь.
From Hayot
kak sozdat ssilku v otchote chtob ssilka sozdavala noviy dokument. V smisli yesli ya poshital procenti kredita i xochu sozdat noviy document s dannimi v otchote dlya pogasheniye procenta
Как создавать !?!
1) требуется заполнить свойство Discription у ячейки (если выхотите программно все делать!).
2) при настройке шаблона надо указать гиперсылку в ячейке - dsr:/param/ -слово param заменяться на ваш парамент, который придается данной области при формирования отчета.
Касимов Отабек
26.08.2010, 12:44
У нас появилась страница посвещеная нашей платформе ND Application Framework (http://www.netdec.uz/index.php?option=com_content&view=category&layout=blog&id=19&Itemid=34)
Возникла ситуация, когда нужно чтобы обновление базы происходило автоматически, во время запуска обновленной программы.
В билдере есть возможность создавать уровень наследования.
Можно получить механизм инструкции по применению.
Если это то что мне нужно, то как связывать скрипты обновления в коде. Не хочется изобретать колесо, если оно уже есть :)
Касимов Отабек
03.09.2010, 09:35
Возникла ситуация, когда нужно чтобы обновление базы происходило автоматически, во время запуска обновленной программы.
В билдере есть возможность создавать уровень наследования.
Можно получить механизм инструкции по применению.
Если это то что мне нужно, то как связывать скрипты обновления в коде. Не хочется изобретать колесо, если оно уже есть
Создание нового уровня не возможно програмно из приложения. Это прирегатива построителя (ND.Builder).
Все вуровни приложения регистрируются в таблице qdb.InheritanceLevels. ND проверяет соответствие уровень приложения и базы к которой хотят подключится.
Механизмы обновление исполняются только на довереный уровень приложения.
Если вы хотите распространять приложение с новым уровнем приложения то это начнется либо с новой базой в который этот уровень создан либо вы сами его создаете на базе у клиента (скриптом или построителем).
Компания NetDec рада вам представить свою собственную платформу ND.
А как-то ознакомиться с функционалом можно? Ну, хелп просмотреть или текстик какой?
Касимов Отабек
08.09.2010, 11:55
Компания NetDec рада вам представить свою собственную платформу ND.
А как-то ознакомиться с функционалом можно? Ну, хелп просмотреть или текстик какой?
Планируем выложит в ближайщее време.
В форме документа мы имеем футер в гриде, где можно делать агрегацию значений по колонке.
Есть ли такая же возможность в DocumentListFormе (в журнале документа)?
Очень хочется сделать агрегацию по колонке в пределах видимых по периоду документов.
Касимов Отабек
17.09.2010, 13:01
Компания NetDec рада вам представить свою собственную платформу ND.
А как-то ознакомиться с функционалом можно? Ну, хелп просмотреть или текстик какой?
Здесь (http://www.netdec.uz/index.php?option=com_content&view=category&layout=blog&id=19&Itemid=34)
Касимов Отабек
20.09.2010, 09:22
В форме документа мы имеем футер в гриде, где можно делать агрегацию значений по колонке.
Есть ли такая же возможность в DocumentListFormе (в журнале документа)?
Очень хочется сделать агрегацию по колонке в пределах видимых по периоду документов.
В форме списка документов и справочников присутствуем заранее установленый футер (он просто скрыт). Чтобы его использовать надо просто включить видимость и настроить его по вашим нуждам. :)
//установленый футер (он просто скрыт). Чтобы его использовать надо
//просто включить видимость и настроить его по вашим нуждам. :)
Сделал что то вроде этого
////////////
DataGridViewFooter foot;
foot.Grid = this.Grid;
var gr = this.Grid as INDDataGrid;
var c1 = (INDDataGridColumnWithFooter)gr.GetInputColumn("SummaTotal");
c1.FooterAggregate = ND.Framework.Windows.Forms.FooterAggreate.Sum;
c1.FooterText = "0";
foot.Visible = true;
foot.CallRecalc("SummaTotal");
////////////
Но футер никак не хочет расчитывать сумму по колонке.
Неужели теперь и считать придется самому :)
Касимов Отабек
27.09.2010, 17:47
Вот пример реализации в форме списка документа (пример взят из реального проекта:
namespace NetDec.Bmp.UI.Documents
{
[BindInterface(typeof(DividendPaymentDocument), InterfaceBinder.ListForm)]
public class DividendPaymentDocumentListForm : DocumentListForm
{
public DividendPaymentDocumentListForm()
: base(NDType.Get(typeof(DividendPaymentDocument)))
{
}
protected override void InitColumns()
{
this.Columns = new[]
{
Document.NumberPropertyName,
Document.DatePropertyName,
"Accessory",
"Destination",
"Payroll",
"FullPayment"
};
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
DataGridViewFooter foot = new DataGridViewFooter();
foot.Grid = this.Grid;
foot.Height = 20;
var col = this.Grid.Columns["FullPaymentColumn"] as InputColumn;
if (col != null)
{
col.FooterAggregate = FooterAggreate.Sum;
col.FooterTextDisplayFormat = System.Drawing.StringFormatFlags.DirectionRightToL eft;
col.HeaderText = UITexts.Sum;
}
}
}
}
ребят всё хорошо. но возникает такой вопрос - вы расхваливете здесь свою платформу, но при этом даже демо не выложили, которое можно пощупать и опробывать - расхваливаете кота в мешке (это раз). Второе, сюда по скриншотам - framework предназначен для создания прикладных программ - но наступает (потихоньку) эра web-приложений, готов ли ваш framework принять такой вызов? Третье, framework (опять же сюдя по скриншотам) предназначен только для Windows и похоже для создание приложений под среды от Borland и Microsoft? а если я не хочу использовать языки программирования от этих двух монстров? Четвёртое, чем Ваш framework лучше/хуже уже созданных? Например ISCRA Framework (http://www.iscra.ru/)
и плюс нужно установить свойство лист-формы
NeedRecalcFooter = true;
Касимов Отабек
04.10.2010, 10:22
ребят всё хорошо. но возникает такой вопрос - вы расхваливете здесь свою платформу, но при этом даже демо не выложили, которое можно пощупать и опробывать - расхваливаете кота в мешке (это раз). Второе, сюда по скриншотам - framework предназначен для создания прикладных программ - но наступает (потихоньку) эра web-приложений, готов ли ваш framework принять такой вызов? Третье, framework (опять же сюдя по скриншотам) предназначен только для Windows и похоже для создание приложений под среды от Borland и Microsoft? а если я не хочу использовать языки программирования от этих двух монстров? Четвёртое, чем Ваш framework лучше/хуже уже созданных? Например ISCRA Framework (http://www.iscra.ru/)
Спасибо вам за ваш вопрос.
На данный момент мы описываем это и будем старать ся выложить всю имеющую информацию. На данный момент тема создана для нескольких команд которые уже разрабатывают бухгалтерские и управленческие задачи с использованием нашей платформе.
Платформа предназначена для создания настольных приложений работающих с базой данных Microsoft SQL - 2005 (Express - поддерживается). Язык програмирования C#-3,5.
При создании нового уровня наследования в билдере блокируется существующий уровень и прект не компилируется.
- что мне делать чтобы иметь существующий функционал и объекты
и в то же время иметь свой уровень?
- я повторюсь, есть ли уже наработанный функционал, что бы прикручивать sql скрипты, для автоматического обновления базы, при выходе нового билда
Касимов Отабек
05.10.2010, 09:43
При создании нового уровня наследования в билдере блокируется существующий уровень и прект не компилируется.
- что мне делать чтобы иметь существующий функционал и объекты
и в то же время иметь свой уровень?
Возможность создания своего уровня предназначена для тех кто разрабатывает приложение поверх существующего. При этом блокируются, на изменение, все элементы нижних уровней. Принцип создания основан на понятие что нельзя изменять структуру класов к которым у вас нету доступа! т.е. если вы разрабатываете свое приложение (поверх существующего имея только скомпилированые библиотеки) то вы не можите изменять структуру в нутри них.
При создание своего уровня вы не теряете функционал приложения который создан в базовом приложении! вы можите даже его добавить! но только на уровне модификации формы.
У нас были случаи когда пользователям нужно сильно изменение и тогда мы просто блокировали документы определеного типа в базовом функционале и создовали свои, на своем уровне.
- я повторюсь, есть ли уже наработанный функционал, что бы прикручивать sql скрипты, для автоматического обновления базы, при выходе нового билда
При установке скриптов, чтобы подхватывалась версия базового приложения надо просто в скрипте указать версию базового прилодения до которй требуется поднять базу!
Пример указания версии до которй требуется поднять базовый уровень до исполнения скриптов.
--base:1.1.1.1
Касимов Отабек
08.10.2010, 15:29
У многих возникает вопрос с реализацией собственой расшифровки.
Как это можно сделать?
У класса отчета (наследника ExcelReport) есть виртуальный метод OnDecryption(Object sender, DecryptionCancelEventArgs e) - он вызыватся пр срабатывания расшифровки отчета. При определение этого метода вы получить источник расшивровки и объект расшифровки - и все что вы хотите вы можите сделать сами!
Главное не забывайте что все объекты полученные вами принадлежат одно контексту а при открытие формы ей нужны оъекты полученные именно! через контекст формы.
InputControl связан со справочником ТМЗ.
Можно ли вызывать список ТМЗ из справочника с определенным фильтром элементов?
Касимов Отабек
23.10.2010, 22:11
InputControl связан со справочником ТМЗ.
Можно ли вызывать список ТМЗ из справочника с определенным фильтром элементов?
Можно.
Надо подписаться на событие BeforeFormOpen и проинициализировать в нем фильтр. Если вам надо просто настроить владельца справочника - это можно настроть в ствойствах стратегии. (пишитие и я отвече как)
Erkin Kuchkarov
24.10.2010, 09:03
а если я не хочу использовать языки программирования от этих двух монстров?
В этом случае предлагается сспользование компиляторов ;)
Здравствуйте. Появилась потребность расширять уже скомпилированное приложение. Вопрос следующий: как может сторонний программист добавить свой функционал к приложению? Поддерживает ли платформа возможность писать свои компоненты (плагины) к приложению?
Касимов Отабек
29.10.2010, 00:03
Здравствуйте. Появилась потребность расширять уже скомпилированное приложение. Вопрос следующий: как может сторонний программист добавить свой функционал к приложению? Поддерживает ли платформа возможность писать свои компоненты (плагины) к приложению?
1) Можно написать внешние компаненты.
Компаненты могут оперироовать объектами приложения но создовать свои нельзя! - пример компоненты постовляется вместе с версией - "Загрузка остатков"
2) Можно создать свое приложение на основе текущего с возможностью добавления собственых объектов на своем уровне - приложение просто наследуется.
Сори что сразу все не описал - просто много писать может спперва выберите что желаете :rtfm::buba:
...
может спперва выберите что желаете :rtfm::buba:в базу нужно импортировать документы Приходный ордер и Платежное поручение, на подобие функции 1с. данные могут быть в текстовом виде, это не важно.
я конечно могу написать программу, которая будет напрямую работать с базой sql и хранимыми процедурами, но боюсь в будущем вы можете закрыть доступ к базе данных из за соображений безопасности. поэтому хотелось бы это как то интегрировать в готовое приложение, не компилируя его код.
т.е. поддерживает ли платформа подключаемые модули, которые могут оперировать базой посредством платформы (в данном случае ее методами добавления документов в базу, и возможно, их проводке)?
Касимов Отабек
29.10.2010, 21:27
т.е. поддерживает ли платформа подключаемые модули, которые могут оперировать базой посредством платформы (в данном случае ее методами добавления документов в базу, и возможно, их проводке)?
Прилогаю вайл шаблонов для студии.
Создайте пустой проект библиотеки и в нем создайте "ND External Component Item Template" - это внешняя компанента (приложение может его грузить по желанию пользователя).
На этом принцепе построена загрузка остатков. Смотрите туда и делайте.
...
может спперва выберите что желаете :rtfm::buba:в базу нужно импортировать документы Приходный ордер и Платежное поручение, на подобие функции 1с. данные могут быть в текстовом виде, это не важно.
я конечно могу написать программу, которая будет напрямую работать с базой sql и хранимыми процедурами, но боюсь в будущем вы можете закрыть доступ к базе данных из за соображений безопасности. поэтому хотелось бы это как то интегрировать в готовое приложение, не компилируя его код.
т.е. поддерживает ли платформа подключаемые модули, которые могут оперировать базой посредством платформы (в данном случае ее методами добавления документов в базу, и возможно, их проводке)?
Буду считать что вы сторонний разработчик
В вашем случае идеально подходит вариант использованный во внешней компоненте "Загрузка остатков"
Внешний компонент (плагин-dll)
В пустом проекте dll нужно создать форму производную от ND.Framework.Windows.External.ExternalComponentFor m
Форма имеет свойство Context - производный от DataContext.
Чтобы получить доступ компонент документам платежного поручения:
var docList = Context.GetTable<PaymentOrderDocument>() - эквивалентно ВыбратьДокументы в 1С
и вот вы уже имеете возможномть создавать новые экземпляры документов и манипулировать существующими
vBulletin® v3.8.5, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot