D10xhGemei/A00通用窗体/U_VehicleSel.pas

225 lines
5.3 KiB
ObjectPascal
Raw Normal View History

2025-03-20 16:38:30 +08:00
unit U_VehicleSel;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls,
cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit,
cxTextEdit, cxDBLookupComboBox, ComObj, cxLookAndFeels, cxLookAndFeelPainters,
cxNavigator, dxDateRanges, U_BaseHelp,
dxBarBuiltInMenu, System.ImageList, Vcl.ImgList,
dxScrollbarAnnotations, cxImageList, cxContainer, dxSkinsCore,
dxSkinsDefaultPainters;
type
FdDy = record
inc: integer; //<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>׽<EFBFBD><D7BD>־<EFBFBD><D6BE><EFBFBD>
FDdys: string[32]; //<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>׽<EFBFBD><D7BD><EFBFBD>
FdDysName: string[32]; //<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>׽<EFBFBD><D7BD><EFBFBD>
end;
TfrmVehicleSel = class(TfrmBaseHelp)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ToolButton2: TToolButton;
ADOQueryMain: TADOQuery;
Label3: TLabel;
UserName: TcxTextEdit;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_1: TDataSource;
CDS_1: TClientDataSet;
Label1: TLabel;
UserID: TcxTextEdit;
btnOK: TToolButton;
ADOConnection1: TADOConnection;
ImageList1: TImageList;
cxImageList_bar: TcxImageList;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v2Column1: TcxGridDBColumn;
v2Column12: TcxGridDBColumn;
v2Column8: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure btnOKClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Tv1DblClick(Sender: TObject);
procedure UserIDPropertiesChange(Sender: TObject);
private
{ Private declarations }
procedure InitGrid();
procedure CheckGrid();
public
Fdept: string;
FMultiple: Boolean;
FRTUserID, FRTUserName: string;
end;
var
frmVehicleSel: TfrmVehicleSel;
implementation
uses
U_DataLink, U_RTFun;
{$R *.dfm}
procedure TfrmVehicleSel.CheckGrid();
var
fsj, fsj1: string;
FStrs: TStringList;
i: integer;
begin
if Trim(FRTUserID) <> '' then
begin
FStrs := TStringList.Create();
ExtractStrings([','], [' '], PChar(FRTUserID), FStrs);
with CDS_1 do
begin
First;
while not eof do
begin
if FStrs.IndexOf(Trim(FieldByName('UserID').AsString)) >= 0 then
begin
Edit;
FieldByName('SSel').Value := true;
Post;
end;
Next;
end;
end;
FStrs.Free;
end;
end;
procedure TfrmVehicleSel.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
sql.Add(' select A.* from Bs_Vehicle A order by VNO ');
Open;
end;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryMain, CDS_1);
SInitCDSData(ADOQueryMain, CDS_1);
finally
ADOQueryMain.EnableControls;
end;
CheckGrid();
end;
procedure TfrmVehicleSel.FormCreate(Sender: TObject);
begin
inherited;
try
with ADOConnection1 do
begin
Connected := false;
ConnectionString := DConString;
Connected := true;
end;
ADOQueryBaseCmd.Connection := ADOConnection1;
ADOQueryBaseTemp.Connection := ADOConnection1;
except
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ');
end;
end;
procedure TfrmVehicleSel.FormDestroy(Sender: TObject);
begin
inherited;
frmVehicleSel := nil;
end;
procedure TfrmVehicleSel.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmVehicleSel.TBCloseClick(Sender: TObject);
begin
WriteCxGrid(trim(self.caption), Tv1, '<27>˻<EFBFBD>ѡ<EFBFBD><D1A1>');
Close;
end;
procedure TfrmVehicleSel.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid(trim(self.Caption), Tv1, '<27>˻<EFBFBD>ѡ<EFBFBD><D1A1>');
InitGrid();
end;
procedure TfrmVehicleSel.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmVehicleSel.ToolButton2Click(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryMain, CDS_1);
SInitCDSData(ADOQueryMain, CDS_1);
end;
end;
procedure TfrmVehicleSel.Tv1DblClick(Sender: TObject);
begin
btnOK.Click;
end;
procedure TfrmVehicleSel.UserIDPropertiesChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmVehicleSel.btnOKClick(Sender: TObject);
var
RTValues: TArray<string>;
begin
if FMultiple then
begin
if not CDS_1.Locate('SSel', true, []) then
begin
Application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
end;
RTValues := SelCDSKey(CDS_1, ['UserID', 'UserName']);
FRTUserID := RTValues[0];
FRTUserName := RTValues[1];
ModalResult := 1;
end;
end.