На нашем портале ежедневно выкладываются материалы способные помочь студентам. Курсовые, шпаргалки, ответы и еще куча всего что может понадобиться в учебе!
Описание. Программный продукт «Вариатор», версия 1.0, представляет собой приложение для работы с базой данных MS Access «dbvariator.mdb». База данных «dbvariator.mdb» состоит из 2 таблиц: «variant»; «stroka». Таблица «variant» состоит из 7 полей: 1. variant – счётчик, ключевое поле; 2. numvar – «Номер варианта» - длинное целое; 3. str1 – «Номер первой строки» - длинное целое; 4. str2 –«Номер второй строки» - длинное целое; 5. str3 –«Номер третьей строки» - длинное целое; 6. str4 –«Номер четвёртой строки» - длинное целое; 7. str5 –«Номер пятой строки» - длинное целое. Таблица «stroka» состоит из 19 полей: 1. stroka - счётчик, ключевое поле; 2. A - R – «значения строки» - денежный тип. По команде пользователя (кнопка «Показать строки») генерируется запрос из приложения «Вариатор» с помощью компоненты TADOQuery в базу данных «dbvariator». По выполнению запроса на форме отображаются строки соответствующего варианта со значениями A – R. (Рис. 1)
Рис. 1 «Строка 1» и «Строка 2» представляют дефляторы цен для совокупных личных расходов и соответствующего вида потребительских расходов. «Строка 3» и «Строка 4» соответствующего варианта представляют соответственно величину потребительских расходов населения США на данный товар и личного располагаемого дохода. «Строка 5» отображает параметр – относительный индекс цены товара в процентах, т.е. индекс, показывающий, происходило ли изменение цены на товар более или менее быстрыми темпами, чем общий рост цен. Именно такая относительная цена товара, а не его номинальная цена, определяет спрос на этот товар. Кнопка «Сброс» закрывает запрос, таким образом, очищаются поля со значениями строк. Кнопка «Экспорт MS Excel» активируется при выполнении запроса «Показать строки» и экспортирует данные со значениями строк в MS Excel. Кнопка «Добавить вариант» открывает форму добавления нового варианта.(Рис. 2)
Рис. 2 На форме представлена таблица с номерами строк и значениями A – R. Для добавления нового варианта необходимо указать номер варианта и номера соответствующих этому варианту строк после чего нажать кнопку «Добавить». Далее программа проинформирует, что вариант добавлен. Для редактирования существующего варианта также необходимо указать его номер и номера строк, нажать кнопку «Добавить», после чего подтвердить редактирование.
Программный код. Форма Вариатор 1.0 procedure TfrmVariator.btnExitClick(Sender: TObject); begin frmVariator.Close; end;
procedure TfrmVariator.FormCreate(Sender: TObject); var strNum:String; begin ADOQVar.SQL.Clear; Adoqvar.SQL.Add('Select numvar from variant'); Adoqvar.Open; lblAll.Caption:=IntToStr(Adoqvar.RecordCount); while not Adoqvar.eof do begin strNum:=Adoqvar.FieldByName('numvar').AsString; cmbVariant.Items.Add(strNum); Adoqvar.next; end; Adoqvar.Close; adoqStr1.Close; adoqStr2.Close; adoqStr3.Close; adoqStr4.Close; adoqStr5.Close; end;
procedure TfrmVariator.btmViewStrClick(Sender: TObject); var strVariant, strStr1,strStr2, strStr3,strStr4,strStr5:String; begin if cmbVariant.Text<>'' then begin strVariant:= cmbVariant.Text; Adoqvar.SQL.Clear; Adoqvar.SQL.Add('Select * from variant where numvar='+strVariant); Adoqvar.Open; lblVariant.Caption:=StrVariant; while not Adoqvar.eof do begin strStr1:=Adoqvar.FieldByName('str1').AsString; strStr2:=Adoqvar.FieldByName('str2').AsString; strStr3:=Adoqvar.FieldByName('str3').AsString; strStr4:=Adoqvar.FieldByName('str4').AsString; strStr5:=Adoqvar.FieldByName('str5').AsString; Adoqvar.next; end; Adoqvar.Close; //вывод первой строки adoqStr1.SQL.Clear; adoqStr1.SQL.Add('Select * from stroka where stroka='+ strStr1); adoqStr1.Open; dbtStr1Col1.DataField:='A'; dbtStr1Col2.DataField:='B'; dbtStr1Col3.DataField:='C'; dbtStr1Col4.DataField:='D'; dbtStr1Col5.DataField:='E'; dbtStr1Col6.DataField:='F'; dbtStr1Col7.DataField:='G'; dbtStr1Col8.DataField:='H'; dbtStr1Col9.DataField:='I'; dbtStr1Col10.DataField:='J'; dbtStr1Col11.DataField:='K'; dbtStr1Col12.DataField:='L'; dbtStr1Col13.DataField:='M'; dbtStr1Col14.DataField:='N'; dbtStr1Col15.DataField:='O'; dbtStr1Col16.DataField:='P'; dbtStr1Col17.DataField:='Q'; dbtStr1Col18.DataField:='R'; ArrayStr[1,1]:=StrToFloat(dbtStr1Col1.Caption); ArrayStr[1,2]:=StrToFloat(dbtStr1Col2.Caption); ArrayStr[1,3]:=StrToFloat(dbtStr1Col3.Caption); ArrayStr[1,4]:=StrToFloat(dbtStr1Col4.Caption); ArrayStr[1,5]:=StrToFloat(dbtStr1Col5.Caption); ArrayStr[1,6]:=StrToFloat(dbtStr1Col6.Caption); ArrayStr[1,7]:=StrToFloat(dbtStr1Col7.Caption); ArrayStr[1,8]:=StrToFloat(dbtStr1Col8.Caption); ArrayStr[1,9]:=StrToFloat(dbtStr1Col9.Caption); ArrayStr[1,10]:=StrToFloat(dbtStr1Col10.Caption); ArrayStr[1,11]:=StrToFloat(dbtStr1Col11.Caption); ArrayStr[1,12]:=StrToFloat(dbtStr1Col12.Caption); ArrayStr[1,13]:=StrToFloat(dbtStr1Col13.Caption); ArrayStr[1,14]:=StrToFloat(dbtStr1Col14.Caption); ArrayStr[1,15]:=StrToFloat(dbtStr1Col15.Caption); ArrayStr[1,16]:=StrToFloat(dbtStr1Col16.Caption); ArrayStr[1,17]:=StrToFloat(dbtStr1Col17.Caption); ArrayStr[1,18]:=StrToFloat(dbtStr1Col18.Caption);
for I := 1 to RowCount do for J := 1 to ColCount do ArrayData[I, J] := ArrayStr[i,j];
// Левая верхняя ячейка области, в которую будем выводить данные Cell1 := WorkBook.WorkSheets[1].Cells[BeginRow, BeginCol]; // Правая нижняя ячейка области, в которую будем выводить данные Cell2 := WorkBook.WorkSheets[1].Cells[BeginRow + RowCount - 1, BeginCol + ColCount - 1];
// Область, в которую будем выводить данные Range := WorkBook.WorkSheets[1].Range[Cell1, Cell2];
// А вот и сам вывод данных // Намного быстрее поячеечного присвоения Range.Value := ArrayData;
// Делаем Excel видимым ExcelApp.Visible := true;
end;
procedure TfrmVariator.btnAddVariantClick(Sender: TObject); begin frmAddVariant.ShowModal; end;
Форма «Добавить вариант». procedure TfrmAddVariant.btnExitClick(Sender: TObject); begin frmAddVariant.Close; end;
procedure TfrmAddVariant.FormCreate(Sender: TObject); var strNum:String; begin adoqStr.Open; adoqVar.Open; lblStr.Caption:=IntToStr(AdoqStr.RecordCount); lblVariant.Caption:=IntToStr(AdoqVar.RecordCount); while not AdoqStr.eof do begin strNum:=AdoqStr.FieldByName('stroka').AsString; cmbStr1.Items.Add(strNum); cmbStr2.Items.Add(strNum); cmbStr3.Items.Add(strNum); cmbStr4.Items.Add(strNum); cmbStr5.Items.Add(strNum); AdoqStr.next; end; end;
procedure TfrmAddVariant.btnAddClick(Sender: TObject); begin if (edtVar.Text<>'') and (cmbStr1.Text<>'') and (cmbStr2.Text<>'') and (cmbStr3.Text<>'') and (cmbStr4.Text<>'') and (cmbStr5.Text<>'') then begin intStr1:=cmbStr1.Text; intStr2:=cmbStr2.Text; intStr3:=cmbStr3.Text; intStr4:=cmbStr4.Text; intStr5:=cmbStr5.Text; lbl:= edtVar.Text; adoqVar.Close; adoqVar.SQL.Clear;
adoqVar.SQL.Add('Select * from variant where numvar=' + lbl);
adoqVar.Open;
if AdoqVar.RecordCount>0 then begin frmQuest.ShowModal; end else begin adoqVar.Close; adoqVar.SQL.Clear; adoqVar.SQL.Add('Insert into variant (numvar, str1, str2, str3, str4, str5) Values('+ lbl+','+ intStr1 +','+intStr2+','+intStr3+','+intStr4+','+intStr5+')'); adoqVar.ExecSQL; ShowMessage('Вариант '+lbl+' добавлен!'); adoqvar.Close; frmVariator.ADOQVar.Close; frmVariator.ADOQVar.Open; frmAddVariant.Close; end;
end;
end;
Форма «Редактирование». procedure TfrmQuest.FormCreate(Sender: TObject); begin label1.Caption:='Вариант ' + frmaddVariant.lbl+ ' уже добавлен! Применить новые значения?'; end;
procedure TfrmQuest.Button2Click(Sender: TObject); begin frmQuest.Close; end;
procedure TfrmQuest.Button1Click(Sender: TObject); begin frmAddVariant.adoqVar.Close; frmAddVariant.adoqVar.SQL.Clear; frmAddVariant.adoqVar.SQL.Add('Update variant Set str1='+frmAddVariant.intStr1+',str2='+ frmAddVariant.intStr2+',str3='+frmAddVariant.intStr3+',str4='+frmAddVariant.intStr4+ ',str5='+frmAddVariant.intStr5+ ' where numvar='+frmAddVariant.lbl); frmAddVariant.adoqVar.ExecSQL; ShowMessage('Вариант '+frmAddVariant.lbl+' изменён!'); frmAddVariant.adoqvar.Close; frmVariator.ADOQVar.Close; frmVariator.ADOQVar.Open; frmAddVariant.Close; frmQuest.Close; end;