D7gmYongjin/BI(BIView.dll)/U_KHTop.pas

344 lines
8.9 KiB
ObjectPascal
Raw Normal View History

2026-03-04 09:51:44 +08:00
unit U_KHTop;
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, cxContainer, cxDropDownEdit, cxPC, Menus,
TeEngine, Series, TeeProcs, Chart, DbChart, GanttCh, MovePanel, cxLookAndFeels,
cxLookAndFeelPainters, cxNavigator;
type
TfrmKHTop = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
ToolButton2: TToolButton;
ADOQueryMain: TADOQuery;
cxGridPopupMenu2: TcxGridPopupMenu;
Panel2: TPanel;
Panel3: TPanel;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v2Column12: TcxGridDBColumn;
v2Column7: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
SH1: TPanel;
ClientDataSet1: TClientDataSet;
DataSource1: TDataSource;
v1Column1: TcxGridDBColumn;
DataSource3: TDataSource;
ClientDataSet3: TClientDataSet;
Panel1: TPanel;
Label1: TLabel;
Label5: TLabel;
Label6: TLabel;
C_Code: TEdit;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
Panel10: TPanel;
ToolButton1: TToolButton;
ComboBox1: TComboBox;
v1Column4: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
Panel4: TPanel;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxGridDBColumn1: TcxGridDBColumn;
cxGridDBColumn2: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
cxGridDBColumn4: TcxGridDBColumn;
cxGridDBColumn5: TcxGridDBColumn;
cxGridDBColumn6: TcxGridDBColumn;
cxGridLevel2: TcxGridLevel;
Panel5: TPanel;
Timer1: TTimer;
MovePanel3: TMovePanel;
Label13: TLabel;
Button9: TButton;
Button10: TButton;
Password: TEdit;
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 C_CodeNameChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure Tv1DblClick(Sender: TObject);
procedure Tv2DblClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
private
{ Private declarations }
procedure InitGrid();
procedure InitGrid10();
public
end;
var
frmKHTop: TfrmKHTop;
implementation
uses
U_DataLink, U_RTFun, U_KHCPTopMX, U_YWYCPTopMX, U_KHCPColorTopMX;
{$R *.dfm}
procedure TfrmKHTop.InitGrid();
begin
Panel10.Visible := True;
Panel10.Refresh;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
sql.Add('exec P_BI_KHAll :begdate,:enddate,:Type');
Parameters.ParamByName('begdate').Value := Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date));
Parameters.ParamByName('enddate').Value := Trim(FormatDateTime('yyyy-MM-dd', enddate.Date + 1));
Parameters.ParamByName('Type').Value := '<27>ͻ<EFBFBD>';
Open;
end;
SCreateCDS20(ADOQueryMain, ClientDataSet1);
SInitCDSData20(ADOQueryMain, ClientDataSet1);
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
sql.Add('exec P_BI_KHAll :begdate,:enddate,:Type');
Parameters.ParamByName('begdate').Value := Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date));
Parameters.ParamByName('enddate').Value := Trim(FormatDateTime('yyyy-MM-dd', enddate.Date + 1));
Parameters.ParamByName('Type').Value := <><D2B5>Ա';
Open;
end;
SCreateCDS20(ADOQueryMain, ClientDataSet3);
SInitCDSData20(ADOQueryMain, ClientDataSet3);
finally
ADOQueryMain.EnableControls;
end;
Panel10.Visible := False;
end;
procedure TfrmKHTop.InitGrid10();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
sql.Add('exec P_BI_KHAll :begdate,:enddate,:Type');
Parameters.ParamByName('begdate').Value := '2000-01-04';
Parameters.ParamByName('enddate').Value := '2000-01-02';
Parameters.ParamByName('Type').Value := '<27>ͻ<EFBFBD>';
Open;
end;
SCreateCDS20(ADOQueryMain, ClientDataSet1);
SInitCDSData20(ADOQueryMain, ClientDataSet1);
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
sql.Add('exec P_BI_KHAll :begdate,:enddate,:Type');
Parameters.ParamByName('begdate').Value := '2000-01-04';
Parameters.ParamByName('enddate').Value := '2000-01-02';
Parameters.ParamByName('Type').Value := <><D2B5>Ա';
Open;
end;
SCreateCDS20(ADOQueryMain, ClientDataSet3);
SInitCDSData20(ADOQueryMain, ClientDataSet3);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmKHTop.FormDestroy(Sender: TObject);
begin
frmKHTop := nil;
end;
procedure TfrmKHTop.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmKHTop.TBCloseClick(Sender: TObject);
begin
//WriteCxGrid('<27>ջ<EFBFBD>', Tv1, 'ǰʮ<C7B0><CAAE><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>а<EFBFBD>');
Close;
end;
procedure TfrmKHTop.FormShow(Sender: TObject);
begin
//ReadCxGrid('<27>ջ<EFBFBD>', Tv1, 'ǰʮ<C7B0><CAAE><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>а<EFBFBD>');
end;
procedure TfrmKHTop.TBRafreshClick(Sender: TObject);
begin
MovePanel3.Visible := True;
end;
procedure TfrmKHTop.ToolButton2Click(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, ClientDataSet1);
SInitCDSData20(ADOQueryMain, ClientDataSet1);
end;
end;
procedure TfrmKHTop.C_CodeNameChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmKHTop.FormCreate(Sender: TObject);
var
FYear: string;
FMonth: string;
FDate: TDate;
begin
FDate := SGetServerDate10(ADOQueryTemp);
FYear := FormatDateTime('yyyy', FDate);
FMonth := FormatDateTime('MM', FDate);
if StrToInt(FMonth) < 2 then
begin
BegDate.Date := StrToDate(IntToStr(strtoint(FYear) - 1) + '-02-01');
EndDate.Date := StrToDate(FYear + '-01-31');
end
else
begin
BegDate.Date := StrToDate(FYear + '-02-01');
EndDate.Date := StrToDate(IntToStr(strtoint(FYear) + 1) + '-01-31');
end;
end;
procedure TfrmKHTop.ToolButton1Click(Sender: TObject);
begin
if ComboBox1.Text = '' then
Exit;
if ComboBox1.ItemIndex = 0 then
begin
TcxGridToExcel(ComboBox1.Text, cxGrid1);
end
else if ComboBox1.ItemIndex = 1 then
begin
TcxGridToExcel(ComboBox1.Text, cxGrid2);
end;
end;
procedure TfrmKHTop.Tv1DblClick(Sender: TObject);
begin
if ClientDataSet1.IsEmpty then
Exit;
try
frmKHCPTopMX := TfrmKHCPTopMX.Create(Application);
with frmKHCPTopMX do
begin
FBegdate := Self.BegDate.Date;
FEnddate := Self.EndDate.Date;
FKHName := Trim(Self.ClientDataSet1.fieldbyname('KHName').AsString);
if ShowModal = 1 then
begin
end;
end;
finally
frmKHCPTopMX.Free;
end;
end;
procedure TfrmKHTop.Tv2DblClick(Sender: TObject);
begin
if ClientDataSet3.IsEmpty then
Exit;
try
frmYWYCPTopMX := TfrmYWYCPTopMX.Create(Application);
with frmYWYCPTopMX do
begin
FBegdate := Self.BegDate.Date;
FEnddate := Self.EndDate.Date;
FKHName := Trim(Self.ClientDataSet3.fieldbyname('KHName').AsString);
if ShowModal = 1 then
begin
end;
end;
finally
frmYWYCPTopMX.Free;
end;
end;
procedure TfrmKHTop.Timer1Timer(Sender: TObject);
begin
InitGrid10();
Timer1.Enabled := False;
MovePanel3.Visible := True;
TBRafresh.Visible := False;
if frmKHCPTopMX <> nil then
begin
frmKHCPTopMX.Close;
end;
if frmYWYCPTopMX <> nil then
begin
frmYWYCPTopMX.Close;
end;
if frmKHCPColorTopMX <> nil then
begin
frmKHCPColorTopMX.Close;
end;
end;
procedure TfrmKHTop.Button10Click(Sender: TObject);
begin
MovePanel3.Visible := False;
end;
procedure TfrmKHTop.Button9Click(Sender: TObject);
var
mm: string;
begin
with ADOQueryTemp do
begin
sql.Clear;
sql.add('SELECT pw FROM SY_User WHERE userid=' + '''' + trim(DCode) + '''');
Open;
end;
mm := Trim(ADOQueryTemp.fieldbyname('pw').AsString);
if mm <> Trim(Password.Text) then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
Password.Text := '';
MovePanel3.Visible := False;
InitGrid();
Timer1.Enabled := True;
end;
end.