D7DJshengxing/应收应付(YSYF.dll)/U_ClothContractListHZSel.pas

538 lines
16 KiB
ObjectPascal
Raw Permalink Normal View History

2025-07-22 13:47:41 +08:00
unit U_ClothContractListHZSel;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB,
cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, RM_Common, RM_Class,
RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxTextEdit, cxPC,
cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxBarBuiltInMenu;
type
TfrmClothContractListHZSel = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBPrint: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
Label1: TLabel;
Label2: TLabel;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
Label3: TLabel;
ConNo: TEdit;
Label5: TLabel;
C_CodeName: TEdit;
TBExport: TToolButton;
Order_Main: TClientDataSet;
Label4: TLabel;
C_Spec: TEdit;
RM1: TRMGridReport;
RMDBMain: TRMDBDataSet;
RMXLSExport1: TRMXLSExport;
CDS_PRT: TClientDataSet;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1OrderNo: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1DeliveryDate: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1FactoryNo1Name: TcxGridDBColumn;
v1PRTSpec: TcxGridDBColumn;
v1Qty1: TcxGridDBColumn;
v1PRTOrderQty: TcxGridDBColumn;
v1OrderUnit: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1PRTQty: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1Column3: TcxGridDBColumn;
FactoryNoName: TEdit;
Label6: TLabel;
v1Column6: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
Tv1Column1: TcxGridDBColumn;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ConNoChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure cxPageControl1Change(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure Tv1DblClick(Sender: TObject);
private
FInt, PFInt: Integer;
procedure InitGrid();
procedure InitForm();
function DelData(): Boolean;
function YFData(): Boolean;
function HYYFData(): Boolean;
function WKYFData(): Boolean;
{ Private declarations }
public
FFName, FFactoryName: string;
{ Public declarations }
end;
var
frmClothContractListHZSel: TfrmClothContractListHZSel;
implementation
uses
U_DataLink, U_Fun, U_ProductOrderList, U_ZDYHelp;
{$R *.dfm}
procedure TfrmClothContractListHZSel.FormDestroy(Sender: TObject);
begin
frmClothContractListHZSel := nil;
end;
procedure TfrmClothContractListHZSel.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmClothContractListHZSel.TBCloseClick(Sender: TObject);
begin
writeCxGrid(self.Caption, Tv1, ʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmClothContractListHZSel.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add('select A.*,B.*,isnull(Deposit,0) as CDeposit,OrderNO=(select Top 1 OrderNo from JYOrder_main X where X.MainID=B.fromMainID)');
SQL.Add(',DHQty=(select sum(Qty) from yf_money_cr X where X.CGSubid=A.subid)');
sql.Add('from Contract_sub A');
sql.Add('inner join Contract_Main B on B.mainID=A.mainID');
sql.Add('where FillTime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.DateTime)) + '''');
sql.Add('and FillTime<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)) + '''');
sql.Add('and FillTime<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.DateTime + 1)) + '''');
sql.Add('and HTType=''<27>ɹ<EFBFBD><C9B9><EFBFBD>ͬ'' ');
if FFactoryName <> '' then
sql.Add('and FactoryNoName=''' + ffactoryname + ''' ');
Open;
end;
SCreateCDS20(ADOQueryMain, Order_Main);
SInitCDSData20(ADOQueryMain, Order_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmClothContractListHZSel.InitForm();
begin
ReadCxGrid(self.Caption, Tv1, ʾ<D6B8><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
BegDate.DateTime := SGetServerDate10(ADOQueryTemp) - 90;
EndDate.DateTime := SGetServerDate10(ADOQueryTemp);
InitGrid();
end;
procedure TfrmClothContractListHZSel.TBFindClick(Sender: TObject);
begin
if ADOQueryMain.Active = False then
Exit;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, Order_Main);
SInitCDSData20(ADOQueryMain, Order_Main);
end;
function TfrmClothContractListHZSel.DelData(): Boolean;
begin
try
Result := false;
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete ContractSX_Sub where SubId=''' + Trim(Order_Main.fieldbyname('SubId').AsString) + '''');
ExecSQL;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from ContractSX_Sub where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + '''');
Open;
end;
if ADOQueryTemp.IsEmpty then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete ContractSX_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + '''');
ExecSQL;
end;
end;
if Trim(Order_Main.fieldbyname('SubId').AsString) = '' then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete ContractSX_Main where MainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + '''');
ExecSQL;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
Result := True;
except
ADOQueryCmd.Connection.RollbackTrans;
Result := False;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><ECB3A3>', '<27><>ʾ', 0);
end;
end;
procedure TfrmClothContractListHZSel.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
Exit;
TcxGridToExcel('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>', cxGrid1);
end;
procedure TfrmClothContractListHZSel.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmClothContractListHZSel.ConNoChange(Sender: TObject);
begin
if ADOQueryMain.Active = False then
Exit;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, Order_Main);
SInitCDSData20(ADOQueryMain, Order_Main);
end;
procedure TfrmClothContractListHZSel.FormShow(Sender: TObject);
begin
InitForm();
end;
procedure TfrmClothContractListHZSel.cxPageControl1Change(Sender: TObject);
begin
InitGrid();
end;
function TfrmClothContractListHZSel.YFData(): Boolean;
var
CRID, OrdMainId, YFID, FComTaiTou, FCRID, FFactoryName: string;
begin
Result := False;
if GetLSNo(ADOQueryCmd, YFID, 'YF', 'YF_Money_CR', 3, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update YF_Money_CRID set CRID=CRID+1');
sql.Add('select * from YF_Money_CRID ');
Open;
end;
CRID := ADOQueryCmd.fieldbyname('CRID').AsString;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from YF_Money_KC where 1<>1');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('CRID').Value := StrToInt(CRID);
FieldByName('FactoryNo').Value := Trim(Order_Main.fieldbyname('FactoryNo').AsString);
FieldByName('FactoryName').Value := Trim(Order_Main.fieldbyname('FactoryNoName').AsString);
FieldByName('ZdyStr1').Value := <><D3A6><EFBFBD><EFBFBD>';
Post;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from YF_Money_CR where YFID=''' + Trim(YFID) + '''');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('YFID').Value := Trim(YFID);
FieldByName('YFTypeId').Value := Trim(Order_Main.fieldbyname('Mainid').AsString);
FieldByName('CRID').Value := StrToInt(CRID);
FieldByName('Filler').Value := Trim(DName);
FieldByName('CRType').Value := '<27><><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>';
FieldByName('CRFlag').Value := <><D3A6><EFBFBD><EFBFBD>';
FieldByName('QtyFlag').Value := -1;
FieldByName('FactoryName').Value := Trim(Order_Main.fieldbyname('factoryNoName').AsString);
FieldByName('CRTime').Value := SGetServerDateTime(ADOQuerytemp);
FieldByName('DFBankNo').Value := Trim(Order_Main.fieldbyname('bankNo').AsString);
FieldByName('payment').Value := Trim(Order_Main.fieldbyname('ConTK4').AsString);
FieldByName('Qty').Value := 0;
FieldByName('PS').Value := 0;
FieldByName('YFType').Value := '<27>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>';
FieldByName('Price').Value := 0;
if Order_Main.fieldbyname('CDeposit').asstring <> '' then
begin
FieldByName('money').Value := Order_Main.fieldbyname('CDeposit').AsFloat;
FieldByName('BBmoney').Value := Order_Main.fieldbyname('CDeposit').AsFloat;
end
else
begin
FieldByName('money').Value := 0;
FieldByName('BBmoney').Value := 0;
end;
FieldByName('HuiLv').Value := 1;
FieldByName('BZType').Value := 'RMB';
FieldByName('ComTaiTou').Value := '';
FieldByName('QtyUnit').Value := '';
FieldByName('orderNo').Value := Trim(Order_Main.fieldbyname('ConNo').AsString);
FieldByName('P_CodeName').Value := Trim(Order_Main.fieldbyname('C_CodeName').AsString);
FieldByName('YFName').Value := '<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>';
FieldByName('MainId').Value := Trim(Order_Main.fieldbyname('Mainid').AsString);
FieldByName('status').Value := '0';
Post;
end;
Result := True;
end;
function TfrmClothContractListHZSel.HYYFData(): Boolean;
var
CRID, OrdMainId, YFID, FComTaiTou, FCRID, FFactoryName: string;
begin
Result := False;
if GetLSNo(ADOQueryCmd, YFID, 'YS', 'YF_Money_CR', 3, 1) = False then
begin
Application.MessageBox('ȡӶ<C8A1><D3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update YF_Money_CRID set CRID=CRID+1');
sql.Add('select * from YF_Money_CRID ');
Open;
end;
CRID := ADOQueryCmd.fieldbyname('CRID').AsString;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from YF_Money_KC where 1<>1');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('CRID').Value := StrToInt(CRID);
FieldByName('FactoryNo').Value := Trim(Order_Main.fieldbyname('FactoryNo').AsString);
FieldByName('FactoryName').Value := Trim(Order_Main.fieldbyname('FactoryNoName').AsString);
FieldByName('ZdyStr1').Value := <><D3A6><EFBFBD><EFBFBD>';
Post;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from YF_Money_CR where YFID=''' + Trim(YFID) + '''');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('YFID').Value := Trim(YFID);
FieldByName('YFTypeId').Value := Trim(Order_Main.fieldbyname('Mainid').AsString);
FieldByName('CRID').Value := StrToInt(CRID);
FieldByName('Filler').Value := Trim(DName);
FieldByName('CRType').Value := <>տ<EFBFBD><D5BF>Ǽ<EFBFBD>';
FieldByName('CRFlag').Value := <><D3A6><EFBFBD><EFBFBD>';
FieldByName('QtyFlag').Value := 1;
FieldByName('FactoryName').Value := Trim(Order_Main.fieldbyname('factoryNoName').AsString);
FieldByName('CRTime').Value := SGetServerDateTime(ADOQuerytemp);
FieldByName('DFBankNo').Value := Trim(Order_Main.fieldbyname('bankNo').AsString);
FieldByName('payment').Value := Trim(Order_Main.fieldbyname('ConTK4').AsString);
FieldByName('Qty').Value := Order_Main.fieldbyname('Qty').asstring;
FieldByName('PS').Value := Order_Main.fieldbyname('RollNum').asstring;
FieldByName('YFType').Value := '<27>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>';
if Order_Main.fieldbyname('HYPrice').asstring <> '' then
begin
FieldByName('Price').Value := Order_Main.fieldbyname('HYPrice').AsFloat;
FieldByName('money').Value := Order_Main.fieldbyname('Qty').AsFloat * Order_Main.fieldbyname('HYPrice').AsFloat;
FieldByName('BBmoney').Value := Order_Main.fieldbyname('Qty').AsFloat * Order_Main.fieldbyname('HYPrice').AsFloat;
end
else
begin
FieldByName('Price').Value := 0;
FieldByName('money').Value := 0;
FieldByName('BBmoney').Value := 0;
end;
FieldByName('HuiLv').Value := 1;
FieldByName('BZType').Value := Order_Main.fieldbyname('HYPriceunit').AsString;
FieldByName('ComTaiTou').Value := '';
FieldByName('QtyUnit').Value := Order_Main.fieldbyname('QtyUnit').AsString;
FieldByName('orderNo').Value := Trim(Order_Main.fieldbyname('ConNo').AsString);
FieldByName('P_CodeName').Value := Trim(Order_Main.fieldbyname('C_CodeName').AsString);
FieldByName('YFName').Value := '<27><><EFBFBD><EFBFBD>Ӷ<EFBFBD><D3B6>';
FieldByName('MainId').Value := Trim(Order_Main.fieldbyname('Mainid').AsString);
FieldByName('status').Value := '0';
Post;
end;
Result := True;
end;
function TfrmClothContractListHZSel.WKYFData(): Boolean;
var
CRID, OrdMainId, YFID, FComTaiTou, FCRID, FFactoryName: string;
begin
Result := False;
if GetLSNo(ADOQueryCmd, YFID, 'YF', 'YF_Money_CR', 3, 1) = False then
begin
Application.MessageBox('ȡβ<C8A1><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update YF_Money_CRID set CRID=CRID+1');
sql.Add('select * from YF_Money_CRID ');
Open;
end;
CRID := ADOQueryCmd.fieldbyname('CRID').AsString;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from YF_Money_KC where 1<>1');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('CRID').Value := StrToInt(CRID);
FieldByName('FactoryNo').Value := Trim(Order_Main.fieldbyname('FactoryNo').AsString);
FieldByName('FactoryName').Value := Trim(Order_Main.fieldbyname('FactoryNoName').AsString);
FieldByName('ZdyStr1').Value := <><D3A6><EFBFBD><EFBFBD>';
Post;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from YF_Money_CR where YFID=''' + Trim(YFID) + '''');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('YFID').Value := Trim(YFID);
FieldByName('YFTypeId').Value := Trim(Order_Main.fieldbyname('Mainid').AsString);
FieldByName('CRID').Value := StrToInt(CRID);
FieldByName('Filler').Value := Trim(DName);
FieldByName('CRType').Value := '<27><><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>';
FieldByName('CRFlag').Value := <><D3A6><EFBFBD><EFBFBD>';
FieldByName('QtyFlag').Value := -1;
FieldByName('FactoryName').Value := Trim(Order_Main.fieldbyname('factoryNoName').AsString);
FieldByName('CRTime').Value := SGetServerDateTime(ADOQuerytemp);
FieldByName('DFBankNo').Value := Trim(Order_Main.fieldbyname('bankNo').AsString);
FieldByName('payment').Value := Trim(Order_Main.fieldbyname('ConTK4').AsString);
FieldByName('Qty').Value := 0;
FieldByName('PS').Value := 0;
FieldByName('YFType').Value := '<27>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>';
FieldByName('Price').Value := 0;
if Order_Main.fieldbyname('Wmoney').asstring <> '' then
begin
FieldByName('money').Value := Order_Main.fieldbyname('Wmoney').AsFloat;
FieldByName('BBmoney').Value := Order_Main.fieldbyname('Wmoney').AsFloat;
end
else
begin
FieldByName('money').Value := 0;
FieldByName('BBmoney').Value := 0;
end;
FieldByName('HuiLv').Value := 1;
FieldByName('BZType').Value := 'RMB';
FieldByName('ComTaiTou').Value := '';
FieldByName('QtyUnit').Value := '';
FieldByName('orderNo').Value := Trim(Order_Main.fieldbyname('ConNo').AsString);
FieldByName('P_CodeName').Value := Trim(Order_Main.fieldbyname('C_CodeName').AsString);
FieldByName('YFName').Value := '<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>β<EFBFBD><CEB2>';
FieldByName('MainId').Value := Trim(Order_Main.fieldbyname('Mainid').AsString);
FieldByName('status').Value := '0';
Post;
end;
Result := True;
end;
procedure TfrmClothContractListHZSel.cxTabControl1Change(Sender: TObject);
begin
TBRafresh.Click;
end;
procedure TfrmClothContractListHZSel.Tv1DblClick(Sender: TObject);
begin
if Order_Main.IsEmpty then
exit;
ModalResult := 1;
end;
end.