1153 lines
30 KiB
ObjectPascal
1153 lines
30 KiB
ObjectPascal
unit U_PatternInfo;
|
||
|
||
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, U_SLT, ComObj, Menus,
|
||
cxLookAndFeels, cxLookAndFeelPainters, cxTLdxBarBuiltInMenu, cxNavigator,
|
||
dxBarBuiltInMenu, cxPC, Math, RM_BarCode, dxSkinsCore, dxSkinsDefaultPainters,
|
||
dxDateRanges, IdExplicitTLSClientServerBase, U_BaseList, cxContainer,
|
||
dxDBBarCode, dxBarCode, Vcl.Clipbrd, cxTextEdit, BtnEdit, StrUtils,
|
||
cxButtonEdit;
|
||
|
||
type
|
||
FdDy = record
|
||
inc: integer; //客户端套接字句柄
|
||
FDdys: string[32]; //客户端套接字
|
||
FdDysName: string[32]; //客户端套接字
|
||
end;
|
||
|
||
TfrmPatternInfo = class(TfrmBaseList)
|
||
ToolBar1: TToolBar;
|
||
TBRafresh: TToolButton;
|
||
TBDel: TToolButton;
|
||
TBClose: TToolButton;
|
||
ADOQueryTemp: TADOQuery;
|
||
ADOQueryCmd: TADOQuery;
|
||
GPM_1: TcxGridPopupMenu;
|
||
Tv1: TcxGridDBTableView;
|
||
cxGrid1Level1: TcxGridLevel;
|
||
cxGrid1: TcxGrid;
|
||
Panel1: TPanel;
|
||
TBFilter: TToolButton;
|
||
v1CYNo: TcxGridDBColumn;
|
||
DS_1: TDataSource;
|
||
ADOQueryMain: TADOQuery;
|
||
CDS_1: TClientDataSet;
|
||
TBExport: TToolButton;
|
||
RM1: TRMGridReport;
|
||
RMDB_Main: TRMDBDataSet;
|
||
ODPat: TOpenDialog;
|
||
IdFTP1: TIdFTP;
|
||
SaveDialog1: TSaveDialog;
|
||
TBUP: TToolButton;
|
||
Label3: TLabel;
|
||
C_Code: TEdit;
|
||
Panel2: TPanel;
|
||
v1SSel: TcxGridDBColumn;
|
||
DSCYNO: TDataSource;
|
||
CDS_CYNO: TClientDataSet;
|
||
Label11: TLabel;
|
||
Label12: TLabel;
|
||
Panel3: TPanel;
|
||
adoqueryPicture: TADOQuery;
|
||
v1Column9: TcxGridDBColumn;
|
||
Label4: TLabel;
|
||
C_Name: TEdit;
|
||
TBAdd: TToolButton;
|
||
OpenDialog1: TOpenDialog;
|
||
PM_1: TPopupMenu;
|
||
N1: TMenuItem;
|
||
N2: TMenuItem;
|
||
v1Column11: TcxGridDBColumn;
|
||
Panel7: TPanel;
|
||
Panel4: TPanel;
|
||
Label14: TLabel;
|
||
LBCPAP1: TLabel;
|
||
Button1: TButton;
|
||
Button2: TButton;
|
||
TCBNOR1: TComboBox;
|
||
RMBarCodeObject1: TRMBarCodeObject;
|
||
Tv1Column5: TcxGridDBColumn;
|
||
Tv1Column6: TcxGridDBColumn;
|
||
Tv1Column7: TcxGridDBColumn;
|
||
DataSource3: TDataSource;
|
||
CDS_Sub: TClientDataSet;
|
||
Tv1Column9: TcxGridDBColumn;
|
||
cxGridPopupMenu2: TcxGridPopupMenu;
|
||
N3: TMenuItem;
|
||
Panel9: TPanel;
|
||
Panel10: TPanel;
|
||
GroupBox1: TGroupBox;
|
||
ScrollBox1: TScrollBox;
|
||
ADOQueryPrint: TADOQuery;
|
||
CDS_Label: TClientDataSet;
|
||
Tv1Column1: TcxGridDBColumn;
|
||
Tv1Column3: TcxGridDBColumn;
|
||
Tv1Column4: TcxGridDBColumn;
|
||
ToolButton1: TToolButton;
|
||
cxGrid2: TcxGrid;
|
||
TV2: TcxGridDBTableView;
|
||
cxGridDBColumn2: TcxGridDBColumn;
|
||
cxGridLevel1: TcxGridLevel;
|
||
CDS_2: TClientDataSet;
|
||
DS_2: TDataSource;
|
||
ADOQueryHZ: TADOQuery;
|
||
Tv1Column2: TcxGridDBColumn;
|
||
ToolButton2: TToolButton;
|
||
ToolButton3: TToolButton;
|
||
Tv1Column8: TcxGridDBColumn;
|
||
ToolButton4: TToolButton;
|
||
cxGrid3: TcxGrid;
|
||
TV3: TcxGridDBTableView;
|
||
cxGridDBColumn1: TcxGridDBColumn;
|
||
cxGridLevel2: TcxGridLevel;
|
||
ADOQuery1: TADOQuery;
|
||
DS_3: TDataSource;
|
||
CDS_3: TClientDataSet;
|
||
Tv1Column10: TcxGridDBColumn;
|
||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||
procedure TBCloseClick(Sender: TObject);
|
||
procedure TBDelClick(Sender: TObject);
|
||
procedure FormShow(Sender: TObject);
|
||
procedure cxDBTreeList1DblClick(Sender: TObject);
|
||
procedure TBRafreshClick(Sender: TObject);
|
||
procedure TBFilterClick(Sender: TObject);
|
||
procedure CYNoChange(Sender: TObject);
|
||
procedure TBExportClick(Sender: TObject);
|
||
procedure TBUPClick(Sender: TObject);
|
||
procedure C_CodeKeyPress(Sender: TObject; var Key: Char);
|
||
procedure TBAddClick(Sender: TObject);
|
||
procedure N1Click(Sender: TObject);
|
||
procedure N2Click(Sender: TObject);
|
||
procedure TCBNOR1Change(Sender: TObject);
|
||
procedure Button1Click(Sender: TObject);
|
||
procedure Button2Click(Sender: TObject);
|
||
procedure N3Click(Sender: TObject);
|
||
procedure TextEdit(Sender: TObject);
|
||
procedure HXNameBtnUpClick(Sender: TObject);
|
||
procedure HXNameBtnDnClick(Sender: TObject);
|
||
procedure cbbHXChange(Sender: TObject);
|
||
procedure FormCreate(Sender: TObject);
|
||
procedure v1CYNoPropertiesEditValueChanged(Sender: TObject);
|
||
procedure Tv1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
|
||
procedure ToolButton1Click(Sender: TObject);
|
||
procedure TV2CellClick(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 ToolButton2Click(Sender: TObject);
|
||
procedure ToolButton3Click(Sender: TObject);
|
||
procedure ToolButton4Click(Sender: TObject);
|
||
procedure TV3CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
|
||
procedure Tv1Column8PropertiesEditValueChanged(Sender: TObject);
|
||
private
|
||
{ Private declarations }
|
||
CurrentPage, RecordsNumber: Integer;
|
||
CTID: string;
|
||
PState: Integer;
|
||
FCTID, FTopID, FJurisdiction, FCTType: string;
|
||
|
||
procedure SetStatus();
|
||
procedure InitGrid(EditName: string);
|
||
procedure InitGY();
|
||
procedure InitHZ();
|
||
procedure ReadINIFile();
|
||
procedure InitImage();
|
||
function SaveData(): Boolean;
|
||
procedure LookImage(FileName: string);
|
||
|
||
public
|
||
dFdDy: array[0..20] of FdDy; //客户端连接数组
|
||
{ Public declarations }
|
||
end;
|
||
|
||
var
|
||
Mach: array of TfrmSlt;
|
||
|
||
implementation
|
||
|
||
uses
|
||
U_DataLink, U_RTFun, U_ClothInfoInput, U_CloInfoFileUp, U_ClothTypeSel,
|
||
U_ZDYHelp, U_LabelPrint, U_DictSel;
|
||
|
||
{$R *.dfm}
|
||
|
||
procedure TfrmPatternInfo.LookImage(FileName: string);
|
||
var
|
||
sFieldName: string;
|
||
begin
|
||
|
||
sFieldName := leftbstr(ExtractFilePath(Application.ExeName), 1) + ':\图片查看';
|
||
|
||
if not DirectoryExists(pchar(sFieldName)) then
|
||
CreateDirectory(pchar(sFieldName), nil);
|
||
|
||
sFieldName := sFieldName + '\' + trim(FileName);
|
||
|
||
try
|
||
IdFTP1.Host := ReadINIFileStr('SYSTEMSET.INI', 'SERVER', '服务器地址', '127.0.0.1');
|
||
IdFTP1.Username := 'three';
|
||
IdFTP1.Password := '641010';
|
||
IdFTP1.Connect();
|
||
except
|
||
|
||
end;
|
||
|
||
if IdFTP1.Connected then
|
||
begin
|
||
application.ProcessMessages;
|
||
try
|
||
// ShowMessage(PChar(Trim('D:\' + Trim(FileName))));
|
||
IdFTP1.Get(Trim(UserDataFlag + 'YP\' + FileName), sFieldName, true, false);
|
||
except
|
||
Application.MessageBox('客户图样文件不存在', '提示', MB_ICONWARNING);
|
||
IdFTP1.Quit;
|
||
Exit;
|
||
end;
|
||
end
|
||
else
|
||
begin
|
||
Application.MessageBox('无法连接文件服务器', '提示', MB_ICONWARNING);
|
||
IdFTP1.Quit;
|
||
Exit;
|
||
end;
|
||
if IdFTP1.Connected then
|
||
IdFTP1.Quit;
|
||
ShellExecute(Handle, 'open', PChar(sFieldName), '', '', SW_SHOWNORMAL);
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.SetStatus();
|
||
begin
|
||
TBAdd.Enabled := False;
|
||
TBDel.Enabled := False;
|
||
TBUP.Enabled := False;
|
||
ToolButton4.Enabled := false;
|
||
if FJurisdiction <> '查询' then
|
||
begin
|
||
TBAdd.Enabled := true;
|
||
TBDel.Enabled := true;
|
||
TBUP.Enabled := true;
|
||
ToolButton4.Enabled := true;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.InitGrid(EditName: string);
|
||
var
|
||
fwhere, MBCIID, Pwhere: string;
|
||
begin
|
||
Panel2.Visible := True;
|
||
Panel2.Refresh;
|
||
if not CDS_1.IsEmpty then
|
||
MBCIID := Trim(CDS_1.FieldByName('BCIID').AsString)
|
||
else
|
||
MBCIID := '';
|
||
|
||
Pwhere := SGetFilters(Panel1, 1, 2);
|
||
|
||
if trim(Pwhere) <> '' then
|
||
begin
|
||
if fwhere <> '' then
|
||
fwhere := fwhere + ' and ' + trim(Pwhere)
|
||
else
|
||
fwhere := ' where ' + trim(Pwhere);
|
||
end;
|
||
|
||
if trim(EditName) <> 'C_Name' then
|
||
begin
|
||
// if CDS_3.IsEmpty = False then
|
||
// begin
|
||
if fwhere <> '' then
|
||
fwhere := fwhere + ' and C_Technology=' + QuotedStr(trim(cds_2.FieldByName('C_Technology').AsString)) + ' and C_Technologytype=' + QuotedStr(trim(cds_3.FieldByName('C_Technology').AsString))
|
||
else
|
||
fwhere := ' where C_Technology=' + QuotedStr(trim(cds_2.FieldByName('C_Technology').AsString)) + ' and C_Technologytype=' + QuotedStr(trim(cds_3.FieldByName('C_Technology').AsString));
|
||
// end;
|
||
|
||
end;
|
||
|
||
try
|
||
ADOQueryMain.DisableControls;
|
||
|
||
with ADOQueryMain do
|
||
begin
|
||
Close;
|
||
Filtered := False;
|
||
sql.Clear;
|
||
sql.Add(' exec P_BS_PatInfo_Get ');
|
||
sql.Add(' @CTID='''' ');
|
||
sql.Add(',@pageIndex=' + inttostr(CurrentPage));
|
||
sql.Add(',@pageSize=' + inttostr(RecordsNumber));
|
||
sql.Add(',@criteria= ' + quotedstr(fwhere));
|
||
// ShowMessage(sql.Text);
|
||
Open;
|
||
end;
|
||
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
|
||
SCreateCDS(ADOQueryMain, CDS_1);
|
||
SInitCDSData(ADOQueryMain, CDS_1);
|
||
TV1.DataController.Filter.Clear;
|
||
LBCPAP1.Caption := inttostr(CurrentPage) + '/' + inttostr(ceil(CDS_1.FieldByName('TotalCount').AsInteger / RecordsNumber));
|
||
|
||
finally
|
||
ADOQueryMain.EnableControls;
|
||
TV1.DataController.Filter.Clear;
|
||
end;
|
||
Panel2.Visible := False;
|
||
|
||
if MBCIID <> '' then
|
||
CDS_1.Locate('BCIID', MBCIID, []);
|
||
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.InitHZ();
|
||
var
|
||
FTechnology: string;
|
||
begin
|
||
if cds_2.IsEmpty = False then
|
||
FTechnology := cds_2.FieldByName('C_Technology').asstring;
|
||
|
||
with ADOQueryHZ do
|
||
begin
|
||
Close;
|
||
sql.Clear;
|
||
sql.Add(' select A.*,DictName as C_Technology from Sy_Dict A where A.Type=''GYName''');
|
||
Open;
|
||
end;
|
||
SCreateCDS(ADOQueryHZ, CDS_2);
|
||
SInitCDSData(ADOQueryHZ, CDS_2);
|
||
|
||
if FTechnology <> '' then
|
||
cds_2.Locate('C_Technology', FTechnology, []);
|
||
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.InitGY();
|
||
var
|
||
FTechnology: string;
|
||
begin
|
||
if cds_3.IsEmpty = False then
|
||
FTechnology := cds_3.FieldByName('C_Technology').asstring;
|
||
with ADOQuery1 do
|
||
begin
|
||
Close;
|
||
sql.Clear;
|
||
sql.Add(' select A.*,itemtext as C_Technology from SY_Dict_Item A where A.DictId=''' + cds_2.FieldByName('DictId').AsString + '''');
|
||
Open;
|
||
end;
|
||
SCreateCDS(ADOQuery1, CDS_3);
|
||
SInitCDSData(ADOQuery1, CDS_3);
|
||
if FTechnology <> '' then
|
||
cds_3.Locate('C_Technology', FTechnology, []);
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.FormClose(Sender: TObject; var Action: TCloseAction);
|
||
var
|
||
i, j: integer;
|
||
begin
|
||
inherited;
|
||
j := length(Mach);
|
||
if j > 0 then
|
||
begin
|
||
for i := 0 to j - 1 do
|
||
begin
|
||
Mach[i].free;
|
||
end;
|
||
end;
|
||
SetLength(Mach, 0);
|
||
Action := cafree;
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.FormCreate(Sender: TObject);
|
||
begin
|
||
inherited;
|
||
FJurisdiction := Trim(Self.fParameters1);
|
||
FCTType := Trim(self.fParameters2);
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.TBCloseClick(Sender: TObject);
|
||
begin
|
||
|
||
if DirectoryExists(ExtractFileDir('D:\Right1209')) then
|
||
winexec('cmd /c rd /s /q D:\Right1209', sw_hide);
|
||
Close;
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.TBDelClick(Sender: TObject);
|
||
begin
|
||
if CDS_1.IsEmpty then
|
||
Exit;
|
||
if CDS_1.Locate('ssel', true, []) = false then
|
||
begin
|
||
Application.MessageBox('没有选择数据!', '提示', 0);
|
||
Exit;
|
||
end;
|
||
if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then
|
||
Exit;
|
||
|
||
try
|
||
ADOQueryCmd.Connection.BeginTrans;
|
||
while CDS_1.Locate('SSel', true, []) do
|
||
begin
|
||
if Trim(CDS_1.fieldbyname('BCIID').AsString) <> '' then
|
||
begin
|
||
with ADOQueryTemp do
|
||
begin
|
||
close;
|
||
sql.Clear;
|
||
sql.Add('select * from BS_Cloth_Glide A inner join Bs_Cloth_Info B on A.BCIID=B.BCIID ');
|
||
sql.Add('where A.ProcessName=''' + Trim(CDS_1.fieldbyname('C_Technology').AsString) + ''' ');
|
||
sql.Add('AND A.ProcessTypeName=''' + Trim(CDS_1.fieldbyname('C_TechnologyType').AsString) + ''' ');
|
||
sql.Add('AND A.PatternNo=''' + Trim(CDS_1.fieldbyname('C_Code').AsString) + ''' ');
|
||
open;
|
||
end;
|
||
if ADOQueryTemp.IsEmpty = False then
|
||
begin
|
||
Application.MessageBox('花型编号在产品管理中已存在不能删除,!', '提示', 0);
|
||
ADOQueryCmd.Connection.RollbackTrans;
|
||
Exit;
|
||
end;
|
||
|
||
with ADOQueryCmd do
|
||
begin
|
||
Close;
|
||
SQL.Clear;
|
||
sql.Add('delete Bs_Pattern_Info where BCIID=''' + Trim(CDS_1.fieldbyname('BCIID').AsString) + '''');
|
||
ExecSQL;
|
||
end;
|
||
end;
|
||
CDS_1.Delete;
|
||
end;
|
||
|
||
ADOQueryCmd.Connection.CommitTrans;
|
||
except
|
||
ADOQueryCmd.Connection.RollbackTrans;
|
||
Application.MessageBox('删除失败!', '提示', 0);
|
||
end;
|
||
|
||
TBRafresh.Click;
|
||
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.FormShow(Sender: TObject);
|
||
begin
|
||
inherited;
|
||
|
||
ReadCxGrid(self.Caption + 'TV1', Tv1, '样品管理');
|
||
|
||
// pnlreport.Top := FTop + 110;
|
||
application.ProcessMessages;
|
||
|
||
RecordsNumber := 500;
|
||
CurrentPage := 1;
|
||
SetStatus();
|
||
InitHZ();
|
||
InitGY();
|
||
InitGrid('');
|
||
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.cbbHXChange(Sender: TObject);
|
||
begin
|
||
InitImage();
|
||
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.cxDBTreeList1DblClick(Sender: TObject);
|
||
begin
|
||
InitGrid('');
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.TBRafreshClick(Sender: TObject);
|
||
begin
|
||
initHZ();
|
||
InitGY();
|
||
InitGrid('');
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.TBFilterClick(Sender: TObject);
|
||
begin
|
||
if ADOQueryMain.Active then
|
||
begin
|
||
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
|
||
SCreateCDS(ADOQueryMain, CDS_1);
|
||
SInitCDSData(ADOQueryMain, CDS_1);
|
||
end;
|
||
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.CYNoChange(Sender: TObject);
|
||
begin
|
||
//if Length(Trim(TEdit(Sender).Text))<4 then Exit;
|
||
if ADOQueryMain.Active then
|
||
begin
|
||
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
|
||
SCreateCDS(ADOQueryMain, CDS_1);
|
||
SInitCDSData(ADOQueryMain, CDS_1);
|
||
end;
|
||
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.TBExportClick(Sender: TObject);
|
||
begin
|
||
if CDS_1.IsEmpty then
|
||
Exit;
|
||
TcxGridToExcel(self.Caption, cxGrid1);
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.TBUPClick(Sender: TObject);
|
||
var
|
||
ffbciid: string;
|
||
begin
|
||
try
|
||
ffbciid := Trim(Self.CDS_1.fieldbyname('BCIID').AsString);
|
||
frmCloInfoFileUp := TfrmCloInfoFileUp.Create(Application);
|
||
with frmCloInfoFileUp do
|
||
begin
|
||
Code.Text := Trim(Self.CDS_1.fieldbyname('C_Code').AsString);
|
||
FBCIID := Trim(Self.CDS_1.fieldbyname('BCIID').AsString);
|
||
if ShowModal = 1 then
|
||
begin
|
||
|
||
end;
|
||
end;
|
||
finally
|
||
frmCloInfoFileUp.Free;
|
||
end;
|
||
initgrid('');
|
||
Self.CDS_1.Locate('BCIID', ffbciid, []);
|
||
InitImage();
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.ReadINIFile();
|
||
var
|
||
programIni: Tinifile; //配置文件名
|
||
FileName: string;
|
||
begin
|
||
FileName := ExtractFilePath(Paramstr(0)) + 'SYSTEMSET.INI';
|
||
programIni := Tinifile.create(FileName);
|
||
server := programIni.ReadString('SERVER', '服务器地址', '127.0.0.1');
|
||
programIni.Free;
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.InitImage();
|
||
var
|
||
i, j: integer;
|
||
jpg: TJpegImage;
|
||
myStream: TADOBlobStream;
|
||
begin
|
||
|
||
j := length(Mach);
|
||
if j > 0 then
|
||
begin
|
||
for i := 0 to j - 1 do
|
||
begin
|
||
Mach[i].free;
|
||
end;
|
||
end;
|
||
SetLength(Mach, 0);
|
||
if CDS_1.IsEmpty then
|
||
exit;
|
||
try
|
||
with adoqueryPicture do
|
||
begin
|
||
close;
|
||
sql.Clear;
|
||
sql.Add(' select A.TFID,A.WBID,A.FilesOther,A.FileName from TP_File A ');
|
||
sql.add('where A.WBID=' + quotedstr(trim(CDS_1.fieldbyname('BCIID').AsString)));
|
||
|
||
open;
|
||
end;
|
||
j := adoqueryPicture.RecordCount;
|
||
if j < 1 then
|
||
exit;
|
||
adoqueryPicture.DisableControls;
|
||
adoqueryPicture.First;
|
||
SetLength(Mach, j);
|
||
jpg := TJpegImage.Create();
|
||
for i := 0 to j - 1 do
|
||
begin
|
||
if triM(adoqueryPicture.fieldbyname('FilesOther').AsString) <> '' then
|
||
begin
|
||
myStream := tadoblobstream.Create(tblobfield(adoqueryPicture.fieldbyname('FilesOther')), bmread);
|
||
jpg.LoadFromStream(myStream);
|
||
Mach[i] := TfrmSlt.Create(Self);
|
||
Mach[i].Name := trim(adoqueryPicture.fieldbyname('TFID').AsString);
|
||
Mach[i].Parent := ScrollBox1;
|
||
Mach[i].Left := 0 + i * 165;
|
||
Mach[i].Init(adoqueryPicture.fieldbyname('TFID').AsString, adoqueryPicture.fieldbyname('FileName').AsString, jpg);
|
||
end;
|
||
adoqueryPicture.Next;
|
||
end;
|
||
adoqueryPicture.EnableControls;
|
||
finally
|
||
jpg.free;
|
||
application.ProcessMessages;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.C_CodeKeyPress(Sender: TObject; var Key: Char);
|
||
begin
|
||
if Key = #13 then
|
||
begin
|
||
|
||
CurrentPage := 1;
|
||
InitGrid(Trim(TEdit(Sender).name));
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.TBAddClick(Sender: TObject);
|
||
begin
|
||
if CDS_3.IsEmpty then
|
||
begin
|
||
Application.MessageBox('工艺类型不能为空!', '提示', 0);
|
||
Exit;
|
||
end;
|
||
|
||
with CDS_1 do
|
||
begin
|
||
Append;
|
||
FieldByName('FILLTIME').Value := SGetServerDate(ADOQueryTemp);
|
||
FieldByName('FILLer').Value := Trim(DName);
|
||
FieldByName('IsImg').AsBoolean := False;
|
||
|
||
FieldByName('C_Technology').AsString := cds_2.FieldByName('C_Technology').AsString;
|
||
FieldByName('C_TechnologyType').AsString := cds_3.FieldByName('C_Technology').AsString;
|
||
Post;
|
||
end;
|
||
|
||
self.SaveData();
|
||
|
||
end;
|
||
|
||
function TfrmPatternInfo.SaveData(): Boolean;
|
||
var
|
||
maxId, CRID: string;
|
||
begin
|
||
try
|
||
ADOQueryCmd.Connection.BeginTrans;
|
||
if CDS_1.FieldByName('BCIID').AsString = '' then
|
||
begin
|
||
if GetLSNo(ADOQueryCmd, maxId, 'BPI', 'Bs_Pattern_Info', 4, 1) = False then
|
||
begin
|
||
Result := False;
|
||
ADOQueryCmd.Connection.RollbackTrans;
|
||
Application.MessageBox('取最大号失败!', '提示', 0);
|
||
Exit;
|
||
end;
|
||
end
|
||
else
|
||
begin
|
||
maxId := CDS_1.FieldByName('BCIID').AsString;
|
||
end;
|
||
|
||
with ADOQueryCmd do
|
||
begin
|
||
Close;
|
||
sql.Clear;
|
||
sql.Add('select * from Bs_Pattern_Info where BCIID=''' + trim(maxId) + ''' ');
|
||
Open;
|
||
end;
|
||
|
||
with ADOQueryCmd do
|
||
begin
|
||
if ADOQueryCmd.IsEmpty then
|
||
begin
|
||
Append;
|
||
FieldByName('BCIID').Value := Trim(maxId);
|
||
FieldByName('Filler').Value := cds_1.FieldByName('Filler').AsString;
|
||
// FieldByName('FillTime').Value := cds_1.FieldByName('FillTime').Value;
|
||
end
|
||
else
|
||
begin
|
||
FieldByName('editer').Value := trim(DName);
|
||
FieldByName('edittime').Value := SGetServerDate(ADOQueryTemp);
|
||
end;
|
||
RTSetSaveDataCDS(ADOQueryCmd, Tv1, CDS_1, 'Bs_Pattern_Info', 1);
|
||
|
||
FieldByName('C_Technology').Value := cds_1.FieldByName('C_Technology').Value;
|
||
FieldByName('C_TechnologyType').Value := cds_1.FieldByName('C_TechnologyType').Value;
|
||
Post;
|
||
end;
|
||
with CDS_1 do
|
||
begin
|
||
Edit;
|
||
FieldByName('BCIID').Value := Trim(maxId);
|
||
end;
|
||
|
||
ADOQueryCmd.Connection.CommitTrans;
|
||
Result := True;
|
||
except
|
||
Result := True;
|
||
ADOQueryCmd.Connection.RollbackTrans;
|
||
Application.MessageBox('增行失败!', '提示', 0);
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.TextEdit(Sender: TObject);
|
||
var
|
||
mvalue, FFieldName: string;
|
||
begin
|
||
|
||
mvalue := TcxTextEdit(Sender).EditingText;
|
||
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
|
||
with CDS_1 do
|
||
begin
|
||
Edit;
|
||
FieldByName(FFieldName).Value := mvalue;
|
||
Post;
|
||
|
||
end;
|
||
if mvalue = '' then
|
||
mvalue := '0';
|
||
|
||
with ADOQueryCmd do
|
||
begin
|
||
Close;
|
||
SQL.Clear;
|
||
sql.Add('update BS_Cloth_Info set ' + FFieldName + '=' + (Trim(mvalue)));
|
||
sql.Add('where BCIID=' + quotedstr(Trim(CDS_1.fieldbyname('BCIID').AsString)));
|
||
ExecSQL;
|
||
end;
|
||
Tv1.Controller.EditingController.ShowEdit();
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.ToolButton1Click(Sender: TObject);
|
||
begin
|
||
inherited;
|
||
WriteCxGrid(self.Caption + 'TV1', Tv1, '样品管理');
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.ToolButton2Click(Sender: TObject);
|
||
var
|
||
WSql: string;
|
||
fPrintFile, fPrintFile10, FMainID, LBName: string;
|
||
begin
|
||
if CDS_1.IsEmpty then
|
||
Exit;
|
||
|
||
LBName := '样品详情';
|
||
ExportFtErpFile(LBName + '.rmf', ADOQueryTemp);
|
||
|
||
Tv1.OnFocusedRecordChanged := nil;
|
||
if CDS_1.Locate('SSel', True, []) = False then
|
||
begin
|
||
Application.MessageBox('没有选择数据!', '提示', 0);
|
||
Exit;
|
||
end;
|
||
|
||
WSql := '';
|
||
CDS_1.DisableControls;
|
||
|
||
with CDS_1 do
|
||
begin
|
||
First;
|
||
while not Eof do
|
||
begin
|
||
if CDS_1.fieldbyname('SSel').AsBoolean then
|
||
begin
|
||
if WSql <> '' then
|
||
begin
|
||
WSql := WSql + ',' + quotedstr(Trim(CDS_1.fieldbyname('BCIID').AsString));
|
||
end
|
||
else
|
||
begin
|
||
WSql := quotedstr(Trim(CDS_1.fieldbyname('BCIID').AsString));
|
||
end;
|
||
end;
|
||
Next;
|
||
end;
|
||
end;
|
||
|
||
CDS_1.Locate('SSel', True, []);
|
||
|
||
CDS_1.EnableControls;
|
||
|
||
with ADOQueryPrint do
|
||
begin
|
||
Close;
|
||
sql.Clear;
|
||
sql.add('exec P_BS_PatInfo_PrtImg @Filtration=' + quotedstr(Trim(WSql)));
|
||
Open;
|
||
end;
|
||
|
||
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + LBName + '.rmf';
|
||
if FileExists(fPrintFile) then
|
||
begin
|
||
|
||
RM1.LoadFromFile(fPrintFile);
|
||
RM1.DefaultCopies := 1;
|
||
|
||
RM1.ShowReport
|
||
end
|
||
else
|
||
begin
|
||
Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 0);
|
||
end;
|
||
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.ToolButton3Click(Sender: TObject);
|
||
var
|
||
WSql: string;
|
||
begin
|
||
if CDS_1.IsEmpty then
|
||
Exit;
|
||
Tv1.OnFocusedRecordChanged := nil;
|
||
if CDS_1.Locate('SSel', True, []) = False then
|
||
begin
|
||
Application.MessageBox('没有选择数据!', '提示', 0);
|
||
Exit;
|
||
end;
|
||
|
||
WSql := '';
|
||
CDS_1.DisableControls;
|
||
|
||
with CDS_1 do
|
||
begin
|
||
First;
|
||
while not Eof do
|
||
begin
|
||
if CDS_1.fieldbyname('SSel').AsBoolean then
|
||
begin
|
||
if WSql <> '' then
|
||
begin
|
||
WSql := WSql + ',' + quotedstr(Trim(CDS_1.fieldbyname('BCIID').AsString));
|
||
end
|
||
else
|
||
begin
|
||
WSql := quotedstr(Trim(CDS_1.fieldbyname('BCIID').AsString));
|
||
end;
|
||
end;
|
||
Next;
|
||
end;
|
||
end;
|
||
|
||
CDS_1.Locate('SSel', True, []);
|
||
CDS_1.EnableControls;
|
||
|
||
try
|
||
frmLabelPrint := TfrmLabelPrint.Create(Application);
|
||
with frmLabelPrint do
|
||
begin
|
||
FLMType := 'PatternInfoPrint';
|
||
FFiltration1 := WSql;
|
||
|
||
// label3.Visible := true;
|
||
// label4.Visible := true;
|
||
//
|
||
// inputcode.visible := True;
|
||
// inputnote.visible := true;
|
||
if ShowModal = 1 then
|
||
begin
|
||
// Self.InitGrid();
|
||
end;
|
||
end;
|
||
finally
|
||
frmLabelPrint.Free;
|
||
end;
|
||
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.ToolButton4Click(Sender: TObject);
|
||
begin
|
||
inherited;
|
||
with ADOQueryCmd do
|
||
begin
|
||
close;
|
||
sql.Clear;
|
||
sql.Add('select * from Bs_Pattern_Info where BCIID =''' + cds_1.FieldByName('BCIID').AsString + ''' ');
|
||
open;
|
||
end;
|
||
|
||
with CDS_1 do
|
||
begin
|
||
Append;
|
||
FieldByName('FILLTIME').Value := SGetServerDate(ADOQueryTemp);
|
||
FieldByName('FILLer').Value := Trim(DName);
|
||
FieldByName('IsImg').AsBoolean := False;
|
||
|
||
FieldByName('C_Technology').AsString := cds_2.FieldByName('C_Technology').AsString;
|
||
FieldByName('C_TechnologyType').AsString := cds_3.FieldByName('C_Technology').AsString;
|
||
FieldByName('C_Name').AsString := ADOQueryCmd.FieldByName('C_Name').AsString;
|
||
FieldByName('C_Source').AsString := ADOQueryCmd.FieldByName('C_Source').AsString;
|
||
FieldByName('C_TechnologyNote').AsString := ADOQueryCmd.FieldByName('C_TechnologyNote').AsString;
|
||
FieldByName('Price').Value := ADOQueryCmd.FieldByName('Price').Value;
|
||
FieldByName('CINote').AsString := ADOQueryCmd.FieldByName('CINote').AsString;
|
||
|
||
Post;
|
||
end;
|
||
|
||
self.SaveData();
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.Tv1CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
|
||
begin
|
||
inherited;
|
||
InitImage();
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.Tv1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer);
|
||
var
|
||
FTechnology: string;
|
||
begin
|
||
inherited;
|
||
|
||
FTechnology := cds_2.FieldByName('C_Technology').asstring;
|
||
|
||
try
|
||
frmDictSel := TfrmDictSel.Create(Application);
|
||
with frmDictSel do
|
||
begin
|
||
flag := 'GYName';
|
||
flagname := '工序名称';
|
||
f1note := true;
|
||
V1Note.Caption := '工序编号';
|
||
|
||
f2note := true;
|
||
V2Note.Caption := '工序编号';
|
||
|
||
cxgrid2.Visible := false;
|
||
tv1.OnCellDblClick := TV1CellDblClick;
|
||
if ShowModal = 1 then
|
||
begin
|
||
with cds_1 do
|
||
begin
|
||
edit;
|
||
FieldByName('C_Technology').Value := Trim(ClientDataSet1.fieldbyname('DictName').AsString);
|
||
post;
|
||
end;
|
||
end;
|
||
end;
|
||
finally
|
||
frmDictSel.Free;
|
||
|
||
try
|
||
ADOQueryCmd.Connection.BeginTrans;
|
||
with ADOQueryCmd do
|
||
begin
|
||
Close;
|
||
SQL.Clear;
|
||
sql.Add('update Bs_Pattern_Info set C_Technology =' + QuotedStr(Trim(CDS_1.fieldbyname('C_Technology').AsString)));
|
||
sql.Add(',editer=''' + trim(DName) + ''' ');
|
||
sql.Add(',edittime=getdate()');
|
||
sql.Add('where BCIID=' + quotedstr(Trim(CDS_1.fieldbyname('BCIID').AsString)));
|
||
ExecSQL;
|
||
end;
|
||
|
||
ADOQueryCmd.Connection.CommitTrans;
|
||
except
|
||
ADOQueryCmd.Connection.RollbackTrans;
|
||
end;
|
||
Tv1.Controller.EditingController.ShowEdit();
|
||
end;
|
||
InitHZ();
|
||
cds_2.Locate('C_Technology', FTechnology, []);
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.Tv1Column8PropertiesEditValueChanged(Sender: TObject);
|
||
var
|
||
mvalue, FFieldName: string;
|
||
begin
|
||
|
||
mvalue := TcxTextEdit(Sender).EditingText;
|
||
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
|
||
with CDS_1 do
|
||
begin
|
||
Edit;
|
||
FieldByName(FFieldName).Value := mvalue;
|
||
Post;
|
||
|
||
end;
|
||
|
||
try
|
||
ADOQueryCmd.Connection.BeginTrans;
|
||
with ADOQueryCmd do
|
||
begin
|
||
Close;
|
||
SQL.Clear;
|
||
sql.Add('update Bs_Pattern_Info set ' + FFieldName + '=' + QuotedStr(Trim(mvalue)));
|
||
sql.Add(',editer=''' + trim(DName) + ''' ');
|
||
sql.Add(',edittime=getdate()');
|
||
sql.Add('where BCIID=' + quotedstr(Trim(CDS_1.fieldbyname('BCIID').AsString)));
|
||
ExecSQL;
|
||
end;
|
||
|
||
with ADOQueryTemp do
|
||
begin
|
||
Close;
|
||
sql.Clear;
|
||
sql.Add('select count(*) as AA from Bs_Pattern_Info where C_Code=''' + Trim(CDS_1.fieldbyname('C_Code').AsString) + '''');
|
||
sql.add(' and C_Technology=''' + Trim(CDS_1.fieldbyname('C_Technology').AsString) + ''' ');
|
||
sql.add(' and C_TechnologyType=''' + Trim(CDS_1.fieldbyname('C_TechnologyType').AsString) + ''' ');
|
||
Open;
|
||
if FieldByName('AA').AsInteger > 1 then
|
||
begin
|
||
ADOQueryCmd.Connection.RollbackTrans;
|
||
Application.MessageBox('同工艺类型下花型编号重复!', '提示', 0);
|
||
TBRafresh.Click;
|
||
Exit;
|
||
end;
|
||
end;
|
||
|
||
ADOQueryCmd.Connection.CommitTrans;
|
||
except
|
||
ADOQueryCmd.Connection.RollbackTrans;
|
||
end;
|
||
Tv1.Controller.EditingController.ShowEdit();
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.TV2CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
|
||
begin
|
||
inherited;
|
||
InitGY();
|
||
initgrid('');
|
||
InitImage();
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.TV3CellClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
|
||
begin
|
||
inherited;
|
||
initgrid('');
|
||
InitImage();
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.v1CYNoPropertiesEditValueChanged(Sender: TObject);
|
||
var
|
||
mvalue, FFieldName: string;
|
||
begin
|
||
|
||
with ADOQueryTemp do
|
||
begin
|
||
close;
|
||
sql.Clear;
|
||
sql.Add('select * from BS_Cloth_Glide A inner join Bs_Cloth_Info B on A.BCIID=B.BCIID ');
|
||
sql.Add('where A.ProcessName=''' + Trim(CDS_1.fieldbyname('C_Technology').AsString) + ''' ');
|
||
sql.Add('AND A.ProcessTypeName=''' + Trim(CDS_1.fieldbyname('C_TechnologyType').AsString) + ''' ');
|
||
sql.Add('AND A.PatternNo=(select C_Code from Bs_Pattern_Info X where X.BCIID=' + quotedstr(Trim(CDS_1.fieldbyname('BCIID').AsString)) + ' ) ');
|
||
open;
|
||
end;
|
||
if ADOQueryTemp.IsEmpty = False then
|
||
begin
|
||
Application.MessageBox('花型编号在产品管理中已存在不能修改,!', '提示', 0);
|
||
initgrid('');
|
||
InitImage();
|
||
Exit;
|
||
end;
|
||
|
||
mvalue := TcxTextEdit(Sender).EditingText;
|
||
FFieldName := Trim(Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName);
|
||
with CDS_1 do
|
||
begin
|
||
Edit;
|
||
FieldByName(FFieldName).Value := mvalue;
|
||
Post;
|
||
|
||
end;
|
||
|
||
try
|
||
ADOQueryCmd.Connection.BeginTrans;
|
||
with ADOQueryCmd do
|
||
begin
|
||
Close;
|
||
SQL.Clear;
|
||
sql.Add('update Bs_Pattern_Info set ' + FFieldName + '=' + QuotedStr(Trim(mvalue)));
|
||
sql.Add(',editer=''' + trim(DName) + ''' ');
|
||
sql.Add(',edittime=getdate()');
|
||
sql.Add('where BCIID=' + quotedstr(Trim(CDS_1.fieldbyname('BCIID').AsString)));
|
||
ExecSQL;
|
||
end;
|
||
|
||
with ADOQueryTemp do
|
||
begin
|
||
Close;
|
||
sql.Clear;
|
||
sql.Add('select count(*) as AA from Bs_Pattern_Info where C_Code=''' + Trim(CDS_1.fieldbyname('C_Code').AsString) + '''');
|
||
sql.add(' and C_Technology=''' + Trim(CDS_1.fieldbyname('C_Technology').AsString) + ''' ');
|
||
sql.add(' and C_TechnologyType=''' + Trim(CDS_1.fieldbyname('C_TechnologyType').AsString) + ''' ');
|
||
Open;
|
||
if FieldByName('AA').AsInteger > 1 then
|
||
begin
|
||
ADOQueryCmd.Connection.RollbackTrans;
|
||
Application.MessageBox('同工艺类型下花型编号重复!', '提示', 0);
|
||
TBRafresh.Click;
|
||
Exit;
|
||
end;
|
||
end;
|
||
|
||
ADOQueryCmd.Connection.CommitTrans;
|
||
except
|
||
ADOQueryCmd.Connection.RollbackTrans;
|
||
end;
|
||
Tv1.Controller.EditingController.ShowEdit();
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.N1Click(Sender: TObject);
|
||
begin
|
||
SelOKNoFiler(Tv1, True);
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.N2Click(Sender: TObject);
|
||
begin
|
||
SelOKNoFiler(Tv1, False);
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.N3Click(Sender: TObject);
|
||
begin
|
||
Clipboard.SetTextBuf(PChar(Trim(CDS_1.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString)));
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.TCBNOR1Change(Sender: TObject);
|
||
begin
|
||
RecordsNumber := StrToInt(TCBNOR1.Text);
|
||
CurrentPage := 1;
|
||
C_Code.SetFocus;
|
||
InitGrid('');
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.HXNameBtnDnClick(Sender: TObject);
|
||
begin
|
||
TBtnEditC(Sender).Text := '';
|
||
TBtnEditC(Sender).TxtCode := '';
|
||
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.HXNameBtnUpClick(Sender: TObject);
|
||
begin
|
||
try
|
||
frmZDYHelp := TfrmZDYHelp.Create(Application);
|
||
with frmZDYHelp do
|
||
begin
|
||
flag := 'HX' + Trim(Self.CDS_1.fieldbyname('CYNO').AsString);
|
||
flagname := '花型';
|
||
if ShowModal = 1 then
|
||
begin
|
||
TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
|
||
end;
|
||
end;
|
||
finally
|
||
frmZDYHelp.Free;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.Button1Click(Sender: TObject);
|
||
begin
|
||
if CurrentPage > 1 then
|
||
CurrentPage := CurrentPage - 1;
|
||
InitGrid('');
|
||
end;
|
||
|
||
procedure TfrmPatternInfo.Button2Click(Sender: TObject);
|
||
begin
|
||
if CurrentPage < CDS_1.FieldByName('TotalCount').AsInteger / RecordsNumber then
|
||
CurrentPage := CurrentPage + 1;
|
||
InitGrid('');
|
||
end;
|
||
|
||
end.
|
||
|