Информационная система по учету охраняемых объектов
Характеристика классификаторов и систем кодирования. Обоснование выбора системы управления базами данных и языка программирования. Описание назначения программы и условий ее применения. Расчет экономического и социального эффекта от внедрения проекта.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 14.03.2017 |
Размер файла | 354,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Excel.Cells[i+PosInc,4] := dstJobs.FieldByName('Стоимость').AsCurrency;
Excel.Cells[i+PosInc,5] := FormatFloat('0,00', dstJobs.FieldByName('Количество').AsFloat);
Excel.Cells[i+PosInc,6] := dstJobs.FieldByName('Сумма').AsCurrency;
Inc(i);
Sum := Sum + dstJobs.FieldByName('Сумма').AsCurrency;
dstJobs.Next;
end; //while not dstJobs.Eof
Excel.Cells[i+PosInc,6] := Sum;
Inc(i, 4);
SumItogo := SumItogo + Sum;
//Цикл по МТР:
dstOrderParts.First;
Sum := 0; //Сумма МТР
while not dstOrderParts.Eof do
begin
//Добавление новой строки для МТР:
if j <> 0 then
begin
Excel.Rows.Item[PosInc+i].Select;
Excel.Selection.Insert;
Excel.Rows.Item[PosInc+i-1].Select;
Excel.Selection.Copy;
Excel.Rows.Item[PosInc+i].Select;
Excel.ActiveSheet.Paste;
Excel.Application.CutCopyMode := False;
end;
Excel.Cells[i+PosInc,1] := j+1;
Excel.Cells[i+PosInc,2] := dstOrderParts.FieldByName('Материал').AsString;
Excel.Cells[i+PosInc,3] := tbParts.FieldByName('ЕдИзм').AsString;
Excel.Cells[i+PosInc,4] := dstOrderParts.FieldByName('Цена').AsCurrency;
Excel.Cells[i+PosInc,5] := FormatFloat('0,00', dstOrderParts.FieldByName('Количество').AsFloat);
Excel.Cells[i+PosInc,6] := dstOrderParts.FieldByName('Сумма').AsCurrency;
Inc(j);
Inc(i);
Sum := Sum + dstOrderParts.FieldByName('Сумма').AsCurrency;
dstOrderParts.Next;
end; //while not dstJobs.Eof
Excel.Cells[i+PosInc,6] := Sum;
SumItogo := SumItogo + Sum;
Excel.Cells[i+PosInc+2,6] := SumItogo;
Excel.Cells[i+PosInc+4,2] := SumToTxt(Format('%.2f', [SumItogo]));
Excel.Cells[i+PosInc+5,4] := dstOrders.FieldByName('Работник').AsString;
end; //with
Excel.Visible := True;
except
Excel.Quit;
end;
finally
Screen.Cursor := crDefault;
end;
end;
//Формирование акта сдачи-приемки:
procedure Rep_Act;
var
WorkbookName: string;
Excel: Variant;
i, PosInc: Integer;
Sum: Currency;
begin
//Шаблон хранится в папке Шаблоны:
WorkbookName := GetCurrentDir + '\Templates\' + 'Акт.xlt';
Excel := CreateOleObject('Excel.Application');
Screen.Cursor := crHourGlass;
try
try
Excel.Workbooks.Open(WorkbookName);
//Экспорт данных из таблицы БД:
with DM do
begin
i := 0;
PosInc := 14;
//Вывод реквизитов в шапку:
DM.tbInfo.Open;
Excel.Cells[1,1] := DM.tbInfo.FieldByName('Наименование').AsString;
Excel.Cells[2,1] := DM.tbInfo.FieldByName('Адрес').AsString;
Excel.Cells[3,1] := 'ИНН ' + DM.tbInfo.FieldByName('ИНН').AsString +
', КПП ' + DM.tbInfo.FieldByName('КПП').AsString;
Excel.Cells[7,2] := DM.tbInfo.FieldByName('Наименование').AsString;
DM.tbInfo.Close;
Excel.Cells[8,2] := dstOrders.FieldByName('Клиент').AsString;
Excel.Cells[9,2] := dstOrders.FieldByName('Клиент').AsString;
Excel.Cells[5,3] := FormatFloat('0000', dstOrders.FieldByName('NЗаказа').AsInteger) +
' от ' + GetRightDate(DM.dstOrders.FieldByName('ДатаСдачи').AsDateTime);
//Цикл по работам:
dstJobs.First;
Sum := 0; //Сумма работ
while not dstJobs.Eof do
begin
//Добавление новой строки для продукции:
if i <> 0 then
begin
Excel.Rows.Item[PosInc+i].Select;
Excel.Selection.Insert;
Excel.Rows.Item[PosInc].Select;
Excel.Selection.Copy;
Excel.Rows.Item[PosInc+i].Select;
Excel.ActiveSheet.Paste;
Excel.Application.CutCopyMode := False;
end;
Excel.Cells[i+PosInc,1] := i+1;
Excel.Cells[i+PosInc,2] := dstJobs.FieldByName('Работа').AsString;
Excel.Cells[i+PosInc,3] := dstJobs.FieldByName('Стоимость').AsCurrency;
Excel.Cells[i+PosInc,4] := FormatFloat('0,00', dstJobs.FieldByName('Количество').AsFloat);
Excel.Cells[i+PosInc,5] := dstJobs.FieldByName('Сумма').AsCurrency;
Inc(i);
Sum := Sum + dstJobs.FieldByName('Сумма').AsCurrency;
dstJobs.Next;
end; //while not dstJobs.Eof
Excel.Cells[i+PosInc,5] := Sum;
Excel.Cells[i+PosInc+1,5] := Sum/118*18;
end; //with
Excel.Visible := True;
except
Excel.Quit;
end;
finally
Screen.Cursor := crDefault;
end;
end;
//Формирование счета:
procedure Rep_Bill;
var
WorkbookName: string;
Excel: Variant;
i, PosInc: Integer;
Sum: Currency;
begin
//Шаблон хранится в папке Шаблоны:
WorkbookName := GetCurrentDir + '\Templates\' + 'Счет.xlt';
Excel := CreateOleObject('Excel.Application');
Screen.Cursor := crHourGlass;
try
try
Excel.Workbooks.Open(WorkbookName);
//Экспорт данных из таблицы БД:
with DM do
begin
i := 0;
PosInc := 9;
Excel.Cells[4,2] := FormatFloat('0000', dstOrders.FieldByName('NЗаказа').AsInteger) +
' от ' + dstOrders.FieldByName('ДатаПриема').AsString;
Excel.Cells[6,2] := dstOrders.FieldByName('Клиент').AsString + ', ИНН ' +
DM.tbOrgs.FieldByName('ИНН').AsString + ', КПП ' +
DM.tbOrgs.FieldByName('КПП').AsString;
//Цикл по работам:
dstJobs.First;
Sum := 0;
while not dstJobs.Eof do
begin
//Добавление новой строки для работы:
if i <> 0 then
begin
Excel.Rows.Item[PosInc+i].Select;
Excel.Selection.Insert;
Excel.Rows.Item[PosInc].Select;
Excel.Selection.Copy;
Excel.Rows.Item[PosInc+i].Select;
Excel.ActiveSheet.Paste;
Excel.Application.CutCopyMode := False;
end;
Excel.Cells[i+PosInc,1] := i+1;
Excel.Cells[i+PosInc,2] := dstJobs.FieldByName('Работа').AsString;
Excel.Cells[i+PosInc,3] := 'шт';
Excel.Cells[i+PosInc,4] := dstJobs.FieldByName('Количество').AsFloat;
Excel.Cells[i+PosInc,5] := dstJobs.FieldByName('Стоимость').AsCurrency;
Excel.Cells[i+PosInc,6] := dstJobs.FieldByName('Сумма').AsCurrency;
Inc(i);
Sum := Sum + dstJobs.FieldByName('Сумма').AsCurrency;
dstJobs.Next;
end; //while not dstJobs.Eof
//Цикл по МТР:
dstOrderParts.First;
while not dstOrderParts.Eof do
begin
//Добавление новой строки для МТР:
if i <> 0 then
begin
Excel.Rows.Item[PosInc+i].Select;
Excel.Selection.Insert;
Excel.Rows.Item[PosInc].Select;
Excel.Selection.Copy;
Excel.Rows.Item[PosInc+i].Select;
Excel.ActiveSheet.Paste;
Excel.Application.CutCopyMode := False;
end;
Excel.Cells[i+PosInc,1] := i+1;
Excel.Cells[i+PosInc,2] := dstOrderParts.FieldByName('Материал').AsString;
Excel.Cells[i+PosInc,3] := tbParts.FieldByName('ЕдИзм').AsString;
Excel.Cells[i+PosInc,4] := dstOrderParts.FieldByName('Количество').AsFloat;
Excel.Cells[i+PosInc,5] := dstOrderParts.FieldByName('Цена').AsCurrency;
Excel.Cells[i+PosInc,6] := dstOrderParts.FieldByName('Сумма').AsCurrency;
Inc(i);
Sum := Sum + dstOrderParts.FieldByName('Сумма').AsCurrency;
dstOrderParts.Next;
end; //while not dstJobs.Eof
Excel.Cells[i+PosInc,6] := Sum;
Excel.Cells[i+PosInc+1,6] := Sum/118*18;
Excel.Cells[i+PosInc+3,2] := SumToTxt(Format('%.2f', [Sum]));
//Вывод реквизитов в шапку:
DM.tbInfo.Open;
Excel.Cells[1,1] := DM.tbInfo.FieldByName('Наименование').AsString + ', ' +
DM.tbInfo.FieldByName('Адрес').AsString + ', ИНН ' +
DM.tbInfo.FieldByName('ИНН').AsString + ', КПП ' +
DM.tbInfo.FieldByName('КПП').AsString;
Excel.Cells[2,1] := DM.tbInfo.FieldByName('Реквизиты').AsString;
Excel.Cells[i+PosInc+5,3] := DM.tbInfo.FieldByName('ГенДиректор').AsString;
DM.tbInfo.Close;
end; //with
Excel.Visible := True;
except
Excel.Quit;
end;
finally
Screen.Cursor := crDefault;
end;
end;
//Формирование счета-фактуры:
procedure Rep_Fact;
var
WorkbookName: string;
Excel: Variant;
i, PosInc: Integer;
Sum: Currency;
begin
//Шаблон хранится в папке Шаблоны:
WorkbookName := GetCurrentDir + '\Templates\' + 'Счет-фактура.xlt';
Excel := CreateOleObject('Excel.Application');
Screen.Cursor := crHourGlass;
try
try
Excel.Workbooks.Open(WorkbookName);
//Экспорт данных из таблицы БД:
with DM do
begin
i := 0;
PosInc := 19;
Excel.Cells[4,2] := FormatFloat('0000', dstOrders.FieldByName('NЗаказа').AsInteger);
Excel.Cells[4,4] := GetRightDate(DM.dstOrders.FieldByName('ДатаПриема').AsDateTime);
Excel.Cells[10,2] := dstOrders.FieldByName('Клиент').AsString + ', ' +
DM.tbOrgs.FieldByName('Адрес').AsString;
Excel.Cells[11,2] := 'С' + FormatFloat('0000', dstOrders.FieldByName('NЗаказа').AsInteger) +
' от ' + dstOrders.FieldByName('ДатаПриема').AsString;
Excel.Cells[12,2] := dstOrders.FieldByName('Клиент').AsString;
Excel.Cells[13,2] := DM.tbOrgs.FieldByName('Адрес').AsString;
Excel.Cells[14,2] := DM.tbOrgs.FieldByName('ИНН').AsString + ' / ' +
DM.tbOrgs.FieldByName('КПП').AsString;
//Цикл по работам:
dstJobs.First;
Sum := 0;
while not dstJobs.Eof do
begin
//Добавление новой строки для работы:
if i <> 0 then
begin
Excel.Rows.Item[PosInc+i].Select;
Excel.Selection.Insert;
Excel.Rows.Item[PosInc].Select;
Excel.Selection.Copy;
Excel.Rows.Item[PosInc+i].Select;
Excel.ActiveSheet.Paste;
Excel.Application.CutCopyMode := False;
end;
Excel.Cells[i+PosInc,1] := dstJobs.FieldByName('Работа').AsString;
Excel.Cells[i+PosInc,2] := 'шт';
Excel.Cells[i+PosInc,3] := dstJobs.FieldByName('Количество').AsFloat;
Excel.Cells[i+PosInc,4] := dstJobs.FieldByName('Стоимость').AsCurrency;
Excel.Cells[i+PosInc,5] := dstJobs.FieldByName('Сумма').AsCurrency / 118 * 100;
Excel.Cells[i+PosInc,8] := dstJobs.FieldByName('Сумма').AsCurrency / 118 * 18;
Excel.Cells[i+PosInc,9] := dstJobs.FieldByName('Сумма').AsCurrency;
Inc(i);
Sum := Sum + dstJobs.FieldByName('Сумма').AsCurrency;
dstJobs.Next;
end; //while not dstJobs.Eof
//Цикл по МТР:
dstOrderParts.First;
while not dstOrderParts.Eof do
begin
//Добавление новой строки для продукции:
if i <> 0 then
begin
Excel.Rows.Item[PosInc+i].Select;
Excel.Selection.Insert;
Excel.Rows.Item[PosInc].Select;
Excel.Selection.Copy;
Excel.Rows.Item[PosInc+i].Select;
Excel.ActiveSheet.Paste;
Excel.Application.CutCopyMode := False;
end;
Excel.Cells[i+PosInc,1] := dstOrderParts.FieldByName('Материал').AsString;
Excel.Cells[i+PosInc,4] := tbParts.FieldByName('ЕдИзм').AsString;
Excel.Cells[i+PosInc,3] := dstOrderParts.FieldByName('Количество').AsFloat;
Excel.Cells[i+PosInc,4] := dstOrderParts.FieldByName('Цена').AsCurrency / 118 * 100;
Excel.Cells[i+PosInc,5] := dstOrderParts.FieldByName('Сумма').AsCurrency / 118 * 100;
Excel.Cells[i+PosInc,8] := dstOrderParts.FieldByName('Сумма').AsCurrency / 118 * 18;
Excel.Cells[i+PosInc,9] := dstOrderParts.FieldByName('Сумма').AsCurrency;
Inc(i);
Sum := Sum + dstOrderParts.FieldByName('Сумма').AsCurrency;
dstOrderParts.Next;
end; //while not dstJobs.Eof
Excel.Cells[i+PosInc,9] := Sum / 118 * 18;
Excel.Cells[i+PosInc,9] := Sum;
//Вывод реквизитов:
DM.tbInfo.Open;
Excel.Cells[6,2] := DM.tbInfo.FieldByName('Наименование').AsString;
Excel.Cells[7,2] := DM.tbInfo.FieldByName('Адрес').AsString;
Excel.Cells[8,2] := DM.tbInfo.FieldByName('ИНН').AsString + ' / ' +
DM.tbInfo.FieldByName('КПП').AsString;
Excel.Cells[9,3] := DM.tbInfo.FieldByName('Наименование').AsString +
', ' + DM.tbInfo.FieldByName('Адрес').AsString;
Excel.Cells[i+PosInc+3,4] := DM.tbInfo.FieldByName('ГенДиректор').AsString;
Excel.Cells[i+PosInc+3,10] := DM.tbInfo.FieldByName('ГлавБух').AsString;
DM.tbInfo.Close;
end; //with
Excel.Visible := True;
except
Excel.Quit;
end;
finally
Screen.Cursor := crDefault;
end;
end;
//Функция возвращает дату формата "xx месяца xxxx г."
function GetRightDate(ADate: TDateTime): string;
var
Month: string;
begin
case MonthOf(ADate) of
1: Month := 'января';
2: Month := 'февраля';
3: Month := 'марта';
4: Month := 'апреля';
5: Month := 'мая';
6: Month := 'июня';
7: Month := 'июля';
8: Month := 'августа';
9: Month := 'сентября';
10: Month := 'октября';
11: Month := 'ноября';
12: Month := 'декабря';
end;
Result := FormatDateTime('dd ' + Month + ' yyyy г.', ADate);
end;
//Открытие пустого бланка дефектной ведомости:
procedure Rep_Defect;
var
ObjWord: Variant;
begin
ObjWord := CreateOleObject('Word.Application');
Screen.Cursor := crHourGlass;
try
try
ObjWord.Documents.Open(GetCurrentDir + '\Templates\Дефектная ведомость.dot');
ObjWord.Visible := True;
except
ObjWord.Quit;
end;
finally
Screen.Cursor := crDefault;
end;
end;
end.
unit uStatistics;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Buttons, DBCtrls, ExtCtrls, TeEngine,
Series, TeeProcs, Chart, DbChart, TeePrevi;
type
TfmStatistics = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
DBChart2: TDBChart;
TabSheet3: TTabSheet;
DBChart3: TDBChart;
HorizBarSeries1: TBarSeries;
LineSeries1: TBarSeries;
TabSheet4: TTabSheet;
DBChart4: TDBChart;
PieSeries2: TPieSeries;
Panel3: TPanel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
Label1: TLabel;
dtpDate1: TDateTimePicker;
Label2: TLabel;
dtpDate2: TDateTimePicker;
BitBtn2: TBitBtn;
bbtExit: TBitBtn;
DBChart1: TDBChart;
PieSeries1: TPieSeries;
procedure dtpDate1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure bbtExitClick(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmStatistics: TfmStatistics;
implementation
uses uDM, uRep;
{$R *.dfm}
procedure TfmStatistics.dtpDate1Change(Sender: TObject);
begin
//В зависимости от активной закладки запускается обработчик соответствующей кнопки:
case PageControl1.ActivePageIndex of
0: SpeedButton1Click(Self);
1: SpeedButton2Click(Self);
2: SpeedButton3Click(Self);
3: SpeedButton4Click(Self);
end;
end;
procedure TfmStatistics.FormCreate(Sender: TObject);
begin
dtpDate1.Date := Date;
dtpDate2.Date := Date;
SpeedButton1.Caption := 'Потребность в МТР' + Chr(13) + 'за период';
SpeedButton2.Caption := 'Статистика расхода МТР за период';
SpeedButton4.Caption := 'Суммы работ по' + Chr(13) + 'клиентам за период';
SpeedButton1.Down := True;
SpeedButton1Click(Self);
end;
procedure TfmStatistics.BitBtn2Click(Sender: TObject);
begin
//В зависимости от активной закладки выводится в режим просмотра перед печатью
//выбранная диаграмма:
if PageControl1.ActivePageIndex = 0 then
ChartPreview(Self, DBChart1)
else if PageControl1.ActivePageIndex = 1 then
ChartPreview(Self, DBChart2)
else if PageControl1.ActivePageIndex = 2 then
ChartPreview(Self, DBChart3)
else if PageControl1.ActivePageIndex = 3 then
ChartPreview(Self, DBChart4);
end;
procedure TfmStatistics.bbtExitClick(Sender: TObject);
begin
Close;
end;
//Формирование диаграммы "Потребность МТР за период":
procedure TfmStatistics.SpeedButton1Click(Sender: TObject);
begin
PageControl1.ActivePageIndex := 0;
DM.dstStatPartsCateg.Close;
DM.dstStatPartsCateg.Parameters.ParamByName('pDate1').Value := dtpDate1.Date;
DM.dstStatPartsCateg.Parameters.ParamByName('pDate2').Value := dtpDate2.Date;
DM.dstStatPartsCateg.Parameters.ParamByName('pDate11').Value := dtpDate1.Date;
DM.dstStatPartsCateg.Parameters.ParamByName('pDate22').Value := dtpDate2.Date;
DM.dstStatPartsCateg.Open;
DBChart1.Title.Text.Strings[0] := 'Потребность в МТР c ' +
DateToStr(dtpDate1.Date) + ' по ' + DateToStr(dtpDate2.Date);
end;
//Формирование диаграммы "Статистика расхода МТР за период":
procedure TfmStatistics.SpeedButton2Click(Sender: TObject);
begin
PageControl1.ActivePageIndex := 1;
DM.dstStatPartsSum.Close;
DM.dstStatPartsSum.Parameters.ParamByName('pDate1').Value := dtpDate1.Date;
DM.dstStatPartsSum.Parameters.ParamByName('pDate2').Value := dtpDate2.Date;
DM.dstStatPartsSum.Open;
DBChart2.Title.Text.Strings[0] := 'Статистика расхода МТР c ' +
DateToStr(dtpDate1.Date) + ' по ' + DateToStr(dtpDate2.Date);
end;
//Формирование диаграммы "Суммы работ за период":
procedure TfmStatistics.SpeedButton3Click(Sender: TObject);
begin
PageControl1.ActivePageIndex := 2;
DM.dstStatOrderSum.Close;
DM.dstStatOrderSum.Parameters.ParamByName('pDate1').Value := dtpDate1.Date;
DM.dstStatOrderSum.Parameters.ParamByName('pDate2').Value := dtpDate2.Date;
DM.dstStatOrderSum.Parameters.ParamByName('pDate11').Value := dtpDate1.Date;
DM.dstStatOrderSum.Parameters.ParamByName('pDate22').Value := dtpDate2.Date;
DM.dstStatOrderSum.Open;
DBChart3.Title.Text.Strings[0] := 'Суммы работ c ' +
DateToStr(dtpDate1.Date) + ' по ' + DateToStr(dtpDate2.Date);
end;
//Формирование диаграммы "Суммы работ по клиентам за период":
procedure TfmStatistics.SpeedButton4Click(Sender: TObject);
begin
PageControl1.ActivePageIndex := 3;
DM.dstStatClientSum.Close;
DM.dstStatClientSum.Parameters.ParamByName('pDate1').Value := dtpDate1.Date;
DM.dstStatClientSum.Parameters.ParamByName('pDate2').Value := dtpDate2.Date;
DM.dstStatClientSum.Parameters.ParamByName('pDate11').Value := dtpDate1.Date;
DM.dstStatClientSum.Parameters.ParamByName('pDate22').Value := dtpDate2.Date;
DM.dstStatClientSum.Open;
DBChart4.Title.Text.Strings[0] := 'Суммы работ по клиентам c ' +
DateToStr(dtpDate1.Date) + ' по ' + DateToStr(dtpDate2.Date);
end;
end.
unit uStr;
//Модуль для перевода числового представления суммы в строковое
interface
uses
SysUtils, StrUtils;
function SumToTxt(Value: String) : string; //Функция для перевода (аргумент - строка, содержащая сумму)
implementation
const a:array[0..8,0..9] of string=(
('','один ','два ','три ','четыре ','пять ','шесть ','семь ','восемь ','девять '),
('','','двадцать ','тридцать ','сорок ','пятьдесят ','шестьдесят ','семьдесят ','восемьдесят ','девяносто '),
('','сто ','двести ','триста ','четыреста ','пятьсот ','шестьсот ','семьсот ','восемьсот ','девятьсот '),
('тысяч ','тысяча ','две тысячи ','три тысячи ','четыре тысячи ','пять тысяч ','шесть тысяч ','семь тысяч ',
'восемь тысяч ','девять тысяч '),
('','','двадцать ','тридцать ','сорок ','пятьдесят ','шестьдесят ','семьдесят ','восемьдесят ','девяносто '),
('','сто ','двести ','триста ','четыреста ','пятьсот ','шестьсот ','семьсот ','восемьсот ','девятьсот '),
('миллионов ','один миллион ','два миллиона ','три миллиона ','четыре миллиона ','пять миллионов ',
'шесть миллионов ','семь миллионов ','восемь миллионов ','девять миллионов '),
('','','двадцать ','тридцать ','сорок ','пятьдесят ','шестьдесят ','семьдесят ','восемьдесят ','девяносто '),
('','сто ','двести ','триста ','четыреста ','пятьсот ','шестьсот ','семьсот ','восемьсот ','девятьсот '));
b:array[0..9] of string=
('десять ','одинадцать ','двенадцать ','тринадцать ','четырнадцать ','пятьнадцать ','шестьнадцать ',
'семьнадцать ','восемьнадцать ','девятьнадцать ');
function SumToStrin(Value : String) : string;
var s,t:string;
p,pp,i,k:integer;
begin
s:=value;
if s='0' then
t:='Ноль '
else begin
p:=length(s);
pp:=p;
if p>1 then
if (s[p-1]='1') and (s[p]>'0') then begin
t:=b[strtoint(s[p])];
pp:=pp-2;
end;
i:=pp;
while i>0 do begin
if (i=p-3) and (p>4) then
if s[p-4]='1' then begin
t:=b[strtoint(s[p-3])]+'тысяч '+t;
i:=i-2;
end;
if (i=p-6) and (p>7) then
if s[p-7]='1' then begin
t:=b[strtoint(s[p-6])]+'миллионов '+t;
i:=i-2;
end;
if i>0 then begin
k:=strtoint(s[i]);
t:=a[p-i,k]+t;
i:=i-1;
end;
end;
end;
Result := t;
end;
//Разделяет сумму на рубли и копейки:
procedure get2str(value:string;var hi,lo:string);
var p:integer;
begin
p:=pos(',',value);
lo:='';hi:='';
if p=0 then
p:=pos('.',value);
if p<>0 then
delete(value,p,1);
if p=0 then begin
hi:=value;
lo:='00';
end;
if p>length(value) then begin
hi:=value;
lo:='00';
end;
if p=1 then begin
hi:='0';
lo:=value;
end;
if (p>1) and (p<length(value)) then begin
hi:=copy(value,1,p-1);
lo:=copy(value,p,length(value));
end;
end;
function SumToTxt(value: string):string;
var hi,lo:string;
pr,er:integer;
begin
get2str(value,hi,lo);
if (hi='') or (lo='') then begin
result:='';exit;
end;
val(hi,pr,er);if er<>0 then begin
result:='';
exit;
end;
hi:=sumtostrin(inttostr(pr))+'руб. ';
if lo<>'00' then begin
val(lo,pr,er);
if er<>0 then begin
result:='';
exit;
end;
lo:=inttostr(pr);
end;
lo:=lo+' коп. ';
hi[1]:=AnsiUpperCase(hi[1])[1];
result:=hi+lo;
end;
end.
Размещено на Allbest.ru
...Подобные документы
Иерархические, сетевые и реляционные модели данных. Различия между OLTP и OLAP системами. Обзор существующих систем управления базами данных. Основные приемы работы с MS Access. Система защиты базы данных, иерархия объектов. Язык программирования SQL.
курс лекций [1,3 M], добавлен 16.12.2010Контекстная диаграмма системы обслуживания и диаграмма декомпозиции. Обоснование необходимости внедрения информационной системы. Обзор существующих программных продуктов. ER-диаграмма системы, описание таблиц базы данных. Используемые системы кодирования.
дипломная работа [577,2 K], добавлен 27.01.2014Основные классифицирующие признаки системы управления базами данных. Модель данных, вид программы и характер ее использования. Средства программирования для профессиональных разработчиков. Организация центров обработки данных в компьютерных сетях.
презентация [6,8 K], добавлен 14.10.2013Главные составные части среды программирования. Требование к надежности, к составу и параметрам технических средств. Табличные базы данных. Выбор и обоснование выбора системы управления базами данных. Высокопроизводительный компилятор в машинный код.
курсовая работа [793,5 K], добавлен 31.01.2016Обзор медицинских информационных систем. Анализ и моделирование автоматизированной системы "Регистратура". Требования к составу и параметрам вычислительной системы. Обоснование выбора системы управления базами данных. Разработка инструкции пользователя.
дипломная работа [1,2 M], добавлен 14.10.2012Обоснование выбора системы управления базы данных. Delphi и его основные компоненты. Обоснование среды программирования. Создание базы данных и ее связь со средой программирования. Анализ и описание предметной области. Описание процедур программы.
курсовая работа [1,3 M], добавлен 25.05.2015Особенности управления информацией в экономике. Понятие и функции системы управления базами данных, использование стандартного реляционного языка запросов. Средства организации баз данных и работа с ними. Системы управления базами данных в экономике.
контрольная работа [19,9 K], добавлен 16.11.2010Разработка программы для учета услуг на предприятии и хранения данных о сотрудниках и заказчиках. Анализ и состав входящей и исходящей информации. Структура базы данных, выполнение запросов. Система управления базами данных, принципы их организации.
курсовая работа [1,7 M], добавлен 06.12.2012Среды передачи данных, топологии локальных сетей. Сравнение средств разработки Microsoft, выбор системы управления базами данных. Описание серверной и клиентской части приложения. Внедрение системы оперативного документооборота на данное предприятие.
дипломная работа [3,5 M], добавлен 12.01.2012Определение назначения, описание функций и изучение классификации складов. Анализ предметной области и проектирование системы базы данных управления складом. Разработка руководства пользователя для оператора базы данных, расчет сметной стоимости проекта.
дипломная работа [2,2 M], добавлен 24.07.2014Классификация систем управления базами данных. Выбор операционной системы, языка программирования, среды разработки (IDE) и дополнительных компонент. Разработка интерфейса и функций программы по управлению складом, её тестирование и исходный код файлов.
курсовая работа [487,3 K], добавлен 25.12.2015Обоснование необходимости разработки виртуального магазина. Описание форм программы. Требования к аппаратному и программному обеспечению. Тестирование и выявление ошибок. Область применения программы. Расчет экономического эффекта проекта. Охрана труда.
дипломная работа [1,7 M], добавлен 20.12.2012Характеристика структурированного языка программирования С, его основных структурных компонентов, области памяти, библиотеки. Методы поиска в массивах данных. Описание программы, функции сортировки и меню выбора, последовательного и бинарного поиска.
курсовая работа [1,7 M], добавлен 19.05.2014Исследоввание деятельности магазина "Комплектация компьютерной техники". Анализ данных, обоснование проекта программы продажи/покупки товаров. Правила выбора языка программирования. Описание интерфейса программы. Составление руководства пользователя.
курсовая работа [512,4 K], добавлен 11.12.2014Обзор программных средств разработки приложений и обоснование выбора языка программирования. Классификация приложений для работы с базами данных. Функциональная структура базы данных с указанием назначения программных модулей, руководство пользователя.
дипломная работа [645,3 K], добавлен 21.11.2010Обоснование выбора языка программирования. Описание разработки структуры программы. Спецификация переменных и процедур. Руководство оператора, словесный алгоритм. Состав информационной системы поиска квартир и характеристика её программных интерфейсов.
отчет по практике [2,2 M], добавлен 15.09.2014Устройства внешней памяти. Система управления базами данных. Создание, ведение и совместное использование баз данных многими пользователями. Понятие системы программирования. Страницы доступа к данным. Макросы и модули. Монопольный режим работы.
реферат [27,5 K], добавлен 10.01.2011Разработка информационной системы, выбор языка программирования, физическое описание базы данных, выбор типа и описание таблиц базы данных. Техническое проектирование, ограничения и значения по умолчанию, представления, хранимые процедуры и триггеры.
курсовая работа [519,8 K], добавлен 25.05.2010Система управления базами данных как составная часть автоматизированного банка данных. Структура и функции системы управления базами данных. Классификация СУБД по способу доступа к базе данных. Язык SQL в системах управления базами данных, СУБД Microsoft.
реферат [46,4 K], добавлен 01.11.2009Базы данных как составная часть информационных систем. Изучение взаимосвязи понятий информация и данные. Система управления базами данных. Пример структурированных данных. Обеспечение логической независимости. Безопасность операционной системы.
контрольная работа [44,6 K], добавлен 15.06.2009