D7wmhengming/坯布码单待检(PBMDDJ.dll)/U_ZXBList.pas

557 lines
15 KiB
ObjectPascal
Raw Permalink Normal View History

2025-04-16 09:11:01 +08:00
unit U_ZXBList;
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, cxCheckBox;
type
TfrmZXBList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBAdd: TToolButton;
TBEdit: TToolButton;
TBDel: TToolButton;
TBClose: TToolButton;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
TBExport: TToolButton;
Order_Main: TClientDataSet;
RM1: TRMGridReport;
RMDBMain: TRMDBDataSet;
RMXLSExport1: TRMXLSExport;
CDS_PRT: TClientDataSet;
ToolButton3: TToolButton;
cxGridPopupMenu2: TcxGridPopupMenu;
Panel1: TPanel;
Label2: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
MDID: TEdit;
Label6: TLabel;
Label8: TLabel;
OrderNo: TEdit;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column6: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1ShipDate: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1Column16: TcxGridDBColumn;
v1Column17: TcxGridDBColumn;
ComboBox2: TComboBox;
Label3: TLabel;
Label1: TLabel;
v1Column21: TcxGridDBColumn;
v1Column22: TcxGridDBColumn;
ToolButton1: TToolButton;
ToolButton4: TToolButton;
Label4: TLabel;
ZhuoNo: TEdit;
Label5: TLabel;
JiTaiNo: TEdit;
v1Column1: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
Label7: TLabel;
PRTColor: TEdit;
Label9: TLabel;
PRTHX: TEdit;
v1Column13: TcxGridDBColumn;
v1Column14: TcxGridDBColumn;
ADOQueryPrint: TADOQuery;
v1Column15: TcxGridDBColumn;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure TBAddClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure cxPageControl1Change(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure cxTabControl1Change(Sender: TObject);
procedure WorkerChange(Sender: TObject);
procedure MDIDKeyPress(Sender: TObject; var Key: Char);
procedure v1Column15CustomDrawCell(Sender: TcxCustomGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
var ADone: Boolean);
procedure v1Column9CustomDrawCell(Sender: TcxCustomGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
var ADone: Boolean);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure OrderNoKeyPress(Sender: TObject; var Key: Char);
private
FInt,PFInt:Integer;
canshu1,canshu2:string;
FNowDate:TDateTime;
procedure InitGrid();
procedure InitForm();
function DelData():Boolean;
procedure InitGridWsql(fsj:string);
function SaveData():Boolean;
{ Private declarations }
public
{ Public declarations }
end;
var
frmZXBList: TfrmZXBList;
implementation
uses
U_DataLink,U_RTFun,U_ZXBInPut,U_ModuleNote, U_ZDYHelp;
{$R *.dfm}
procedure TfrmZXBList.FormDestroy(Sender: TObject);
begin
frmZXBList:=nil;
end;
procedure TfrmZXBList.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmZXBList.TBCloseClick(Sender: TObject);
begin
Close;
WriteCxGrid('<27><><EFBFBD><EFBFBD><E9B0B2>',Tv1,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
procedure TfrmZXBList.InitGrid();
var
fsj:String;
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add('select AA.* from (');
sql.Add(' select A.*,C.OrderNo,B.PS,B.Qty,B.MDDate,D.PRTHX ');
sql.Add(',PRTColor=isnull(D.PRTColorNo,'''')+'' ''+isnull(D.PRTColor,'''')+'' ''+isnull(D.PRTColorEng,'''')');
sql.Add(',XTDBDate=(select Top 1 Convert(varchar(10), WM.FillTime,120) from WFB_MJJY WM where WM.APID=A.MDID)');
sql.Add(',XTDBPS=(select count(MJID) from WFB_MJJY WM where WM.APID=A.MDID)');
SQL.Add(' from JYOrder_Main_MD_CJ A');
sql.Add(' inner join JYOrder_Main_MD B on A.MDID=B.MDID');
sql.Add(' inner join JYOrder_Main C on B.ORDMainId=C.MainId');
sql.Add(' left join JYOrder_Sub D on B.ORDSubId=D.SubId ) AA');
sql.Add(' where 1=1 ');
fsj:=TA(ComboBox2.Items.Objects[ComboBox2.Items.IndexOf(Trim(ComboBox2.Text))]).S;
sql.Add(' and AA.'+Trim(fsj)+'>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.Date))+'''');
sql.Add(' and AA.'+Trim(fsj)+'<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.Date+1))+'''');
Open;
end;
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmZXBList.InitForm();
begin
FNowDate:=SGetServerDate(ADOQueryTemp);
EndDate.Date:=FNowDate;
BegDate.Date:=EndDate.Date-7;
ReadCxGrid('<27><><EFBFBD><EFBFBD><E9B0B2>',Tv1,'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
//InitGrid();
end;
procedure TfrmZXBList.TBEditClick(Sender: TObject);
begin
if Order_Main.IsEmpty then Exit;
if Trim(DName)<>Trim(Order_Main.fieldbyname('Filler').AsString) then
begin
Application.MessageBox('<27><><EFBFBD>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>Ϣ!','<27><>ʾ',0);
Exit;
end;
try
frmZXBInPut:=TfrmZXBInPut.Create(Application);
with frmZXBInPut do
begin
PState:=1;
FMainId:=Trim(Self.Order_Main.fieldbyname('CJID').AsString);
if ShowModal=1 then
begin
end;
end;
finally
frmZXBInPut.Free;
end;
end;
procedure TfrmZXBList.TBDelClick(Sender: TObject);
begin
if Order_Main.IsEmpty then Exit;
if Trim(DName)<>Trim(Order_Main.fieldbyname('Filler').AsString) then
begin
Application.MessageBox('<27><><EFBFBD>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD><CBB5><EFBFBD>Ϣ!','<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
Order_Main.Delete;
end;
end;
function TfrmZXBList.DelData():Boolean;
begin
try
Result:=false;
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete JYOrder_Main_MD_CJ where CJId='''+Trim(Order_Main.fieldbyname('CJId').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 TfrmZXBList.TBExportClick(Sender: TObject);
begin
if Order_Main.IsEmpty then Exit;
TcxGridToExcel('<27><><EFBFBD><EFBFBD><E9B0B2>',cxGrid1);
end;
procedure TfrmZXBList.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmZXBList.TBAddClick(Sender: TObject);
begin
try
frmZXBInPut:=TfrmZXBInPut.Create(Application);
with frmZXBInPut do
begin
PState:=0;
FMainId:='';
if ShowModal=1 then
begin
end;
end;
finally
frmZXBInPut.Free;
end;
end;
procedure TfrmZXBList.FormShow(Sender: TObject);
var
i:Integer;
begin
InitForm();
SInitComBoxByTvColumns(ComboBox2,Tv1,999,True,True);
end;
procedure TfrmZXBList.cxPageControl1Change(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmZXBList.ToolButton3Click(Sender: TObject);
begin
try
frmModuleNote:=TfrmModuleNote.Create(Application);
with frmModuleNote do
begin
flag:='<27><><EFBFBD><EFBFBD><E9B0B2>';
if ShowModal=1 then
begin
end;
end;
finally
frmModuleNote.Free;
end;
end;
procedure TfrmZXBList.FormCreate(Sender: TObject);
begin
canshu1:=Trim(DParameters1);
canshu2:=Trim(DParameters2);
end;
procedure TfrmZXBList.InitGridWsql(fsj:string);
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
sql.Add('select AA.* from (');
sql.Add(' select A.*,C.OrderNo,B.PS,B.Qty,B.MDDate,D.PRTColor,D.PRTColorNo,D.PRTHX ');
sql.Add(',XTDBDate=(select Top 1 Convert(varchar(10), WM.FillTime,120) from WFB_MJJY WM where WM.APID=A.MDID)');
sql.Add(',XTDBPS=(select count(MJID) from WFB_MJJY WM where WM.APID=A.MDID)');
SQL.Add(' from JYOrder_Main_MD_CJ A');
sql.Add(' inner join JYOrder_Main_MD B on A.MDID=B.MDID');
sql.Add(' inner join JYOrder_Main C on B.ORDMainId=C.MainId');
sql.Add(' left join JYOrder_Sub D on B.ORDSubId=D.SubId ) AA');
sql.Add(' where 1=1 ');
sql.Add(fsj);
Open;
end;
SCreateCDS20(ADOQueryMain,Order_Main);
SInitCDSData20(ADOQueryMain,Order_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
function TfrmZXBList.SaveData():Boolean;
var
maxno,maxSubNo:String;
begin
try
Result:=False;
ADOQueryCmd.Connection.BeginTrans;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Trim(Order_Main.fieldbyname('MRID').AsString)='' then
begin
if GetLSNo(ADOQueryCmd,maxno,'MR','Module_Prompt_Result',4,1)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
Exit;
end;
end else
begin
maxno:=Trim(Order_Main.fieldbyname('MRID').AsString);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('select * from Module_Prompt_Result where MRId='''+Trim(Order_Main.fieldbyname('MRID').AsString)+'''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(Order_Main.fieldbyname('MRID').AsString)='' then
begin
Append;
end
else begin
Edit;
end;
FieldByName('MPId').Value:=Trim(Order_Main.fieldbyname('MPId').AsString);
FieldByName('MRId').Value:=Trim(maxno);
FieldByName('MRStatus').Value:='<27>Ѵ<EFBFBD><D1B4><EFBFBD>';
FieldByName('MRDate').Value:=SGetServerDateTime(ADOQueryTemp);
if Trim(Order_Main.fieldbyname('MRId').AsString)='' then
begin
FieldByName('Filler').Value:=Trim(DName);
end else
begin
FieldByName('Editer').Value:=Trim(DName);
FieldByName('EditTime').Value:=SGetServerDateTime(ADOQueryTemp);
end;
Post;
end;
ADOQueryCmd.Connection.CommitTrans;
Result:=True;
except
Result:=False;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
end;
end;
procedure TfrmZXBList.cxTabControl1Change(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmZXBList.WorkerChange(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 TfrmZXBList.MDIDKeyPress(Sender: TObject; var Key: Char);
var
fsj:String;
begin
if Length(Trim(MDID.Text))<4 then Exit;
fsj:=' and AA.MDID like '''+'%'+Trim(MDID.Text)+'%'+'''';
InitGridWsql(fsj);
end;
procedure TfrmZXBList.v1Column15CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
Id,Id10:Integer;
begin
Id:=TV1.GetColumnByFieldName('YuJinagDate1').Index;//
Id10:=TV1.GetColumnByFieldName('MoneyKC').Index;
if Id<0 then Exit;
//$008000FF <20>Ⱥ<EFBFBD>ɫ <20><>ɫ $000D55FF $00B9EE9F dz<><C7B3>
if AViewInfo.GridRecord.Values[Id10]>0 then
begin
if AViewInfo.GridRecord.Values[Id]-FNowDate<=0 then
begin
ACanvas.Brush.Color:=clYellow;
end else
if AViewInfo.GridRecord.Values[Id]=null then
begin
// ACanvas.Brush.Color:=clWhite;
end;
end else
begin
//ACanvas.Brush.Color:=clWhite;
end;
end;
procedure TfrmZXBList.v1Column9CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
Id,Id10:Integer;
begin
Id:=TV1.GetColumnByFieldName('YuJinagDate2').Index;//
Id10:=TV1.GetColumnByFieldName('MoneyKC').Index;
if Id<0 then Exit;
//$008000FF <20>Ⱥ<EFBFBD>ɫ <20><>ɫ $000D55FF $00B9EE9F dz<><C7B3>
if AViewInfo.GridRecord.Values[Id10]>0 then
begin
if AViewInfo.GridRecord.Values[Id]-FNowDate<=0 then
begin
ACanvas.Brush.Color:=clRed;
end else
if AViewInfo.GridRecord.Values[Id]=null then
begin
//ACanvas.Brush.Color:=clWhite;
end;
end else
begin
//ACanvas.Brush.Color:=clWhite;
end;
end;
procedure TfrmZXBList.ToolButton1Click(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 TfrmZXBList.ToolButton4Click(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><>ʾ',0);
Exit;
end;
fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\<5C><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD>ǩ.rmf' ;
Order_Main.DisableControls;
with Order_Main do
begin
First;
while not eof do
begin
if Order_Main.FieldByName('SSel').AsBoolean=True then
begin
{with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from JYOrder_Main_MD where MDID='''+Trim(Order_Main.fieldbyname('MDID').AsString)+'''');
Open;
end;
if ADOQueryTemp.FieldByName('NotPrint').AsBoolean=True then
begin
Order_Main.EnableControls;
Application.MessageBox('<27><><EFBFBD>ܴ<EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ',0);
Exit;
end; }
if FileExists(fPrintFile) then
begin
with ADOQueryPrint do
begin
Close;
sql.Clear;
sql.Add('select B.OrderNo,B.MPRTCodeName,B.MPRTMF,B.MPRTKZ,C.PRTHX,C.PRTColorNo,C.PRTColor,GangNo=A.GangNo,A.PS,A.Qty,A.QtyUnit,A.MDID ');
SQL.Add(',B.MPRTCode,B.MPRTGY,C.PRTColorEng,A.SelfGangNo');
sql.Add('from JYOrder_Main_MD A');
sql.Add('inner join JYOrder_Main B on A.OrdMainid=B.Mainid');
sql.Add(' inner join JYOrder_Sub C on A.OrdSubid=C.SubId');
sql.Add(' where A.MDID='''+Trim(Order_Main.fieldbyname('MDID').AsString)+'''');
Open;
end;
RM1.LoadFromFile(fPrintFile);
//RM1.ShowReport;
RM1.PrintReport;
end else
begin
Order_Main.DisableControls;
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>'+ExtractFilePath(Application.ExeName)+'Report\<5C><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE><EFBFBD><EFBFBD>ǩ.rmf'),'<27><>ʾ',0);
Exit;
end;
end;
Next;
end;
end;
Order_Main.EnableControls;
end;
procedure TfrmZXBList.OrderNoKeyPress(Sender: TObject; var Key: Char);
var
fsj:String;
begin
if Length(Trim(OrderNo.Text))<3 then Exit;
fsj:=' and AA.OrderNo like '''+'%'+Trim(OrderNo.Text)+'%'+'''';
InitGridWsql(fsj);
end;
end.