D7wmbeiqi/贝其贸易管理/U_frmFabList.pas
DESKTOP-E401PHE\Administrator 0843d5fa7d ~
2025-04-30 16:20:38 +08:00

460 lines
13 KiB
ObjectPascal
Raw 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_frmFabList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxGrid, ComCtrls, ToolWin, cxGridCustomPopupMenu,
cxGridPopupMenu, ADODB, cxPC, ExtCtrls, StdCtrls, DBClient, cxCalendar,
RM_Dataset, RM_Common, RM_Class, RM_e_Xls, RM_System, RM_GridReport,
cxDropDownEdit, cxSplitter, cxLookAndFeels, cxLookAndFeelPainters,
cxNavigator, dxBarBuiltInMenu, dxSkinsCore, dxSkinBlack, dxSkinBlue,
dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom,
dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle,
dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary,
dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin,
dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins,
dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green,
dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black,
dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray,
dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin,
dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus,
dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008,
dxSkinTheAsphaltWorld, dxSkinsDefaultPainters, dxSkinValentine,
dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue, dxSkinscxPCPainter;
type
TfrmFabList = class(TForm)
ToolBar1: TToolBar;
Tadd: TToolButton;
Tupdate: TToolButton;
Tdel: TToolButton;
TClose: TToolButton;
TSel: TToolButton;
TINIT: TToolButton;
TV1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
TVSQNo: TcxGridDBColumn;
TVSQDate: TcxGridDBColumn;
TVSQName: TcxGridDBColumn;
TVNote: TcxGridDBColumn;
TVC_CodeName: TcxGridDBColumn;
TVC_Spec: TcxGridDBColumn;
TVMFQty: TcxGridDBColumn;
TVKZQty: TcxGridDBColumn;
cxGridPopupMenu1: TcxGridPopupMenu;
DataSource1: TDataSource;
ADOQueryTmp: TADOQuery;
ADOQueryDel: TADOQuery;
Panel1: TPanel;
cxTabControl1: TcxTabControl;
Label1: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
Tchk: TToolButton;
TNochk: TToolButton;
cds_Main: TClientDataSet;
Label2: TLabel;
PONo: TEdit;
Label3: TLabel;
ConNo: TEdit;
Label4: TLabel;
P_CodeName: TEdit;
Label5: TLabel;
P_Spec: TEdit;
Label6: TLabel;
Label7: TLabel;
Tglv: TToolButton;
TVchktime: TcxGridDBColumn;
TVchker: TcxGridDBColumn;
P_MF: TEdit;
P_KZ: TEdit;
V1ConNo: TcxGridDBColumn;
V1PONo: TcxGridDBColumn;
V1Column1: TcxGridDBColumn;
TPrint: TToolButton;
RM1: TRMGridReport;
RMXLSExport1: TRMXLSExport;
RMDBMain: TRMDBDataSet;
ADOQueryPrint: TADOQuery;
RMDBsub: TRMDBDataSet;
V1Column2: TcxGridDBColumn;
V1Column4: TcxGridDBColumn;
cxGrid2: TcxGrid;
TV2: TcxGridDBTableView;
V1Column6: TcxGridDBColumn;
cxGridDBColumn1: TcxGridDBColumn;
cxGridDBColumn2: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
cxGridDBColumn4: TcxGridDBColumn;
cxGridDBColumn5: TcxGridDBColumn;
TVC_Note: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
DataSource2: TDataSource;
ADOQuerySub: TADOQuery;
cxSplitter1: TcxSplitter;
TBCopy: TToolButton;
TV1Column1: TcxGridDBColumn;
procedure FormCreate(Sender: TObject);
procedure TCloseClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TaddClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TSelClick(Sender: TObject);
procedure TupdateClick(Sender: TObject);
procedure TINITClick(Sender: TObject);
procedure TV1DblClick(Sender: TObject);
procedure TdelClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure TchkClick(Sender: TObject);
procedure TNochkClick(Sender: TObject);
procedure PONoChange(Sender: TObject);
procedure TglvClick(Sender: TObject);
procedure TPrintClick(Sender: TObject);
procedure TV1CellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure TBCopyClick(Sender: TObject);
private
procedure initData();
procedure setStatus();
procedure InitSub();
{ Private declarations }
public
Ftype: string;
{ Public declarations }
end;
var
frmFabList: TfrmFabList;
implementation
uses U_DataLink,U_Fun,U_frmFabSQ;
{$R *.dfm}
procedure TfrmFabList.InitSub();
begin
ADOQuerySub.Close;
IF cds_Main.IsEmpty then exit;
with ADOQuerySub do
begin
close;
sql.Clear;
sql.Add('select * from Contract_Sub_Sh ');
sql.Add('where mainID ='+quotedstr((cds_Main.fieldbyname('mainID').AsString)));
open;
end;
end;
procedure TfrmFabList.setStatus();
begin
Tupdate.Enabled:=False;
Tdel.Enabled:=False;
Tnochk.Visible:=False;
Tchk.Visible:=False;
if trim(Ftype)='<27><>Ȩ<EFBFBD><C8A8>' then
begin
if cxTabControl1.TabIndex=0 then
begin
Tupdate.Enabled:=true;
Tdel.Enabled:=true;
Tchk.Visible:=true;
end;
if cxTabControl1.TabIndex=1 then
begin
Tnochk.Visible:=true;
end;
end
else
begin
if cxTabControl1.TabIndex=0 then
begin
Tupdate.Enabled:=true;
Tdel.Enabled:=true;
end;
end;
end;
procedure TfrmFabList.initData();
begin
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select A.* ');
sql.add('from contract_main_Sh A ');
sql.Add('where A.SQDate>='''+formatdatetime('yyyy-MM-dd',begdate.datetime)+''' ' );
sql.Add('and A.SQDate<'''+formatdatetime('yyyy-MM-dd',Enddate.datetime+1)+''' ' );
if cxtabControl1.TabIndex=0 then
sql.Add('and A.ChkStatus=''0'' ');
if CxtabControl1.TabIndex=1 then
sql.Add('and A.ChkStatus=''1'' ');
if trim(Ftype)<>'<27><>Ȩ<EFBFBD><C8A8>' then
begin
sql.Add('and A.SQName='''+trim(DName)+'''');
end;
open;
end;
SCreateCDS20(ADOQueryTmp,cds_Main);
SInitCDSData20(ADOQueryTmp,cds_Main);
end;
procedure TfrmFabList.FormCreate(Sender: TObject);
begin
cxGrid1.Align:=alclient;
end;
procedure TfrmFabList.TCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmFabList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
writeCxGrid(self.Caption+tv1.Name,Tv1);
action:=cafree;
end;
procedure TfrmFabList.TaddClick(Sender: TObject);
begin
try
frmFabSQ:=TfrmFabSQ.create(self);
with frmFabSQ do
begin
formid:=0;
FMainId:='';
if showmodal=1 then
begin
initData();
end;
end;
finally
frmFabSQ.free;
end;
end;
procedure TfrmFabList.FormShow(Sender: TObject);
begin
ReadCxGrid(self.Caption+tv1.Name,Tv1);
begdate.datetime:=SGetServerDateTime(ADOQueryTmp)-7;
enddate.datetime:=SGetServerDateTime(ADOQueryTmp);
setStatus();
initdata();
end;
procedure TfrmFabList.TSelClick(Sender: TObject);
begin
if cds_Main.IsEmpty then exit;
frmFabSQ:=TfrmFabSQ.create(self);
with frmFabSQ do
begin
formid:=2;
FMainId:=trim(FrmFabList.cds_Main.fieldbyname('Mainid').AsString);
showmodal;
free;
end;
end;
procedure TfrmFabList.TupdateClick(Sender: TObject);
begin
if cds_Main.IsEmpty then exit;
try
frmFabSQ:=TfrmFabSQ.create(self);
with frmFabSQ do
begin
formid:=1;
FMainId:=trim(FrmFabList.cds_Main.fieldbyname('Mainid').AsString);
if showmodal=1 then
begin
initData();
end;
end;
finally
frmFabSQ.free;
end;
end;
procedure TfrmFabList.TINITClick(Sender: TObject);
begin
initData();
end;
procedure TfrmFabList.TV1DblClick(Sender: TObject);
begin
Tsel.Click;
end;
procedure TfrmFabList.TdelClick(Sender: TObject);
begin
if cds_Main.IsEmpty then exit;
if application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',1)=2 then exit;
try
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select * from Contract_Main ');
sql.add('where SQNo='''+trim(cds_Main.fieldbyname('SQNo').asstring)+'''');
open;
if not isempty then
begin
application.MessageBox('<27>Ѳɹ<D1B2><C9B9><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>','<27><>ʾ');
exit;
end;
end;
with ADOQueryDel do
begin
close;
sql.Clear;
sql.Add('delete from contract_Main_Sh ');
sql.Add('where mainid='''+trim(cds_Main.fieldbyname('Mainid').AsString)+'''');
sql.Add('delete from contract_Sub_Sh ');
sql.Add('where mainid='''+trim(cds_Main.fieldbyname('Mainid').AsString)+'''');
execsql;
end;
except
application.messagebox('<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>ʧ<EFBFBD><CAA7>','<27><>ʾ',0);
end;
initdata();
end;
procedure TfrmFabList.FormDestroy(Sender: TObject);
begin
frmFablist:=nil;
end;
procedure TfrmFabList.cxTabControl1Change(Sender: TObject);
begin
setStatus();
initData();
end;
procedure TfrmFabList.TchkClick(Sender: TObject);
begin
if cds_Main.IsEmpty then exit;
try
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('update contract_Main_Sh set chkstatus=''1'',chktime=getdate(),chker='+quotedstr(trim(Dname)));
sql.Add(' where Mainid='''+trim(cds_Main.fieldbyname('Mainid').asstring)+'''');
execsql;
end;
application.MessageBox('<27><><EFBFBD>˳ɹ<CBB3>','<27><>ʾ');
initdata();
except
application.messagebox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>','<27><>ʾ');
end;
end;
procedure TfrmFabList.TNochkClick(Sender: TObject);
begin
if cds_Main.IsEmpty then exit;
try
{ with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select * from Contract_Main ');
sql.add('where SQNo='''+trim(cds_Main.fieldbyname('SQNo').asstring)+'''');
open;
if not isempty then
begin
application.MessageBox('<27>Ѳɹ<D1B2><C9B9><EFBFBD><EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD>','<27><>ʾ');
exit;
end;
end; }
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('update contract_Main_Sh set chkstatus=''0'',chktime=null,chker=null');
sql.add(' where Mainid='''+trim(cds_Main.fieldbyname('Mainid').asstring)+'''');
execsql;
end;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>','<27><>ʾ');
initdata();
except
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>','<27><>ʾ');
end;
end;
procedure TfrmFabList.PONoChange(Sender: TObject);
begin
SDofilter(AdoQueryTmp,SGetFilters(Panel1,1,0));
SCreateCDS20(AdoQueryTmp,cds_Main);
SInitCDSData20(AdoQueryTmp,cds_Main);
end;
procedure TfrmFabList.TglvClick(Sender: TObject);
begin
SDofilter(AdoQueryTmp,SGetFilters(Panel1,1,0));
SCreateCDS20(AdoQueryTmp,cds_Main);
SInitCDSData20(AdoQueryTmp,cds_Main);
end;
procedure TfrmFabList.TPrintClick(Sender: TObject);
var
fPrintFile:string;
begin
if cds_Main.IsEmpty then exit;
with ADOQueryPrint do
begin
close;
sql.clear;
sql.Add('select a.*,b.* ');
sql.Add(',FYName=(select top 1 MPrtCodeName from JYOrderFy_Other X where X.orderNo=A.fyNO)');
sql.Add(',FYSpec=(select top 1 Mprtspec from JYOrderFy_Other X where X.orderNo=A.fyNO)');
sql.Add(',FYCF=(select top 1 MprtCF from JYOrderFy_Other X where X.orderNo=A.fyNO)');
sql.Add(',FYMF=(select top 1 MPRTMF from JYOrderFy_Other X where X.orderNo=A.fyNO)');
sql.Add(',FYKZ=(select top 1 MPRTKZ from JYOrderFy_Other X where X.orderNo=A.fyNO)');
sql.Add(',PBfactory=(select top 1 PBfactory from JYOrderFy_Other X where X.orderNo=A.fyNO)');
sql.Add(',FYNote=(select top 1 Note from JYOrderFy_Other X where X.orderNo=A.fyNO)');
// sql.Add('C.MPrtCodeName as FYName,C.Mprtspec as FYSpec,C.MprtCF as FYCF,C.MPRTMF as FYMF,C.MPRTKZ as FYKZ,C.PBfactory,C.Note as FYNote, ');
sql.Add(',customerNo=(select top 1 zdyNameZ from KH_Zdy_Attachment X where X.zdyName=A.customerNoName)');
sql.add('from contract_main_Sh A ');
sql.Add('inner join contract_Sub_Sh B on B.Mainid=A.Mainid ');
// sql.Add('left join JYOrderFy_Other C on C.OrderNo=A.FYNO ');
sql.Add('where A.Mainid='''+trim(cds_Main.fieldbyname('Mainid').asstring)+''' ');
open;
end;
fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ.rmf' ;
if FileExists(fPrintFile) then
begin
RM1.LoadFromFile(fPrintFile);
RM1.ShowReport;
end else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>'+trim(fPrintFile)),'<27><>ʾ',0);
end;
end;
procedure TfrmFabList.TV1CellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
initsub();
end;
procedure TfrmFabList.TBCopyClick(Sender: TObject);
begin
if cds_Main.IsEmpty then exit;
frmFabSQ:=TfrmFabSQ.create(self);
with frmFabSQ do
begin
formid:=3;
FMainId:=trim(FrmFabList.cds_Main.fieldbyname('Mainid').AsString);
showmodal;
free;
end;
end;
end.