D7FZaideng/艾登贸易管理/U_Contract_Main.pas
DESKTOP-E401PHE\Administrator 82c6347dad ~
2025-04-30 16:21:22 +08:00

531 lines
15 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_Contract_Main;
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;
type
TfrmContract_Main = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBAdd: TToolButton;
TBEdit: TToolButton;
TBDel: TToolButton;
TBPrint: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
Label1: TLabel;
Label2: TLabel;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
Label3: TLabel;
ConNoM: TEdit;
Label5: TLabel;
C_CodeNameM: TEdit;
TBExport: TToolButton;
Label4: TLabel;
C_Spec: TEdit;
ScrollBox1: TScrollBox;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1OrderNo: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1DeliveryDate: TcxGridDBColumn;
v1FactoryNo1Name: TcxGridDBColumn;
v1PRTSpec: TcxGridDBColumn;
v1PRTMF: TcxGridDBColumn;
v1PRTKZ: TcxGridDBColumn;
v1C_Qty: TcxGridDBColumn;
v1OrderUnit: TcxGridDBColumn;
v1Price: TcxGridDBColumn;
v1Money: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
ClientDataSet3: TClientDataSet;
DataSource2: TDataSource;
DataSource3: TDataSource;
ClientDataSet2: TClientDataSet;
v1Qty1: TcxGridDBColumn;
RM1: TRMGridReport;
RMDBMain: TRMDBDataSet;
RMXLSExport1: TRMXLSExport;
v1Column4: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
CDS_PRT: TClientDataSet;
cxTabControl1: TcxTabControl;
Tchk: TToolButton;
TNochk: TToolButton;
FactoryNoName: TEdit;
Label6: TLabel;
Order_Main: TClientDataSet;
ADOQueryMain: TADOQuery;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure TBPrintClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure TBAddClick(Sender: TObject);
procedure ConNoMChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Tv1FocusedRecordChanged(Sender: TcxCustomGridTableView;
APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord;
ANewItemRecordFocusingChanged: Boolean);
procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Tv3MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Tv2CellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure v2Column3PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure conPress(Sender: TObject; var Key: Char);
procedure TchkClick(Sender: TObject);
procedure TNochkClick(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
private
FInt,PFInt:Integer;
procedure InitGrid();
procedure InitForm();
function DelData():Boolean;
procedure SetStatus();
{ Private declarations }
public
FType:string;
{ Public declarations }
end;
var
frmContract_Main: TfrmContract_Main;
implementation
uses
U_DataLink,U_Fun,U_ProductOrderList,U_ZDYHelp,
U_Contract_Sub;
{$R *.dfm}
procedure TfrmContract_Main.SetStatus();
begin
tchk.Visible:=false;
tnochk.Visible:=false;
tbedit.Visible:=false;
tbdel.Visible:=false;
if Trim(DParameters1)<>'<27><>Ȩ<EFBFBD><C8A8>' then
begin
case cxTabControl1.TabIndex of
0:begin
// tbedit.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;
tbedit.Visible:=true;
tbdel.Visible:=true;
end;
1:begin
tnochk.Visible:=true;
end;
2:begin
end;
end;
end;
end;
procedure TfrmContract_Main.FormDestroy(Sender: TObject);
begin
frmContract_Main:=nil;
end;
procedure TfrmContract_Main.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmContract_Main.FormCreate(Sender: TObject);
begin
ScrollBox1.Align:=alClient;
cxGrid1.Align:=ALClient;
end;
procedure TfrmContract_Main.TBCloseClick(Sender: TObject);
begin
Close;
WriteCxGrid(self.Caption+tv1.Name,Tv1,'<27><>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>');
end;
procedure TfrmContract_Main.InitGrid();
var strwhere: string;
begin
strwhere:=' and QDTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+''''
+' and QDTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+''''
+' and HTType=''<27>ӹ<EFBFBD><D3B9><EFBFBD>ͬ''';
IF cxTabControl1.TabIndex=0 then
strwhere:=strwhere+' and isnull(C_status,''0'')=''0'' ';
IF cxTabControl1.TabIndex=1 then
strwhere:=strwhere+' and isnull(C_status,''0'')=''1'' ';
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add('exec ClothContract_QryList :MainId,:WSql');
Parameters.ParamByName('WSql').Value:=strwhere;
Open;
end;
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
finally
ADOQueryMain.EnableControls;
TBFind.Click;
end;
end;
procedure TfrmContract_Main.InitForm();
begin
ReadCxGrid(self.Caption+tv1.Name,Tv1,'<27><>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>');
cxTabControl1.TabIndex:=0;
BegDate.DateTime:=SGetServerDate10(ADOQueryTemp)-7;
EndDate.DateTime:=SGetServerDate10(ADOQueryTemp);
InitGrid();
end;
procedure TfrmContract_Main.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;
procedure TfrmContract_Main.TBEditClick(Sender: TObject);
begin
if Order_Main.IsEmpty then Exit;
try
frmContract_Sub:=TfrmContract_Sub.Create(Application);
with frmContract_Sub do
begin
PState:=1;
FMainId:=Trim(Self.Order_Main.fieldbyname('MainId').AsString);
FConNo:=Trim(Self.Order_Main.fieldbyname('ConNoM').AsString);
if ShowModal=1 then
begin
InitGrid();
end;
end;
finally
frmContract_Sub.Free;
end;
end;
procedure TfrmContract_Main.TBDelClick(Sender: TObject);
begin
if Order_Main.IsEmpty then Exit;
if ClientDataSet2.IsEmpty=false then
begin
Application.MessageBox('<27>ѵ<EFBFBD><D1B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>','<27><>ʾ',0);
Exit;
end;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
if DelData() then
begin
TBRafresh.Click;
//TBFind.Click;
// Order_Main.Delete;
end;
end;
function TfrmContract_Main.DelData():Boolean;
begin
try
Result:=false;
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete Contract_main where mainID='''+Trim(Order_Main.fieldbyname('mainID').AsString)+'''');
sql.Add('delete Contract_Sub where mainID='''+Trim(Order_Main.fieldbyname('mainID').AsString)+'''');
ExecSQL;
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 TfrmContract_Main.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then Exit;
TcxGridToExcel('<27>ӹ<EFBFBD><D3B9><EFBFBD>ͬ',cxGrid1);
end;
procedure TfrmContract_Main.TBPrintClick(Sender: TObject);
var
fPrintFile,FConNoM:string;
begin
if Order_Main.IsEmpty then Exit;
fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ.rmf' ;
with ADOQueryTemp do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add('exec ClothContract_QryList :MainId,:WSql');
Parameters.ParamByName('WSql').Value:=' and FillTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+''''
+' and FillTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+'''';
Parameters.ParamByName('MainId').Value:=Trim(Order_Main.fieldbyname('MainId').AsString);
Parameters.ParamByName('WSql').Value:='';
Open;
end;
SCreateCDS20(ADOQueryTemp,CDS_PRT);
SInitCDSData20(ADOQueryTemp,CDS_PRT);
FConNoM:=Trim(CDS_PRT.fieldbyname('ConNoM').AsString);
if FileExists(fPrintFile) then
begin
RM1.LoadFromFile(fPrintFile);
RM1.ShowReport;
end else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>'+ExtractFilePath(Application.ExeName)+'Report\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ.rmf'),'<27><>ʾ',0);
end;
end;
procedure TfrmContract_Main.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmContract_Main.TBAddClick(Sender: TObject);
begin
try
frmContract_Sub:=TfrmContract_Sub.Create(Application);
with frmContract_Sub do
begin
PState:=0;
FMainId:='';
if ShowModal=1 then
begin
InitGrid();
end;
end;
finally
frmContract_Sub.Free;
end;
end;
procedure TfrmContract_Main.ConNoMChange(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 TfrmContract_Main.FormShow(Sender: TObject);
begin
InitForm();
SetStatus();
end;
procedure TfrmContract_Main.Tv1FocusedRecordChanged(
Sender: TcxCustomGridTableView; APrevFocusedRecord,
AFocusedRecord: TcxCustomGridRecord;
ANewItemRecordFocusingChanged: Boolean);
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
SQL.Add('select A.*,KCSL=A.MXQty-(select isnull(Sum(TPQty),0) from Contract_Sub_Mxto B where B.MXID=A.MXID),');
sql.Add(' KCPS=A.Qty1-(select isnull(Sum(Qty1),0) from Contract_Sub_Mxto B where B.MXID=A.MXID)');
sql.Add('from Contract_Sub_Mx A');
sql.Add(' where A.SubId='''+Trim(Order_Main.fieldbyname('SubId').AsString)+'''');
Open;
end;
SCreateCDS20(ADOQueryTemp,ClientDataSet2);
SInitCDSData20(ADOQueryTemp,ClientDataSet2);
with ADOQueryTemp do
begin
Close;
sql.Clear;
SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo ,');
sql.Add('C_Unit=(select Top 1 C_Unit from Contract_Sub AA,Contract_Sub_Mx BB where AA.SubId=BB.SubId and BB.MXid=A.Mxid)');
SQL.Add('from Contract_Sub_MxTo A inner join JYOrder_Sub B on A.OrdSubId=B.SubId');
SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId ');
sql.Add('where A.MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+'''');
Open;
end;
SCreateCDS20(ADOQueryTemp,ClientDataSet3);
SInitCDSData20(ADOQueryTemp,ClientDataSet3);
end;
procedure TfrmContract_Main.Tv2MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
FInt:=2;
end;
procedure TfrmContract_Main.Tv1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
FInt:=1;
end;
procedure TfrmContract_Main.Tv3MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
FInt:=3;
end;
procedure TfrmContract_Main.Tv2CellClick(
Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
SQL.Add('select A.*,C.MPRTSpec,B.PRTColor,C.MPRTCodeName,C.OrderNo ,');
sql.Add('C_Unit=(select Top 1 C_Unit from Contract_Sub AA,Contract_Sub_Mx BB where AA.SubId=BB.SubId and BB.MXid=A.Mxid)');
SQL.Add(' from Contract_Sub_MxTo A inner join JYOrder_Sub B on A.OrdSubId=B.SubId ');
SQL.Add(' inner join JYOrder_Main C on C.MainId=B.MainId ');
sql.Add('where A.MxId='''+Trim(ClientDataSet2.fieldbyname('MxId').AsString)+'''');
Open;
end;
SCreateCDS20(ADOQueryTemp,ClientDataSet3);
SInitCDSData20(ADOQueryTemp,ClientDataSet3);
end;
procedure TfrmContract_Main.v2Column3PropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='RKPlace';
flagname:='<27><><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>';
if ShowModal=1 then
begin
with ClientDataSet2 do
begin
Edit;
FieldByName('RKPlace').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmContract_Main.conPress(Sender: TObject;
var Key: Char);
begin
if Key=#13 then
begin
if Length(Trim(ConNoM.Text))<4 then Exit;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add('exec ClothContract_QryList :MainId,:WSql');
Parameters.ParamByName('WSql').Value:=' and OM.conNo like '''+'%'+Trim(ConNoM.Text)+'%'+''''
+' and HTType=''<27>ӹ<EFBFBD><D3B9><EFBFBD>ͬ''';
Open;
end;
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
end;
procedure TfrmContract_Main.TchkClick(Sender: TObject);
begin
if Order_Main.IsEmpty then exit;
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update Contract_Sub SET C_status=''1'' ');
sql.Add('where subID='+quotedstr(trim(Order_Main.fieldbyname('subID').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 TfrmContract_Main.TNochkClick(Sender: TObject);
begin
if Order_Main.IsEmpty then exit;
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update Contract_Sub SET C_status=''0'' ');
sql.Add('where subID='+quotedstr(trim(Order_Main.fieldbyname('subID').AsString)));
execsql;
end;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ');
TBRafresh.Click;
except
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
end;
end;
procedure TfrmContract_Main.cxTabControl1Change(Sender: TObject);
begin
SetStatus();
TBRafresh.Click;
end;
end.