D7myzhenyong/样布仓库(染色)/U_ElevatorRklist.pas

533 lines
14 KiB
ObjectPascal
Raw Normal View History

2025-08-26 15:25:51 +08:00
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; //<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>׽<EFBFBD><D7BD>־<EFBFBD><D6BE><EFBFBD>
FDdys:string[32]; //<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>׽<EFBFBD><D7BD><EFBFBD>
FdDysName:string[32]; //<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD>׽<EFBFBD><D7BD><EFBFBD>
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; //<2F>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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)='<27><>Ȩ<EFBFBD><C8A8>' 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=''<27><><EFBFBD><EFBFBD>'' 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,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
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,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
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=''<27><><EFBFBD><EFBFBD>'' and A.valid=''Y'' ');
Open;
end;
if not ADOQueryCmd.IsEmpty then
begin
Application.MessageBox('<27>˵<EFBFBD><CBB5>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A3AC><EFBFBD><EFBFBD><EFBFBD>޸ģ<DEB8>','<27><>ʾ',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('<27><><EFBFBD>ܲ<EFBFBD><DCB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ',0);
Exit;
end;
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',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)='<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>' then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ',0);
Exit;
end;
ADOQueryCmd.Connection.CommitTrans;
CDS_Main.Delete;
end;
except
Application.MessageBox('<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',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(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',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('<27><><EFBFBD><EFBFBD>EXCEL<45><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ',MB_ICONERROR);
exit;
end;
try
k:=0;
for i:=1 to 20 do
begin
if trim(excelapp.Cells[1,i].value)='' then break;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󶨽<EFBFBD><F3B6A8BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ֶκ<D6B6><CEBA><EFBFBD><EFBFBD><EFBFBD>
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('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ',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;
//<2F><><EFBFBD>ӵ<EFBFBD>i<EFBFBD><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for j:=1 to k-1 do
begin
//dFdDy[j].FDdys; <20>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>
//inttostr(dFdDy[j].inc); //<2F><>ǰ<EFBFBD><C7B0>
//excelapp.Cells[i,dFdDy[j].inc].Value; //<2F><>ǰ<EFBFBD><C7B0>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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:='<27>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD>';
ADOQueryCmd.FieldByName('CRFlag').Value:='<27><><EFBFBD><EFBFBD>';
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('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD>','<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ',MB_ICONERROR);
exit;
end;
end;
end.