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

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

  Panel2: TPanel;

  bbtSearch: TBitBtn;

  DBNavigator1: TDBNavigator;

  bbtPrint: TBitBtn;

  bbtClose: TBitBtn;

  Panel3: TPanel;

  Label1: TLabel;

  Label2: TLabel;

  Label3: TLabel;

  Label5: TLabel;

  Label6: TLabel;

  Label9: TLabel;

  Label10: TLabel;

  Label4: TLabel;

  Label8: TLabel;

  Label11: TLabel;

  Label7: TLabel;

  DBLookupComboBox1: TDBLookupComboBox;

  dblcbType: TDBLookupComboBox;

  DBLookupComboBox3: TDBLookupComboBox;

  DBLookupComboBox4: TDBLookupComboBox;

  DBEdit5: TDBEdit;

  DBCheckBox1: TDBCheckBox;

  DBLookupComboBox5: TDBLookupComboBox;

  DBMemo1: TDBMemo;

  DBEdit1: TDBEdit;

  DBEdit2: TDBEdit;

  lbWarning: TLabel;

  procedure FormShow(Sender: TObject);

  procedure FormClose(Sender: TObject; var Action: TCloseAction);

  procedure bbtCloseClick(Sender: TObject);

  procedure bbtPrintClick(Sender: TObject);

  procedure bbtSearchClick(Sender: TObject);

  procedure FormCreate(Sender: TObject);

  procedure DBEdit1Enter(Sender: TObject);

  procedure DBEdit1Exit(Sender: TObject);

  procedure sgResultDblClick(Sender: TObject);

private

  { Private declarations }

public

  { Public declarations }

end;


var

fmReqCard: TfmReqCard;


implementation


uses uDM, uDocs, DB, ADODB, uCard;


{$R *.dfm}


procedure TfmReqCard.FormShow(Sender: TObject);

var

i: Integer;

begin

DM.dstReqSpecific.Open;

DM.dstRequest.Open;

DM.dstSpecific.Sort := 'Характеристика';


if DM.dstRequest.State <> dsInsert then

  bbtSearchClick(Self)

else

begin

  //Очистка таблицы результатов поиска:

  sgResult.RowCount := 2;

  for i:= 1 to sgResult.RowCount-1 do

    sgResult.Rows[i].Clear;

end;

end;


procedure TfmReqCard.FormClose(Sender: TObject; var Action: TCloseAction);

begin

//Сохранение внесенных данных:

if DM.dstReqSpecific.State in [dsEdit, dsInsert] then

  DM.dstReqSpecific.Post;

if DM.dstRequest.State in [dsEdit, dsInsert] then

  DM.dstRequest.Post;


DM.dstReqSpecific.Close;

end;


procedure TfmReqCard.bbtCloseClick(Sender: TObject);

begin

Close;

end;


procedure TfmReqCard.bbtPrintClick(Sender: TObject);

begin

DocCardRequest;

end;


procedure TfmReqCard.bbtSearchClick(Sender: TObject);

var

i: Integer;

Value1, Value2: Double;

SpecResult, SearchResult: Boolean;

begin

//Очистка таблицы результатов поиска:

sgResult.RowCount := 2;

for i:= 1 to sgResult.RowCount-1 do

  sgResult.Rows[i].Clear;


i := 0;

//Отбор объектов в базе по основным параметрам:

DM.dstRealty.Filter := 'Актуально = True and ТипНедвижID = ' +

  DM.dstRequest.FieldByName('ТипНедвижID').AsString + ' and ТипСделкиID = ' +

  DM.dstRequest.FieldByName('ТипСделкиID').AsString + ' and Цена <= ' +

  DM.dstRequest.FieldByName('ЦенаДо').AsString;

if (DM.dstRequest.FieldByName('Район').AsString <> 'Любой') then

  DM.dstRealty.Filter := DM.dstRealty.Filter + ' and РайонID = ' +

    DM.dstRequest.FieldByName('РайонID').AsString;


DM.dstRealty.Filtered := True;

DM.dstRealty.Open;

DM.dstRealtySpecific.Open;


DM.dstRealty.First;

//Цикл по предварительно отобранным объектам недвижимости:

while not DM.dstRealty.Eof do

begin

  //Отбор объектов в базе по дополнительным характеристикам:

  DM.dstReqSpecific.First;

  SearchResult := True; //Результат сранения объекта по всем характеристикам

  //Цикл по характеристикам объекта в заявке:

  while not DM.dstReqSpecific.Eof do

  begin

    //Если у текущего объекта в базе есть текущая характеристика по заявке, то

    //производится сравнение:

    if DM.dstRealtySpecific.Locate('ХарактID', DM.dstReqSpecific.FieldByName('ХарактID').AsInteger, []) then

    begin

      SpecResult := False; //Результат сранения объекта по текущей характеристике

      //Если в заявке задано конкретное значение характеристики, производится сравнение:

      if not DM.dstReqSpecific.FieldByName('Значение').IsNull then

        SpecResult := DM.dstRealtySpecific.FieldByName('Значение').Value =

    DM.dstReqSpecific.FieldByName('Значение').Value

      else

      begin

        //Если в заявке задан диапазон значений характеристики, производится перевод в числа:

        if TryStrToFloat(DM.dstRealtySpecific.FieldByName('Значение').AsString, Value1) then

if (not DM.dstReqSpecific.FieldByName('ЗначениеОт').IsNull) and

   (TryStrToFloat(DM.dstReqSpecific.FieldByName('ЗначениеОт').AsString, Value2)) then

  SpecResult := Value1 >= Value2;

        //Если результат сравнения значения со значением "от" положительный, срасниваем со знчение "до":

        if SpecResult and (not DM.dstReqSpecific.FieldByName('ЗначениеДо').IsNull) and

(TryStrToFloat(DM.dstReqSpecific.FieldByName('ЗначениеДо').AsString, Value2)) then

  SpecResult := Value1 <= Value2;

      end;

      if not SpecResult then

        SearchResult := False;

    end; //if DM.dstRealtySpecific.Locate

    DM.dstReqSpecific.Next;

  end; //while not DM.dstReqSpecific.Eof


  //Добавление новой строки в таблицу результатов, если результат сравнения положительный:

  if SearchResult then

  begin

    Inc(i);

    if i <> 1 then

      sgResult.RowCount := sgResult.RowCount + 1;


    //Вывод в таблицу результатов поиска:

    sgResult.Cells[0,i] := DM.dstRealty.FieldByName('Описание').AsString;

    sgResult.Cells[1,i] := DM.dstRealty.FieldByName('Адрес').AsString;

    sgResult.Cells[2,i] := DM.dstRealty.FieldByName('Район').AsString;

    sgResult.Cells[3,i] := DM.dstRealty.FieldByName('Контрагент').AsString;

    sgResult.Cells[4,i] := FormatFloat('0.00', DM.dstRealty.FieldByName('Цена').AsFloat);

    sgResult.Cells[5,i] := DM.dstRealty.FieldByName('ДатаПредлож').AsString;

    sgResult.Cells[6,i] := DM.dstRealty.FieldByName('Риэлтор').AsString;

    sgResult.Cells[7,i] := FormatFloat('00000', DM.dstRealty.FieldByName('ID').AsFloat);

  end;

  DM.dstRealty.Next;

end; //while not DM.dstRealty.Eof

DM.dstRealty.Close;

DM.dstRealtySpecific.Close;

end;


procedure TfmReqCard.FormCreate(Sender: TObject);

begin

sgResult.Cells[0,0] := 'Описание';

sgResult.Cells[1,0] := 'Адрес';

sgResult.Cells[2,0] := 'Район';

sgResult.Cells[3,0] := 'Контрагент';

sgResult.Cells[4,0] := 'Цена, руб.';

sgResult.Cells[5,0] := 'Дата предложения';

sgResult.Cells[6,0] := 'Риэлтор';

sgResult.Cells[7,0] := 'Шифр объекта';

end;


//При получении фокуса поля ввода цены отображается уведомление:

procedure TfmReqCard.DBEdit1Enter(Sender: TObject);

begin

if dblcbType.Text = 'Аренда' then

  lbWarning.Visible := True;

end;


//При потери фокуса поля ввода цены скрывается уведомление:

procedure TfmReqCard.DBEdit1Exit(Sender: TObject);

begin

lbWarning.Visible := False;

end;


procedure TfmReqCard.sgResultDblClick(Sender: TObject);

begin

DM.dstRealty.Open;

if DM.dstRealty.Locate('ID', StrToInt(sgResult.Cells[7, sgResult.Row]), []) then

  fmCard.Show;

end;


end.


Программный модуль uRequest.pas


unit uRequest;


interface


uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, DBCtrls, ExtCtrls, Grids, DBGrids, ComCtrls;


type

TfmRequest = class(TForm)

  DBGrid1: TDBGrid;

  Panel1: TPanel;

  DBNavigator1: TDBNavigator;

  bbtClose: TBitBtn;

  bbtPrint: TBitBtn;

  GroupBox1: TGroupBox;

  dblcbRealtyType: TDBLookupComboBox;

  dblcbDistrict: TDBLookupComboBox;

  dblcbDealType: TDBLookupComboBox;

  dtpDate1: TDateTimePicker;

  dtpDate2: TDateTimePicker;

  chbRealtyType: TCheckBox;

  chbDistrict: TCheckBox;

  chbDealType: TCheckBox;

  chbDate1: TCheckBox;

  chbDate2: TCheckBox;

  chbActual: TCheckBox;

  chbRealtor: TCheckBox;

  dblcbRealtor: TDBLookupComboBox;

  bbtCard: TBitBtn;

  procedure FormShow(Sender: TObject);

  procedure FormClose(Sender: TObject; var Action: TCloseAction);

  procedure bbtPrintClick(Sender: TObject);

  procedure chbRealtyTypeClick(Sender: TObject);

  procedure FormCreate(Sender: TObject);

  procedure bbtCloseClick(Sender: TObject);

  procedure bbtCardClick(Sender: TObject);

  procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;

    DataCol: Integer; Column: TColumn; State: TGridDrawState);

private

  { Private declarations }

public

  { Public declarations }

end;


var

fmRequest: TfmRequest;


implementation


uses uDM, uDocs, uReqCard;


{$R *.dfm}


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