Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
DateToStr(dtpDate1.Date) + ' по ' + DateToStr(dtpDate2.Date);
end;
//Формирование диаграммы "Суммы сделок по риэлторам за период":
procedure TfmStat.SpeedButton5Click(Sender: TObject);
begin
PageControl1.ActivePageIndex := 4;
DM.dstStatDealRealtor.Close;
DM.dstStatDealRealtor.Parameters.ParamByName('pDate1').Value := dtpDate1.Date;
DM.dstStatDealRealtor.Parameters.ParamByName('pDate2').Value := dtpDate2.Date;
DM.dstStatDealRealtor.Open;
DBChart5.Title.Text.Strings[0] := 'Суммы сделок по риэлторам за период с ' +
DateToStr(dtpDate1.Date) + ' по ' + DateToStr(dtpDate2.Date);
end;
//Формирование диаграммы "Суммы комиссий за период":
procedure TfmStat.SpeedButton6Click(Sender: TObject);
begin
PageControl1.ActivePageIndex := 5;
DM.dstStatComis.Close;
DM.dstStatComis.Parameters.ParamByName('pDate1').Value := dtpDate1.Date;
DM.dstStatComis.Parameters.ParamByName('pDate2').Value := dtpDate2.Date;
DM.dstStatComis.Open;
DBChart6.Title.Text.Strings[0] := 'Комиссионный доход помесячно за период с ' +
DateToStr(dtpDate1.Date) + ' по ' + DateToStr(dtpDate2.Date);
end;
procedure TfmStat.bbtPrintClick(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)
else if PageControl1.ActivePageIndex = 4 then
ChartPreview(Self, DBChart5)
else if PageControl1.ActivePageIndex = 5 then
ChartPreview(Self, DBChart6);
end;
procedure TfmStat.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.dstStatQuantity.Close;
DM.dstStatReq.Close;
DM.dstStatDealQuant.Close;
DM.dstStatDealSum.Close;
DM.dstStatDealRealtor.Close;
DM.dstStatComis.Close;
end;
procedure TfmStat.bbtCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfmStat.FormShow(Sender: TObject);
begin
SpeedButton1Click(Self);
end;
end.
Программный модуль uSumToStr.pas
unit uSumToStr;
//Модуль для перевода числового представления суммы в строковое
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.
Программный модуль uTypicalSpecific.pas
unit uTypicalSpecific;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DBCtrls, ExtCtrls, Grids, DBGrids;
type
TfmTypicalSpecific = class(TForm)
DBGrid1: TDBGrid;
Panel1: TPanel;
DBNavigator1: TDBNavigator;
bbtClose: TBitBtn;
DBGrid2: TDBGrid;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure bbtCloseClick(Sender: TObject);
procedure DBGrid1Enter(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmTypicalSpecific: TfmTypicalSpecific;
implementation
uses uDM, uDocs, uCard, uReqCard, uRequest, uRealty;
{$R *.dfm}
procedure TfmTypicalSpecific.FormShow(Sender: TObject);
begin
DM.dstRealtyType.Open;
DM.dstTypicalSpecific.Open;
DM.dstSpecific.Open;
DM.dstSpecific.Sort := 'Характеристика';
end;
procedure TfmTypicalSpecific.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//Если форма, на которой используется набор данных в данный момент закрыта, то
//набор данных также закрывается:
if (not fmCard.Showing) and (not fmReqCard.Showing) and (not fmRequest.Showing)
and (not fmRealty.Showing) then
DM.dstRealtyType.Close;
DM.dstTypicalSpecific.Close;
end;
procedure TfmTypicalSpecific.bbtCloseClick(Sender: TObject);
begin
Close;
end;
//DBNavigator1 работает с двумя наборами данных, в зависимости от того, какой
//из них выбран - Типы недвижимости или Характеристики выбранного типа недвижимости:
procedure TfmTypicalSpecific.DBGrid1Enter(Sender: TObject);
begin
DBNavigator1.DataSource := (Sender as TDBGrid).DataSource;
end;
end.
Экранные формы
Рисунок Б1 – Главная форма

Рисунок Б2 – Предложения объектов недвижимости

Рисунок Б3 – Карточка объекта

Рисунок Б4 – Заявки

Рисунок Б5 – Карточка заявки

Рисунок Б6

Рисунок Б7 – Диаграмма

Рисунок Б8 – Диаграмма

Рисунок Б9 – Диаграмма

Рисунок Б10 – Диаграмма

Рисунок Б11 – Диаграмма

Рисунок Б12 – Диаграмма

Рисунок Б13 – Характеристики видов объектов недвижимости

Рисунок Б14 – Районы города

Рисунок Б15 – Риэлторы

Рисунок Б16 – Контрагенты

Рисунок Б17 – Все характеристики объектов недвижимости
Формы выходных документов

Рисунок В1 – Предложения объектов недвижимости

Рисунок В2 – Карточка объекта

Рисунок В3 – Объявление

Рисунок В4 – Заявки

Рисунок В5 – Карточка заявки

Рисунок В6 – Заключенные сделки

Рисунок В7 – Договор аренды

Рисунок В8 – Договор купли-продажи

Рисунок В9 – Клиенты

Рисунок В10 – Агентства-партнеры
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |



