D7wmhengming/坯布码单待检(PBMDDJ.dll)/U_CPSel.pas
DESKTOP-E401PHE\Administrator 8f2f47d8f5 ~
2025-04-16 09:11:01 +08:00

579 lines
15 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_CPSel; //
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin,
StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox,jpeg, BtnEdit;
type
TfrmCPSel = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
DataSource1: TDataSource;
ADOQueryTree20: TADOQuery;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
cxGridPopupMenu1: TcxGridPopupMenu;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
cxSplitter1: TcxSplitter;
Panel1: TPanel;
Label2: TLabel;
CYID: TEdit;
ToolButton2: TToolButton;
Label1: TLabel;
CYName: TEdit;
Label4: TLabel;
CYEName: TEdit;
Label5: TLabel;
CYSpec: TEdit;
v1Column1: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1Column7: TcxGridDBColumn;
v1Column8: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v1Column11: TcxGridDBColumn;
DataSource2: TDataSource;
ADOQueryMain: TADOQuery;
CDS_Main: TClientDataSet;
v1Column12: TcxGridDBColumn;
ToolButton4: TToolButton;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
ODPat: TOpenDialog;
IdFTP1: TIdFTP;
SaveDialog1: TSaveDialog;
ToolButton6: TToolButton;
v1Column14: TcxGridDBColumn;
v1Column15: TcxGridDBColumn;
Label3: TLabel;
CYNO: TEdit;
v1Column16: TcxGridDBColumn;
Panel2: TPanel;
v1Column19: TcxGridDBColumn;
DSCYNO: TDataSource;
CDS_CYNO: TClientDataSet;
Edit1: TEdit;
Label6: TLabel;
Label7: TLabel;
CYKZ: TEdit;
Label8: TLabel;
Label9: TLabel;
CYCF: TEdit;
CYECF: TEdit;
Label10: TLabel;
CYMF: TEdit;
v1Column42: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column13: TcxGridDBColumn;
ADOQueryTree: TClientDataSet;
Panel5: TPanel;
Image2: TImage;
cxDBTreeList1: TcxDBTreeList;
cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn;
Label11: TLabel;
Label12: TLabel;
Panel4: TPanel;
Label13: TLabel;
LabName: TBtnEditA;
ToolButton3: TToolButton;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure cxDBTreeList1DblClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure CYIDKeyPress(Sender: TObject; var Key: Char);
procedure CYNoChange(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure Tv1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure Tv1CellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure CYSpecChange(Sender: TObject);
procedure v1Column19PropertiesChange(Sender: TObject);
procedure CYMFChange(Sender: TObject);
procedure CYNameChange(Sender: TObject);
procedure CYNOKeyPress(Sender: TObject; var Key: Char);
procedure LabNameBtnClick(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
private
{ Private declarations }
CPID:string;
PState:Integer;
FCPID,FTopID:String;
procedure InitTree();
procedure InitGrid();
procedure ReadINIFile();
procedure InitImage();
procedure TJGS();
public
{ Public declarations }
end;
var
frmCPSel: TfrmCPSel;
implementation
uses
U_DataLink,U_RTFun,U_CPAdd,U_FileUp,U_ZDYHelp;
{$R *.dfm}
procedure TfrmCPSel.InitTree();
var
i:Integer;
begin
with ADOQueryTree20 do
begin
Close;
SQL.Clear;
SQL.Add('select * from CP_Type order by CPlevel,CPOrder,CPName');
Open;
end;
SCreateCDS20(ADOQueryTree20,ADOQueryTree);
SInitCDSData20(ADOQueryTree20,ADOQueryTree);
cxDBTreeList1.Items[0].Expand(false);
//cxDBTreeList1.Items[1].Expand(False);
end;
procedure TfrmCPSel.InitGrid();
begin
Panel2.Visible:=True;
Panel2.Refresh;
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered:=False;
Close;
SQL.Clear;
SQL.Add('exec P_Select_CP_YDang :Code,:PState,:CYType');
Parameters.ParamByName('Code').Value:='';
Parameters.ParamByName('PState').Value:=0;
Parameters.ParamByName('CYType').Value:=Trim(ADOQueryTree.fieldbyname('CPID').AsString);
Open;
end;
SCreateCDS20(ADOQueryMain,CDS_Main);
SInitCDSData20(ADOQueryMain,CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
Panel2.Visible:=False;
end;
procedure TfrmCPSel.TJGS();
var
i,j:Integer;
begin
i:=0;
j:=0;
CDS_Main.DisableControls;
with CDS_Main do
begin
first;
while not Eof do
begin
if FieldByName('CYPriceKg').Value=0 then
begin
i:=i+1;
end else
begin
j:=j+1;
end;
Next;
end;
end;
CDS_Main.EnableControls;
Label11.Caption:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>:'+Trim(IntToStr(j));
Label12.Caption:=<><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>:'+Trim(IntToStr(i));
end;
procedure TfrmCPSel.FormDestroy(Sender: TObject);
begin
frmCPSel:=nil;
end;
procedure TfrmCPSel.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmCPSel.TBCloseClick(Sender: TObject);
begin
WriteCxGrid('<27><>Ʒ<EFBFBD>б<EFBFBD>CX1',Tv1,'<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>');
if DirectoryExists(ExtractFileDir('D:\Right1209')) then
winexec('cmd /c rd /s /q D:\Right1209',sw_hide);
Close;
end;
procedure TfrmCPSel.FormShow(Sender: TObject);
begin
InitTree();
ReadCxGrid('<27><>Ʒ<EFBFBD>б<EFBFBD>CX1',Tv1,'<27><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>');
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select CYID='''' ');
Open;
end;
SCreateCDS20(ADOQueryTemp,CDS_CYNO);
SInitCDSData20(ADOQueryTemp,CDS_CYNO);
CDS_CYNO.Delete;
end;
procedure TfrmCPSel.cxDBTreeList1DblClick(Sender: TObject);
begin
InitGrid();
TJGS();
end;
procedure TfrmCPSel.TBRafreshClick(Sender: TObject);
begin
InitTree();
InitGrid();
TJGS();
end;
procedure TfrmCPSel.ToolButton2Click(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,CDS_Main);
SInitCDSData20(ADOQueryMain,CDS_Main);
TJGS();
end;
end;
procedure TfrmCPSel.CYIDKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
begin
if Trim(CYID.Text)='' then Exit;
with ADOQueryMain do
begin
Close;
Filtered:=False;
sql.Clear;
sql.Add('exec P_Select_CP_YDang :Code,1,'''' ');
Parameters.ParamByName('Code').Value:=Trim(CYID.Text);
Open;
end;
SCreateCDS20(ADOQueryMain,CDS_Main);
SInitCDSData20(ADOQueryMain,CDS_Main);
CYID.Text:='';
ADOQueryTree.Locate('CPID',CPID,[]);
end;
end;
procedure TfrmCPSel.CYNoChange(Sender: TObject);
begin
//if Length(Trim(TEdit(Sender).Text))<4 then Exit;
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,CDS_Main);
SInitCDSData20(ADOQueryMain,CDS_Main);
TJGS();
end;
end;
procedure TfrmCPSel.ToolButton6Click(Sender: TObject);
var
fHandle:THandle;
FInt:Integer;
FFName,FPath:String;
begin
{FPath:='C:\HTTP1209\';
if DirectoryExists(ExtractFileDir(FPath)) then
winexec('cmd /c rd /s /q C:\HTTP1209',sw_hide);}
with ADOQueryTemp do
begin
close;
sql.Clear;
sql.Add('select * from XD_File where CYNO='''+Trim(CDS_Main.fieldbyname('CYNO').AsString)+'''');
Open;
if IsEmpty then
begin
Application.MessageBox('<27><>ƷͼƬδ<C6AC>ϴ<EFBFBD><CFB4><EFBFBD>','<27><>ʾ',0);
Exit;
end;
end;
try
ReadINIFile();
server:=ReadINIFileStr('SYSTEMSET.INI','SERVER','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ','127.0.0.1');
if Length(server)<6 then
begin
server:='127.0.0.1';
end;
IdFTP1.Host :=server;//PicSvr;
IdFTP1.Username := 'three';
IdFTP1.Password := '641010';
IdFTP1.Connect();
except
IdFTP1.Quit;
Application.MessageBox('<27>޷<EFBFBD><DEB7><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飡', '<27><>ʾ', MB_ICONWARNING);
Exit;
end;
FPath:='D:\Right1209\';
if not DirectoryExists(ExtractFileDir(FPath)) then
CreateDir(ExtractFileDir(FPath));
FFName:=Trim(ADOQueryTemp.fieldbyname('FileName').AsString);
FFName:=FPath+FFName;
if FileExists(FFName) then
begin
FInt:=1;
end;
if FInt<>1 then
IdFTP1.Get('YP\'+Trim(ADOQueryTemp.fieldbyname('FileName').AsString),
FPath+Trim(ADOQueryTemp.fieldbyname('FileName').AsString)
);
if IdFTP1.Connected then IdFTP1.Quit;
ShellExecute(Handle, 'open',PChar(FPath+Trim(ADOQueryTemp.fieldbyname('FileName').AsString)),'', '', SW_SHOWNORMAL);
end;
procedure TfrmCPSel.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 TfrmCPSel.Tv1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
ModalResult:=1;
end;
procedure TfrmCPSel.Tv1CellClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
if CDS_Main.IsEmpty then Exit;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from CP_YDang where CYID='''+Trim(CDS_Main.fieldbyname('CYID').asstring)+'''');
Open;
end;
CPID:=Trim(ADOQueryTemp.fieldbyname('CYType').AsString);
ADOQueryTree.Locate('CPID',CPID,[]);
InitImage();
end;
procedure TfrmCPSel.InitImage();
var
jpg:TJpegImage;
myStream:TADOBlobStream;
begin
if CDS_Main.IsEmpty then Exit;
if Trim(CDS_Main.fieldbyname('CYID').AsString)='' then Exit;
// if cxPageControl1.ActivePageIndex=6 then
begin
Image2.Picture.Assign(nil);
try
with ADOQueryTemp do
begin
close;
sql.Clear;
sql.Add(' select * from TP_File A where A.WBID='''+Trim(CDS_Main.fieldbyname('CYID').AsString)+'''');
sql.Add(' and TFType=''<27><>Ʒ'' ');
open;
if RecordCount>0 then
begin
if trim(ADOQueryTemp.fieldbyname('FilesOther').AsString)<>'' then
begin
myStream:=tadoblobstream.Create(tblobfield(ADOQueryTemp.fieldbyname('FilesOther')),bmread);
if myStream=nil then exit;
jpg:=TJPEGImage.Create;
jpg.LoadFromStream(myStream);
Image2.Picture.Assign(jpg);
end;
end;
end;
finally
jpg.Free;
myStream.Free;
end;
end;
end;
procedure TfrmCPSel.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
{if Key= then
begin
if CDS_Main.IsEmpty then Exit;
if Application.MessageBox('ȷ<><C8B7>6666Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
if Trim(CDS_Main.fieldbyname('CYID').AsString)<>'' then
begin
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('delete CP_YDang where CYID='''+Trim(CDS_Main.fieldbyname('CYID').AsString)+'''');
ExecSQL;
end;
end;
CDS_Main.Delete;
end; }
end;
procedure TfrmCPSel.CYSpecChange(Sender: TObject);
begin
if Length(Trim(CYSpec.Text))<3 then Exit;
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,CDS_Main);
SInitCDSData20(ADOQueryMain,CDS_Main);
end;
end;
procedure TfrmCPSel.v1Column19PropertiesChange(Sender: TObject);
var
mvalue:Boolean;
begin
{ mvalue:=TcxCheckBox(Sender).EditingValue;
if mvalue=True then
begin
with CDS_CYNO do
begin
if Locate('CYID',Trim(CDS_Main.fieldbyname('CYID').AsString),[])=False then
begin
Append;
FieldByName('CYID').Value:=Trim(CDS_Main.fieldbyname('CYID').AsString);
Post;
end;
end;
end else
begin
//with CDS_CYNO do
//begin
CDS_CYNO.Locate('CYID',Trim(CDS_Main.fieldbyname('CYID').AsString),[]);
CDS_CYNO.Delete;
//end;
end; }
end;
procedure TfrmCPSel.CYMFChange(Sender: TObject);
begin
//if Length(Trim(TEdit(Sender).Text))<2 then Exit;
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,CDS_Main);
SInitCDSData20(ADOQueryMain,CDS_Main);
TJGS();
end;
end;
procedure TfrmCPSel.CYNameChange(Sender: TObject);
begin
//if Length(Trim(TEdit(Sender).Text))<2 then Exit;
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,CDS_Main);
SInitCDSData20(ADOQueryMain,CDS_Main);
TJGS();
end;
end;
procedure TfrmCPSel.CYNOKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
begin
if Trim(CYNO.Text)='' then Exit;
if Length(Trim(CYNO.Text))<4 then Exit;
with ADOQueryMain do
begin
Close;
Filtered:=False;
sql.Clear;
sql.Add('exec P_Select_CP_YDang :Code,2,'''' ');
Parameters.ParamByName('Code').Value:='%'+Trim(CYNO.Text)+'%';
Open;
end;
SCreateCDS20(ADOQueryMain,CDS_Main);
SInitCDSData20(ADOQueryMain,CDS_Main);
CYID.Text:='';
ADOQueryTree.Locate('CPID',CPID,[]);
TJGS();
end;
end;
procedure TfrmCPSel.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;
procedure TfrmCPSel.ToolButton3Click(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;
end.