123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- {*******************************************************************************
- 单元名称: FindUserFrm.pas
- 单元说明: 设置游客帐号,标段关注人。
- 作者时间: Chenshilong, 2017-06-19
- *******************************************************************************}
- unit SetGuestFrm;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls, ZJGrid, ZjGridDBA, DB, DBClient, sdDB;
- type
- TSetGuestForm = class(TForm)
- btnAdd: TButton;
- zgGuest: TZJGrid;
- btnOK: TButton;
- zaGuest: TZjGridDBA;
- cdsGuest: TClientDataSet;
- cdsGuestID: TIntegerField;
- cdsGuestName: TWideStringField;
- cdsGuestAccount: TWideStringField;
- cdsGuestOperate: TWideStringField;
- procedure btnAddClick(Sender: TObject);
- procedure zgGuestCellGetFont(Sender: TObject; ACoord: TPoint;
- AFont: TFont);
- procedure zgGuestMouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- private
- { Private declarations }
- FWebID: Integer;
- FOwner: TObject;
- procedure GetGuests;
- function Col(AGridDBA: TZjGridDBA; FieldName: string): Integer;
- procedure SetOwner(const Value: TObject);
- public
- { Public declarations }
- constructor Create(AWebID: Integer);
- procedure AddGuest(AID: Integer; AName, AEmail: string);
- function HasGuest(AID: Integer): Boolean;
- property Owner: TObject read FOwner write SetOwner;
- end;
- var
- SetGuestForm: TSetGuestForm;
- implementation
- uses FindUserFrm, PHPWebDm, CSLJson;
- {$R *.dfm}
- procedure TSetGuestForm.AddGuest(AID: Integer; AName, AEmail: string);
- begin
- cdsGuest.Append;
- cdsGuestID.AsInteger := AID;
- cdsGuestName.AsString := AName;
- cdsGuestAccount.AsString := AEmail;
- cdsGuestOperate.AsString := '取消关注';
- cdsGuest.Post;
- end;
- procedure TSetGuestForm.btnAddClick(Sender: TObject);
- var
- FindUserForm: TFindUserForm;
- begin
- FindUserForm := TFindUserForm.Create(self, 1, [FWebID, -1]);
- try
- FindUserForm.ShowModal;
- finally
- FindUserForm.Free;
- end;
- end;
- function TSetGuestForm.Col(AGridDBA: TZjGridDBA;
- FieldName: string): Integer;
- begin
- Result := AGridDBA.ColumnIndex(FieldName) + 1;
- end;
- constructor TSetGuestForm.Create(AWebID: Integer);
- var i: Integer;
- begin
- inherited Create(nil);
- FWebID := AWebID;
- GetGuests;
- // for test
- // for i := 1 to 5 do
- // begin
- // cdsGuest.Append;
- // cdsGuestID.AsString := IntToStr(i);
- // cdsGuestName.AsString := 'aaa' + IntToStr(i);
- // cdsGuestAccount.AsString := 'aaaa@qq.com';
- // cdsGuestOperate.AsString := '取消关注';
- // cdsGuest.Post;
- // end;
- end;
- procedure TSetGuestForm.GetGuests;
- var sURL: string;
- UserArr: TOVArr;
- i: Integer;
- begin
- Screen.Cursor := crHourGlass;
- try
- sURL := Format('%stender/%s/concernaudit/list', [PHPWeb.MeasureURL, InttoStr(FwebID)]); // AAAAAA 查询标段的关注人
- case PHPWeb.Search(sURL, [], [], UserArr) of
- 1:
- begin
- if cdsGuest.RecordCount > 0 then
- cdsGuest.EmptyDataSet;
- for i := Low(UserArr) to High(UserArr) do
- begin
- cdsGuest.Append;
- cdsGuestID.AsString := UserArr[i, 0];
- cdsGuestName.AsString := UserArr[i, 1];
- cdsGuestAccount.AsString := UserArr[i, 2];
- cdsGuestOperate.AsString := '取消关注';
- cdsGuest.Post;
- end;
- cdsGuest.First;
- end;
- -1:
- begin
- Application.MessageBox(PChar(PHPWeb.NetError('无法查询到关注人')),
- '警告', MB_OK + MB_ICONWARNING);
- Exit;
- close;
- end;
- 0:
- begin
- Application.MessageBox(PChar(PHPWeb.PageError('无法查询到关注人')),
- '警告', MB_OK + MB_ICONWARNING);
- Exit;
- close;
- end;
- end;
- finally
- Screen.Cursor := crDefault;
- end;
- end;
- function TSetGuestForm.HasGuest(AID: Integer): Boolean;
- begin
- Result := False;
- cdsGuest.First;
- while not cdsGuest.Eof do
- begin
- if cdsGuestID.AsInteger = AID then
- begin
- Result := True;
- Break;
- end;
- cdsGuest.Next;
- end;
- end;
- procedure TSetGuestForm.SetOwner(const Value: TObject);
- begin
- FOwner := Value;
- end;
- procedure TSetGuestForm.zgGuestCellGetFont(Sender: TObject; ACoord: TPoint;
- AFont: TFont);
- begin
- if ACoord.X = Col(zaGuest, 'Operate') then
- AFont.Color := clBlue;
- end;
- procedure TSetGuestForm.zgGuestMouseDown(Sender: TObject;
- Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
- var s, sURL: string;
- vArr: array of string;
- begin
- if ((zgGuest.CurCol = Col(zaGuest, 'Operate')) and (zgGuest.CurRow <= cdsGuest.RecordCount)) then
- begin
- s := Format('确定要取消用户“%s”对该标段的关注吗?', [cdsGuestName.AsString]);
- if Application.MessageBox(PChar(s), '询问', MB_YESNO + MB_ICONQUESTION) = ID_No then
- Exit;
- Screen.Cursor := crHourGlass;
- vArr := VarArrayOf(['msg']);
- try
- sURL := PHPWeb.MeasureURL + 'tender/concernaudit/del'; // AAAAAA 取消关注人
- case PHPWeb.Search(sURL, ['tenderid', 'uid'], [InttoStr(FwebID), cdsGuestID.AsString], vArr) of
- 1:
- begin
- cdsGuest.Delete;
- end;
- -1:
- begin
- Application.MessageBox(PChar(PHPWeb.NetError('无法取消关注人')),
- '警告', MB_OK + MB_ICONWARNING);
- Exit;
- end;
- 0:
- begin
- Application.MessageBox(PChar(PHPWeb.PageError('无法取消关注人')),
- '警告', MB_OK + MB_ICONWARNING);
- Exit;
- end;
- end;
- finally
- Screen.Cursor := crDefault;
- end;
- end;
- end;
- end.
|