533 lines
14 KiB
ObjectPascal
533 lines
14 KiB
ObjectPascal
unit U_ElevatorRklist;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||
Dialogs, ComCtrls, ToolWin, StdCtrls, ExtCtrls, cxStyles, cxCustomData,
|
||
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
|
||
cxButtonEdit, cxDropDownEdit, cxGridLevel, cxGridCustomTableView,
|
||
cxGridTableView, cxGridDBTableView, cxClasses, cxControls,
|
||
cxGridCustomView, cxGrid, DBClient, ADODB, cxGridCustomPopupMenu,
|
||
cxGridPopupMenu, cxContainer, cxTextEdit, cxCurrencyEdit, cxCheckBox,
|
||
RM_System, RM_Dataset, RM_Common, RM_Class, RM_GridReport, cxPC, Menus,U_SLT,jpeg,ComObj;
|
||
|
||
type
|
||
FdDy=record
|
||
inc: integer; //客户端套接字句柄
|
||
FDdys:string[32]; //客户端套接字
|
||
FdDysName:string[32]; //客户端套接字
|
||
end;
|
||
TfrmElevatorRklist = class(TForm)
|
||
ToolBar1: TToolBar;
|
||
TBRafresh: TToolButton;
|
||
TBFind: TToolButton;
|
||
TBAdd: TToolButton;
|
||
TBEdit: TToolButton;
|
||
TBDel: TToolButton;
|
||
TBExport: TToolButton;
|
||
TBClose: TToolButton;
|
||
Panel1: TPanel;
|
||
Label1: TLabel;
|
||
BegDate: TDateTimePicker;
|
||
EndDate: TDateTimePicker;
|
||
cxGrid1: TcxGrid;
|
||
Tv1: TcxGridDBTableView;
|
||
v1P_CodeName: TcxGridDBColumn;
|
||
v1P_SPEC: TcxGridDBColumn;
|
||
v1Qty: TcxGridDBColumn;
|
||
v1QtyUnit: TcxGridDBColumn;
|
||
v1Note: TcxGridDBColumn;
|
||
cxGrid1Level1: TcxGridLevel;
|
||
v1CRType: TcxGridDBColumn;
|
||
v1CRTime: TcxGridDBColumn;
|
||
v1Filler: TcxGridDBColumn;
|
||
v1FillTime: TcxGridDBColumn;
|
||
Label2: TLabel;
|
||
Label3: TLabel;
|
||
P_CodeName: TEdit;
|
||
CRType: TComboBox;
|
||
Label5: TLabel;
|
||
ADOQueryCmd: TADOQuery;
|
||
ADOQueryTmp: TADOQuery;
|
||
DataSource1: TDataSource;
|
||
CDS_Main: TClientDataSet;
|
||
cxGridPopupMenu1: TcxGridPopupMenu;
|
||
ckName: TComboBox;
|
||
Label6: TLabel;
|
||
v1P_Code: TcxGridDBColumn;
|
||
v1INoutNo: TcxGridDBColumn;
|
||
Label7: TLabel;
|
||
inoutNo: TEdit;
|
||
v1Price: TcxGridDBColumn;
|
||
v1money: TcxGridDBColumn;
|
||
kuwei: TEdit;
|
||
Label9: TLabel;
|
||
gangNo: TEdit;
|
||
Label10: TLabel;
|
||
v1Column3: TcxGridDBColumn;
|
||
RMDB_Main: TRMDBDataSet;
|
||
v1Column4: TcxGridDBColumn;
|
||
ADOQueryPrint: TADOQuery;
|
||
RM1: TRMGridReport;
|
||
OrderNo: TEdit;
|
||
Label14: TLabel;
|
||
P_Code: TEdit;
|
||
Label15: TLabel;
|
||
v1Column10: TcxGridDBColumn;
|
||
Label17: TLabel;
|
||
FactoryName: TEdit;
|
||
PopupMenu1: TPopupMenu;
|
||
N1: TMenuItem;
|
||
N2: TMenuItem;
|
||
v1Column1: TcxGridDBColumn;
|
||
v1Column2: TcxGridDBColumn;
|
||
v1Column5: TcxGridDBColumn;
|
||
v1Column6: TcxGridDBColumn;
|
||
v1Column7: TcxGridDBColumn;
|
||
ToolButton1: TToolButton;
|
||
GroupBox1: TGroupBox;
|
||
ScrollBox1: TScrollBox;
|
||
adoqueryPicture: TADOQuery;
|
||
v1Column8: TcxGridDBColumn;
|
||
v1Column9: TcxGridDBColumn;
|
||
ToolButton2: TToolButton;
|
||
OpenDialog1: TOpenDialog;
|
||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||
procedure FormDestroy(Sender: TObject);
|
||
procedure TBAddClick(Sender: TObject);
|
||
procedure P_CodeNameChange(Sender: TObject);
|
||
procedure FormShow(Sender: TObject);
|
||
procedure FormCreate(Sender: TObject);
|
||
procedure TBCloseClick(Sender: TObject);
|
||
procedure TBEditClick(Sender: TObject);
|
||
procedure TBDelClick(Sender: TObject);
|
||
procedure TBRafreshClick(Sender: TObject);
|
||
procedure TBExportClick(Sender: TObject);
|
||
procedure TBFindClick(Sender: TObject);
|
||
procedure N1Click(Sender: TObject);
|
||
procedure N2Click(Sender: TObject);
|
||
procedure ToolButton1Click(Sender: TObject);
|
||
procedure Tv1CellClick(Sender: TcxCustomGridTableView;
|
||
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
|
||
AShift: TShiftState; var AHandled: Boolean);
|
||
procedure ToolButton2Click(Sender: TObject);
|
||
private
|
||
procedure InitGrid();
|
||
procedure SetStatus();
|
||
procedure InitImage();
|
||
{ Private declarations }
|
||
public
|
||
dFdDy: array[0..20] of FdDy; //客户端连接数组
|
||
fCKName,canshu1:string;
|
||
fCRType:string;
|
||
{ Public declarations }
|
||
end;
|
||
|
||
//var
|
||
// frmPieceSampleRklist: TfrmPieceSampleRklist;
|
||
var
|
||
Mach: array of TfrmSlt;
|
||
|
||
implementation
|
||
uses
|
||
U_DataLink,U_Fun10,U_ZDYHelp,U_FileUp, U_ElevatorRk;
|
||
|
||
{$R *.dfm}
|
||
procedure TfrmElevatorRklist.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_Main.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 where A.TFID =B.XFID ');
|
||
if CDS_Main.IsEmpty=False then
|
||
begin
|
||
sql.Add('and A.WBID='+quotedstr(trim(CDS_Main.fieldbyname('MJID').AsString)));
|
||
end else
|
||
begin
|
||
sql.add(' and 1=2');
|
||
end;
|
||
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 TfrmElevatorRklist.SetStatus();
|
||
begin
|
||
TBEdit.Visible:=False;
|
||
TBDel.Visible:=False;
|
||
|
||
if Trim(canshu1)='高权限' then
|
||
begin
|
||
TBEdit.Visible:=true;
|
||
TBDel.Visible:=true;
|
||
end
|
||
else
|
||
begin
|
||
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmElevatorRklist.InitGrid();
|
||
begin
|
||
try
|
||
with adoqueryTmp do
|
||
begin
|
||
close;
|
||
sql.Clear;
|
||
sql.Add('select A.* from CK_Sample_CR A');
|
||
sql.Add(' where A.CRTime>='''+formatdateTime('yyyy-MM-dd',begdate.Date)+''' ');
|
||
sql.Add(' and A.CRTime<'''+formatdateTime('yyyy-MM-dd',enddate.Date+1)+''' ');
|
||
sql.Add(' and A.CRFlag=''入库'' and A.Valid=''Y'' and CKName='+quotedstr(trim(fCKName)));
|
||
open;
|
||
end;
|
||
SCreateCDS20(adoqueryTmp,CDS_Main);
|
||
SInitCDSData20(adoqueryTmp,CDS_Main);
|
||
TBFind.Click;
|
||
finally
|
||
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmElevatorRklist.FormClose(Sender: TObject;
|
||
var Action: TCloseAction);
|
||
begin
|
||
Action:=cafree;
|
||
end;
|
||
|
||
procedure TfrmElevatorRklist.FormDestroy(Sender: TObject);
|
||
begin
|
||
// frmPieceSampleRklist:=nil;
|
||
end;
|
||
|
||
procedure TfrmElevatorRklist.TBAddClick(Sender: TObject);
|
||
begin
|
||
frmElevatorRk:=TfrmElevatorRk.create(self);
|
||
with frmElevatorRk do
|
||
begin
|
||
fkeyNo:='';
|
||
fType:=0;
|
||
fCKName:=trim(self.fCKName);
|
||
if showmodal=1 then
|
||
begin
|
||
TBRafresh.Click;
|
||
self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ;
|
||
end;
|
||
free;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmElevatorRklist.P_CodeNameChange(Sender: TObject);
|
||
begin
|
||
if ADOQueryTmp.Active=False then Exit;
|
||
SDofilter(ADOQueryTmp,SGetFilters(Panel1,1,2));
|
||
SCreateCDS20(ADOQueryTmp,CDS_Main);
|
||
SInitCDSData20(ADOQueryTmp,CDS_Main);
|
||
end;
|
||
|
||
procedure TfrmElevatorRklist.FormShow(Sender: TObject);
|
||
begin
|
||
readCxGrid(trim(self.Caption),Tv1,'样品仓库');
|
||
SetStatus();
|
||
InitGrid();
|
||
end;
|
||
|
||
procedure TfrmElevatorRklist.FormCreate(Sender: TObject);
|
||
begin
|
||
EndDate.Date:=SGetServerDate10(ADOQueryTmp);
|
||
BegDate.Date:=EndDate.Date-7;
|
||
canshu1:=trim(DParameters1);
|
||
end;
|
||
|
||
procedure TfrmElevatorRklist.TBCloseClick(Sender: TObject);
|
||
begin
|
||
writeCxGrid(trim(self.Caption),Tv1,'样品仓库');
|
||
close;
|
||
end;
|
||
|
||
procedure TfrmElevatorRklist.TBEditClick(Sender: TObject);
|
||
begin
|
||
if cds_main.IsEmpty then exit;
|
||
with ADOQueryCmd do
|
||
begin
|
||
Close;
|
||
sql.Clear;
|
||
sql.Add('select A.* from CK_Sample_CR A');
|
||
SQL.Add('where A.MJID='''+trim(cds_main.fieldbyname('MJID').AsString)+''' ');
|
||
SQL.Add('and A.CRFlag=''出库'' and A.valid=''Y'' ');
|
||
Open;
|
||
end;
|
||
if not ADOQueryCmd.IsEmpty then
|
||
begin
|
||
Application.MessageBox('此单已经产生出库,不能修改!','提示',0);
|
||
Exit;
|
||
end;
|
||
|
||
frmElevatorRk:=TfrmElevatorRk.create(self);
|
||
with frmElevatorRk do
|
||
begin
|
||
fkeyNo:=self.cds_main.fieldbyname('CRNO').AsString;
|
||
fType:=1;
|
||
fCKName:=trim(self.fCKName);
|
||
if showmodal=1 then
|
||
begin
|
||
TBRafresh.Click;
|
||
self.CDS_Main.Locate('crNo',trim(fkeyNo),[]) ;
|
||
end;
|
||
free;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmElevatorRklist.TBDelClick(Sender: TObject);
|
||
begin
|
||
if CDS_Main.IsEmpty then Exit;
|
||
if CDS_Main.IsEmpty then Exit;
|
||
if Trim(CDS_Main.fieldbyname('Filler').AsString)<>Trim(DName) then
|
||
begin
|
||
Application.MessageBox('不能操作他人数据!','提示',0);
|
||
Exit;
|
||
end;
|
||
if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit;
|
||
try
|
||
if Trim(CDS_Main.FieldByName('CRNO').AsString)<>'' then
|
||
begin
|
||
ADOQueryCmd.Connection.BeginTrans;
|
||
with ADOQueryCmd do
|
||
begin
|
||
Close;
|
||
SQL.Clear;
|
||
sql.Add('update CK_ML_CR set Valid=''N'' where CRNO='+quotedstr(Trim(CDS_Main.FieldByName('CRNO').AsString)));
|
||
ExecSQL;
|
||
end;
|
||
with ADOQueryCmd do
|
||
begin
|
||
Close;
|
||
SQL.Clear;
|
||
SQL.Add('exec P_Up_MlKc '+quotedstr(Trim(CDS_Main.FieldByName('MJID').AsString)));
|
||
Open;
|
||
end;
|
||
if Trim(ADOQueryCmd.FieldByName('Msg').AsString)='操作失败' then
|
||
begin
|
||
ADOQueryCmd.Connection.RollbackTrans;
|
||
Application.MessageBox('出库数量超出入库数量!','提示',0);
|
||
Exit;
|
||
end;
|
||
ADOQueryCmd.Connection.CommitTrans;
|
||
CDS_Main.Delete;
|
||
end;
|
||
except
|
||
Application.MessageBox('数据删除失败!','提示信息',0);
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmElevatorRklist.TBRafreshClick(Sender: TObject);
|
||
begin
|
||
initGrid();
|
||
end;
|
||
|
||
procedure TfrmElevatorRklist.TBExportClick(Sender: TObject);
|
||
begin
|
||
if CDS_Main.IsEmpty then Exit;
|
||
TcxGridToExcel(self.Caption,cxgrid1);
|
||
end;
|
||
|
||
procedure TfrmElevatorRklist.TBFindClick(Sender: TObject);
|
||
begin
|
||
if ADOQueryTmp.Active=False then Exit;
|
||
SDofilter(ADOQueryTmp,SGetFilters(Panel1,1,2));
|
||
SCreateCDS20(ADOQueryTmp,CDS_Main);
|
||
SInitCDSData20(ADOQueryTmp,CDS_Main);
|
||
end;
|
||
|
||
procedure TfrmElevatorRklist.N1Click(Sender: TObject);
|
||
begin
|
||
SelOKNo(CDS_Main,True);
|
||
end;
|
||
|
||
procedure TfrmElevatorRklist.N2Click(Sender: TObject);
|
||
begin
|
||
SelOKNo(CDS_Main,False);
|
||
end;
|
||
|
||
procedure TfrmElevatorRklist.ToolButton1Click(Sender: TObject);
|
||
begin
|
||
try
|
||
frmFileUp:=TfrmFileUp.Create(Application);
|
||
with frmFileUp do
|
||
begin
|
||
Code.Text:=Trim(Self.CDS_Main.fieldbyname('MJID').AsString);
|
||
CYID:=Trim(Self.CDS_Main.fieldbyname('MJID').AsString);
|
||
if ShowModal=1 then
|
||
begin
|
||
//Self.InitGrid();
|
||
//Self.CDS_Main.Locate('SPID',CYID,[]);
|
||
end;
|
||
end;
|
||
finally
|
||
frmFileUp.Free;
|
||
end;
|
||
end;
|
||
|
||
procedure TfrmElevatorRklist.Tv1CellClick(Sender: TcxCustomGridTableView;
|
||
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
|
||
AShift: TShiftState; var AHandled: Boolean);
|
||
begin
|
||
InitImage();
|
||
end;
|
||
|
||
procedure TfrmElevatorRklist.ToolButton2Click(Sender: TObject);
|
||
var
|
||
excelApp,WorkBook:Variant;
|
||
i,j,k,ExcelRowCount:integer;
|
||
maxId:string;
|
||
begin
|
||
|
||
if GetLSNo(ADOQueryCmd,maxId,'SP','CK_Sample_CR',4,1)=False then
|
||
begin
|
||
Application.MessageBox('取最大号失败!','提示',0);
|
||
Exit;
|
||
end;
|
||
|
||
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 20 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 CK_Sample_CR where 1=2');
|
||
open;
|
||
end;
|
||
|
||
ADOQueryCmd.Append;
|
||
//添加第i条数据
|
||
for j:=1 to k-1 do
|
||
begin
|
||
//dFdDy[j].FDdys; 字段名称
|
||
//inttostr(dFdDy[j].inc); //当前列
|
||
//excelapp.Cells[i,dFdDy[j].inc].Value; //当前单元格内容
|
||
|
||
ADOQueryCmd.fieldbyname(dFdDy[j].FDdys).Value:=excelapp.Cells[i,dFdDy[j].inc].Value;
|
||
end;
|
||
|
||
ADOQueryCmd.FieldByName('Filler').Value:=Trim(DName);
|
||
ADOQueryCmd.FieldByName('CRNO').Value:=Trim(maxId)+inttostr(i);
|
||
ADOQueryCmd.FieldByName('INoutNo').Value:=Trim(maxId)+inttostr(i);
|
||
ADOQueryCmd.FieldByName('MJID').Value:=Trim(maxId)+inttostr(i);
|
||
ADOQueryCmd.FieldByName('CKName').Value:=trim(fCKName);
|
||
ADOQueryCmd.FieldByName('CRTime').Value:=formatdateTime('yyyy-MM-dd',now);
|
||
ADOQueryCmd.FieldByName('CRType').Value:='期初入库';
|
||
ADOQueryCmd.FieldByName('CRFlag').Value:='入库';
|
||
ADOQueryCmd.FieldByName('CRQtyFlag').Value:=1;
|
||
ADOQueryCmd.Post;
|
||
|
||
end;
|
||
WorkBook.Close;
|
||
ExcelApp.Quit;
|
||
ExcelApp := Unassigned;
|
||
WorkBook := Unassigned;
|
||
ADOQueryCmd.Connection.CommitTrans;
|
||
with ADOQueryCmd do
|
||
begin
|
||
close;
|
||
sql.Clear;
|
||
sql.Add('exec P_Up_SampleKcAll');
|
||
execsql;
|
||
end;
|
||
InitGrid();
|
||
except
|
||
WorkBook.Close;
|
||
ExcelApp.Quit;
|
||
ExcelApp := Unassigned;
|
||
WorkBook := Unassigned;
|
||
ADOQueryCmd.Connection.RollbackTrans;
|
||
application.MessageBox('保存数据错误!','错误信息',MB_ICONERROR);
|
||
exit;
|
||
end;
|
||
end;
|
||
|
||
end.
|