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

430 lines
12 KiB
ObjectPascal
Raw Normal View History

2026-03-04 09:51:44 +08:00
unit U_BXList;
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, cxLookAndFeels,
cxLookAndFeelPainters, cxNavigator, dxCore, ActiveX, dxBarBuiltInMenu, U_SLT,
jpeg;
type
TfrmBXList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
ToolButton2: TToolButton;
ADOQueryMain: TADOQuery;
cxGridPopupMenu2: TcxGridPopupMenu;
ClientDataSet1: TClientDataSet;
DataSource1: TDataSource;
ToolButton1: TToolButton;
Panel2: TPanel;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1XH: TcxGridDBColumn;
v1FXH: TcxGridDBColumn;
v2Column7: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
Tv1Column3: TcxGridDBColumn;
v2Column15: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
Panel10: TPanel;
Label5: TLabel;
Label6: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
cxTabControl1: TcxTabControl;
Tv1Column1: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
Tv1Column5: TcxGridDBColumn;
Tv1Column6: TcxGridDBColumn;
Label3: TLabel;
Label4: TLabel;
Label1: TLabel;
Label2: TLabel;
DeptName: TEdit;
FeeType: TEdit;
FeeName: TEdit;
Filler: TEdit;
Label7: TLabel;
DFDW: TEdit;
Label8: TLabel;
FPBH: TEdit;
Tv1Column7: TcxGridDBColumn;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
Tv1Column8: TcxGridDBColumn;
Tv1Column9: TcxGridDBColumn;
Tv1Column10: TcxGridDBColumn;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
GroupBox1: TGroupBox;
ScrollBox1: TScrollBox;
adoqueryPicture: TADOQuery;
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 cxTabControl1Change(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure DeptNameChange(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
private
{ Private declarations }
procedure InitGrid();
procedure InitImage();
public
canshu1: string;
end;
var
//frmBXList: TfrmBXList;
Mach: array of TfrmSlt;
implementation
uses
U_DataLink, U_RTFun;
{$R *.dfm}
procedure TfrmBXList.InitGrid();
begin
Panel10.Visible := True;
Panel10.Refresh;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
SQL.Clear;
sql.Add('select A.* ');
SQL.Add(',WChker=[dbo].[F_Get_Order_SubStr](A.HMID,''BXWChk'') from Bx_HxMain A ');
sql.Add(' where Filltime>=:begdate and FillTime<:enddate');
if Trim(canshu1) = '<27><>ѯ' then
begin
// SQL.Add(' and ((isnull(sfgk,'''')=''<27><><EFBFBD><EFBFBD>'') or (isnull(Filler,'''')=''' + Trim(DName) + '''))');
SQL.Add(' and ((isnull(sfgk,'''')=''<27><><EFBFBD><EFBFBD>'') or (isnull(Filler,'''')=''' + Trim(DName) + ''') OR (isnull(chkerHZ,'''') like ''%' + Trim(DName) + '%'') )');
end;
if cxTabControl1.TabIndex = 0 then
begin
sql.Add('and isnull(ChkStatus,'''')=''<27><><EFBFBD>ύ'' ');
end
else if cxTabControl1.TabIndex = 1 then
begin
sql.Add('and isnull(ChkStatus,'''')=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ');
end
else if cxTabControl1.TabIndex = 2 then
begin
sql.Add('and isnull(ChkStatus,'''')=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ');
end
else if cxTabControl1.TabIndex = 3 then
begin
sql.Add('and isnull(ChkStatus,'''')=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' and ZFFlag=1 ');
end
else if cxTabControl1.TabIndex = 4 then
begin
sql.Add('and isnull(ChkStatus,'''') in (''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'',''<27><><EFBFBD>ύ'',''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'') ');
end;
Parameters.ParamByName('begdate').Value := Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date));
Parameters.ParamByName('enddate').Value := Trim(FormatDateTime('yyyy-MM-dd', enddate.Date + 1));
Open;
end;
SCreateCDS20(ADOQueryMain, ClientDataSet1);
SInitCDSData20(ADOQueryMain, ClientDataSet1);
finally
ADOQueryMain.EnableControls;
end;
Panel10.Visible := False;
end;
procedure TfrmBXList.FormDestroy(Sender: TObject);
begin
//frmBXList := nil;
end;
procedure TfrmBXList.FormClose(Sender: TObject; var Action: TCloseAction);
var
i, j: integer;
begin
j := length(Mach);
if j > 0 then
begin
for i := 0 to j - 1 do
begin
Mach[i].free;
end;
end;
SetLength(Mach, 0);
Action := caFree;
end;
procedure TfrmBXList.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('Tv1', Tv1, Self.Caption);
Close;
end;
procedure TfrmBXList.FormShow(Sender: TObject);
begin
ReadCxGrid('Tv1', Tv1, Self.Caption);
end;
procedure TfrmBXList.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmBXList.ToolButton2Click(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel2, 1, 2));
SCreateCDS20(ADOQueryMain, ClientDataSet1);
SInitCDSData20(ADOQueryMain, ClientDataSet1);
end;
end;
procedure TfrmBXList.C_CodeNameChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmBXList.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; }
EndDate.Date := SGetServerDate(ADOQueryTemp);
BegDate.Date := EndDate.Date - 30;
end;
procedure TfrmBXList.cxTabControl1Change(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmBXList.ToolButton1Click(Sender: TObject);
begin
if ClientDataSet1.IsEmpty then
Exit;
if ClientDataSet1.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
ClientDataSet1.DisableControls;
with ClientDataSet1 do
begin
First;
while Locate('SSel', False, []) do
begin
Delete;
end;
end;
ClientDataSet1.EnableControls;
TcxGridToExcel('<27><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD>б<EFBFBD>', cxGrid1);
TBRafresh.Click;
ToolButton2.Click;
end;
procedure TfrmBXList.DeptNameChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmBXList.ToolButton3Click(Sender: TObject);
begin
if ClientDataSet1.IsEmpty then
Exit;
if cxTabControl1.TabIndex <> 2 then
Exit;
if ClientDataSet1.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
if Application.MessageBox(<><C8B7>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
try
ADOQueryCmd.Connection.BeginTrans;
ClientDataSet1.DisableControls;
with ClientDataSet1 do
begin
First;
while ClientDataSet1.Locate('SSel', True, []) do
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' update Bx_HxMain set ZFFlag=1,ZFTime=getdate(),ZFPerson=''' + Trim(DName) + '''');
sql.Add(' where HMID=''' + Trim(ClientDataSet1.fieldbyname('HMID').AsString) + ''' ');
ExecSQL;
end;
ClientDataSet1.Delete;
end;
end;
ClientDataSet1.EnableControls;
ADOQueryCmd.Connection.CommitTrans;
except
ClientDataSet1.EnableControls;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>쳣!', '<27><>ʾ', 0);
end;
end;
procedure TfrmBXList.ToolButton4Click(Sender: TObject);
begin
if ClientDataSet1.IsEmpty then
Exit;
if cxTabControl1.TabIndex <> 3 then
Exit;
if ClientDataSet1.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
if Application.MessageBox(<><C8B7>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
try
ADOQueryCmd.Connection.BeginTrans;
ClientDataSet1.DisableControls;
with ClientDataSet1 do
begin
First;
while ClientDataSet1.Locate('SSel', True, []) do
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' update Bx_HxMain set ZFFlag=0,ZFTime=getdate(),ZFPerson=''' + Trim(DName) + '''');
sql.Add(' where HMID=''' + Trim(ClientDataSet1.fieldbyname('HMID').AsString) + ''' ');
ExecSQL;
end;
ClientDataSet1.Delete;
end;
end;
ClientDataSet1.EnableControls;
ADOQueryCmd.Connection.CommitTrans;
except
ClientDataSet1.EnableControls;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>쳣!', '<27><>ʾ', 0);
end;
end;
procedure TfrmBXList.N1Click(Sender: TObject);
begin
SelOKNoFilter(Tv1, True);
end;
procedure TfrmBXList.N2Click(Sender: TObject);
begin
SelOKNoFilter(Tv1, False);
end;
procedure TfrmBXList.InitImage();
var
i, j: integer;
jpg: TJpegImage;
myStream: TADOBlobStream;
begin
j := length(Mach);
if j > 0 then
begin
for i := 0 to j - 1 do
begin
Mach[i].free;
end;
end;
SetLength(Mach, 0);
if ClientDataSet1.IsEmpty then
exit;
try
with adoqueryPicture do
begin
close;
sql.Clear;
sql.Add(' select A.TFID,A.WBID,A.FilesOther,A.FileName,A.url from TP_File A ');
sql.add('where A.WBID=' + quotedstr(trim(ClientDataSet1.fieldbyname('HMID').AsString)));
sql.Add(' and A.TFType=''<27><><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>'' ');
open;
end;
j := adoqueryPicture.RecordCount;
if j < 1 then
exit;
adoqueryPicture.DisableControls;
adoqueryPicture.First;
SetLength(Mach, j);
jpg := TJpegImage.Create();
for i := 0 to j - 1 do
begin
if triM(adoqueryPicture.fieldbyname('FilesOther').AsString) <> '' then
begin
myStream := tadoblobstream.Create(tblobfield(adoqueryPicture.fieldbyname('FilesOther')), bmread);
jpg.LoadFromStream(myStream);
Mach[i] := TfrmSlt.Create(Self);
Mach[i].Name := trim(adoqueryPicture.fieldbyname('TFID').AsString);
Mach[i].Parent := ScrollBox1;
Mach[i].Left := 0 + i * 165;
Mach[i].Init(adoqueryPicture.fieldbyname('TFID').AsString, adoqueryPicture.fieldbyname('FileName').AsString, adoqueryPicture.fieldbyname('url').AsString, jpg);
end;
adoqueryPicture.Next;
end;
adoqueryPicture.EnableControls;
finally
jpg.free;
application.ProcessMessages;
end;
end;
procedure TfrmBXList.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
InitImage();
end;
end.