D7FZaideng/应收应付/U_FDINVOICE.pas
DESKTOP-E401PHE\Administrator 82c6347dad ~
2025-04-30 16:21:22 +08:00

331 lines
8.2 KiB
ObjectPascal
Raw Permalink 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_FDINVOICE;
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, cxDropDownEdit, cxPC;
type
TfrmFDINVOICE = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ToolButton2: TToolButton;
Label1: TLabel;
P_CodeName: TEdit;
ADOQueryMain: TADOQuery;
ToolButton1: TToolButton;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
Label3: TLabel;
InvoiceNo: TEdit;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
cxGridLevel1: TcxGridLevel;
Label2: TLabel;
Label6: TLabel;
begdate: TDateTimePicker;
Enddate: TDateTimePicker;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_FP: TDataSource;
CDS_FP: TClientDataSet;
TADD: TToolButton;
TUPDATE: TToolButton;
TBDEL: TToolButton;
v1InvoiceNo: TcxGridDBColumn;
v1InvoiceType: TcxGridDBColumn;
v1InvoiceDate: TcxGridDBColumn;
v1ToFactoryName: TcxGridDBColumn;
v1FactoryName: TcxGridDBColumn;
v1note: TcxGridDBColumn;
v1P_CodeName: TcxGridDBColumn;
v1P_Spec: TcxGridDBColumn;
v1Qty: TcxGridDBColumn;
v1Money: TcxGridDBColumn;
v1Price: TcxGridDBColumn;
v1QtyUnit: TcxGridDBColumn;
v1PriceUnit: TcxGridDBColumn;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
Label4: TLabel;
P_Spec: TEdit;
Label5: TLabel;
FactoryName: TEdit;
TCHK: TToolButton;
TNOCHK: TToolButton;
cxTabControl1: TcxTabControl;
TSel: TToolButton;
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 ToolButton1Click(Sender: TObject);
procedure InvoiceNoChange(Sender: TObject);
procedure TADDClick(Sender: TObject);
procedure TUPDATEClick(Sender: TObject);
procedure TBDELClick(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure TCHKClick(Sender: TObject);
procedure TNOCHKClick(Sender: TObject);
procedure TSelClick(Sender: TObject);
private
{ Private declarations }
procedure InitGrid();
procedure SetStatus();
public
fInvoiceFlag:string;
{ Public declarations }
end;
var
frmFDINVOICE: TfrmFDINVOICE;
implementation
uses
U_DataLink,U_Fun,U_ZDYHelp,U_FDINVOICE_Sub;
{$R *.dfm}
procedure TfrmFDINVOICE.SetStatus();
begin
tchk.Visible:=false;
tnochk.Visible:=false;
TUPDATE.Visible:=false;
tbdel.Visible:=false;
if trim(DParameters1)<>'<27><>Ȩ<EFBFBD><C8A8>' then
begin
case cxTabControl1.TabIndex of
0:begin
TUPDATE.Visible:=true;
tbdel.Visible:=true;
end;
1:begin
end;
2:begin
end;
end;
end
else
begin
case cxTabControl1.TabIndex of
0:begin
tchk.Visible:=true;
TUPDATE.Visible:=true;
tbdel.Visible:=true;
end;
1:begin
tnochk.Visible:=true;
end;
2:begin
end;
end;
end;
IF fInvoiceFlag='' then
fInvoiceFlag:='1';
end;
procedure TfrmFDINVOICE.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
SQL.Clear;
sql.Add('select A.*,B.* from FD_Invoice A ');
sql.add('inner join FD_Invoicesub B on B.InvoiceNo=A.InvoiceNo ');
sql.add('where A.InvoiceDate>='''+formatdatetime('yyyy-MM-dd',begdate.datetime)+''' ');
sql.Add(' and A.InvoiceDate<'''+formatdateTime('yyyy-MM-dd',enddate.DateTime+1)+''' ');
sql.Add(' and InvoiceFlag='''+fInvoiceFlag+''' ');
if cxTabControl1.TabIndex=0 then
sql.add(' and A.Chkstatus=''0''');
if cxTabControl1.TabIndex=1 then
sql.add(' and A.Chkstatus=''1''');
Open;
end;
SCreateCDS20(ADOQueryMain,CDS_FP);
SInitCDSData20(ADOQueryMain,CDS_FP);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmFDINVOICE.FormDestroy(Sender: TObject);
begin
frmFDINVOICE:=nil;
end;
procedure TfrmFDINVOICE.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmFDINVOICE.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('<27><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>',Tv1,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmFDINVOICE.FormShow(Sender: TObject);
begin
ReadCxGrid('<27><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>',Tv1,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Enddate.DateTime:=SGetServerDate(ADOQueryTemp);
begdate.DateTime:=Enddate.DateTime-30;
SetStatus();
InitGrid();
end;
procedure TfrmFDINVOICE.TBRafreshClick(Sender: TObject);
begin
begdate.SetFocus;
InitGrid();
end;
procedure TfrmFDINVOICE.ToolButton2Click(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,CDS_FP);
SInitCDSData20(ADOQueryMain,CDS_FP);
end;
end;
procedure TfrmFDINVOICE.ToolButton1Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then Exit;
SelExportData(Tv1,ADOQueryMain,'<27><>Ʊ<EFBFBD>б<EFBFBD>');
end;
procedure TfrmFDINVOICE.InvoiceNoChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmFDINVOICE.TADDClick(Sender: TObject);
begin
FrmInvoice_Sub:=TFrmInvoice_Sub.Create(self);
with FrmInvoice_Sub do
begin
FInvoiceNo:='';
fInvoiceFlag:=self.fInvoiceFlag;
if showmodal=1 then
begin
initGrid();
end;
free;
end;
end;
procedure TfrmFDINVOICE.TUPDATEClick(Sender: TObject);
begin
FrmInvoice_Sub:=TFrmInvoice_Sub.Create(self);
with FrmInvoice_Sub do
begin
InvoiceNo.Enabled:=False;
FInvoiceNo:=trim(CDS_FP.fieldbyname('InvoiceNo').asstring);
fInvoiceFlag:=self.fInvoiceFlag;
if showmodal=1 then
begin
initGrid();
end;
free;
end;
end;
procedure TfrmFDINVOICE.TBDELClick(Sender: TObject);
begin
if CDS_FP.IsEmpty then exit;
if application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>','<27><>ʾ',1)=2 then exit;
with ADOQueryMain do
begin
close;
sql.Clear;
sql.add('delete from FD_Invoicesub where InvoiceNo='''+trim(CDS_FP.fieldbyname('invoiceNo').asstring)+''' ');
sql.add('delete from FD_Invoice where InvoiceNo='''+trim(CDS_FP.fieldbyname('invoiceNo').asstring)+''' ');
execsql;
end;
initGrid();
end;
procedure TfrmFDINVOICE.cxTabControl1Change(Sender: TObject);
begin
SetStatus();
initGrid();
end;
procedure TfrmFDINVOICE.TCHKClick(Sender: TObject);
begin
if CDS_FP.IsEmpty then exit;
try
with ADOQueryMain do
begin
close;
sql.Clear;
sql.add('update FD_Invoicesub set Chker='''+trim(DName)+''',Chktime=getdate(),chkstatus=''1'' ');
sql.add('where InvoiceNo='''+trim(CDS_FP.fieldbyname('invoiceNo').asstring)+''' ');
execsql;
end;
application.MessageBox('<27><><EFBFBD>˳ɹ<CBB3>','<27><>ʾ');
initGrid();
except;
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>','<27><>ʾ');
end;
end;
procedure TfrmFDINVOICE.TNOCHKClick(Sender: TObject);
begin
if CDS_FP.IsEmpty then exit;
try
with ADOQueryMain do
begin
close;
sql.Clear;
sql.add('update FD_Invoicesub set Chker=null,Chktime=null,chkstatus=''0'' ');
sql.add('where InvoiceNo='''+trim(CDS_FP.fieldbyname('invoiceNo').asstring)+''' ');
execsql;
end;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>','<27><>ʾ');
initGrid();
except;
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>','<27><>ʾ');
end;
end;
procedure TfrmFDINVOICE.TSelClick(Sender: TObject);
begin
FrmInvoice_Sub:=TFrmInvoice_Sub.Create(self);
with FrmInvoice_Sub do
begin
TSave.Visible:=False;
ToolBar2.Enabled:=False;
FInvoiceNo:=trim(CDS_FP.fieldbyname('InvoiceNo').asstring);
fInvoiceFlag:=self.fInvoiceFlag;
if showmodal=1 then
begin
end;
end;
end;
end.