Информационная система по учету охраняемых объектов

Характеристика классификаторов и систем кодирования. Обоснование выбора системы управления базами данных и языка программирования. Описание назначения программы и условий ее применения. Расчет экономического и социального эффекта от внедрения проекта.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.