D10myYicheng/财务管理(Financial.dll)/U_InvoiceXX.pas

567 lines
14 KiB
ObjectPascal
Raw Normal View History

2025-05-27 14:08:09 +08:00
unit U_InvoiceXX;
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, RM_e_Xls, Menus, cxLookAndFeels,
cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu, dxSkinsCore,
dxSkinsDefaultPainters, dxDateRanges, U_BaseList;
type
TfrmInvoiceXX = class(TfrmBaseList)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
Panel1: TPanel;
ToolButton2: TToolButton;
P_CodeName: TEdit;
ADOQueryMain: TADOQuery;
ToolButton1: TToolButton;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
Label3: TLabel;
IVNo: TEdit;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
cxGridLevel1: TcxGridLevel;
Label2: TLabel;
Label6: TLabel;
begdate: TDateTimePicker;
Enddate: TDateTimePicker;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_Invoice: TDataSource;
CDS_Invoice: TClientDataSet;
TADD: TToolButton;
TUPDATE: TToolButton;
TBDEL: TToolButton;
v1InvoiceNo: TcxGridDBColumn;
v1InvoiceType: TcxGridDBColumn;
v1InvoiceDate: TcxGridDBColumn;
v1FactoryName: TcxGridDBColumn;
v1note: TcxGridDBColumn;
P_Spec: TEdit;
Label5: TLabel;
FactoryName: TEdit;
TCHK: TToolButton;
TNOCHK: TToolButton;
cxTabControl1: TcxTabControl;
TSel: TToolButton;
v1Column1: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
RMXLSExport1: TRMXLSExport;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
ToolButton4: TToolButton;
v1Column3: TcxGridDBColumn;
ADOQueryPrint: TADOQuery;
Label7: TLabel;
KPFactoryName: TEdit;
Label8: TLabel;
Label9: TLabel;
Label1: TLabel;
SYRName: TEdit;
v1Column8: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
v1Column13: TcxGridDBColumn;
v1Column14: TcxGridDBColumn;
v1Column15: TcxGridDBColumn;
v1Column17: TcxGridDBColumn;
v1Column18: TcxGridDBColumn;
v1Column19: TcxGridDBColumn;
ToolButton3: TToolButton;
Tv1Column1: TcxGridDBColumn;
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 IVNoChange(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);
procedure FormCreate(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure v1Column14PropertiesEditValueChanged(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
private
{ Private declarations }
procedure InitGrid();
procedure SetStatus();
public
FZKType, canshu1, canshu2: string;
{ Public declarations }
end;
//var
// frmInvoiceXX: TfrmInvoiceXX;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp, U_InvoiceXXInPut, U_FjList10;
{$R *.dfm}
procedure TfrmInvoiceXX.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;
TCHK.Visible := true;
end;
1:
begin
tnochk.Visible := true;
end;
2:
begin
end;
end;
end
else
begin
case cxTabControl1.TabIndex of
0:
begin
tchk.Visible := true;
TUPDATE.Visible := true;
tbdel.Visible := true;
TCHK.Visible := true;
end;
1:
begin
tnochk.Visible := true;
end;
2:
begin
end;
end;
end;
end;
procedure TfrmInvoiceXX.InitGrid();
begin
try
with ADOQueryMain do
begin
Close;
SQL.Clear;
sql.Add(' select A.* ');
SQL.Add(',isfj=CAST((CASE WHEN (SELECT COUNT(*) FROM TP_FILE D WHERE D.WBID=A.ivNo )>0 THEN 1 ELSE 0 END )AS BIT)');
SQL.Add(' from CW_Invoice A');
sql.add(' where A.IVDate>=''' + formatdatetime('yyyy-MM-dd', begdate.datetime) + ''' ');
sql.Add(' and A.IVDate<''' + formatdateTime('yyyy-MM-dd', enddate.DateTime + 1) + ''' ');
sql.Add(' and IVFlag=''<27><><EFBFBD><EFBFBD>'' ');
sql.Add(' and ZKType= ' + quotedstr(Trim(FZKType)));
if cxTabControl1.TabIndex = 0 then
sql.add(' and isnull(A.Chkstatus,''0'')=''0''');
if cxTabControl1.TabIndex = 1 then
sql.add(' and A.Chkstatus=''1''');
// ShowMessage(sql.Text);
Open;
end;
SCreateCDS(ADOQueryMain, CDS_Invoice);
SInitCDSData(ADOQueryMain, CDS_Invoice);
finally
end;
end;
procedure TfrmInvoiceXX.FormDestroy(Sender: TObject);
begin
inherited;
// frmInvoiceXX := nil;
end;
procedure TfrmInvoiceXX.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmInvoiceXX.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('<27><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>', Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmInvoiceXX.FormShow(Sender: TObject);
begin
inherited;
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 TfrmInvoiceXX.TBRafreshClick(Sender: TObject);
begin
begdate.SetFocus;
InitGrid();
end;
procedure TfrmInvoiceXX.ToolButton2Click(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryMain, CDS_Invoice);
SInitCDSData(ADOQueryMain, CDS_Invoice);
end;
end;
procedure TfrmInvoiceXX.ToolButton3Click(Sender: TObject);
begin
inherited;
if CDS_Invoice.IsEmpty then
Exit;
try
frmFjList10 := TfrmFjList10.Create(Application);
with frmFjList10 do
begin
// PState:=1;
// if Trim(canshu1)<>'<27><>Ȩ<EFBFBD><C8A8>' then cxButton1.Visible:=false;
fkeyNO := Trim(Self.CDS_Invoice.fieldbyname('IVNo').AsString);
fType := '<27><><EFBFBD>Ʊ';
if ShowModal = 1 then
begin
end;
end;
finally
frmFjList10.Free;
end;
end;
procedure TfrmInvoiceXX.ToolButton1Click(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
Exit;
TcxGridToExcel(self.Caption, cxgrid1);
end;
procedure TfrmInvoiceXX.IVNoChange(Sender: TObject);
begin
ToolButton2.Click;
end;
procedure TfrmInvoiceXX.TADDClick(Sender: TObject);
begin
frmInvoiceXXInPut := TfrmInvoiceXXInPut.Create(self);
with frmInvoiceXXInPut do
begin
FIVNo := '';
FZKType := Self.FZKType;
if showmodal = 1 then
begin
initGrid();
end;
free;
end;
end;
procedure TfrmInvoiceXX.TUPDATEClick(Sender: TObject);
begin
frmInvoiceXXInPut := TfrmInvoiceXXInPut.Create(self);
with frmInvoiceXXInPut do
begin
IvNo.Enabled := False;
FIVNo := trim(Self.CDS_Invoice.fieldbyname('IVNo').asstring);
FZKType := Self.FZKType;
if showmodal = 1 then
begin
Self.initGrid();
end;
free;
end;
end;
procedure TfrmInvoiceXX.TBDELClick(Sender: TObject);
begin
if CDS_Invoice.IsEmpty then
exit;
if application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>', '<27><>ʾ', 1) = 2 then
exit;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.add('delete from CW_Invoice where ivNo=''' + trim(CDS_Invoice.fieldbyname('ivNo').asstring) + ''' ');
sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
sql.Add(' ' + quotedstr(trim(DName)));
sql.Add(',getdate() ');
sql.Add(',' + quotedstr(trim(self.Caption)));
sql.Add(',' + quotedstr(trim('<27><><EFBFBD>Ʊɾ<C6B1><C9BE>')));
sql.Add(',' + quotedstr(trim('<27><>Ʊ<EFBFBD>ţ<EFBFBD>' + trim(CDS_Invoice.FieldByName('ivNo').AsString))));
sql.Add(',' + quotedstr(trim('<27>ɹ<EFBFBD>')));
sql.Add(')');
execsql;
end;
ADOQueryCmd.Connection.CommitTrans;
CDS_Invoice.Delete;
except
ADOQueryCmd.Connection.RollbackTrans;
end;
end;
procedure TfrmInvoiceXX.cxTabControl1Change(Sender: TObject);
begin
SetStatus();
initGrid();
end;
procedure TfrmInvoiceXX.TCHKClick(Sender: TObject);
begin
if CDS_Invoice.IsEmpty then
exit;
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.add('update CW_Invoice set Chker=''' + trim(DName) + ''',Chktime=getdate(),chkstatus=''1'' ');
sql.add('where IVNo=''' + trim(CDS_Invoice.fieldbyname('ivNo').asstring) + ''' ');
execsql;
end;
application.MessageBox('<27><><EFBFBD>˳ɹ<CBB3>', '<27><>ʾ');
CDS_Invoice.delete;
except
;
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>', '<27><>ʾ');
end;
end;
procedure TfrmInvoiceXX.TNOCHKClick(Sender: TObject);
begin
if CDS_Invoice.IsEmpty then
exit;
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.add('update CW_Invoice set Chker=null,Chktime=null,chkstatus=''0'' ');
sql.add('where IVNo=''' + trim(CDS_Invoice.fieldbyname('iVNo').asstring) + ''' ');
execsql;
end;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>', '<27><>ʾ');
CDS_Invoice.delete;
except
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>', '<27><>ʾ');
end;
end;
procedure TfrmInvoiceXX.TSelClick(Sender: TObject);
begin
frmInvoiceXXInPut := TfrmInvoiceXXInPut.Create(self);
with frmInvoiceXXInPut do
begin
TSave.Visible := False;
FIvNo := trim(Self.CDS_Invoice.fieldbyname('IVNo').asstring);
if showmodal = 1 then
begin
end;
end;
end;
procedure TfrmInvoiceXX.FormCreate(Sender: TObject);
begin
inherited;
canshu1 := trim(DParameters1);
end;
procedure TfrmInvoiceXX.N1Click(Sender: TObject);
begin
CDS_Invoice.DisableControls;
while CDS_Invoice.Locate('SSel', False, []) do
begin
CDS_Invoice.Edit;
CDS_Invoice.FieldByName('SSel').Value := True;
CDS_Invoice.Post;
end;
CDS_Invoice.EnableControls
end;
procedure TfrmInvoiceXX.N2Click(Sender: TObject);
begin
CDS_Invoice.DisableControls;
while CDS_Invoice.Locate('SSel', False, []) do
begin
CDS_Invoice.Edit;
CDS_Invoice.FieldByName('SSel').Value := True;
CDS_Invoice.Post;
end;
CDS_Invoice.EnableControls
end;
procedure TfrmInvoiceXX.ToolButton4Click(Sender: TObject);
var
fPrintFile: string;
Porderno, LBName, SYRName: string;
i, j: Integer;
OrderKg: Double;
begin
if CDS_Invoice.IsEmpty then
Exit;
if CDS_Invoice.Locate('SSel', True, []) = False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete TBSubID where DName=''' + Trim(DCode) + '''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('SELECT * FROM TBSubID where 1=2 ');
open;
end;
CDS_Invoice.DisableControls;
try
ADOQueryCmd.Connection.BeginTrans;
with CDS_Invoice do
begin
First;
while not Eof do
begin
if Fieldbyname('Ssel').AsBoolean then
begin
ADOQueryCmd.append;
ADOQueryCmd.fieldbyname('SubId').Value := Trim(CDS_Invoice.fieldbyname('InvoiceNo').AsString);
ADOQueryCmd.fieldbyname('Dname').Value := Trim(DCode);
ADOQueryCmd.post;
end;
Next;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
end;
CDS_Invoice.EnableControls;
with ADOQueryPrint do
begin
Close;
sql.Clear;
sql.Add('exec P_View_FPTJ ' + quotedstr(Trim(DCode)));
Open;
end;
ExportFtErpFile('<27><><EFBFBD>Ʊ<EEB7A2>б<EFBFBD>.rmf', ADOQueryTemp);
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\<5C><><EFBFBD>Ʊ<EEB7A2>б<EFBFBD>.rmf';
if FileExists(fPrintFile) then
begin
RM1.LoadFromFile(fPrintFile);
// RMVariables['SYRName']:=Trim(SYRName);
RM1.ShowReport;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>Report\<5C><><EFBFBD>Ʊ<EEB7A2>б<EFBFBD>.rmf'), '<27><>ʾ', 0);
end;
end;
procedure TfrmInvoiceXX.v1Column14PropertiesEditValueChanged(Sender: TObject);
var
mvalue, FFieldName: string;
FQty, FPrice, FMoney, Ftax, FtaxMoney: double;
begin
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
begin
mvalue := '0';
end;
with CDS_Invoice do
begin
Edit;
FieldByName(FFieldName).Value := Trim(mvalue);
Post;
FQty := FieldbyName('Qty').AsFloat;
FtaxMoney := FieldbyName('taxMoney').AsFloat;
Ftax := FieldbyName('tax').AsFloat;
end;
if FQty <> 0 then
begin
FMoney := strtofloat(format('%.2f', [FtaxMoney / (1 + Ftax / 100)]));
FPrice := strtofloat(format('%.2f', [FMoney / FQty]));
end
else
begin
FPrice := 0;
FMoney := strtofloat(format('%.2f', [FtaxMoney / (1 + Ftax / 100)]));
end;
with CDS_Invoice do
begin
Edit;
FieldByName('Price').Value := FPrice;
FieldByName('Money').Value := FMoney;
FieldByName('TaxFee').Value := FtaxMoney - FMoney;
Post;
end;
tv1.Controller.EditingController.ShowEdit();
end;
end.