Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
DM.dstRealtySpecific.FieldByName('Характеристика').AsString + ': ' +
DM.dstRealtySpecific.FieldByName('Значение').AsString);
DM.dstRealtySpecific.Next;
end;
DM.dstRealtySpecific.Close;
//Для сделок аренды цена аренды у квартир - за всю квартиру, у всех остальных
//объектов - за кв.м.:
if not ((DM.dstRealty.FieldByName('ТипНедвижID').AsInteger = 1) and
(DM.dstDeal.FieldByName('ТипСделкиID').AsInteger = 2)) then
begin
ObjWord.Selection.Goto(Name := 'ЗаКВМ');
ObjWord.Selection.TypeText(Text := ' за кв.м. ');
end;
end; //if DM.dstRealty.Locate
ObjWord.Visible := True;
except
ObjWord.Quit;
end;
finally
Screen.Cursor := crDefault;
end;
end;
//Формирование обявления для размещения в СМИ:
procedure DocAd;
var
ObjWord: Variant;
begin
ObjWord := CreateOleObject('Word.Application');
Screen.Cursor := crHourGlass;
try
try
ObjWord.Documents.Add;
ObjWord.Selection.TypeText(Text := DM.dstRealty.FieldByName('ТипНедвиж').AsString +
', сделка: ' + DM.dstRealty.FieldByName('ТипСделки').AsString +
', адрес: ' + DM.dstRealty.FieldByName('Адрес').AsString +
', ' + DM.dstRealty.FieldByName('Описание').AsString +
', цена: ' + DM.dstRealty.FieldByName('Цена').AsString + ' руб.');
//Для сделок аренды цена аренды у квартир - за всю квартиру, у всех остальных
//объектов - за кв.м.:
if (DM.dstRealty.FieldByName('ТипСделкиID').AsInteger = 2) and
(DM.dstRealty.FieldByName('ТипНедвижID').AsInteger <> 1) then
ObjWord.Selection.TypeText(Text := ' за кв.м. ');
DM.dstRealtySpecific.First;
//Цикл по характеристикам выбранного объекта недвижимости:
while not DM.dstRealtySpecific.Eof do
begin
if not DM.dstRealtySpecific.FieldByName('Значение').IsNull then
ObjWord.Selection.TypeText(Text := ', ' +
DM.dstRealtySpecific.FieldByName('Характеристика').AsString + ': ' +
DM.dstRealtySpecific.FieldByName('Значение').AsString);
DM.dstRealtySpecific.Next;
end;
DM.dstPhoto.First;
//Цикл по фото выбранного объекта недвижимости:
while not DM.dstPhoto.Eof do
begin
ObjWord.Selection.TypeText(Text := Chr(13));
fmCard.DBImage1.CopyToClipboard;
ObjWord.Selection.Paste;
DM.dstPhoto.Next;
end;
ObjWord.Visible := True;
except
ObjWord.Quit;
end;
finally
Screen.Cursor := crDefault;
end;
end;
end.
Программный модуль uLogin.pas
unit uLogin;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, IniFiles;
type
TfmLogin = class(TForm)
Label1: TLabel;
edLogin: TEdit;
Label2: TLabel;
edPassword: TEdit;
bbtOK: TBitBtn;
bbtCancel: TBitBtn;
OpenDialog1: TOpenDialog;
procedure bbtOKClick(Sender: TObject);
procedure bbtCancelClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
UserID: Integer;
DBPath: string;
end;
var
fmLogin: TfmLogin;
implementation
uses uDM, DB, ADODB, uMain;
{$R *.dfm}
procedure TfmLogin.FormCreate(Sender: TObject);
var
IniFile: TIniFile;
APchar: array[0..254] of Char;
NewDBPath: Boolean;
//Запись в ini-файл пути к базе данных:
procedure SaveToFile(Path: string);
var
APchar: array[0..254] of Char;
f: File;
begin
GetWindowsDirectory(APchar, 255);
if not FileExists(string(APchar)+'\Realty.ini') then
begin
//Создание файла, если он не существует:
AssignFile(f, string(APchar)+'\Realty.ini');
Rewrite(f);
CloseFile(f);
end;
IniFile := TIniFile.Create(string(APchar)+'\Realty.ini');
try
IniFile.WriteString('Base', 'Path', Path);
finally
IniFile.Free;
end;
end;
begin
if not Assigned(DM) then
Application.CreateForm(TDM, DM);
//Загрузка данных о пути к базе данных на удаленном компьютере из
//инициализационного файла, если он существует:
DBPath := '';
NewDBPath := False;
GetWindowsDirectory(APchar, 255);
if FileExists(string(APchar)+'\Realty.ini') then
begin
IniFile := TIniFile.Create(string(APchar)+'\Realty.ini');
try
DBPath := IniFile.ReadString('Base', 'Path', '');
finally
IniFile.Free;
end;
end;
if DBPath = '' then
if OpenDialog1.Execute then
begin
DBPath := OpenDialog1.FileName;
NewDBPath := True;
end;
if DBPath = '' then
Application.Terminate
else
begin
//Задание пути к БД:
DM.ADOConnection1.ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DBPath + ';Mode=ReadWrite;Persist Security Info=False';
//Попытка открытия БД. Если она неудачна, пользователю предлагается изменить
//путь к БД:
try
DM.ADOConnection1.Open;
except
Application.MessageBox('База данных не найдена!', 'Ошибка', MB_OK+MB_ICONERROR);
if OpenDialog1.Execute then
begin
DBPath := OpenDialog1.FileName;
NewDBPath := True;
end;
DM.ADOConnection1.ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DBPath + ';Persist Security Info=False';
//При возникновении ошибки при повторном открытии БД программа закрывается:
try
DM.ADOConnection1.Open;
except
Application.MessageBox('База данных не найдена!', 'Ошибка', MB_OK+MB_ICONERROR);
Application.Terminate;
end;
end;
end;
if NewDBPath then
SaveToFile(DBPath);
end;
//По введенным логину и паролю определяются права доступа пользователей к системе,
//а именно - доступность пунктов меню:
procedure TfmLogin.bbtOKClick(Sender: TObject);
begin
//Режим админа:
if (edLogin.Text = 'admin') and (edPassword.Text = 'admin') then
begin
UserID := 0;
fmLogin.Hide;
if not Assigned(fmMain) then
Application.CreateForm(TfmMain, fmMain);
fmMain.Caption := fmMain.Caption + ': Руководитель';
fmMain.ShowModal;
end
else
begin
//Поиск сотрудника с заданными логином и паролем:
DM.dstRealtor.Open;
if DM.dstRealtor.Locate('Логин;Пароль', VarArrayOf([edLogin.Text, edPassword.Text]), [loCaseInsensitive]) then
begin
UserID := DM.dstRealtor.FieldByName('ID').AsInteger;
if not Assigned(fmMain) then
Application.CreateForm(TfmMain, fmMain);
with fmMain do
begin
Caption := fmMain.Caption + ': Риэлтор ' + DM.dstRealtor.FieldByName('ФИО').AsString;
//Часть пунктов меню для риэлтора недоступна:
acDistrict.Enabled := False;
acRealtor.Enabled := False;
acRealtyTypeCpecific.Enabled := False;
acStat.Enabled := False;
end;
fmLogin.Hide;
fmMain.ShowModal;
end //if DM.dstRealtor.Locate
else
Application.MessageBox('Неверные логин или пароль!', 'Ошибка', MB_OK+MB_ICONEXCLAMATION);
DM.dstRealtor.Close;
end;
end;
procedure TfmLogin.bbtCancelClick(Sender: TObject);
begin
Close;
end;
end.
Программный модуль uMain.pas
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ActnList, StdActns, XPMan, ImgList, XPStyleActnCtrls, ActnMan,
ToolWin, ActnCtrls, ActnMenus, StdCtrls, Buttons, jpeg, ExtCtrls;
type
TfmMain = class(TForm)
ActionMainMenuBar1: TActionMainMenuBar;
ActionManager1: TActionManager;
ImageList1: TImageList;
XPManifest1: TXPManifest;
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |


