powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
66 сообщений из 66, показаны все 3 страниц
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38334849
Izya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый вечер.

Подскажите, пожалуйста, какими средствами можно решить следующую задачу.

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

Задача в том, что бы такие формы также сохранить в БД. В этом случае, клиентская часть представляет собой программу, которая подключается к БД, загружает данные о формах, строит эти формы "на экране клиента", и через них позволяет работать с данными и использовать логику БД.

Как реализовать хранение и загрузку таких форм? Поскольку задача не новая (тот же MSAccess, 1С, Navision как то такие формы хранzт), есть, наверное, технологии или даже языковые средства. Может есть другие идеи или опробованные методы - все интересно. Спасибо.
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38334859
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Izya,
Вам нужно готовое решение или хотите самостоятельно заняться разработкой такого?
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38334866
Izya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm
"...все интересно...". Я в этой теме человек новый, неопытный, поэтому мне действительно интересны все варианты. Если найдется готовое решение, которое окажется приемлимым, буду его пользовать, не найдется - буду создавать. Меня больше, наверное, название технологий или наводки на описания интересуют, а дальше сам попробую разобраться.
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38334869
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Izyaiscrafm
"...все интересно...". Я в этой теме человек новый, неопытный, поэтому мне действительно интересны все варианты. Если найдется готовое решение, которое окажется приемлимым, буду его пользовать, не найдется - буду создавать. Меня больше, наверное, название технологий или наводки на описания интересуют, а дальше сам попробую разобраться.
наводка на описание
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38335050
AlexKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Izyaiscrafm
"...все интересно...". Я в этой теме человек новый, неопытный, поэтому мне действительно интересны все варианты. Если найдется готовое решение, которое окажется приемлимым, буду его пользовать, не найдется - буду создавать. Меня больше, наверное, название технологий или наводки на описания интересуют, а дальше сам попробую разобраться.

Cache, Ensemble
www.intersystems.ru
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38335297
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Izya,
"у всех" таких задач Цель - обеспечить на стороне заказчика настройку или конфигурацию таких форм.
Т.е. не сопровождение в виде новых версий ПО, а отдача на откуп заказчику (клиенту).
Оно?
ЗЫ.
Ну, и формы (VIEW) не следуетмешать в БД с данными.
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38335482
Izya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще раз :)

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

БД в MS SQL, сейчас интерфейс на формах Access. Меня такой интерфейс не устраивает по следующим причинам
1) Сам Access в последнее время какой то странный стал :)
2) Число пользоветелей растет, поэтому обновление для клиентов тоже надо как то автоматизировать.

Вижу два варианта
1) чисто языковой. Например создаю форму в какой-нибуть языковой среде и потом ее (вместе с кодом, то есть, наверное, с классом) как то сохраняю в БД. Потом простой клиент такие классы из БД подгружает и создает его объекты (т.е. формы). Хочу понять, есть ли такой язык, как сохранять класс в БД, как его загружать.
2) системный. Есть конструктор, который генерит описание форм, и клиентская часть (типа библиотеки или даже целая апликуха) которая их из БД достает, интерпретирует и строит форму или целый интерфейс.

ЗЫ
Ну пусть это будет даже отдельная БД, с данными об интерфейсе.
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38335530
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Izya,
OFF
нравится или нет, но обоснование прыжка с Assess на Фреймворк\ERP странное.

Есть ещё вариант - обычная 2-х звенка.
БЛ в хранимках у тебя есть.
VIEW\Морду можна сваять на чём угодно. Хоть на Delphi. Т.к. Access это не ЯП и не программирование.
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38335547
AlexKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Izya,
Есть, СУБД Cache!
Вот пример класса, хранимого на сервере, который содержит описание формы, ее компонентов, содержит определенные методы сервера и клиента, содержит SQL-запросы.
Все это хранится в БД на сервере, там же где хранятся и данные.
Клиента писать не надо, используется ВЕБ-браузер.
Возможны и другие варианты, когда Вы самостоятельно пишете некий плеер, который будет запускаться на стороне клиента и подгружать к себе поток данных, описывающий форму.

Код: plaintext
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.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
/// ZENApp.HelpDesk
/// This is the main page of the Help Desk sample application.
/// Note that this page extends the <class>ZENApp.TemplatePage</class>
/// class; this is a template that provides a standardized 
/// look & feel for the application.
Class ZENApp.HelpDesk Extends ZENApp.TemplatePage
{

/// Class name of application this page belongs to.
Parameter APPLICATION = "ZENApp.SampleApp";

/// Displayed name of this page.
Parameter PAGENAME = "HelpDesk";

/// Domain used for localization.
Parameter DOMAIN = "ZENAPP";

/// This Style block contains page-specific CSS style definitions.
XData Style
{
<style type="text/css">

/* style for menu pane */
#treeMenu {
	height: 20.0em;
	width: 10.0em;
	overflow: auto;
	border: 1px solid darkblue;
	background: #EEEEEE;
}

/* style for message box */
#msgBox {
	height: 8.0em;
	width: 10.0em;
	overflow: auto;
	border: 1px solid darkblue;
	background: white;
}


#navBar .tnbrTable {
	width: 800px;
	border-bottom: none;
}

/* style for table pane */
#table table {
	width: 800px;
}

</style>
}

/// This XML block defines the contents of the menu pane.
XData menuPane [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<pane xmlns="http://www.intersystems.com/zen">
<dynaTree
	id="treeMenu"
	dataGlobal="%helpDeskMenu"
	showLines="true"
/>
</pane>
}

/// This XML block defines the contents of the message pane.
/// Here we use an HTML component and call a server-method to
/// get the message contents.
/// We use a timer to force periodic updates of the message box.
XData messagePane [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<pane xmlns="http://www.intersystems.com/zen">
<timer id="timer" 
	ontimeout="zenPage.msgTimer(zenThis);" 
	timeout="5000"/>

<titleBox title="Messages"/>

<html id="msgBox" OnDrawContent="DrawMessage" />
</pane>
}

/// This XML block defines the contents of the table pane.
XData tablePane [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<pane id="tPane" xmlns="http://www.intersystems.com/zen">
<titleBox title="HelpDesk: Incidents" 
		subtitle="Customer-reported incidents are listed below. Click on a row to edit its details." />
<tableNavigatorBar id="navBar" showPageSize="true" tablePaneId="table" />
<tablePane id="table"
	width="100%"
	useSnapshot="true"
	maxRows="1000"
	pageSize="20"
	tableName="ZENApp_Data.Incident"
	valueColumn="ID"
	onselectrow="zenPage.rowSelected(zenThis);"
	showQuery="false"
	showZebra="true"
	useKeys="false"
	fixedHeaders="true"
	bodyHeight="15.0em"
	headerLayout="headersOnTop"
	>
<column colName="ID" 
		width="50"
		/>
<column colName="Priority"
		width="100"
		id="filterPriority"
		filterType="enum"
		filterEnum="Critical,High,Low"
		filterOp="="
		 />

<column colName="Customer"
		colExpression="Customer->Name" 
		width="200"
		filterType="query"
		filterQuery="SELECT Name FROM ZENApp_Data.Customer ORDER BY Name"
		filterOp="="
		
		/>
<column colName="AssignedTo"  
		colExpression="AssignedTo->Name" 
		width="22%"
		filterType="text"/>
<column colName="CreateDate" 
		width="22%"
		filterType="date"
		filterOp="BETWEEN"
		 />
<condition colName="Priority" 
		predicate="EQ" 
		value="Critical" rowStyle="font-weight: bold;"/>

</tablePane>

<spacer height="10"/>

</pane>
}

/// This XML block defines the contents of the details pane.
XData detailPane [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<pane xmlns="http://www.intersystems.com/zen">
<fieldSet id="detailGroup" disabled="true" legend="Details">
<form id="detailForm" 
	layout="vertical" 
	labelPosition="top" 
	cellStyle="padding: 2px; padding-left: 5px; padding-right: 5px;"
	onchange="zenPage.detailFormChange(zenThis);" >
<hgroup>
<text id="ID" name="ID" label="ID" readOnly="true" size="5"/>
<spacer width="15"/>
<text id="CreateDate" name="CreateDate" label="Date" readOnly="true" size="8"/>
<spacer width="15"/>
<dataCombo id="Priority" name="Priority" label="Priority"
	size="12"
	dropdownHeight="150px"
	editable="false"
	unrestricted="true"
	sql="SELECT Name FROM ZENApp_Data.Priority ORDER BY Name"/>

<spacer width="15"/>

<dataCombo id="Customer" name="Customer" label="Customer"
	size="24"
	dropdownHeight="150px"
	editable="false"
	unrestricted="true"
	sql="SELECT ID,Name FROM ZENApp_Data.Customer ORDER BY Name"/>

<spacer width="15"/>

<dataCombo id="AssignedTo" name="AssignedTo" label="Assigned To"
	size="24"
	dropdownHeight="150px"
	editable="false"
	unrestricted="true"
	sql="SELECT ID,Name FROM ZENApp_Data.Employee ORDER BY Name"/>
</hgroup>

<textarea id="Comments" name="Comments" label="Comments" rows="3" cols="60"/>
<button id="btnSave" caption="Save" disabled="true" onclick="zenPage.detailFormSave();" />
</form>
</fieldSet>
</pane>
}

/// This class method callback is called just before the server-side page 
/// object is created.
ClassMethod %OnBeforeCreatePage() As %Status
{
	#; Make sure sample data is created for the application
	If '##class(ZENApp.Data.Incident).%ExistsId(1) {
		Do ##class(ZENApp.Data.Incident).BuildData()
	}

	#; Make sure array that defines the menu tree is defined
	#; (use a local and not a global)
	Kill %helpDeskMenu

	#; View items by priority
	For p="All","Low","High","Critical" {
		Set %helpDeskMenu("Priority",p) = "javascript:zenPage.setFilter('filterPriority','"_$S(p="All":"",1:p)_"');"
	}

	#; adjust page size
	For sz = 5,10,20,50,100,500 {
		Set %helpDeskMenu("Options","PageSize",sz) = "javascript:zenPage.setPageSize("_sz_");"
	}

	Set %helpDeskMenu("Options","Zebra") = "javascript:zenPage.setZebra();"

	Set %helpDeskMenu("Other","Chart") = "ZENApp.Chart.cls"

	Set %helpDeskMenu("Reports","Sales") = "ZENApp.MyReport.cls"
	For m = 1:1:12 {
		Set %helpDeskMenu("Reports","Sales","Month " _ $J(m,2)) = "ZENApp.MyReport.cls?MONTH="_m
	}

	Quit $$$OK
}

/// Draw the HTML that will be displayed within the
/// MessageBox
Method DrawMessage(pSeed As %String) As %Status
{
	#; create a random message
	Set tColors = $LB("red","green","blue","black","orange")
	Set tColor = $LG(tColors,$R($LL(tColors))+1)

	Set tMsgs = $LB("Fresh coffee in kitchen!","Company share price has gone up.","The boss is coming!","Customer crisis!","Lunch Time!")
	Set tMsg = $LG(tMsgs,$R($LL(tMsgs))+1)

	&html<#($ZDT($H,11))#<div style="color: #(tColor)#;">#(tMsg)#</div>>
	
	Quit $$$OK
}

/// MessageBox timer has fired.
ClientMethod msgTimer(timer) [ Language = javascript ]
{
	var html = this.getComponentById('msgBox');
	zenASSERT(html,"Unable to find html object",arguments);
	
	// update contents of message box
	html.refreshContents();

	timer.startTimer();
}

/// User selected a row in the table
ClientMethod rowSelected() [ Language = javascript ]
{
	var table = this.getComponentById('table');

	// update details pane using ID value from table
	var id = table.getProperty('value');
	this.ShowDetails(id);
}

/// Set page size for the table
ClientMethod setPageSize(sz) [ Language = javascript ]
{
	var table = this.getComponentById('table');
	table.setProperty('pageSize',sz);
}

/// Toggle zebra striping for the table
ClientMethod setZebra() [ Language = javascript ]
{
	var table = this.getComponentById('table');
	table.setProperty('showZebra',!table.getProperty('showZebra'));
}

/// Update table to new filter value
ClientMethod setFilter(filterId, value) [ Language = javascript ]
{
	var table = this.getComponentById('table');
	var column = this.getComponentById(filterId);
	zenASSERT(column,"Unable to find column object",arguments);

	// update filter value and re-execute query
	column.setProperty('filterValue',value);

	// 'true' means do not change current page for table
	table.executeQuery(true);
}

/// Form changed handler for detail form.
/// This is called whenever the modified state of the form changes.
ClientMethod detailFormChange(form) [ Language = javascript ]
{
	var mod = form.isModified();
	
	// toggle save button
	var btn = zenPage.getComponentById('btnSave');
	btn.setProperty('disabled',!mod);
}

/// Save contents of details panel.
ClientMethod detailFormSave() [ Language = javascript ]
{
	// send form to server and save details
	var form = zenPage.getComponentById('detailForm');
	this.SaveDetails(form);
}

/// ShowDetails:
/// Show contents of details pane.
ClassMethod ShowDetails(id) [ ZenMethod ]
{
	// try to open the object
	Set tObj = ##class(ZENApp.Data.Incident).%OpenId(id)
	If $IsObject(tObj) {
		&js<zenPage.getComponentById('ID').setValue('#(tObj.%Id())#');>
		&js<zenPage.getComponentById('CreateDate').setValue('#(tObj.CreateDateLogicalToDisplay(tObj.CreateDate))#');>
		&js<zenPage.getComponentById('Priority').setValue('#(tObj.PriorityGetObjectId())#','#($ZCVT(tObj.Priority.Name,"O","JS"))#');>
		&js<zenPage.getComponentById('Customer').setValue('#(tObj.CustomerGetObjectId())#','#($ZCVT(tObj.Customer.Name,"O","JS"))#');>
		&js<zenPage.getComponentById('AssignedTo').setValue('#(tObj.AssignedToGetObjectId())#','#($ZCVT(tObj.AssignedTo.Name,"O","JS"))#');>
		&js<zenPage.getComponentById('Comments').setValue('#($ZCVT(tObj.Comments,"O","JS"))#');>

		#; enable form/ clear mod flag
		&js<zenPage.getComponentById('detailGroup').setProperty('disabled',false);>
		&js<zenPage.getComponentById('detailForm').clearModified();>
	}
	Else {
		#; clear & disable form
		&js<zenPage.getComponentById('detailGroup').setProperty('disabled',true);>
		&js<zenPage.getComponentById('detailForm').reset();>
	}
	Quit
}

/// Save contents of details pane.
ClassMethod SaveDetails(form As %ZEN.Component.form) [ ZenMethod ]
{
	#; as we passed form object to server, we can
	#; finds its control values using %page.%GetValueById
	
	Set tID = %page.%GetValueById("ID")

	#; try to open the object (with exclusive lock)
	Set tObj = ##class(ZENApp.Data.Incident).%OpenId(tID,4)
	If $IsObject(tObj) {
		Do tObj.PrioritySetObjectId(%page.%GetValueById("Priority"))
		Do tObj.CustomerSetObjectId(%page.%GetValueById("Customer"))
		Do tObj.AssignedToSetObjectId(%page.%GetValueById("AssignedTo"))
		Set tObj.Comments = %page.%GetValueById("Comments")

		Set tSC = tObj.%Save()
		If $$$ISERR(tSC) {
			&js<alert('Error saving object!');>
		}
		Else {
			#; clear mod flags for form
			&js<zenPage.getComponentById('detailForm').clearModified();>
			
			#; update tablePane with new query
			&js<zenPage.getComponentById('table').executeQuery();>
		}
	}
	Else {
		&js<alert('Unable to save object!');>
	}
	Quit
}

/// This client event, if present, is fired when the page is loaded.
ClientMethod onloadHandler() [ Language = javascript ]
{
	zenPage.setTraceOption('js',false);
}

}
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38335729
vill_ager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Izya,
можно еще посмотреть тут
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38335742
iscrafm__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexKB, на этом форуме есть такой элемент (Дополнит\spoiler)
большой текстон позволяет оградит читателей от вынужденной перемотки на конец сообщения, если кто-то запостил непонятный текст на несколько страниц
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38335746
iscrafm__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vill_agerIzya,
можно еще посмотреть тут
у Вас на сайте вредоносное ПО. Посмотрите...
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38335753
AlexKB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm__AlexKB, на этом форуме есть такой элемент (Дополнит\spoiler)
большой текстон позволяет оградит читателей от вынужденной перемотки на конец сообщения, если кто-то запостил непонятный текст на несколько страниц


Спасибо, буду знать!
Я не из вредности, извините, Форумчане.
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38335759
vill_ager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iscrafm__vill_agerIzya,
можно еще посмотреть тут
у Вас на сайте вредоносное ПО. Посмотрите...
да, спасибо
похоже ломанули :(
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38335791
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TC,

Конфигуратор прикладных форм можно сделать и на самом аксесе . У меня был вариант - ADP + MSSQL2008. Для отображения форм, фильтрации, поиска, перехода по формам кода не нужно - все настраивается. Формы могут иметь сложную структуру - панели, связанные 1:1, 1:М, деревья и т.п.
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38336063
s_ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IzyaСоответственно, на клиентской стороне необходима только простая форма, которая бы показывала пользователю данные из БД и вызывала в ней хранимые процедуры. ...

web интерфейс - не оно?
:)
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38336126
vill_ager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
s_ustinov,

для вебинтерфейса нужен вебсервер
да и сама вебморда не дотягивает до десктопа по удобству

мне кажется что ТС скорее интересует вариант, когда для запуска программы нужны две вещи:

клиент, способный интерпретировать сохраненную в БД логику
собственно БД, хранящая данные и логику

в таком случае для установки новой версии ПО нужно только обновить в БД таблицы с логикой
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38336220
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сложно сказать что хочет автор. т.к. он ни на чём кроме access не писал.
Пусть берёт готовое.
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38336443
vill_ager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vill_ageriscrafm__пропущено...

у Вас на сайте вредоносное ПО. Посмотрите...
да, спасибо
похоже ломанули :(
уже почистил
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38337625
Izya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, у вас с логикой беда. То, что клиент сейчас написан на акцессе, вовсе не значит, что я писал только на акцессе. Мне так кааца.

Совсем по простому. Есть БД. Например (например!) в этой БД есть таблицы, содержащие данные об отгрузках со склада (заголовки, строки). Также там есть ХП, которая "выполняет" отгрузку, ставя какие то флаги, прописывая даты, меняя кол-ва на складе и тп. Сейчас в Акцессе есть форма, где эти таблицы есть источник данных, и которая, также, содержит большую кнопку "Отгрузить" которая вызывает выполнение это ХП в БД на стороне сервера.

Я ищу средство как заменить Access так, что бы можно было повторить логику интерфейса (и легко изменить ее, если потребуется), и что бы описание этого интерфейса вместе с этой интерфейсной логикой, хранилось на сервере, в самой БД (или рядом в другой БД), что бы на стороне клиенета был бы простейший загрузчик таких форм из этой БД.

Есть языки среды, где можно рисовать формы и сериализовать объекты (в том числе в БД), но мне нужно сериализовать объекты интерфейса вместе с кодом (даже если этот код достаточно простой) то есть речь идет IMHO о сериализации уже и класса. Я также рассматриваю возможность использовать какой то "интерфейный фреймворк", который бы можно прицепить к готовой БД в которой логика уже реализована. IscraFM вроде близка, но мне показалось, что с существующей БД, написанной без соблюдения определенных для этого фреймворка правил, она работать не будет. т.е надо исходную существующую рабочую БД (данные и логику предметной области) под это фреймворк менять - а не хотелось бы.

Понятней вроде некуда.

Я уж думаю, что в шарпе такую загрузку изобразить можно. Вопрос скорее в констукторе форм. Хотя можно прямо в среде рисовать а потом инфу о форме и о наборее ее контролов скидывать в БД, а код, поскольку он простой и сводится к вызову ХП, тоже как данные держать. Такое описание форм в принципе клинетнезависимо, можно, наверное, и WEB интерфейс по нему строить. Это пока наметки, но, вроде должно работать.

Я пытался найти готов решение
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38337627
Izya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не хочу на Cashe переходить. Он, возможно, хороший, но не хочу.
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38337656
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IzyaIscraFM вроде близка, но мне показалось, что с существующей БД, написанной без соблюдения определенных для этого фреймворка правил, она работать не будет. т.е надо исходную существующую рабочую БД (данные и логику предметной области) под это фреймворк менять - а не хотелось бы.
Izya, там не ограничивающих правил. Есть рекомендации, но это не ограничивающие правила. Скажем, если захотите делать распределенную интернет-систему, то есть такая рекомендация . Но никто не запрещает так не делать, рекомендации просто как попытка избавить от проблем в дальнейшем, потому что это все пройдено не один раз. Особенно если логика реализована при помощи ХП в СУБД, то это вообще, можно сказать, родное для нее .
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38337689
trdm_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Izya
Как реализовать хранение и загрузку таких форм?
В xml например.

Izya
Как реализовать хранение и загрузку таких форм? Поскольку задача не новая (тот же MSAccess, 1С, Navision как то такие формы хранит), есть, наверное, технологии или даже языковые средства. Может есть другие идеи или опробованные методы - все интересно. Спасибо.

готовой софтины, которой бы показал базу данных и таблицы, а она бы построила гуй с легкой кастомизацией практически нет. Есть только редакторы таблиц. У того же 1С-а все наоборот - сначала структуру рисуешь, а 1С по ней создает таблицы.
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38337693
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trdm_,

даже хаф это делает легко
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38337700
trdm_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+
у меня есть недософтинка , которая генерит гуй: Меню,списки элементов,формы элементов и групп, выполняет сериализацию из вот таких структур:

Код: plaintext
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.
void uoMainWindow::createTables()
{
	QString dbName = qApp->applicationDirPath() + QDir::separator()+"main.db";
#ifdef Q_OS_LINUX
	QDir home = QDir::home();
	if (!home.exists(".uoReceptor")) {
		home.mkpath(".uoReceptor");
	}
	dbName = home.absolutePath() + "/.uoReceptor/" + QDir::separator()+"main.db";
#endif


	m_dbMan->setupDataBase(dbName);
	m_receptTable = m_dbMan->addRefTable("ШаблоныPецептов","Шаблоны рецептов",6,120);
	m_receptTable->setOption(codeType_Number, true);
	m_receptTable->addField("Комментарий", fieldType_String,150);
	m_templField = m_receptTable->addField("Шаблон", fieldType_TextHTML);
	uoMdiObserver::instance()->m_receptTableId = m_receptTable->m_baseNom;

	uoDbRefTable* tmlpTabl = m_dbMan->addRefTable("Лекарства","Лекарства",6, 70);
	tmlpTabl->addField("ЛатИмя",fieldType_String,70)->m_descr = "Латинское наименование";
	tmlpTabl->addField("Описание",fieldType_Text);
	tmlpTabl->setOption(codeType_Number, true);

	tmlpTabl = m_dbMan->addRefTable("Симптомы","Симптомы",6, 100);
	tmlpTabl->setOption(codeType_Number, true);
	tmlpTabl->addField("Описание",fieldType_Text);

	tmlpTabl = m_dbMan->addRefTable("Заболевания","Заболевания",6, 100);
	tmlpTabl->setOption(codeType_Number, true);
	tmlpTabl->addField("Описание",fieldType_Text);

	m_dbMan->restructuring();//  Реструктуризация
	m_dbMan->createGuiFactory(this);
	m_receptTemplDocWidget = new QDockWidget(tr("Recept template"), this);
	m_receptTemplDocWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);

	uoUrl url = m_receptTable->getUoUrlByForm(uoFormT_Tree);
	url.setWithElem(true);
	m_docTreeFormRecept = m_dbMan->getForm(url);
	if (m_docTreeFormRecept) {
		m_docTreeFormRecept->setParent(m_receptTemplDocWidget);
		m_receptTemplDocWidget->setWidget(m_docTreeFormRecept);
		addDockWidget(Qt::LeftDockWidgetArea, m_receptTemplDocWidget);
		m_actionShowDocRecept = m_receptTemplDocWidget->toggleViewAction();
	}
}



никто не мешает мне добавить метод к uoDbRefTable с передачей например таких данных
QString formSrc = "<table id = "Лекарства" afterSaveXP=onRefSubmit()>
<label caption="Bla-bla-bla" buddy="Descr"></label><edit id="Descr"></edit>
<label caption="Bla-bla-bla2" buddy= "ЛатИмя"></label><edit id="ЛатИмя"></edit>
</table>";
tmlpTabl->setFormSrc(formSrc);

и построить по этой недоэксемэльке форму ввода, а после записи выполнить хранимку onRefSubmit().
пощупать что получилось можно скачав архив с программой .
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38337701
trdm_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRostrdm_,

даже хаф это делает легко
что это?
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38337840
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trdm_,

все мешает,
надо иметь инлайн редакторы (которые могут быть связаны между собой),
удобное расположение контролов,
вычислимые поля,
которые вычисялются по связям,
механизм лукап,
дрилл-даун,
автовызов паблик методов с передачей параметров (автоматический маппинг параметров метода к полям объектов)
и т.д.
ведь рвут же задницу девекспресс (хаф), майкрософт (лайтсвиич, асп дайнамикдейт, акссес),,..
и что то не особо получается, а то б никто давно не писал гуй
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38337844
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosвсе мешает,
надо иметь инлайн редакторы (которые могут быть связаны между собой),
удобное расположение контролов,
вычислимые поля,
которые вычисялются по связям,
механизм лукап,
дрилл-даун,
автовызов паблик методов с передачей параметров (автоматический маппинг параметров метода к полям объектов)
и т.д.
ведь рвут же задницу девекспресс (хаф), майкрософт (лайтсвиич, асп дайнамикдейт, акссес),,..
и что то не особо получается, а то б никто давно не писал гуй
а что не получается из этого?
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38337854
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

у кого? у тех, которых я перечислил не получается viewmodel, и соответсвенно view, так как отсутствует понятия model :)
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38337855
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
решение типа - если набор возможных значений А зависит от конкретного значения Б - то пишем ЛИНК или СКЛ, считаю абсолютно не грамотным, а оно преобладает
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38337858
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот генерации такого ЛИНК или СКЛ исходя из сеиантики модели - грамотным :)
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38338670
trdm_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmViPRosвсе мешает,
надо иметь инлайн редакторы (которые могут быть связаны между собой),
удобное расположение контролов,
вычислимые поля,
которые вычисялются по связям,
механизм лукап,
дрилл-даун,
автовызов паблик методов с передачей параметров (автоматический маппинг параметров метода к полям объектов)
и т.д.
ведь рвут же задницу девекспресс (хаф), майкрософт (лайтсвиич, асп дайнамикдейт, акссес),,..
и что то не особо получается, а то б никто давно не писал гуй
а что не получается из этого?
Вот и я недоумеваю.
Может у кого-то и не получается, у меня все что нужно получается.
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38338713
trdm_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosрешение типа - если набор возможных значений А зависит от конкретного значения Б - то пишем ЛИНК или СКЛ, считаю абсолютно не грамотным, а оно преобладает
Но ведь в конце концов все в тут инструкцию и упирается.
А разница только в уровне языков, где-то оно формируется средой, где-то приходится писать автоматом,
а допустим в 1С можно и тот и тот способ применить.
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38338770
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trdm_,

че то вы лукавите
инерпретация параметров вызываемого средой метода (обработки по твоему) требует мощного контекста
есть метода с параметрами (int a, dictinary<int, class> b) - что надо конкретно при автовызове передавать этому методу
я не знаю как в 1с это реализовано
и как реализован лукап при зависимостя тоже не знаю
(допустим, для примера, есть два поля Источник и Цель одной будем говорить таблице, при этом родитель Источника и Цели должен быть одинаковым, Или, Склад приемки в строке накладной должен быть складом Контрагента из шапки накладной,...)

просвети если знаешь как это сделано в 1с и у тебя, если реализовано
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38338790
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще интересны вычисленя по связям таблиц
надо ли обязательно придерживаться всех узлов пути или можно пропустить промежуточные связи
поймет ли система?
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38338913
trdm_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

Вы в каком-то своем мире живете, я вас через раз понимаю?
Шо такое дрил-даун и лукап?
лукап - Поиск?
В чем сложность поиска?
дрил-даун???
В чем сложность хранить наименование хранимки и распарсить строку хранимки с параметрами и передать её при вызове?
Мощный контекст?
Что такое контекст в вашем понимании?
В чем его мощность заключается?
Вы со мной говорите используя термины какой программной среды?
Зачем вы суете в хранимку параметры с синтаксисом С++???? ->>> "(int a, dictinary<int, class> b)"
Хранимки используют другой синтаксис.

ПС. Я работаю с 1С, С++/Qt, MS SQL и все равно вас через раз понимаю.
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38338921
trdm_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosеще интересны вычисленя по связям таблиц
и что это такое?
такое впечатление, что вы тут на японском разговариваете.
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38338938
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trdm_,

ок
отвлекись от ХП и С++
вот у тебя (ты наставиваешь) есть прога, которая может вызвать любой разрешенный метод (да хоть ХП)
метод имеет параметры, тип параметров тебе известен
теперь вопрос - что конкретно ты будешь передавать в метод через эти параметры?

вычислениея по связям - обыденность
есть модель, есть модельные примитивы, они как то связаны семантически
теперб я хочу на рут уровне получить какие то агрегаты из терминальных уровней
дык вот можно ли в твоей проге сослаться (для рут агрегата) только на терминальные уровни минуя путь?
прога разрешить путь автоматически?
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38338941
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мощность контекста измеряется разрешимостью проблемы поставленной в контексте
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38338944
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дрил доун - вниз к терминальным узлам
дрил ап - соответственно вверх к корням
ну так грят вроде, я воще то против вверх - вниз, они у меня равноценны - просто навигация по графу
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38338955
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лукап - человекочитаемый идентификатор чего либо
пример - ФизЛицо (Имя, Фамилия) -> Работник(Код, Оклад, Дата)
Для ФизЛицо лукаом моет быть - Фамилия
А для Работника - ФизЛицо.Имя, ФизЛицоФамилия : Код
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38338957
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так понятно?
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339040
trdm_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRostrdm_,

ок
отвлекись от ХП и С++
вот у тебя (ты наставиваешь) есть прога, которая может вызвать любой разрешенный метод (да хоть ХП)
метод имеет параметры, тип параметров тебе известен
теперь вопрос - что конкретно ты будешь передавать в метод через эти параметры?
значение параметров вестимо.
разумеется описание параметров у меня должно быть машинночитаемое.
что обычно в хранимки передается? простые типы. Числа, сроки, даты.
Откуда взять? Контекст и его содержимое.
По сколько разраб понятия не имеет что хочет туда отправит конечный пользователь, то заготовит определенный словарь идентификаторов. Вписывая этот идентификаотр в хранимку на этапе настройки он мне и раскажет что надо передавать.
А я согласно словарю извлеку данные и подставлю в строку вызова хранимки перед вызовом.

ViPRosвычислениея по связям - обыденность
есть модель, есть модельные примитивы, они как то связаны семантически
теперб я хочу на рут уровне получить какие то агрегаты из терминальных уровней
дык вот можно ли в твоей проге сослаться (для рут агрегата) только на терминальные уровни минуя путь?
прога разрешить путь автоматически?
это для моделей, имеющих иерархическую структуру. У меня реляционная модель.
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339044
trdm_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRostrdm_,
прога разрешить путь автоматически?

Вопрос излишен. Прога сделает только то, что нужно и что запрограммировано.
Зачем надстройке над реляционными таблицами решать такие задачи?
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339051
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trdm_,

значит не смог обяснить
как ты быдешь только по описанию формальных параметров подготовить контекст для вызова метода?
каков механизм?
тем более для ХП, где как ты сказал все простые типы :)
в РМД форинкеи можно смотреть как прототип связи
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339054
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trdm_ViPRostrdm_,
прога разрешить путь автоматически?

Вопрос излишен. Прога сделает только то, что нужно и что запрограммировано.
Зачем надстройке над реляционными таблицами решать такие задачи?
ну если нет и не может, то и нечего комментировать
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339055
trdm_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosлукап - человекочитаемый идентификатор чего либо
пример - ФизЛицо (Имя, Фамилия) -> Работник(Код, Оклад, Дата)
Для ФизЛицо лукаом моет быть - Фамилия
А для Работника - ФизЛицо.Имя, ФизЛицоФамилия : Код
Это где такая терминология применяется?
2-й раз спрашиваю между прочим.
Мы на каком языке говорим с тобой?
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339066
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trdm_,

да в мире интерфейсостроения(GUI) все так говорят вроде, не я ж придумал
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339069
trdm_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRostrdm_пропущено...


Вопрос излишен. Прога сделает только то, что нужно и что запрограммировано.
Зачем надстройке над реляционными таблицами решать такие задачи?
ну если нет и не может, то и нечего комментировать
Ты что стебаешся?
Мне это такую ситуацию напоминает:
приходит покупатель в магазин бытовой техники и спрашивает продавца:
- а сколько каналов показывает ваш холодильник.
- Но это же холодильник, у него нет функций телетрансляции!
- Хреновый у вас холодильник!
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339090
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trdm_,

ну ты ведь начал
я задал конкретные вопросы,
ты сказал - а в чем проблема, это ж пустяк и у меня это сделано
я попытался ясно обрисовать проблему
теперь ты гришь - это не возможно, потому что у тебя хлодильникЮ а контекст требует телевизора
вот в том то и заключался вопрос - как подобрать контекст :)
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339100
MoroZ.Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Випрос,

я вот читаю и нифига не понимаю в твоих репликах. Если ты профи, то пиши как профи - грамотно и доходчиво. А не как укуренный подросток.
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339105
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MoroZ.Ru,

что конкретно не смог обяснить?
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339111
vill_ager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MoroZ.RuВипрос,

я вот читаю и нифига не понимаю в твоих репликах. Если ты профи, то пиши как профи - грамотно и доходчиво. А не как укуренный подросток.
+1
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339131
MoroZ.Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosвсе мешает,
надо иметь инлайн редакторы (которые могут быть связаны между собой),
удобное расположение контролов,
вычислимые поля,
которые вычисялются по связям,
механизм лукап,
дрилл-даун,
автовызов паблик методов с передачей параметров (автоматический маппинг параметров метода к полям объектов)
и т.д.
ведь рвут же задницу девекспресс (хаф), майкрософт (лайтсвиич, асп дайнамикдейт, акссес),,..
и что то не особо получается, а то б никто давно не писал гуй

С большим трудом удается расшифровать, что этот поток сознания означает. Проще плюнуть и пропустить.
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339136
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vill_ager,

ок падаем вниз до конца

представьте что у вас есть прога, которая имет прва запускать любую ХП ТРДМа в заданной БД
есть там 2 ХП Удалит_Прогера(integer Прогер) и Провести_Накладную(integer Накладная)
дык вот - как прога ваша будет узнавать, что первой ХП нужно дать код Прогера, а второй код Накладной?
ну очень упрощенно, но суть должна быть ясна, по моему
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339146
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MoroZ.RuViPRosвсе мешает,
надо иметь инлайн редакторы (которые могут быть связаны между собой),
удобное расположение контролов,
вычислимые поля,
которые вычисялются по связям,
механизм лукап,
дрилл-даун,
автовызов паблик методов с передачей параметров (автоматический маппинг параметров метода к полям объектов)
и т.д.
ведь рвут же задницу девекспресс (хаф), майкрософт (лайтсвиич, асп дайнамикдейт, акссес),,..
и что то не особо получается, а то б никто давно не писал гуй

С большим трудом удается расшифровать, что этот поток сознания означает. Проще плюнуть и пропустить.
ну конечно , там же куча проблем описано сразу в двух словах ( а предназначался пост Валерию, а он в контексе, просто решил (правильно) не ввязываться)
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339186
trdm_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosvill_ager,

ок падаем вниз до конца

представьте что у вас есть прога, которая имет прва запускать любую ХП ТРДМа в заданной БД
есть там 2 ХП Удалит_Прогера(integer Прогер) и Провести_Накладную(integer Накладная)
дык вот - как прога ваша будет узнавать, что первой ХП нужно дать код Прогера, а второй код Накладной?
ну очень упрощенно, но суть должна быть ясна, по моему
Это не прога должна угадывать.
Это настройщик должен обеспечить программу этими данными.
Варианты объяснить программе, что в первойх ХП должен быть один идент, во второй - другой идент - их много.
На вскидку, делается таблица со структурой:
table | xp | mode

в table пихается идентификатор таблицы,
в xp - строка вызова хранимки в формате xp(<параметры>), где:
<параметры> = [<параметр>[...,<параметр>]]
<параметр> = [<тип> <значение|СтроковыйИдентификатор>]
СтроковыйИдентификатор = идентификатор поля или представление.
в mode пихается режим когда вызывать хранимку.
К примеру:
0 - По требованию юзера
1 - перед считыванием данных в форму
2 - перед записью данных
3 - после записи данных в форму.

соотвественно моя софтина в нужные моменты выгребая данные из этой таблицы сопоставляет контексты (представлены uoDbRefTableIface) и вызывает нужную ХР.
Что сложного?????
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339215
trdm_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я изначально строил свою софтину так что-бы по щелчку пальцами у меня была вся инфа под рукою.
Так что никаких вколачиваний вручную, словарь данных и через него все пляски.
Иначе был бы громадный гемор строить на c++/Qt для каждой таблицы индивидуально:
- форму списка для просмотра, выбора, подбора и редактирования, да еще и с деревом элементов.
- Форму элемента
- форму группы.
4 справочника - 4*3 = 12 форм.
нафиг надо так корячиться???????
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339228
vill_ager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosvill_ager,

ок падаем вниз до конца

представьте что у вас есть прога, которая имет прва запускать любую ХП ТРДМа в заданной БД
есть там 2 ХП Удалит_Прогера(integer Прогер) и Провести_Накладную(integer Накладная)
дык вот - как прога ваша будет узнавать, что первой ХП нужно дать код Прогера, а второй код Накладной?
ну очень упрощенно, но суть должна быть ясна, по моему
зачем усложнять простые вещи, подвешивая их в вакууме?
есть описание формы (храниться в БД в неважно каком виде)
там и указывается, какие параметры и куда передавать
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339259
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
trdm_,

ну вот теперь стало все понятно для конкретного случая
а как сконструировать универсальный контекст? (т.е. пофиг твои ХП, таблы и т.д.)
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339262
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vill_ager,

да причем тут форма
весь вопрос то как универсально заполнить вакуум
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339391
Tamozhnya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosvill_ager,

да причем тут форма
весь вопрос то как универсально заполнить вакуум

Известно, как - сферической лошадью.
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339425
vill_ager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosvill_ager,

да причем тут форма
весь вопрос то как универсально заполнить вакуум
95 % заполняетя автоматически, оставшиеся пять можно и нужно руками
в деле автоматизации главное -вовремя остановиться
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339429
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vill_ager,

насчет нужно - к микрософту
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339597
vill_ager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ViPRosvill_ager,
насчет нужно - к микрософту
Сложно понять Вас, коллега...

но если про микрософт говорить, то он не должен быть заинтересован в подобных системах, т.к. ему нужно не сокращать, а плодить количество специалистов (создавать и продавать софт для разработки, сертифицировать хомячков, и так по кругу)

кстати, как и прочие разработчики инструментов
...
Рейтинг: 0 / 0
Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
    #38339670
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vill_ager,

вот она и плодит
вместо того что бы делать инструмент для специалит в предметной области, она клепает интсрумент для кодеров
...
Рейтинг: 0 / 0
66 сообщений из 66, показаны все 3 страниц
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Хранение клиентских форм (вместе с логикой) в БД. Требуется наводка.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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