Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 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