D7DJkairan/合同管理2(ContractManagement.dll)/U_CPManageselct.pas
DESKTOP-E401PHE\Administrator f57b7fe7aa ~
2025-07-19 13:52:55 +08:00

1128 lines
30 KiB
ObjectPascal
Raw Permalink 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_CPManageselct;
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,
cxButtonEdit, cxDropDownEdit, cxLookAndFeels, cxLookAndFeelPainters,
cxTLdxBarBuiltInMenu, cxNavigator;
type
FdDy = record
inc: integer; //客户端套接字句柄
FDdys: string[32]; //客户端套接字
FdDysName: string[32]; //客户端套接字
end;
TfrmCPManageselct = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBDel: 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;
TBFilter: TToolButton;
v1CYNo: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
DataSource2: TDataSource;
ADOQueryMain: TADOQuery;
CDS_Main: TClientDataSet;
v1Column12: TcxGridDBColumn;
TBExport: TToolButton;
ToolButton4: TToolButton;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
ODPat: TOpenDialog;
IdFTP1: TIdFTP;
SaveDialog1: TSaveDialog;
TBUP: TToolButton;
Label3: TLabel;
CYNO: TEdit;
TBCopy: TToolButton;
Panel2: TPanel;
v1Column19: TcxGridDBColumn;
ADOQueryTree: TClientDataSet;
Panel5: TPanel;
cxDBTreeList1: TcxDBTreeList;
cxDBTreeList1cxDBTreeListColumn2: TcxDBTreeListColumn;
Label11: TLabel;
Label12: TLabel;
ComboBox1: TComboBox;
Panel3: TPanel;
adoqueryPicture: TADOQuery;
ToolButton8: TToolButton;
v1Column39: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
Label4: TLabel;
CYName: TEdit;
TBAdd: TToolButton;
TBEdit: TToolButton;
TBMLEdit: TToolButton;
Edit1: TEdit;
v1Column6: TcxGridDBColumn;
Label5: TLabel;
CYSpec: TEdit;
Label6: TLabel;
CYCF: TEdit;
Label7: TLabel;
CYNote: TEdit;
TBImport: TToolButton;
v1Column7: TcxGridDBColumn;
OpenDialog1: TOpenDialog;
v1Column8: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
Label9: TLabel;
Label10: TLabel;
CYKZ: TEdit;
CarType: TEdit;
Label8: TLabel;
CYMF: TEdit;
v1Column13: TcxGridDBColumn;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
cxGrid2: TcxGrid;
TV2: TcxGridDBTableView;
v1PRTColor: TcxGridDBColumn;
cxGridDBColumn1: TcxGridDBColumn;
cxGridDBColumn2: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
cxGridDBColumn4: TcxGridDBColumn;
v1PRTOrderQty: TcxGridDBColumn;
v1OrderUnit: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
CDS_Sub: TClientDataSet;
DS_Sub: TDataSource;
V2Column1: TcxGridDBColumn;
V2Column2: TcxGridDBColumn;
ToolButton1: TToolButton;
v1Column11: TcxGridDBColumn;
v1Column14: TcxGridDBColumn;
v1Column15: TcxGridDBColumn;
v1Column16: TcxGridDBColumn;
ToolButton2: TToolButton;
V2Column3: TcxGridDBColumn;
GroupBox1: TGroupBox;
ScrollBox1: TScrollBox;
v1Column17: TcxGridDBColumn;
Tv1Column1: TcxGridDBColumn;
procedure FormDestroy(Sender: TObject);
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 CYIDKeyPress(Sender: TObject; var Key: Char);
procedure CYNoChange(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure TBImportClick(Sender: TObject);
procedure TBCopyClick(Sender: TObject);
procedure CYNOKeyPress(Sender: TObject; var Key: Char);
procedure ToolButton8Click(Sender: TObject);
procedure TBAddClick(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure TBMLEditClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure TV2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
private
{ Private declarations }
CPID: string;
PState: Integer;
FCPID, FTopID: string;
FJurisdiction: string;
procedure SetJurisdiction();
procedure InitTree();
procedure InitGrid();
procedure InitSubGrid();
procedure ReadINIFile();
procedure InitImage();
public
dFdDy: array[0..20] of FdDy; //客户端连接数组
CANSHU1: string;
FCPNAME: string;
{ Public declarations }
end;
var
frmCPManageselct: TfrmCPManageselct;
Mach: array of TfrmSlt;
implementation
uses
U_DataLink, U_Fun;
// U_CPAdd, U_FileUp, U_YPCR, U_CPAddPN, U_YPTypeHelp,
// U_YPGL_YGDJ;
{$R *.dfm}
procedure TfrmCPManageselct.SetJurisdiction();
begin
if trim(self.Caption) = '成品信息录入' then
begin
FJurisdiction := '登记';
end
else if trim(self.Caption) = '成品信息管理' then
begin
FJurisdiction := '管理';
end
else
begin
FJurisdiction := '查询';
end;
TBAdd.Visible := false;
TBCopy.Visible := false;
TBEdit.Visible := false;
TBMLEdit.Visible := false;
TBDel.Visible := false;
TBImport.Visible := false;
TBUP.Visible := false;
TBExport.Visible := false;
if FJurisdiction = '管理' then
begin
TBAdd.Visible := true;
TBCopy.Visible := true;
TBEdit.Visible := true;
// TBMLEdit.Visible := true;
TBDel.Visible := true;
// TBImport.Visible := true;
TBUP.Visible := true;
TBExport.Visible := true;
end
else if FJurisdiction = '登记' then
begin
TBAdd.Visible := true;
TBCopy.Visible := true;
TBEdit.Visible := true;
// TBMLEdit.Visible := true;
TBDel.Visible := true;
// TBImport.Visible := true;
TBUP.Visible := true;
TBExport.Visible := true;
end;
end;
procedure TfrmCPManageselct.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 TfrmCPManageselct.InitSubGrid();
begin
with ADOQueryTemp do
begin
Close;
SQL.Clear;
sql.Add(' select * from CP_YDang_MX where CYID=''' + Trim(CDS_Main.fieldbyname('CYID').AsString) + '''');
Open;
end;
SCreateCDS20(ADOQueryTemp, CDS_Sub);
SInitCDSData20(ADOQueryTemp, CDS_Sub);
end;
procedure TfrmCPManageselct.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);
SQL.Add('select A.*,B.CPName from CP_YDang A inner join CP_Type B On A.CYType=B.CPID where 1=1');
if trim(canshu1) = '录入' then
sql.Add('and filler=''' + trim(DNAME) + '''');
if trim(FCPNAME) <> '' then
begin
SQL.Add('and cyno=''' + trim(FCPNAME) + '''');
end;
// ShowMessage(sql.Text);
Open;
end;
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
finally
ADOQueryMain.EnableControls;
end;
Panel2.Visible := False;
end;
procedure TfrmCPManageselct.FormDestroy(Sender: TObject);
begin
//frmCPManage:=nil;
end;
procedure TfrmCPManageselct.FormClose(Sender: TObject; var Action: TCloseAction);
var
i, j: integer;
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);
// writeCxGrid(self.Caption+tv1.Name,tv1);
// Application := mainApplication;
Action := cafree;
end;
procedure TfrmCPManageselct.TBCloseClick(Sender: TObject);
begin
WriteCxGrid(self.Caption, Tv1, '样品管理4');
if DirectoryExists(ExtractFileDir('D:\Right1209')) then
winexec('cmd /c rd /s /q D:\Right1209', sw_hide);
Close;
end;
procedure TfrmCPManageselct.TBDelClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
if Application.MessageBox('确定要删除数据吗?', '提示', 32 + 4) <> IDYES then
Exit;
if FJurisdiction = '登记' then
begin
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) + '''');
sql.Add('delete CP_YDang_mx where CYID=''' + Trim(CDS_Main.fieldbyname('CYID').AsString) + '''');
ExecSQL;
end;
end;
CDS_Main.Delete;
end;
if FJurisdiction = '管理' then
begin
while CDS_Main.Locate('SSel', true, []) do
begin
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) + '''');
sql.Add('delete CP_YDang_mx where CYID=''' + Trim(CDS_Main.fieldbyname('CYID').AsString) + '''');
ExecSQL;
end;
end;
CDS_Main.Delete;
end;
end;
end;
procedure TfrmCPManageselct.FormShow(Sender: TObject);
begin
Panel3.Align := alclient;
InitTree();
ReadCxGrid(self.Caption, Tv1, '样品管理4');
SetJurisdiction();
// 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 := 'XXXXXXX';
// Open;
// end;
// SCreateCDS20(ADOQueryMain, CDS_Main);
// SInitCDSData20(ADOQueryMain, CDS_Main);
InitGrid();
end;
procedure TfrmCPManageselct.cxDBTreeList1DblClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmCPManageselct.TBRafreshClick(Sender: TObject);
begin
// InitTree();
InitGrid();
end;
procedure TfrmCPManageselct.TBFilterClick(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, CDS_Main);
SInitCDSData20(ADOQueryMain, CDS_Main);
end;
end;
procedure TfrmCPManageselct.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 TfrmCPManageselct.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);
end;
end;
procedure TfrmCPManageselct.TBExportClick(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
TcxGridToExcel('产品档案', cxGrid1);
end;
procedure TfrmCPManageselct.ToolButton4Click(Sender: TObject);
var
fPrintFile, FFCYID: string;
DPS, i, j: Integer;
Txt, fImagePath: string;
Moudle: THandle;
Makebar: TMakebar;
Mixtext: TMixtext;
begin
CYNO.SetFocus;
if CDS_Main.IsEmpty then
Exit;
if trim(ComboBox1.Text) = '' then
begin
Application.MessageBox('样品标签不能为空!', '提示', 0);
exit;
end;
//if CDS_CYNO.IsEmpty then Exit;
if Trim(Edit1.Text) <> '' then
begin
if TryStrToInt(Edit1.Text, i) = False then
begin
Application.MessageBox('份数录入错误!', '提示', 0);
exit;
end;
end;
ExportFtErpFile(trim(ComboBox1.Text) + '.rmf', ADOQueryTemp);
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + trim(ComboBox1.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
try
Moudle := LoadLibrary('MakeQRBarcode.dll');
@Makebar := GetProcAddress(Moudle, 'Make');
@Mixtext := GetProcAddress(Moudle, 'MixText');
Txt := Trim(CDS_Main.fieldbyname('CYID').AsString);
fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp';
if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then
CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil);
if FileExists(fImagePath) then
DeleteFile(fImagePath);
Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3);
except
application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR);
exit;
end;
RMVariables['QRBARCODE'] := fImagePath;
for i := 1 to j do
begin
if FileExists(fPrintFile) then
begin
RM1.ShowPrintDialog := False;
RM1.LoadFromFile(fPrintFile);
RM1.PrintReport;
// RM1.ShowReport;
end
else
begin
Application.MessageBox(PChar('没有找' + fPrintFile), '提示', 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 TfrmCPManageselct.TBImportClick(Sender: TObject);
var
excelApp, WorkBook: Variant;
i, j, k, LX, ExcelRowCount: integer;
maxId, FCPID, FCPName, t1, t2, t3: string;
begin
FCPID := Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString);
FCPName := Trim(Self.ADOQueryTree.fieldbyname('CPName').AsString);
if GetLSNo(ADOQueryCmd, maxId, 'Y', 'CP_YDang', 2, 1) = False then
begin
Application.MessageBox('取最大号失败!', '提示', 0);
Exit;
end;
if trim(FCPID) = '' then
exit;
try
excelApp := CreateOleObject('Excel.Application');
openDialog1.Filter := '*.CSV;*.xls';
if opendialog1.Execute then
begin
WorkBook := excelApp.WorkBooks.Open(OpenDialog1.FileName);
end
else
exit;
excelApp.Visible := false;
ExcelRowCount := WorkBook.WorkSheets[1].UsedRange.Rows.Count;
except
application.MessageBox('加载EXCEL错误', '错误信息', MB_ICONERROR);
exit;
end;
try
k := 0;
for i := 1 to 30 do
begin
if trim(excelApp.Cells[1, i].value) = '' then
break;
//遍历界面绑定界面中显示的字段和名称
for j := 0 to Tv1.ColumnCount - 1 do
begin
if trim(excelApp.Cells[1, i].value) = trim(Tv1.Columns[j].Caption) then
begin
dFdDy[k].inc := i;
dFdDy[k].FDdys := trim(Tv1.Columns[j].DataBinding.FieldName);
dFdDy[k].FdDysName := trim(Tv1.Columns[j].Caption);
end;
end;
k := k + 1;
end;
except
application.MessageBox('加载数组错误!', '错误信息', MB_ICONERROR);
exit;
end;
ADOQueryCmd.Connection.BeginTrans;
try
for i := 2 to ExcelRowCount do
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from CP_YDang where 1=2');
open;
end;
ADOQueryCmd.Append;
for j := 0 to k - 1 do
begin
t1 := dFdDy[j].FDdys;
t2 := inttostr(dFdDy[j].inc);
t3 := excelApp.Cells[i, dFdDy[j].inc].Value;
if trim(dFdDy[j].FDdys) = '' then
continue;
ADOQueryCmd.fieldbyname(dFdDy[j].FDdys).Value := excelApp.Cells[i, dFdDy[j].inc].Value;
end;
ADOQueryCmd.FieldByName('CYValid').Value := 'Y';
ADOQueryCmd.FieldByName('CPLX').Value := '成品';
ADOQueryCmd.FieldByName('CYType').Value := Trim(FCPID);
ADOQueryCmd.FieldByName('CYID').Value := maxId + inttostr(i);
ADOQueryCmd.Post;
end;
WorkBook.Close;
excelApp.Quit;
excelApp := Unassigned;
WorkBook := Unassigned;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add(' delete CP_YDang where isnull(CYNo,'''')='''' ');
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
InitGrid();
except
WorkBook.Close;
excelApp.Quit;
excelApp := Unassigned;
WorkBook := Unassigned;
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('保存数据错误!', '错误信息', MB_ICONERROR);
exit;
end;
end;
procedure TfrmCPManageselct.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 TfrmCPManageselct.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_sub.IsEmpty then
exit;
try
with adoqueryPicture do
begin
close;
sql.Clear;
sql.Add(' select A.TFID,A.WBID,A.FilesOther,B.FileName from TP_File A,XD_File B ');
sql.add('where A.TFID =B.XFID and A.WBID=' + quotedstr(trim(CDS_sub.fieldbyname('mxid').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 TfrmCPManageselct.TBCopyClick(Sender: TObject);
begin
// try
// frmCPAddPN := TfrmCPAddPN.Create(Application);
// with frmCPAddPN do
// begin
// CopyInt := 1;
// FCYID := Trim(Self.CDS_Main.fieldbyname('CYID').AsString);
// FCPID := Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString);
// FCPNo := Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString);
// if ShowModal = 1 then
// begin
// Self.InitGrid();
// end;
// end;
// finally
// frmCPAddPN.Free;
// end;
end;
procedure TfrmCPManageselct.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, []);
end;
end;
procedure TfrmCPManageselct.ToolButton8Click(Sender: TObject);
var
fPrintFile, FFCYID: string;
DPS, i, j: Integer;
Txt, fImagePath: string;
Moudle: THandle;
Makebar: TMakebar;
Mixtext: TMixtext;
begin
CYNO.SetFocus;
if CDS_Main.IsEmpty then
Exit;
if trim(ComboBox1.Text) = '' then
begin
Application.MessageBox('样品标签不能为空!', '提示', 0);
exit;
end;
//if CDS_CYNO.IsEmpty then Exit;
if Trim(Edit1.Text) <> '' then
begin
if TryStrToInt(Edit1.Text, i) = False then
begin
Application.MessageBox('份数录入错误!', '提示', 0);
exit;
end;
end;
ExportFtErpFile(trim(ComboBox1.Text) + '.rmf', ADOQueryTemp);
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + trim(ComboBox1.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
try
Moudle := LoadLibrary('MakeQRBarcode.dll');
@Makebar := GetProcAddress(Moudle, 'Make');
@Mixtext := GetProcAddress(Moudle, 'MixText');
Txt := Trim(CDS_Main.fieldbyname('CYID').AsString);
fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp';
if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then
CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil);
if FileExists(fImagePath) then
DeleteFile(fImagePath);
Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3);
except
application.MessageBox('条形码生成失败!', '提示信息', MB_ICONERROR);
exit;
end;
RMVariables['QRBARCODE'] := fImagePath;
for i := 1 to j do
begin
if FileExists(fPrintFile) then
begin
RM1.ShowPrintDialog := True;
RM1.LoadFromFile(fPrintFile);
// RM1.PrintReport;
RM1.ShowReport;
end
else
begin
Application.MessageBox(PChar('没有找' + ExtractFilePath(Application.ExeName) + 'Report\样品标签.rmf'), '提示', 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 TfrmCPManageselct.TBAddClick(Sender: TObject);
var
i: Integer;
FieldName: string;
begin
// try
// frmCPAddPN := TfrmCPAddPN.Create(Application);
// with frmCPAddPN do
// begin
// CopyInt := 0;
// FCYID := '';
// FCPID := Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString);
// FCPNo := Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString);
// FCPName := Trim(Self.ADOQueryTree.fieldbyname('CPName').AsString);
// if ShowModal = 1 then
// begin
// Self.InitGrid();
// end;
// end;
// finally
// frmCPAddPN.Free;
// end;
end;
procedure TfrmCPManageselct.TBEditClick(Sender: TObject);
begin
// if CDS_Main.IsEmpty then
// Exit;
// try
// frmCPAddPN := TfrmCPAddPN.Create(Application);
// with frmCPAddPN do
// begin
// CopyInt := 0;
// FCYID := Trim(Self.CDS_Main.fieldbyname('CYID').AsString);
// FCPID := Trim(Self.ADOQueryTree.fieldbyname('CPID').AsString);
// FCPNo := Trim(Self.ADOQueryTree.fieldbyname('CPNo').AsString);
// if ShowModal = 1 then
// begin
// Self.InitGrid();
// end;
// end;
// finally
// frmCPAddPN.Free;
// end;
end;
procedure TfrmCPManageselct.TBMLEditClick(Sender: TObject);
var
fYPType: string;
begin
// if CDS_Main.IsEmpty then
// exit;
// if CDS_Main.Locate('ssel', true, []) = false then
// begin
// Application.MessageBox('没有选择数据!', '提示', 0);
// Exit;
// end;
// fYPType := '';
//
// frmYPTypeHelp := TfrmYPTypeHelp.create(self);
// with frmYPTypeHelp do
// begin
// if showmodal = 1 then
// begin
// fYPType := trim(ADOQueryHelp.fieldbyname('CPID').asstring);
// end;
// free;
// end;
// if trim(fYPType) = '' then
// exit;
//
// try
// with CDS_Main do
// begin
// DisableControls;
// First;
// while not eof do
// begin
// if fieldbyname('ssel').AsBoolean then
// begin
// with ADOQueryCmd do
// begin
// close;
// sql.Clear;
// sql.Add('update CP_YDang SET CYType=''' + trim(fYPType) + ''' ');
// sql.Add('where CYID=' + quotedstr(trim(CDS_Main.fieldbyname('CYID').AsString)));
// execsql;
// end;
// end;
// next;
// end;
// First;
// EnableControls;
// end;
// application.MessageBox('操作成功!', '提示信息');
// initgrid();
// except
// CDS_Main.EnableControls;
// application.MessageBox('操作失败!', '提示信息', 0);
// end;
end;
procedure TfrmCPManageselct.N1Click(Sender: TObject);
begin
SelOKNo(CDS_Main, True);
end;
procedure TfrmCPManageselct.N2Click(Sender: TObject);
begin
SelOKNo(CDS_Main, False);
end;
procedure TfrmCPManageselct.TV2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if CDS_Main.IsEmpty then
Exit;
InitImage();
end;
procedure TfrmCPManageselct.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
InitSubGrid();
end;
procedure TfrmCPManageselct.ToolButton1Click(Sender: TObject);
var
excelApp, WorkBook: Variant;
i, j, k, LX, ExcelRowCount: integer;
maxId, FCYID, FCPName, t1, t2, t3: string;
begin
FCYID := Trim(Self.CDS_Main.fieldbyname('CYID').AsString);
if GetLSNo(ADOQueryCmd, maxId, 'X', 'CP_YDang_MX', 2, 1) = False then
begin
Application.MessageBox('取最大号失败!', '提示', 0);
Exit;
end;
if trim(FCYID) = '' then
exit;
try
excelApp := CreateOleObject('Excel.Application');
openDialog1.Filter := '*.CSV;*.xls';
if opendialog1.Execute then
begin
WorkBook := excelApp.WorkBooks.Open(OpenDialog1.FileName);
end
else
exit;
excelApp.Visible := false;
ExcelRowCount := WorkBook.WorkSheets[1].UsedRange.Rows.Count;
except
application.MessageBox('加载EXCEL错误', '错误信息', MB_ICONERROR);
exit;
end;
try
k := 0;
for i := 1 to 30 do
begin
if trim(excelApp.Cells[1, i].value) = '' then
break;
//遍历界面绑定界面中显示的字段和名称
for j := 0 to Tv2.ColumnCount - 1 do
begin
if trim(excelApp.Cells[1, i].value) = trim(Tv2.Columns[j].Caption) then
begin
dFdDy[k].inc := i;
dFdDy[k].FDdys := trim(Tv2.Columns[j].DataBinding.FieldName);
dFdDy[k].FdDysName := trim(Tv2.Columns[j].Caption);
end;
end;
k := k + 1;
end;
except
application.MessageBox('加载数组错误!', '错误信息', MB_ICONERROR);
exit;
end;
ADOQueryCmd.Connection.BeginTrans;
try
for i := 2 to ExcelRowCount do
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from CP_YDang_MX where 1=2');
open;
end;
ADOQueryCmd.Append;
for j := 0 to k - 1 do
begin
t1 := dFdDy[j].FDdys;
t2 := inttostr(dFdDy[j].inc);
t3 := excelApp.Cells[i, dFdDy[j].inc].Value;
if trim(dFdDy[j].FDdys) = '' then
continue;
ADOQueryCmd.fieldbyname(dFdDy[j].FDdys).Value := excelApp.Cells[i, dFdDy[j].inc].Value;
end;
ADOQueryCmd.FieldByName('CYID').Value := Trim(FCYID);
ADOQueryCmd.FieldByName('MXID').Value := maxId + inttostr(i);
ADOQueryCmd.Post;
end;
WorkBook.Close;
excelApp.Quit;
excelApp := Unassigned;
WorkBook := Unassigned;
ADOQueryCmd.Connection.CommitTrans;
InitGrid();
except
WorkBook.Close;
excelApp.Quit;
excelApp := Unassigned;
WorkBook := Unassigned;
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('保存数据错误!', '错误信息', MB_ICONERROR);
exit;
end;
end;
procedure TfrmCPManageselct.ToolButton2Click(Sender: TObject);
begin
if CDS_Main.IsEmpty then
Exit;
// if CDS_sub.IsEmpty then
// Exit;
ModalResult := 1;
end;
procedure TfrmCPManageselct.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
ToolButton2.Click;
end;
end.