набор от данни Редактор, изчислени полета
Примерите, които ще видите в тази статия, демонстрират основните техники, използвани от повечето програмисти за показване на таблиците в базата данни на потребители. За да се разбере голяма част от материала изисква цялостно познаване на околната среда и на езика Делфи.
Отворете кутията комбо "Object Selector" в горната част на инспектор на обекта - в момента там има два компонента: TForm и TQuery.
Щракнете с десния бутон върху обекта TQuery и от контекстното меню изберете "Fields Editor". Щракнете върху бутона Add - Добавяне на диалоговия прозорец Fields да се появи, както е показано на фигура 1
Тези нови съоръжения ще бъдат използвани за визуално представяне на трапезата на клиента за потребителя.
Ето и пълния списък на обектите, които трябва са създадени:
Това споразумение може да бъде много полезно, когато работите с множество таблици и просто искам да знам, тази променлива се отнася до областта на масата.
Най-важното свойство се нарича стойност. Можете да получите достъп до него, както следва:
Кодът е показано тук, първо задайте стойност на променливите г и S. следните два реда се променят тези стойности, а последните две са възложени нови стойности на обекти. Това не прави много смисъл да се напише код, подобен на този в програмата, но този код се използва само за да покаже синтаксис, използван от потомците на TField.
имущество на стойност винаги съответства на типа на полето, за който се отнася. Например при TStringFields - низ, TCurrencyFields - двойно. Въпреки това, ако Вие показвате поле тип TCurrencyField използвайки компонент на "чувствителни данни" (данни наясно: TDBEdit, TDBGrid и т.н.), това ще бъде представена от поредица, като например: "$ 5,00".
Това може да ви накара да мислите, че Delphi внезапно прекъснат силен пишете. След TCurrencyField.Value обявен за двойна, и ако се опитате да зададете низ, можете да получите съобщение за грешка "тип несъответствие" (вид несъответствие). Горният пример показва в действителност свойствата на обекти на визуализация на данни, а не тип отслабване проверка. (Въпреки това е възможно да се получи стойността на областта вече се превръща в друг вид. За тази TField и неговите потомци набор AsString или методи тип AsFloat. Разбира се, трансформацията се случва само, когато има смисъл.)
Ако искате да получите имената на полетата в сегашния набор от данни, а след това го използва FIELDNAME имотния един от двата начина, както е показано по-долу:
Ако искате да получите името на обекта, свързани с областта, а след това трябва да използвате името на собствеността:
За маса на клиентите, първият пример ще се върне низа "CustNo", както и някои от редовете на втория пример низа "Query1CustNo".
калкулирани полета
CALC_SUM.DPR програма пример за този урок илюстрира първите използва случая, изчислени полета.
Тази програма свързва трите таблици в един-към-много. По-специално, поръчки, и елементи, свързани в областта OrderNo и части ТОЧКИ и свързан чрез област PartNo. (Таблица поръчките съдържа всички поръчки, в таблицата с ТОЧКИ - предмети, посочени в разпореждането; частите - предмети директория). В програмата можете да се придвижвате таблицата с поръчки и виж, свързани със списъка текущия ред на включените елементи. CALC_SUM програма е доста сложно, но добре илюстрира силата на изчислените полета.
Последователността на създаване CALC_SUM проект:- Създаване на нов проект (File | New Project) и я извадете от формата (в Project Manager View | Ръководител на проекта)
- Изберете експертни форми на бази данни от менюто Help.
- На първия екран, изберете "Създаване на главен / подробно формата" и "Създаване на формуляр с помощта TQuery обекти".
- Натиснете Next и изберете таблицата с псевдоним от базата данни ORDERS.DB DBDEMOS.
- Натиснете Next и изберете полетата OrderNo, CustNo, SaleDate, ShipDate и ItemsTotal на ORDERS.DB маса.
- Натиснете Next и изберете "Хоризонтално" от разположението на отделните компоненти на форма dbEdit на.
- Натиснете Next и изберете таблицата ITEMS.DB.
- В следващите два екрана, изберете всички полета от масата и ги поставя в една мрежа.
- Натиснете Next и изберете OrderNo поле от магистърски и детайлност ListBoxes и да кликнете върху бутона Добавяне.
- Натиснете Next, и генерира форма.
Това отнема много думи, за да опише процеса, както е показано по-горе, но в действителност, изпълнението на команди в експертни форми на бази данни лесно и интуитивно.
Изберете първата от два обекта TQuery и инсталирате Active собственост на True. За Query2 имот в SQL заявка текст пиши:
Прост метод е описан в предходния параграф, той показва как да създадете изчисленото поле. Ако се вгледате в DBGrid, можете да видите, че има вече има и друга празна кутия. За да се сложи стойност в тази област, отворете Object Inspector страница Събития Query2 обект и кликнете два пъти върху OnCalcFields. Напълнете метод е създаден, както следва:
След стартиране на програмата Total поле ще съдържа низа $ 23.00.
Това показва колко лесно е да се създаде компютърна поле, което показва правилно форматирани данни. В действителност, това поле трябва да показва нещо друго - работа полета Количество (количество) и ListPrice (цена). За тази цел по-горе код за събитие OnCalcFields да се променя, както следва:
Ако сега стартирате програмата, Общо поле ще съдържа желаната стойност.
В случай манипулатор OnCalcFields могат да изпълняват по-сложни изчисления (тя ще бъде показана по-късно), но трябва да се забравя, че това води до съответна забавяне на скоростта на програмата.
В този пример, изчислява чрез прост записи сортиране сумата не е най-добрият вариант - това е възможно, например, за да се изчисли сумата, която да се използва допълнителен обект от тип TQuery. метод DisableControls се нарича, за да отмените преначертае DBGrid за маса сканиране. Query2 възобнови запитване за да се уверите, че сегашната си набор от записи, съответстващи на действащата нормативна уредба.
Сложете върху друга форма DBEdit елемент и да го връзвам към Query1, полето NewItemsTotal. Стартирайте програмата, приблизителната форма, показана на фигура 3
Фигура 3: CALC_SUM програма
Както се вижда от програмата, ItemsTotal полето за присъствие в таблицата с поръчки за този пример е по избор и може да бъде отстранен (въпреки това, че е необходимо в други случаи).
TDBGrid управление по време на работа
DBGrid обект може да бъде напълно преконфигурира по време на изпълнение. Можете да скриете и да се покаже колони, промяна на реда на показване на колони и техните ширини.
Можете да използвате опции DBGrid собственост на обекта, за да промените мнението си. Опции имот може да има следните възможни стойности:
Е зададен по подразбиране, за да е истина, то позволява на потребителя да редактира мрежата. Можете също да зададете ReadOnly решетка имот за Вярно или невярно.
Независимо дали потребителят може да използва раздел и смяна-раздел, за да превключвате между колоните.
Както бе обявено в тази структура:
Например, можете да зададете опции в кода за писане по време на работа по този начин:
Ако искате да активирате или деактивирате опцията, това може да се направи с помощта на логически операции. Например, следния код ще добави dgTitles към текущия набор от параметри:
Нека ShowTitles имат булева променлива, тогава следния код, за да разрешите или забраните възможността само с едно кликване:
Ако искате да скриете областта в навечерието на времето, можете да зададете видимата имота грешно:
И двете линии носят идентични код задачата. За да се покаже областта отново, задайте видимостта настроен да е вярно:
Ако искате да промените позицията на колоната в Runtime, можете просто да смените код на (първото поле в записа има нулев индекс):
По подразбиране, CustNo поле в таблицата с клиентите е на първо място. Кодът на първия ред на това поле се премества на втора позиция, а на следващия ред се движи до трета позиция. Не забравяйте, че нивите са номерирани, започвайки от нулата, тъй като прехвърлянето на собствеността прави Index 1 поле във втория записа. Първото поле е 0 Index.
Когато промените индекс поле, индекси на други полета в записа се сменят автоматично.
Ако искате да промените ширината на колона в Runtime, само промяна на собственост на съответния DisplayWidth TField.
Стойността 12 се отнася до броя на символите, които могат да се поставя на видно елемент.
DBGR_RT програма показва как да се работи с DBGrid в Runtime. Програмата е достатъчно проста, с изключение на две малки части, които са описани по-долу. Първата част показва как да създадете поле за проверка в Runtime, а втората показва как да промените реда на елементите в списъчно поле в Runtime.
Когато създадете форма (събитие OnCreate) ListBox изпълнена с имена на полета, а след това се създаде масив от обекти на квадратчето, в съответните полета в таблицата. На първо място, се избират всички квадратчета, и всички полета са видими в таблицата. Програмата се учи чрез имена на полета TTable1 и ги възлага на Надпис собственост на съответните кутийки. В допълнение, на събитието манипулатор OnClick се възлага цялата процедура отметки ChBClick, и която се превръща в поле / изключване в DBGrid.
Повечето от кода в този пример изпълнява относително прости задачи, като именуване и наредби квадратчетата. Има два основни линии:
Първият ред създава квадратчето, за да се уточни Собственикът (собственик). Вторият ред определя майка (изходен) за отметка. За да се разбере разликата между родителите и на собственика, вижте съответните имотите в онлайн-помощта.
Програмата съдържа ListBox, която показва текущото реда на полетата в набор от данни. За да промените реда на полетата в данните (а оттам и в DBGrid) използва два ключа. С натискане на един от бутоните, избрани в поле ListBox'e се премества с една позиция нагоре или надолу. Синхронно с промените и реда на полета в DBGrid. Кодът показани по-долу, се променя поле Индекс за Таблица 1, като по този начин се променя, позиция в областта DBGrid. Тези промени се отнасят само за визуално представяне набор от данни. Физически, данните на диска не се променят.
Последният ред в примера е само една, която всъщност се променя индекса на колоната, че потребителят иска да се движи. Два реда код непосредствено преди тя се движи на текущия ред в списъка с файлове на нова позиция.
Поява DBGR_RT програма е показана на Фигура 4
Фигура 4: DBGR_RT програма