D10myBiaoqi/A02基础产品管理/U_PatternInfo.pas
2024-07-04 16:01:24 +08:00

1153 lines
30 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_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.