cro-logo      
Добро пожаловать, Гость. Пожалуйста, выберите Вход или Регистрация

 
 
  ГлавнаяСправкаПоискВходРегистрация  
 
Переключение на Главную Страницу Страниц: 1
Послать Тему Печать
Пособие для начинающих с примерами. (Прочитано 19 209 раз)
Leo
Бета-тестер
Вне Форума


Мое поколение...

Сообщений: 1 571
Калуга - Москва
Пособие для начинающих с примерами.
21.09.2010 :: 19:44:48
 
Всем, кто не знает с чего начать работу в формах посвящается.

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

P.S. Отдельное спасибо Freelancer за помощь и терпение.  Смех
Наверх
 

TEST_BdCopy.rar (52 KB | )

Леонтьев Ю. Ю.
**************
leo6@mail.ru
sgv.leo6@gmail.com
 
IP записан
 
Rostov-on-Don
Бета-тестер
Вне Форума


За Родину!

Сообщений: 309
Rostov-on-Don
Re: Пособие для начинающих с примерами.
Ответ #1 - 11.10.2010 :: 22:44:03
 
Алаверды. В декабре 2009 года на неофициальном сайте CronosPro http://cronospro.ru/?p=226 я разместил статью "Создание простой формы ввода", где описал алгоритм создания формы ввода для "..базы ЛИЦО и связанных с ним баз: Трудовая деятельность, Адрес, Образование", для работы использовал демонстрационный банк, выложенный на официальном сайте http://www.cronos.ru//Download/FILES/DemoBanks.exe. Возможно статья тоже будет полезна начинающим. Сами формы доступны для скачивания с сайта, короче все написано тут http://cronospro.ru/?p=226.
Если статья представляет интерес, то подобно-подробное описание можно продолжить.
Наверх
 
 
IP записан
 
Васяяяя
Бета-тестер
Вне Форума



Сообщений: 41
Re: Пособие для начинающих с примерами.
Ответ #2 - 01.09.2011 :: 11:49:15
 
Здорово!
Но хотелось развернутое пособие, с задействованием всех элементов, а также в разной интерпритации этих самых элементов.
Наверх
 
 
IP записан
 
Rostov-on-Don
Бета-тестер
Вне Форума


За Родину!

Сообщений: 309
Rostov-on-Don
Re: Пособие для начинающих с примерами.
Ответ #3 - 13.11.2011 :: 13:54:35
 
В качестве очень интересного учебного пособия для начинающих рекомендую банк
"Библиотека"
, предоставленный Zuluss в теме книжная Библиотека http://www.cronos.ru/cgi-bin/YaBB/YaBB.cgi?num=1237102347/11#5 . Очень интересный банк, созданный для решения практической задачи. Идеи использованные в нем можно удачно применить к своим потребностям. Копия банка в прикрепленном файле (см. ссылку на пост), для разархивации после скачки надо перед zip поставить точку.
Огромное спасибо Zuluss!!!
Наверх
 
 
IP записан
 
Noirum
Профи
****
Вне Форума



Сообщений: 108
Минск
Re: Пособие для начинающих с примерами.
Ответ #4 - 30.12.2011 :: 10:43:58
 
Неплохой пример создания таблицы с сортировкой по столбцам в Кронос плюс ... дерзайте ! Подмигивание
Наверх
 

Manual_Grid.zip (66 KB | )
 
IP записан
 
Lev
Профи
****
Вне Форума



Сообщений: 150
Санкт-Петербург
Re: Пособие для начинающих с примерами.
Ответ #5 - 18.01.2012 :: 12:24:04
 
Произвел небольшую доработку кода уважаемого  Noirum. Форма создана в демонстрационном банке  "Primer1” демо-версии CronosPro. Хотелось бы узнать мнение профи и просто пользователей, т.к. только начинаю осваивать Lua.
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 2 967
Санкт-Петербург
Re: Пособие для начинающих с примерами.
Ответ #6 - 24.01.2012 :: 18:35:20
 
Высказываю своё мнение:
1. Работа произведена большая и интересная. Такой вариант псевдотабличного (при отсутствии встроенных возможностей) представления вполне имеет право на существование.
2. Проектирование таких вещей лучше производить в виде объекта или разработки класса, чтобы была возможность универсального  их применения, т.е. создавать следует абстракцию не привязанную к конкретной форме и базе.
3. Для конкретного варианта использования в качестве списка объектов формы и возможности выбора записей на мой взгляд лучше использовать другой способ, не загромождающий основную форму. Места как всегда на форме не хватает. Поэтому рекомендую использовать для вывода списка отдельную форму и из неё управлять переходом (выбором) между записями. Возможный вариант прилагаю.
Наверх
 

InfoForm.zip (2 KB | )
 
IP записан
 
Lev
Профи
****
Вне Форума



Сообщений: 150
Санкт-Петербург
Re: Пособие для начинающих с примерами.
Ответ #7 - 25.01.2012 :: 18:40:43
 
Вариант действительно очень интересен. Очень полезен и в смысле дальнейшего изучения Lua. Спасибо большое.
Наверх
 
 
IP записан
 
Noirum
Профи
****
Вне Форума



Сообщений: 108
Минск
Re: Пособие для начинающих с примерами.
Ответ #8 - 09.11.2012 :: 13:43:41
 
Очень здоровский пример Zuluss с выносом таблицы на другую форму! Пользуюсь, класс. Вот только теперь надо сделать немного по другому (никак не выходит, может подскажете).
Есть кнопка на форме, которая вызывает Инфопанель (тут все хорошо, все записи базы "АА" отображаются в СПИСКЕ инфопанели). Сама кнопка расположена на форме Базы "ББ". На форме базы "АА" также есть СПИСОК и текстовые поля. Как сделать или что изменить, что бы при изменении записи в Инфопанели, изменения шли и в базу "АА" ... Точнее База "АА" расположена во вкладках формы базы "ВВ", т.е. форма "АА" вложена в "ВВ" ...
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 2 967
Санкт-Петербург
Re: Пособие для начинающих с примерами.
Ответ #9 - 09.11.2012 :: 14:23:49
 
Что Вы имеете ввиду под понятием "изменение записи"? Внесение изменений в поля записи (коррекцию) или просто смену текущей записи на другую?
Наверх
 
 
IP записан
 
Noirum
Профи
****
Вне Форума



Сообщений: 108
Минск
Re: Пособие для начинающих с примерами.
Ответ #10 - 09.11.2012 :: 14:35:42
 
Просто смену ...
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 2 967
Санкт-Петербург
Re: Пособие для начинающих с примерами.
Ответ #11 - 09.11.2012 :: 14:45:51
 
Мы начали обсуждение в теме, которая предназначена по задумке для выкладывания обучающих примеров, а не для обсуждения. Поэтому лучше переместиться в другую тему.
А по Вашему вопросу, насколько я понял, нужно изменять что то во вложенной форме, а не в основной. Это тоже реализуется:
В скрипте ИнфоФормы код для смены текущей записи в основной форме:
PF.RecordNumber
Для изменения записи во вложенной форме необходимо просто прописать к ней путь, например:
PF.поле1.RecordNumber
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 2 967
Санкт-Петербург
Re: Пособие для начинающих с примерами.
Ответ #12 - 28.11.2012 :: 16:11:05
 
Продолжение ответвления от основной темы тут:
http://www.cronos.ru/cgi-bin/YaBB/YaBB.cgi?num=1352460032
Наверх
 
 
IP записан
 
Rostov-on-Don
Бета-тестер
Вне Форума


За Родину!

Сообщений: 309
Rostov-on-Don
Re: Пособие для начинающих с примерами.
Ответ #13 - 02.03.2014 :: 16:25:03
 
Хочу развить тему «Работа с глобальными функциями»  (http://cronospro.ru/?p=296 ) и написать пример для новичков (и шпаргалку для себя самого).
Работая с формами ввода, я тоже стремлюсь избавиться от избыточности кода программы, т.е. от повторения одной и той же функции в разных формах.
Например: в моих формах ввода присутствует кнопка «Удалить», которая вызывает событие удаления текущей записи. Пользователь должен осознанно выполнять это действие. Осознанность достигается вопросом пользователю:  "Текущая запись «Иванов Иван Иванович 01.01.1971» будет удалена. Подтверждаете удаление?". В этот вопрос (у меня) заносится информация из «информативных полей» (ИП) текущей записи.
Как «выловить» ИП,  не прибегая к их четкому указанию в форме ввода, и написать универсальный код, подтверждающий удаление объекта, для всех форм банка?
Допустим, что форма ввода уже есть (в моем случае для формы ввода лиц «ЛЦ»). Есть кнопка «Удалить запись» (кнопка1). Проверяем или дописываем код:
Код:
function кнопка1_Click( control )
	 Me:DeleteRecord()
end
--Событие ConfirmDeleteRecord используется для отображения пользовательского диалога для подтверждения на удаление записи.
function Форма_ConfirmDeleteRecord( form )
	local del=(MsgBox("Текущая запись \""..ConfDelRec("ЛЦ",Me.Record).."\" будет удалена. Подтверждаете удаление?",BtnYesNo+IconQuestion)==IdYes)
    return false, del;
end

function Форма_Load( form )
	if not Tsettings then
		CroApp.GetBank():OpenForm("TSettings",0,Me)
	end
end 


Проектируем «управляющую форму» "TSettings".  (При старте форма будет запускаться  в невидимом режиме).
Проектирование – Форм ввода – Управляющая форма – Новая. Вставляем код и активируем событие «Open»
Код:
str = [[
TSettings = {1}
_G.GetInfoValue = function (rec, t_fields)
local t_if 
	if t_fields then t_if=t_fields else t_if=t_InfoFields end
	local t_info = {}
	for _,num in ipairs(t_if) do
	 table.insert(t_info,rec:GetValue(num))
	end
	return table.concat(t_info," ");
end

_G.ConfDelRec = function (Mn,rec)
	CurBase=CroApp:GetBank():GetBase(Mn)
	t_InfoFields={}
	do -- анализа статуса поля
		local t_fields = CurBase.Fields
		for _, field in ipairs(t_fields) do
			if field.Type>0 and field.Type<6 then
				if field:TestStatus(2048) then
					table.insert(t_InfoFields, field.Number)
				end
			end
		end
	end
	return GetInfoValue(rec,t_fields)

end
]]
assert(loadstring(str))()

function Форма_Open( form )
	return false;
end 


Чтобы применить этот код в иной базе, надо только вписать правильный мнемокод  сюда «\""..ConfDelRec(
"ЛЦ"
,Me.Record).."\».

P.S. Спасибо за помощь и обучение Zuluss

Наверх
 

delete.png (13 KB | 422 )
delete.png
 
IP записан
 
Diamond
Профи
****
Вне Форума



Сообщений: 351
Minsk, The Republic of Belarus
Re: Пособие для начинающих с примерами.
Ответ #14 - 05.05.2014 :: 08:18:10
 
Добрый день

хороший пример по функции loadstring, но если честно, то непонятно как оно работает, а кстати, я попробовал исполнить этот код и ничего не заработало

Не могли бы Вы пояснить как это на самом деле работае?  Очень довольный
Особенно интереует как вызывается функция _G.ConfDelRec

Заранее благодарен
Моя версия Cronos 6.2
Наверх
 
Anton.Shypkov  
IP записан
 
Переключение на Главную Страницу Страниц: 1
Послать Тему Печать