D7DJnaile/样品仓库/U_ZdyAttachmentBJ.pas
DESKTOP-E401PHE\Administrator 1e94c6429a ~
2025-07-19 17:21:45 +08:00

587 lines
15 KiB
ObjectPascal
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_ZdyAttachmentBJ;
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, RM_e_Xls, RM_E_llPDF, cxPC, cxLookAndFeels,
cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, Menus;
type
TfrmZdyAttachmentCB = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBDel: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ToolButton2: TToolButton;
ADOQueryMain: TADOQuery;
ToolButton1: TToolButton;
Label3: TLabel;
custNo: TEdit;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
cxGridLevel1: TcxGridLevel;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_Main: TDataSource;
CDS_Main: TClientDataSet;
TBADD: TToolButton;
v2Column6: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v2Column2: TcxGridDBColumn;
v2Column3: TcxGridDBColumn;
v2Column5: TcxGridDBColumn;
v2Column7: TcxGridDBColumn;
v2Column8: TcxGridDBColumn;
v2Column9: TcxGridDBColumn;
v2Column10: TcxGridDBColumn;
TBedit: TToolButton;
v2Column11: TcxGridDBColumn;
v2DEFStr7: TcxGridDBColumn;
v2Column12: TcxGridDBColumn;
v2Column13: TcxGridDBColumn;
Label5: TLabel;
begdate: TDateTimePicker;
Label6: TLabel;
enddate: TDateTimePicker;
v2Column4: TcxGridDBColumn;
custName: TEdit;
Label2: TLabel;
v2Column15: TcxGridDBColumn;
ToolButton5: TToolButton;
ADOQueryPrint: TADOQuery;
RM1: TRMGridReport;
// RMllPDFExport1: TRMllPDFExport;
RMXLSExport1: TRMXLSExport;
RMDBDataSet1: TRMDBDataSet;
v2Column19: TcxGridDBColumn;
v2Column14: TcxGridDBColumn;
v2Column16: TcxGridDBColumn;
v2Column17: TcxGridDBColumn;
v2Column20: TcxGridDBColumn;
v2Column21: TcxGridDBColumn;
v2Column22: TcxGridDBColumn;
v2Column28: TcxGridDBColumn;
Tchk: TToolButton;
Tnochk: TToolButton;
cxTabControl1: TcxTabControl;
v2Column23: TcxGridDBColumn;
P_spec: TEdit;
Label1: TLabel;
v2Column24: TcxGridDBColumn;
P_Code: TEdit;
Label4: TLabel;
ToolButton3: TToolButton;
v2Column18: TcxGridDBColumn;
Tv2Column1: TcxGridDBColumn;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
ToolButton4: TToolButton;
Tv2Column2: TcxGridDBColumn;
ToolButton6: TToolButton;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure custNoChange(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure TBeditClick(Sender: TObject);
procedure TBADDClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure TchkClick(Sender: TObject);
procedure TnochkClick(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
// procedure Tv2Column1PropertiesChange(Sender: TObject);
private
{ Private declarations }
procedure InitGrid();
procedure SetStatus();
public
fkhType: string;
Fmanage: string;
canshu1: string;
end;
var
frmZdyAttachmentCB: TfrmZdyAttachmentCB;
implementation
uses
U_DataLink, U_Fun10, U_ZDYHelp, U_ZdyAttachmentBJ_Edit;
{$R *.dfm}
procedure TfrmZdyAttachmentCB.SetStatus();
begin
TBedit.Visible := false;
Tbdel.Visible := false;
Tchk.Visible := false;
Tnochk.Visible := false;
if trim(canshu1) = <><D2B5>Ա' then
begin
case cxTabControl1.TabIndex of
0:
begin
TBedit.Visible := true;
Tbdel.Visible := true;
end;
1:
begin
// tbcdel.Visible:=true;
end;
end;
end
else
begin
case cxTabControl1.TabIndex of
0:
begin
TBedit.Visible := true;
Tbdel.Visible := true;
Tchk.Visible := true;
end;
1:
begin
Tnochk.Visible := true;
end;
end;
end;
end;
procedure TfrmZdyAttachmentCB.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
Filtered := False;
SQL.Clear;
sql.Add('select A.* from KH_CP_BJ A');
sql.Add(' where A.CRTime>=''' + formatdateTime('yyyy-MM-dd', begdate.DateTime) + '''');
sql.Add(' and A.CRTime<''' + formatdateTime('yyyy-MM-dd', enddate.DateTime + 1) + '''');
if trim(canshu1) = <><D2B5>Ա' then
sql.Add(' and A.Filler=' + quotedstr(trim(DName)));
if cxTabControl1.TabIndex < 2 then
sql.Add('and A.status=''' + inttostr(cxTabControl1.TabIndex) + ''' ');
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmZdyAttachmentCB.FormDestroy(Sender: TObject);
begin
frmZdyAttachmentCB := nil;
end;
procedure TfrmZdyAttachmentCB.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmZdyAttachmentCB.TBCloseClick(Sender: TObject);
begin
WriteCxGrid(self.Caption + '1', Tv2, '<27>ͻ<EFBFBD><CDBB>Զ<EFBFBD><D4B6><EFBFBD>1');
Close;
end;
procedure TfrmZdyAttachmentCB.TBDelClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('delete KH_CP_BJ where BJNO=''' + Trim(CDS_Main.fieldbyname('BJNO').AsString) + '''');
ExecSQL;
end;
initgrid();
end;
procedure TfrmZdyAttachmentCB.FormShow(Sender: TObject);
begin
ReadCxGrid(self.Caption + '1', Tv2, '<27>ͻ<EFBFBD><CDBB>Զ<EFBFBD><D4B6><EFBFBD>1');
SetStatus();
InitGrid();
end;
procedure TfrmZdyAttachmentCB.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmZdyAttachmentCB.ToolButton2Click(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
end;
end;
procedure TfrmZdyAttachmentCB.custNoChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmZdyAttachmentCB.ToolButton1Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
Exit;
TcxGridToExcel(self.Caption, cxgrid2);
// SelExportData(Tv2,ADOQueryMain,'<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>');
end;
procedure TfrmZdyAttachmentCB.TBeditClick(Sender: TObject);
begin
if CDS_main.IsEmpty then
exit;
try
frmZdyAttachmentBJ_Edit := TfrmZdyAttachmentBJ_Edit.Create(Application);
with frmZdyAttachmentBJ_Edit do
begin
fkeyNo := self.cds_main.fieldbyname('BJNO').asstring;
fType := 1;
canshu1 := self.canshu1;
if ShowModal = 1 then
begin
TBRafresh.Click;
end;
end;
finally
frmZdyAttachmentBJ_Edit.Free;
end;
end;
procedure TfrmZdyAttachmentCB.TBADDClick(Sender: TObject);
begin
try
frmZdyAttachmentBJ_Edit := TfrmZdyAttachmentBJ_Edit.Create(Application);
with frmZdyAttachmentBJ_Edit do
begin
fkeyNO := '';
fType := 0;
canshu1 := self.canshu1;
if ShowModal = 1 then
begin
TBRafresh.Click;
end;
end;
finally
frmZdyAttachmentBJ_Edit.Free;
end;
end;
procedure TfrmZdyAttachmentCB.FormCreate(Sender: TObject);
begin
enddate.Date := date();
begdate.Date := strtodate(formatdateTime('yyyy-MM', enddate.Date) + '-01');
canshu1 := trim(DParameters2);
end;
procedure TfrmZdyAttachmentCB.ToolButton5Click(Sender: TObject);
var
fPrintFile, fPrintFile10, FBJno: string;
Porderno: string;
i, j: Integer;
sqlStr: string;
begin
if CDS_Main.IsEmpty then
Exit;
if CDS_Main.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>.rmf';
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete TBBJID where DName=''' + Trim(DCode)+ '''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('SELECT * FROM TBBJID where 1=2 ');
open;
end;
sqlStr := '';
FBJno := '';
CDS_Main.DisableControls;
try
ADOQueryCmd.Connection.BeginTrans;
with CDS_Main do
begin
First;
while not Eof do
begin
if Fieldbyname('Ssel').AsBoolean then
begin
if FBJno = '' then
begin
FBJno := Trim(CDS_Main.fieldbyname('BJNO').AsString);
end
else
begin
if Trim(CDS_Main.fieldbyname('BJNO').AsString) <> FBJno then
begin
application.MessageBox('ѡ<><D1A1><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>ͬһ<CDAC><D2BB><EFBFBD><EFBFBD><EFBFBD>۵<EFBFBD><DBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ӡ<EFBFBD><D3A1>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
ADOQueryCmd.Connection.RollbackTrans;
EnableControls;
exit;
end;
end;
sqlStr := sqlStr + 'insert into TBBJId(BJId,Dname,BJNO) ';
sqlStr := sqlStr + ' values( ';
sqlStr := sqlStr + ' ''' + Trim(CDS_Main.fieldbyname('BJID').AsString) + ''', ';
sqlStr := sqlStr + ' ''' + Trim(DCode)+ ''', ';
sqlStr := sqlStr + ' ''' + Trim(CDS_Main.fieldbyname('BJNO').AsString) + ''' ';
sqlStr := sqlStr + ' ) ';
end;
Next;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
end;
CDS_Main.EnableControls;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(sqlStr);
// showmessage(sql.text);
ExecSQL;
end;
with ADOQueryPrint do
begin
Close;
sql.Clear;
sql.Add('select A.*, ');
sql.Add('FileOthers=(select Top 1 FilesOther from TP_File X1,CP_YDang X2 where X1.WBID=X2.CYID and X2.CYNo=A.P_Code) ');
sql.Add('from KH_CP_BJ A ');
// sql.Add('Where A.BJno=''' + Trim(CDS_Main.fieldbyname('BJno').AsString) + '''');
sql.add('WHERE EXISTS(select BJID from TBBJID X where X.BJID=A.BJID and X.BJNO=A.BJNO and X.DName=''' + Trim(DCode) + ''')');
// showmessage(sql.text);
Open;
end;
if FileExists(fPrintFile) then
begin
RM1.LoadFromFile(fPrintFile);
RM1.ShowReport;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>' + trim(fPrintFile)), '<27><>ʾ', 0);
exit;
end;
end;
procedure TfrmZdyAttachmentCB.TchkClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
exit;
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update KH_CP_BJ SET status=''1'' ');
sql.Add('where BJNO=' + quotedstr(trim(CDS_Main.fieldbyname('BJNO').AsString)));
execsql;
end;
application.MessageBox('<27><><EFBFBD>˳ɹ<CBB3><C9B9><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ');
TBRafresh.Click;
except
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmZdyAttachmentCB.TnochkClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
exit;
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update KH_CP_BJ SET status=''0'' ');
sql.Add('where BJNO=' + quotedstr(trim(CDS_Main.fieldbyname('BJNO').AsString)));
execsql;
end;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳ɹ<CBB3><C9B9><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ');
TBRafresh.Click;
except
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmZdyAttachmentCB.cxTabControl1Change(Sender: TObject);
begin
SetStatus();
InitGrid();
end;
procedure TfrmZdyAttachmentCB.ToolButton3Click(Sender: TObject);
begin
if CDS_main.IsEmpty then
exit;
try
frmZdyAttachmentBJ_Edit := TfrmZdyAttachmentBJ_Edit.Create(Application);
with frmZdyAttachmentBJ_Edit do
begin
fkeyNo := self.cds_main.fieldbyname('BJNO').asstring;
fType := 2;
canshu1 := self.canshu1;
if ShowModal = 1 then
begin
TBRafresh.Click;
end;
end;
finally
frmZdyAttachmentBJ_Edit.Free;
end;
end;
procedure TfrmZdyAttachmentCB.N1Click(Sender: TObject);
begin
SelOKNoFiler(Tv2, True);
end;
procedure TfrmZdyAttachmentCB.N2Click(Sender: TObject);
begin
SelOKNoFiler(Tv2, False);
end;
procedure TfrmZdyAttachmentCB.ToolButton4Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
if CDS_Main.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
try
CDS_Main.DisableControls;
ADOQueryCmd.Connection.BeginTrans;
with CDS_Main do
begin
First;
while not Eof do
begin
if CDS_Main.FieldByName('SSel').AsBoolean = True then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update KH_CP_BJ Set Kehqr='<><C8B7>'' ');
sql.Add('where BJNO=''' + Trim(CDS_Main.fieldbyname('BJNO').AsString) + ''' and BJid=''' + Trim(CDS_Main.fieldbyname('BJid').AsString) + '''');
// showmessage(sql.text);
ExecSQL;
end;
end;
Next;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
CDS_Main.EnableControls;
application.MessageBox('<27>ͻ<EFBFBD>ȷ<EFBFBD>ϳɹ<CFB3><C9B9><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ');
TBRafresh.Click;
exit;
except
ADOQueryCmd.Connection.RollbackTrans;
CDS_Main.EnableControls;
application.MessageBox('<27>ͻ<EFBFBD>ȷ<EFBFBD><C8B7>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmZdyAttachmentCB.ToolButton6Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
if CDS_Main.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
try
CDS_Main.DisableControls;
ADOQueryCmd.Connection.BeginTrans;
with CDS_Main do
begin
First;
while not Eof do
begin
if CDS_Main.FieldByName('SSel').AsBoolean = True then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update KH_CP_BJ Set Kehqr='' '' ');
sql.Add('where BJNO=''' + Trim(CDS_Main.fieldbyname('BJNO').AsString) + ''' and BJid=''' + Trim(CDS_Main.fieldbyname('BJid').AsString) + '''');
ExecSQL;
end;
end;
Next;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
CDS_Main.EnableControls;
application.MessageBox(<><C8A1>ȷ<EFBFBD>ϳɹ<CFB3><C9B9><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ');
TBRafresh.Click;
exit;
except
ADOQueryCmd.Connection.RollbackTrans;
CDS_Main.EnableControls;
application.MessageBox(<><C8A1>ȷ<EFBFBD><C8B7>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
end.