D7myYunxiang/云翔生产管理(MYSC.dll)/U_CPFHList.pas
DESKTOP-E401PHE\Administrator 1011cb7292 1
2025-01-20 13:04:03 +08:00

633 lines
17 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_CPFHList;
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, cxCheckBox, cxCalendar, cxSplitter,
RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, RM_e_Xls,
Menus, cxButtonEdit, cxDropDownEdit, cxPC, Buttons, cxTextEdit;
type
TfrmCPFHList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBAdd: TToolButton;
TBEdit: TToolButton;
TBDel: TToolButton;
TBClose: TToolButton;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
TBExport: TToolButton;
Order_Main: TClientDataSet;
ToolButton1: TToolButton;
Panel1: TPanel;
Label34: TLabel;
FactoryName: TEdit;
Label4: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
ToolButton4: TToolButton;
RM1: TRMGridReport;
RMDBMain: TRMDBDataSet;
RMXLSExport2: TRMXLSExport;
CDS_PRT: TClientDataSet;
labMYType: TLabel;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column1: TcxGridDBColumn;
v1Column17: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1Column12: TcxGridDBColumn;
v1Column13: TcxGridDBColumn;
v1Column16: TcxGridDBColumn;
v1Column18: TcxGridDBColumn;
v1Column19: TcxGridDBColumn;
v1Column20: TcxGridDBColumn;
v1Column21: TcxGridDBColumn;
Label9: TLabel;
YWY: TEdit;
v1Column23: TcxGridDBColumn;
CheckBox1: TCheckBox;
Panel3: TPanel;
Image1: TImage;
SpeedButton8: TSpeedButton;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
v1Ssel: TcxGridDBColumn;
ADOQuery1: TADOQuery;
v1Column2: TcxGridDBColumn;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TBFindClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure TBAddClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure CustomerNoNameChange(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure ZJStatusChange(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure Tv1DblClick(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Image1Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
private
canshu1:string;
DQdate:TDateTime;
procedure InitGrid();
procedure InitGridKH();
procedure InitGridSub();
procedure InitForm();
function DelData():Boolean;
{ Private declarations }
public
FFInt,FCloth:Integer;
{ Public declarations }
end;
var
frmCPFHList: TfrmCPFHList;
implementation
uses
U_DataLink,U_RTFun, U_XiShouInPut,U_ZDYHelp,U_XiShouInPutWKC,U_XiaoShouDataOldListQB,U_CKProductBCPOutList,
U_XiaoShouDataNewListQB;
{$R *.dfm}
procedure TfrmCPFHList.FormDestroy(Sender: TObject);
begin
frmCPFHList:=nil;
end;
procedure TfrmCPFHList.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmCPFHList.FormCreate(Sender: TObject);
begin
cxgrid1.Align:=alClient;
canshu1:=Trim(DParameters1);
end;
procedure TfrmCPFHList.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>YXMX',Tv1,<><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
WriteCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>YXZY',Tv2,<><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmCPFHList.InitGrid();
begin
try
ADOQueryCmd.DisableControls;
with ADOQueryCmd do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add('select A.* ');
sql.Add(',KHNameJC=(select KHNameJC from KH_Main KM where KM.KHNO=A.KHNO)');
sql.Add(',JQty=(select Count(*) from FHSQ_Sub FS where FS.SMID=A.SMID)');
sql.Add(',HSQtyM=(select sum(FHMQty) from FHSQ_Sub FS where FS.SMID=A.SMID)');
sql.Add(',HSQtyKg=(select sum(FHKgQty) from FHSQ_Sub FS where FS.SMID=A.SMID)');
sql.Add(',BZType=(select Top 1 BZType from FHSQ_Sub FS where FS.SMID=A.SMID)');
sql.Add(',HZFee=(select sum(FeeMoney) from FHSQ_Sub FS where FS.SMID=A.SMID)');
sql.Add(',Money=isnull((select sum(FeeMoney) from FHSQ_Sub FS where FS.SMID=A.SMID),0)');
sql.Add('+isnull((select sum(FHMooney) from FHSQ_Sub FS where FS.SMID=A.SMID),0)');
sql.Add('from FHSQ_Main A');
Open;
end;
SCreateCDS20(ADOQueryCmd,Order_Main);
SInitCDSData20(ADOQueryCmd,Order_Main);
finally
ADOQueryCmd.EnableControls;
end;
end;
procedure TfrmCPFHList.InitGridSub();
begin
try
ADOQueryTemp.DisableControls;
with ADOQueryTemp do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add(' select AA.*,B.* ');
sql.Add(',KHNameJC=(select KHNameJC from KH_Main KM where KM.KHNO=B.FactoryNo)');
sql.Add(' from(');
sql.Add(' select A.SMID,BZType,JQty=sum(JQty),HSQty=sum(HSQty),HZFee=sum(HZFee),Money=sum(Money)');
sql.Add(' from CK_YCL_CR A ');
sql.Add(' inner join CK_YCL_CR_Main B on A.SMID=B.SMID ');
sql.Add(' where 1=1');
if CheckBox1.Checked=true then
begin
sql.add(' and B.CRTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''');
sql.Add(' and B.CRTime<'''+Trim(FormatDateTime('yyyy-MM-dd',enddate.DateTime+1))+'''');
end
else
begin
sql.add(' and B.CRTime>='''+Trim(FormatDateTime('yyyy-MM-dd',Now))+'''');
sql.Add(' and B.CRTime<'''+Trim(FormatDateTime('yyyy-MM-dd',Now+1))+'''');
end;
sql.Add(' and isnull(B.CKName,'''')=''<27><><EFBFBD>۳<EFBFBD><DBB3><EFBFBD>'' ');
sql.Add(' and isnull(B.FactoryNo,'''')='''+Trim(ClientDataSet2.fieldbyname('FactoryNo').AsString)+'''');
sql.Add(' and isnull(B.CRType,'''')='''+Trim(ClientDataSet2.fieldbyname('CRType').AsString)+'''');
sql.Add(' and isnull(B.YWY,'''')='''+Trim(ClientDataSet2.fieldbyname('YWY').AsString)+'''');
if ClientDataSet2.IsEmpty then
begin
sql.Add(' and 1=2');
end;
sql.Add(' Group by A.SMID,BZType )AA');
sql.Add(' inner join CK_YCL_CR_Main B on AA.SMID=B.SMID ');
SQL.Add(' order by B.CRTime desc');
Open;
end;
SCreateCDS20(ADOQueryTemp,Order_Main);
SInitCDSData20(ADOQueryTemp,Order_Main);
finally
ADOQueryTemp.EnableControls;
end;
end;
procedure TfrmCPFHList.InitGridKH();
begin
end;
procedure TfrmCPFHList.InitForm();
begin
BegDate.Date:=StrToDate(FormatDateTime('yyyy-MM',SGetServerDate(ADOQueryTemp))+'-01');
EndDate.Date:=SGetServerDate(ADOQueryTemp);
ReadCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>YXMX',Tv1,<><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
ReadCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>YXZY',Tv2,<><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
InitGridKH();
end;
procedure TfrmCPFHList.TBFindClick(Sender: TObject);
begin
if ADOQueryCmd.Active=False then Exit;
SDofilter(ADOQueryCmd,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryCmd,Order_Main);
SInitCDSData20(ADOQueryCmd,Order_Main);
end;
procedure TfrmCPFHList.TBDelClick(Sender: TObject);
begin
if Order_Main.IsEmpty then Exit;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from YS_Money_CR where YFTypeId in');
sql.Add('(select SPID from CK_YCL_CR where SMID='''+Trim(Order_Main.fieldbyname('SMID').AsString)+''')');
sql.Add(' and (isnull(ChkerP,'''')<>'''' ');
sql.Add(' or isnull(ChkerQ,'''')<>'''') ');
Open;
end;
if ADOQueryTemp.IsEmpty=False then
begin
Application.MessageBox('<27><><EFBFBD>ۻ<EFBFBD><DBBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD>ɾ<EFBFBD><C9BE>!','<27><>ʾ',0);
Exit;
end;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' delete YS_Money_CR where YFTypeId in');
sql.Add('(select SPID from CK_YCL_CR where SMID='''+Trim(Order_Main.fieldbyname('SMID').AsString)+''')');
sql.Add(' delete CK_YCL_CR where SMID='''+Trim(Order_Main.fieldbyname('SMID').AsString)+'''');
sql.Add(' delete CK_YCL_CR_Main where SMID='''+Trim(Order_Main.fieldbyname('SMID').AsString)+'''');
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
Order_Main.Delete;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C9BE><EFBFBD>쳣!','<27><>ʾ',0);
end;
end;
function TfrmCPFHList.DelData():Boolean;
begin
try
Result:=false;
ADOQueryCmd.Connection.BeginTrans;
Order_Main.DisableControls;
with Order_Main do
begin
//First;
// while Order_Main.Locate('SSel',True,[]) do
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' insert into CK_MYSC_CR_Log ');
sql.Add(' select * from CK_MYSC_CR where MYID='''+Trim(Order_Main.fieldbyname('MYID').AsString)+'''');
sql.Add(' UPdate CK_MYSC_CR_Log Set DelTime=getdate(),DelerCode='''+Trim(DCode)+''',Deler='''+Trim(DName)+'''');
sql.Add(' where MYID='''+Trim(Order_Main.fieldbyname('MYID').AsString)+'''');
sql.Add('Delete CK_MYSC_CR where MYId='''+Trim(Order_Main.fieldbyname('MYId').AsString)+'''');
ExecSQL;
end;
Order_Main.Delete;
end;
end;
Order_Main.EnableControls;
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 TfrmCPFHList.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then Exit;
TcxGridToExcel(Self.Caption,cxGrid1);
end;
procedure TfrmCPFHList.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmCPFHList.TBAddClick(Sender: TObject);
begin
try
frmXiaoShouDataNewListQB:=TfrmXiaoShouDataNewListQB.Create(Application);
with frmXiaoShouDataNewListQB do
begin
if ShowModal=1 then
begin
end;
end;
finally
frmXiaoShouDataNewListQB.Free;
end;
end;
procedure TfrmCPFHList.FormShow(Sender: TObject);
begin
InitForm();
end;
procedure TfrmCPFHList.CheckBox1Click(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmCPFHList.CheckBox2Click(Sender: TObject);
begin
TBRafresh.Click;
end;
procedure TfrmCPFHList.ToolButton1Click(Sender: TObject);
var
FFMYType:String;
begin
if Order_Main.IsEmpty then Exit;
FFMYType:=Trim(Order_Main.fieldbyname('CRType').AsString);
if Trim(FFMYType)='<27><>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>' then
begin
try
frmXiShouInPut:=TfrmXiShouInPut.Create(Application);
with frmXiShouInPut do
begin
TBSave.Visible:=False;
PState:=1;
FMainId:=Trim(Self.Order_Main.fieldbyname('SMID').AsString);
Label21.Caption:=FFMYType;
if ShowModal=1 then
begin
end;
end;
finally
frmXiShouInPut.Free;
end;
end else
begin
try
frmXiShouInPutWKC:=TfrmXiShouInPutWKC.Create(Application);
with frmXiShouInPutWKC do
begin
TBSave.Visible:=False;
PState:=1;
FMainId:=Trim(Self.Order_Main.fieldbyname('SMID').AsString);
Label21.Caption:=FFMYType;
if ShowModal=1 then
begin
end;
end;
finally
frmXiShouInPutWKC.Free;
end;
end;
end;
procedure TfrmCPFHList.CustomerNoNameChange(Sender: TObject);
begin
if ADOQueryMain.Active=False then Exit;
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,ClientDataSet2);
SInitCDSData20(ADOQueryMain,ClientDataSet2);
end;
procedure TfrmCPFHList.N2Click(Sender: TObject);
begin
SelOKNo(Order_Main,True);
end;
procedure TfrmCPFHList.N1Click(Sender: TObject);
begin
speedbutton8.click;
end;
procedure TfrmCPFHList.cxTabControl1Change(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmCPFHList.ZJStatusChange(Sender: TObject);
begin
TBFind.Click;
end;
procedure TfrmCPFHList.ToolButton4Click(Sender: TObject);
var
fPrintFile:string;
begin
if Order_Main.IsEmpty then Exit;
if Trim(Order_Main.fieldbyname('Chker').AsString)='' then exit;
fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\<5C><><EFBFBD><EFBFBD><E2B1A8>.rmf';
RMXLSExport2:= TRMXLSExport.Create(RMXLSExport2);
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from Test_Report where TRId='''+Trim(Order_Main.fieldbyname('TRId').AsString)+'''');
Open;
end;
SCreateCDS20(ADOQueryTemp,CDS_PRT);
SInitCDSData20(ADOQueryTemp,CDS_PRT);
if FileExists(fPrintFile) then
begin
//RMVariables['OrderUnit']:=Order_Main.fieldbyname('OrderUnit').Value;
RM1.LoadFromFile(fPrintFile);
RM1.ShowReport;
end else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>'+ExtractFilePath(Application.ExeName)+'Report\<5C><><EFBFBD><EFBFBD><E2B1A8>.rmf'),'<27><>ʾ',0);
end;
end;
procedure TfrmCPFHList.Tv1DblClick(Sender: TObject);
begin
frmCKProductBCPOutList:=TfrmCKProductBCPOutList.Create(self);
with frmCKProductBCPOutList do
begin
FCKNO:=trim(Order_Main.fieldbyname('CKNo').AsString);
if ShowModal=1 then
begin
end;
free;
end;
end;
procedure TfrmCPFHList.TBEditClick(Sender: TObject);
var
FFMYType:String;
begin
if Order_Main.IsEmpty then Exit;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from YS_Money_CR where YFTypeId in');
sql.Add('(select SPID from CK_YCL_CR where SMID='''+Trim(Order_Main.fieldbyname('SMID').AsString)+''')');
Open;
end;
if ADOQueryTemp.IsEmpty=False then
begin
Application.MessageBox('<27>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>տ<D5BF><EEB2BB><EFBFBD>޸<EFBFBD>!','<27><>ʾ',0);
Exit;
end;
FFMYType:=Trim(Order_Main.fieldbyname('CRType').AsString);
if Trim(FFMYType)='<27><>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>' then
begin
try
frmXiShouInPut:=TfrmXiShouInPut.Create(Application);
with frmXiShouInPut do
begin
PState:=1;
FMainId:=Trim(Self.Order_Main.fieldbyname('SMID').AsString);
Label21.Caption:=FFMYType;
Button1.Visible:=False;
if ShowModal=1 then
begin
InitGridSub();
end;
end;
finally
frmXiShouInPut.Free;
end;
end else
begin
try
frmXiShouInPutWKC:=TfrmXiShouInPutWKC.Create(Application);
with frmXiShouInPutWKC do
begin
PState:=1;
FMainId:=Trim(Self.Order_Main.fieldbyname('SMID').AsString);
Label21.Caption:=FFMYType;
if ShowModal=1 then
begin
InitGridSub();
end;
end;
finally
frmXiShouInPutWKC.Free;
end;
end;
end;
procedure TfrmCPFHList.Tv2MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
InitGridSub();
end;
procedure TfrmCPFHList.Image1Click(Sender: TObject);
begin
if Order_Main.IsEmpty then exit;
Panel3.Visible:=false;
end;
procedure TfrmCPFHList.SpeedButton8Click(Sender: TObject);
var
fPrintFile:string;
begin
if Order_Main.IsEmpty then Exit;
if Order_Main.Locate('ssel',True,[])=false then
begin
application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ');
exit;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('delete TBSubID where DName='''+Trim(DCode)+'''');
ExecSQL;
end;
fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB5A5>.rmf';
RMXLSExport2:= TRMXLSExport.Create(RMXLSExport2);
with Order_Main do
begin
first;
while not Eof do
begin
if FieldByName('Ssel').AsBoolean=true then
begin
with ADOQuery1 do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add(' select distinct isnull(D.MJID,C.MJID) MJID');
sql.Add(' from CK_YCL_CR A ');
sql.Add(' inner join CK_YCL_CR_Main B on A.SMID=B.SMID ');
sql.Add(' left join CP_InOut1 C on C.InOutNo=B.CKNo');
sql.Add(' left join CK_BanCP_CR D on D.CKOrdNo=B.CKNo');
sql.add(' where B.CKNO='''+Trim(Order_Main.fieldbyname('CKNO').AsString)+'''');
Open;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('SELECT * FROM TBSubID where 1=2 ');
open;
end;
with ADOQuery1 do
begin
first;
while not eof do
begin
ADOQueryTemp.append;
ADOQueryTemp.fieldbyname('SubId').Value:=Trim(ADOQuery1.fieldbyname('MJID').AsString);
ADOQueryTemp.fieldbyname('Dname').Value:=Trim(DCode);
ADOQueryTemp.post;
next;
end;
end;
end;
next;
end;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.add('exec P_Print_CKMD3 ');
sql.add('@mainID='+quotedstr(Trim('')));
sql.add(',@DName='+quotedstr(Trim(DCode)));
Open;
end;
SCreateCDS20(ADOQueryTemp,CDS_PRT);
SInitCDSData20(ADOQueryTemp,CDS_PRT);
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><EBB5A5>.rmf'),'<27><>ʾ',0);
end;
end;
end.