
Полная версия:
Базы данных на Delphi 7
ADOQuery4.SQL.Add('delete');
ADOQuery4.SQL.Add('from Firmi_postavschiki');
ADOQuery4.SQL.Add('where Tel_dir like '''+Edit5.Text+'%''');
ADOQuery4.ExecSQL;
ADOConnection1.CommitTrans;
except
ADOConnection1.RollbackTrans;
ShowMessage('Произошла ошибка удаления, удаление записей отменено.');
end;
*******
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
ADOConnection1.BeginTrans;
try
ADOQuery4.Close;
ADOQuery4.SQL.Clear;
ADOQuery4.SQL.Add('Delete ');
ADOQuery4.SQL.Add('From disc_1');
ADOQuery4.SQL.Add('where cod_firm in (select cod_firm from firm_2');
ADOQuery4.SQL.Add('Where firm_2.cod_city in (Select cod_city_proiz from city_3');
ADOQuery4.SQL.Add('Where (name_city like ''%-%'')and not(name_city like ''%,%'')))');
ADOQuery4.ExecSQL;
ADOQuery4.SQL.Clear;
ADOQuery4.SQL.Add('Delete');
ADOQuery4.SQL.Add('From firm_2');
ADOQuery4.SQL.Add('where firm_2.cod_city in (select cod_city_proiz from city_3');
ADOQuery4.SQL.Add('Where (name_city like ''%-%'')and not(name_city like ''%,%''))');
ADOQuery4.ExecSQL;
try
for i:=0 to ADOConnection1.DataSetCount do
ADOConnection1.DataSets[i].Requery;
except
end;
ADOConnection1.CommitTrans;
except
ADOConnection1.RollbackTrans;
ShowMessage('Произошла ошибка удаления, удаление записей отменено.');
end;
end;
ЛЕКЦИЯ № 10
1. СОЗДАНИЕ И РАБОТА С ОТЧЕТАМИ ДАННЫХ БД
1.1. Создание простейших отчетов бд через HTML
Uses …, shellapi;
procedure TForm1.Button8Click(Sender: TObject);
var tst: TStringList;
begin
tst:=TStringList.Create;
tst.Add('');
tst.Add('');
tst.Add('
');tst.Add('
tst.Add('');
tst.Add('
');tst.Add(DataSetTableProducer1.Content);
tst.Add('');
tst.SaveToFile('htmldoc.html');
tst.Free;
ShellExecute(handle, 'open', 'htmldoc.html', nil, nil, SW_SHOWNORMAL);
end;
1.2. Создание простейших отчетов БД с помощью QReport
Для рассмотрения вопроса создания простейшего отчета БД необходимо сделать две формы. На первой форме необходимо:
нанести компонет Table1 и Button1;
настроить Table1 на конкретную таблицу данных и открыть ее;
сдетать следующую процедуру обработчик для кнопки:
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.QuickRep1.Preview;
end;
На второй форме необходимо:
подключить в разделе «Uses» модуль «unit1»;
нанести компонет «QuickRep1» из вкладки «QReport» палитры компонент. Настроить его свойства;
нанести на компонет «QuickRep1» шесть компонент типа QRBand;
настроить компоненты QRBand на нужные модификации;
нанести в нужные места отчета компоненты QRLabel, QRDBText, QRSysData и настроить их свойства;
QuickRep
Базовый компонент для создания отчетов. Пустая форма отчета.
СвойствоНазначение свойстваDataSetПривязка к таблице БД, для которой делается отчет. Это свойство должно быть корректно задано для нормальной работы отчетаQRBand
Из этих компонентов-контейнеров стоится скелет отчета. Отчет обычно состоит как минимум из шести таких компонентов-контейнеров. Компонент имеет множество модификаций, от которых зависит назначение компонента
Свойство BandTypeНазначение компонентаrbTitleверхняя шапка всего отчета, выдается вверху первой страницыrbSummaryнижняя шапка всего отчета, выдается внизу последней страницыrbPageHeaderверхняя шапка для каждой страницы (включая первую)rbPageFooterнижняя шапка для каждой страницы (включая последнюю)rbColumnHeaderверхняя шапка для области вывода данных, выдается на каждой странице перед даннымиrbDetailконтейнер для компонент вывода данных из БД, область данныхrbGroupFooterконтейнер для компонент вывода данных БД для группировкиQRLabel
Отображает текстовые данные в указанном месте отчета. Эквивалент обычного «Label»
СвойствоНазначение свойстваCaptionкомментарий (слева) к отображаемым даннымQRDBText
Отображает данное из поля БД в указанном месте отчета. Эквивалент обычного «DBEdit». Компонент наносится обычно на контейнер «QRBand->rbDetail »
СвойствоНазначение свойстваAligmenttaCenter, taLeftJustify, taRightJustifyDataSetуказание источника данных (ссылка на Table или Query). Данное значение обязательно должно быть точно такое же, как и свойство «DataSet» у компонента QuickRepDataFieldимя поля таблицы БДQRSysData
Компонент для отображения системных данных (текущего времени, даты, номера страницы и др.)
Свойство DataНазначение компонентаqrsDateTimeсистемная дата и времяqrsPageNumberномер печатаемой страницыqrsDetailNoпорядковый номер записи БД из области данных (по всему отчету)в событии «OnPrint» можно написать: Value:=inttostr(Form1.Table1.RecNo);qrsDetailCountколичество отображаемых в отчете записей БД (по всему отчету)rbGroupFooterнижний колонтитул группы. Контейнер для отображения значений суммы и др. по группировке данныхСвойствоНазначение свойстваTextкомментарий (слева) к отображаемым данным
QRShape
Компонент для рисования простейшей фигуры
Свойство ShapeНазначение компонентаqrsHorLineгоризонтальная линияqrsVertLineвертикальная линияqrsRectangleЧетырехугольникQRExpr
Компонент отображения вычисляемого значения. Очень мощный компонент. Обычно располагается на контейнерах QRGroup, QRBand (вида rbGroupFooter) и др.
СвойствоНазначение свойстваExpressionвыражение отображения, например:sum(query1.zarpl)query1.fam+' ( '+query1.name+' )'IF(query1sc<>0,100*((sum(query1.sv)+ query1.so)),0)upper(query1.famil+' '+COPY(query1.ima, 1, 1)+'. '+COPY(query1.otch, 1, 1)+'.')Maskмаска отображения значения, например ‘### ### ### ### ### ### ##0.00’ или ‘##0.0%’MasterСсылка на компонент QuickRep, например «QuickRep1»QRGroup
Компонент контейнер для группировки данных БД по полю.
СвойствоНазначение свойстваExpressionИмя поля группировки, например «Table1.group». Выбранная таблица группировки должна быть открыта с индексом по такому же полюFooterbandСсылка на компонент «QRBand-типа rbGroupFooter»