D7wmguihua/坯布码单待检(PBMDDJ.dll)/U_YPInList.pas
DESKTOP-E401PHE\Administrator b4b5840f18 1
2025-01-18 16:22:10 +08:00

590 lines
16 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_YPInList;
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, cxCalendar, cxButtonEdit, cxDropDownEdit,
DBClient, Menus, cxSplitter, cxTextEdit, cxCheckBox, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, IdFTP,ShellAPI,IniFiles,
RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport, BtnEdit;
type
TfrmYPInList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBFind: TToolButton;
TBAdd: TToolButton;
TBEdit: TToolButton;
TBDel: TToolButton;
TBPrint: TToolButton;
TBClose: TToolButton;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
TBExport: TToolButton;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label7: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
CYNo: TEdit;
CYColor: TEdit;
CDS_Main: TClientDataSet;
ADOQueryHC: TADOQuery;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column1: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column15: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v1P_ChnName: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Quantity: TcxGridDBColumn;
v1UnitName: TcxGridDBColumn;
v1Note: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
v1Column13: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1Column18: TcxGridDBColumn;
v1Column19: TcxGridDBColumn;
ToolButton1: TToolButton;
v1Column20: TcxGridDBColumn;
CheckBox1: TCheckBox;
v1Column21: TcxGridDBColumn;
Panel2: TPanel;
Edit1: TEdit;
Label5: TLabel;
v1Column25: TcxGridDBColumn;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
ToolButton2: TToolButton;
Panel4: TPanel;
Label13: TLabel;
LabName: TBtnEditA;
v1Column10: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
v1Column14: TcxGridDBColumn;
CYType: TEdit;
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 TBAddClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure CYNoChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure TBPrintClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure LabNameBtnClick(Sender: TObject);
private
procedure InitGrid();
procedure InitForm();
function DelData():Boolean;
procedure SaveChkData();
procedure SaveChkNoData();
procedure ReadINIFile();
{ Private declarations }
public
{ Public declarations }
end;
var
frmYPInList: TfrmYPInList;
implementation
uses
U_DataLink,U_RTFun,U_YPCRIn,U_FileUp, U_ZDYHelp;
{$R *.dfm}
procedure TfrmYPInList.FormDestroy(Sender: TObject);
begin
frmYPInList:=nil;
end;
procedure TfrmYPInList.ReadINIFile();
var
programIni:Tinifile; //<2F><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
FileName:string;
begin
FileName:=ExtractFilePath(Paramstr(0))+'SYSTEMSET.INI';
programIni:=Tinifile.create(FileName);
server:=programIni.ReadString('SERVER','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ','127.0.0.1');
programIni.Free;
end;
procedure TfrmYPInList.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmYPInList.FormCreate(Sender: TObject);
begin
cxgrid1.Align:=alClient;
end;
procedure TfrmYPInList.TBCloseClick(Sender: TObject);
begin
Close;
WriteCxGrid('<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>',Tv1,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
end;
procedure TfrmYPInList.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
sql.Clear;
SQL.Add('select A.CRTime,A.CRID,A.BCID,A.Qty,A.QtyUnit,A.CYColor,A.Note,A.CYType,A.BCID ');
sql.Add(' ,A.CRPrice,A.BZTYpe,A.PBFactory,A.RCFactory,A.HJGFactory,A.CYID,A.WeiZhi,A.MiLenNote');
SQL.Add(',B.CYNO,B.CYName,B.CYMF,B.CYKZ,B.CYSpec,B.CYCF,B.CYHX,B.CYEName,B.CYECF,B.CYColorEng');
sql.Add(',MLen=dbo.F_Get_MLen(A.CYID),C.KCQty,A.CYID ');
SQL.Add(' from CK_YP_CR A inner join CP_YDang B on A.CYID=B.CYID ');
sql.Add(' inner join CK_YP_KC C on A.CRID=C.CRID');
sql.Add(' where CRTime>='''+Trim(FormatDateTime('yyyy-MM-dd',BegDate.DateTime))+'''');
SQL.Add(' and CRTime<'''+Trim(FormatDateTime('yyyy-MM-dd',EndDate.DateTime+1))+'''');
sql.Add(' and CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
if CheckBox1.Checked=False then
begin
sql.Add(' and KCQty>0');
end;
{ sql.Add(' order by ');
sql.Add(' substring(A.WeiZhi,1,1),Cast(substring(A.WeiZhi,2,charindex(''-'',A.WeiZhi)-2) as Int)');
sql.Add(',Cast(substring(A.WeiZhi,charindex(''-'',A.WeiZhi)+1,len(A.WeiZhi)-charindex(''-'',A.WeiZhi)) as Int)');}
Open;
end;
SCreateCDS20(ADOQueryMain,CDS_Main);
SInitCDSData20(ADOQueryMain,CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmYPInList.InitForm();
begin
ReadCxGrid('<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>',Tv1,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
EndDate.DateTime:=SGetServerDate10(ADOQueryTemp);
BegDate.DateTime:=EndDate.DateTime-365;
InitGrid();
end;
procedure TfrmYPInList.TBFindClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then Exit;
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,CDS_Main);
SInitCDSData20(ADOQueryMain,CDS_Main);
end;
procedure TfrmYPInList.TBEditClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then Exit;
try
frmYPCRIn:=TfrmYPCRIn.Create(Application);
with frmYPCRIn do
begin
FMainId:=Trim(self.CDS_Main.fieldbyname('BCId').AsString);
ToolButton1.Visible:=False;
ToolButton2.Visible:=False;
ToolButton3.Visible:=False;
ToolButton4.Visible:=False;
if ShowModal=1 then
begin
Self.InitGrid();
Self.TBFind.Click;
Self.CDS_Main.Locate('BCId',FMainID,[]);
end;
end;
finally
frmYPCRIn.Free;
end;
end;
procedure TfrmYPInList.TBDelClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then Exit;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
if DelData() then
begin
CDS_Main.Delete;
end;
end;
function TfrmYPInList.DelData():Boolean;
var
FInt:Integer;
begin
try
Result:=false;
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete CK_YP_CR where BCId='''+Trim(CDS_Main.fieldbyname('BCId').AsString)+'''');
sql.Add('UPdate CK_YP_KC Set KCQty=KCQty-'+Trim(CDS_Main.fieldbyname('Qty').AsString));
sql.Add(' where CRID='+Trim(CDS_Main.fieldbyname('CRID').AsString));
ExecSQL;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from CK_YP_KC ');
sql.Add(' where CRID='+Trim(CDS_Main.fieldbyname('CRID').AsString));
Open;
end;
if ADOQueryTemp.FieldByName('KCQty').Value<0 then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ',0);
Exit;
end;
{with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('UPdate YP_SQ Set NowOutFlag=0 where SQID= ');
sql.Add(' (select Top 1 SQID from YP_SQ A where A.CYNO='''+Trim(CDS_Main.fieldbyname('CYNO').AsString)+'''');
sql.Add(' and A.CYColor='''+Trim(CDS_Main.fieldbyname('CYColor').AsString)+'''');
SQL.Add(' and A.YWY='''+Trim(CDS_Main.fieldbyname('YWY').AsString)+'''');
sql.Add(' and SQTime<='''+Trim(CDS_Main.fieldbyname('CRTime').AsString)+'''');
sql.Add(' and A.SQType=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' and A.ChkStatus=''<27><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>'' ');
SQL.Add(' order by SQTime desc)');
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 TfrmYPInList.TBExportClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then Exit;
TcxGridToExcel('<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>',cxGrid1);
end;
procedure TfrmYPInList.TBAddClick(Sender: TObject);
begin
try
frmYPCRIn:=TfrmYPCRIn.Create(Application);
with frmYPCRIn do
begin
FMainID:='';
if ShowModal=1 then
begin
Self.InitGrid();
Self.TBFind.Click;
Self.CDS_Main.Locate('BCId',FMainID,[]);
end;
end;
finally
frmYPCRIn.Free;
end;
end;
procedure TfrmYPInList.TBRafreshClick(Sender: TObject);
begin
BegDate.SetFocus;
InitGrid();
end;
procedure TfrmYPInList.CYNoChange(Sender: TObject);
begin
if ADOQueryMain.Active=False then Exit;
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,CDS_Main);
SInitCDSData20(ADOQueryMain,CDS_Main);
end;
procedure TfrmYPInList.FormShow(Sender: TObject);
begin
InitForm();
if Trim(DParameters1)='<27>鿴' then
begin
TBAdd.Visible:=False;
TBEdit.Visible:=False;
TBDel.Visible:=False;
end;
end;
procedure TfrmYPInList.SaveChkData();
var
FCRID:String;
PState:Integer;
begin
PState:=0;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add('select * from YP_SQ_KC');
sql.Add(' where CYNO='''+Trim(CDS_Main.fieldbyname('CYNO').AsString)+'''');
sql.Add(' and CYColor='''+Trim(CDS_Main.fieldbyname('CYColor').AsString)+'''');
sql.Add(' and YWY='''+Trim(CDS_Main.fieldbyname('YWY').AsString)+'''');
sql.Add(' and SQQtyUnit='''+Trim(CDS_Main.fieldbyname('QtyUnit').AsString)+'''');
Open;
end;
if ADOQueryTemp.IsEmpty then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('update CK_YP_CRID Set CRID=CRID+1 select * from CK_YP_CRID');
ExecSQL;
Open;
end;
FCRID:=Trim(ADOQueryCmd.fieldbyname('CRID').AsString);
end else
begin
FCRID:=Trim(ADOQueryTemp.fieldbyname('CRID').AsString);
PState:=1;
end;
if PState=0 then
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('insert into YP_SQ_KC(CRID,CYNO,CYColor,YWY,SQQtyUnit,KCValid)');
sql.Add(' select '+FCRID);
sql.Add(','''+Trim(CDS_Main.fieldbyname('CYNO').AsString)+'''');
sql.Add(','''+Trim(CDS_Main.fieldbyname('CYColor').AsString)+'''');
sql.Add(','''+Trim(CDS_Main.fieldbyname('YWY').AsString)+'''');
sql.Add(','''+Trim(CDS_Main.fieldbyname('QtyUnit').AsString)+'''');
sql.Add(',''Y'' ');
ExecSQL;
end;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update YP_SQ_KC Set SQQty=SQQty+'+Trim(CDS_Main.fieldbyname('Qty').AsString));
SQL.Add(' where CRID='+FCRID);
sql.Add('UPdate YP_SQ Set ChkStatus=''<27><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>'' ');
sql.Add(',Chker='''+Trim(DName)+'''');
sql.Add(',ChkTime=:ChkTime');
sql.Add(',CRID='+FCRID);
sql.Add(' where SQID='''+Trim(CDS_Main.fieldbyname('SQID').AsString)+'''');
Parameters.ParamByName('ChkTime').Value:=SGetServerDateTime(ADOQueryTemp);
ExecSQL;
end;
end;
procedure TfrmYPInList.SaveChkNoData();
var
FCRID:String;
begin
if Trim(CDS_Main.FieldByName('ChkStatus').AsString)='<27><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>' then
begin
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add('select * from YP_SQ_KC');
sql.Add(' where CYNO='''+Trim(CDS_Main.fieldbyname('CYNO').AsString)+'''');
sql.Add(' and CYColor='''+Trim(CDS_Main.fieldbyname('CYColor').AsString)+'''');
sql.Add(' and YWY='''+Trim(CDS_Main.fieldbyname('YWY').AsString)+'''');
sql.Add(' and SQQtyUnit='''+Trim(CDS_Main.fieldbyname('QtyUnit').AsString)+'''');
Open;
end;
if ADOQueryTemp.IsEmpty then
begin
end else
begin
FCRID:=Trim(ADOQueryTemp.fieldbyname('CRID').AsString);
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update YP_SQ_KC Set SQQty=SQQty-'+Trim(CDS_Main.fieldbyname('Qty').AsString));
SQL.Add(' where CRID='+FCRID);
ExecSQL;
end;
end;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('UPdate YP_SQ Set ChkStatus=''<27><><EFBFBD>˲<EFBFBD>ͨ<EFBFBD><CDA8>'' ');
sql.Add(',Chker='''+Trim(DName)+'''');
sql.Add(',ChkTime=:ChkTime');
sql.Add(' where SQID='''+Trim(CDS_Main.fieldbyname('SQID').AsString)+'''');
Parameters.ParamByName('ChkTime').Value:=SGetServerDateTime(ADOQueryTemp);
ExecSQL;
end;
end;
procedure TfrmYPInList.ToolButton1Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then Exit;
try
frmYPCRIn:=TfrmYPCRIn.Create(Application);
with frmYPCRIn do
begin
FMainId:=Trim(self.CDS_Main.fieldbyname('BCId').AsString);
//ToolButton1.Visible:=False;
//ToolButton2.Visible:=False;
//ToolButton3.Visible:=False;
//ToolButton4.Visible:=False;
FCopyInt:=99;
if ShowModal=1 then
begin
Self.InitGrid();
Self.TBFind.Click;
Self.CDS_Main.Locate('BCId',FMainID,[]);
end;
end;
finally
frmYPCRIn.Free;
end;
end;
procedure TfrmYPInList.TBPrintClick(Sender: TObject);
var
fPrintFile,FFCYID:string;
DPS,i,j:Integer;
begin
CYNo.SetFocus;
if CDS_Main.IsEmpty then Exit;
//if CDS_CYNO.IsEmpty then Exit;
if Trim(LabName.Text)='' then
begin
Application.MessageBox('<27><>ǩ<EFBFBD><C7A9><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if Trim(Edit1.Text)<>'' then
begin
if TryStrToInt(Edit1.Text,i)=False then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ',0);
exit;
end;
end;
fPrintFile:= ExtractFilePath(Application.ExeName) +'Report\'+Trim(LabName.Text)+'.rmf';
CDS_Main.DisableControls;
DPS:=0;
FFCYID:='';
i:=1;
if Trim(Edit1.Text)='' then
begin
j:=1;
end else
begin
j:=StrToInt(Edit1.Text);
end;
with CDS_Main do
begin
First;
while not Eof do
begin
if CDS_Main.FieldByName('SSel').AsBoolean=True then
begin
for i:=1 to j do
begin
if FileExists(fPrintFile) then
begin
RM1.LoadFromFile(fPrintFile);
RM1.PrintReport;
end else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>'+ExtractFilePath(Application.ExeName)+'Report\'+Trim(LabName.Text)+'.rmf'),'<27><>ʾ',0);
Exit;
end;
end;
if DPS=0 then
begin
FFCYID:=Trim(CDS_Main.fieldbyname('CYID').AsString);
end;
end;
//CDS_Main.Locate('CYID',Trim(CDS_CYNO.fieldbyname('CYID').AsString),[]);
Next;
end;
end;
CDS_Main.EnableControls;
CDS_Main.Locate('CYID',FFCYID,[]);
Edit1.Text:='1';
end;
procedure TfrmYPInList.ToolButton2Click(Sender: TObject);
var
fPrintFile:string;
begin
if CDS_Main.IsEmpty then Exit;
if Trim(LabName.Text)='' then
begin
Application.MessageBox('<27><>ǩ<EFBFBD><C7A9><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\'+Trim(LabName.Text)+'.rmf' ;
if FileExists(fPrintFile) then
begin
RM1.LoadFromFile(fPrintFile);
RM1.ShowReport;
end else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>'+ExtractFilePath(Application.ExeName)+'Report\'+Trim(LabName.Text)+'.rmf'),'<27><>ʾ',0);
end;
end;
procedure TfrmYPInList.LabNameBtnClick(Sender: TObject);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='YPLabName';
flagname:='<27><>Ʒ<EFBFBD><C6B7>ǩ';
fnote:=True;
TBAdd.Visible:=False;
TBEdit.Visible:=False;
TBDel.Visible:=False;
if ShowModal=1 then
begin
Self.LabName.Text:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
end.