D7myzhenyong/染整计划(DyeingFinishingPlan.dll)/U_SCSJJDList.pas
DESKTOP-E401PHE\Administrator 237de1c308 0
2025-08-26 15:25:51 +08:00

430 lines
11 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_SCSJJDList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB,
cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, RM_Common, RM_Class,
RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxTextEdit, cxMemo, cxCheckBox,
cxPC, Menus, OleCtrls, SHDocVw, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator,
dxBarBuiltInMenu, jpeg, U_SLT1;
type
TfrmSCSJJDList = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
Order_Main: TClientDataSet;
RM1: TRMGridReport;
RMXLSExport1: TRMXLSExport;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
PopupMenu1: TPopupMenu;
N4: TMenuItem;
http: TIdHTTP;
Tv1Column1: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
Tv1Column3: TcxGridDBColumn;
Tv1Column4: TcxGridDBColumn;
Tv1Column5: TcxGridDBColumn;
Tv1Column6: TcxGridDBColumn;
CDS_Url: TClientDataSet;
Tv1Column7: TcxGridDBColumn;
Panel8: TPanel;
Panel9: TPanel;
Image4: TImage;
Button6: TButton;
XGNote: TMemo;
lblJdid: TLabel;
adoqueryPicture: TADOQuery;
GroupBox1: TGroupBox;
ScrollBox1: TScrollBox;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure N4Click(Sender: TObject);
procedure Image4Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
CurrentPage, RecordsNumber: Integer;
FInt, PFInt: Integer;
procedure InitGrid();
procedure InitForm();
procedure ChangImg();
procedure InitImage();
{ Private declarations }
public
FMainId: string;
{ Public declarations }
end;
var
frmSCSJJDList: TfrmSCSJJDList;
Mach: array of TfrmSlt1;
implementation
uses
U_DataLink, U_Fun, U_ZDYHelp;
{$R *.dfm}
procedure TfrmSCSJJDList.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 Order_Main.IsEmpty then
exit;
try
with adoqueryPicture do
begin
close;
sql.Clear;
sql.Add(' select A.TFID,A.WBID,A.FilesOther,FileName,url from TP_File A ');
sql.add('where A. WBID= ' + quotedstr(trim(Order_Main.fieldbyname('Jdid').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] := TfrmSlt1.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, adoqueryPicture.fieldbyname('url').AsString);
end;
adoqueryPicture.Next;
end;
adoqueryPicture.EnableControls;
finally
jpg.free;
application.ProcessMessages;
end;
end;
procedure TfrmSCSJJDList.ChangImg();
begin
// if not CDS_Url.IsEmpty then
// begin
// CDS_Url.Locate('keyno', CurrentPage, []);
// LBCPAP.Caption := inttostr(CurrentPage) + '/' + inttostr(RecordsNumber);
// WebBrowser1.Navigate(trim(CDS_Url.fieldbyname('url').AsString));
// end
// else
// begin
// LBCPAP.Caption := '0/0';
// WebBrowser1.Navigate('about:blank');
// end;
end;
procedure TfrmSCSJJDList.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);
Action := caFree;
end;
procedure TfrmSCSJJDList.TBCloseClick(Sender: TObject);
begin
WriteCxGrid(Trim(self.Caption), Tv1, '<27>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
Close;
end;
procedure TfrmSCSJJDList.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add('select * from JyOrder_Main_Jd ');
sql.Add(' where MainId= ' + quotedstr(trim(FMainId)));
sql.Add(' order by idx ');
Open;
end;
SCreateCDS20(ADOQueryMain, Order_Main);
SInitCDSData20(ADOQueryMain, Order_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmSCSJJDList.InitForm();
begin
ReadCxGrid(Trim(self.Caption), Tv1, '<27>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
CurrentPage := 1;
InitGrid();
end;
procedure TfrmSCSJJDList.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmSCSJJDList.FormShow(Sender: TObject);
begin
InitForm();
end;
procedure TfrmSCSJJDList.N1Click(Sender: TObject);
begin
if not Order_Main.Locate('SSel', True, []) then
begin
Application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
try
ADOQueryMain.DisableControls;
while Order_Main.Locate('SSel', True, []) do
begin
if Order_Main.FieldByName('P_Code_PB').AsString = '' then
begin
with Order_Main do
begin
Edit;
FieldByName('SSel').Value := False;
Post;
end;
Application.MessageBox('<27><>Ʒδָ<CEB4><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 0);
Exit;
end
else
begin
with ADOQueryMain do
begin
Close;
SQL.Clear;
SQL.Add('UPDATE PD_Plan_Sub SET ISCL=1 where SubId=' + quotedstr(Trim(Order_Main.fieldbyname('SubId').AsString)));
SQL.Add('exec P_PD_Insert_PD @MainId=' + quotedstr(Trim(Order_Main.fieldbyname('MainId').AsString)));
SQL.Add(',@SubId=' + quotedstr(Trim(Order_Main.fieldbyname('SubId').AsString)));
SQL.Add(',@Filler=' + quotedstr(DName));
SQL.Add(',@OrdStatus=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>''');
// ShowMessage(SQL.Text);
ExecSQL;
end;
Order_Main.Delete;
end;
end;
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmSCSJJDList.N2Click(Sender: TObject);
begin
if not Order_Main.Locate('SSel', True, []) then
begin
Application.MessageBox('<27><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
try
ADOQueryMain.DisableControls;
while Order_Main.Locate('SSel', True, []) do
begin
with ADOQueryMain do
begin
Close;
SQL.Clear;
SQL.Add('UPDATE PD_Plan_Sub SET ISCL=1 where SubId=' + quotedstr(Trim(Order_Main.fieldbyname('SubId').AsString)));
ExecSQL;
end;
Order_Main.Delete;
end;
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmSCSJJDList.N3Click(Sender: TObject);
var
MMainid: string;
begin
if Order_Main.IsEmpty then
Exit;
with ADOQueryTemp do
begin
Close;
sql.Clear;
SQL.Add('select A.*');
sql.Add('from PD_Plan_Main A');
sql.Add(' where A.FromMainId=''' + Trim(Order_Main.fieldbyname('MainId').AsString) + '''');
Open;
end;
if ADOQueryTemp.RecordCount > 1 then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>!', '<27><>ʾ', 0);
Exit;
end;
MMainid := Trim(ADOQueryTemp.fieldbyname('MainId').AsString);
with ADOQueryTemp do
begin
Close;
sql.Clear;
SQL.Add('select TOP 1 A.*');
sql.Add('from CK_Cloth_CR A');
sql.Add(' where A.MainId=''' + MMainid + '''');
Open;
end;
if ADOQueryTemp.IsEmpty = False then
begin
Application.MessageBox('<27>Ѳ<EFBFBD><D1B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>ɾ<EFBFBD><C9BE>!', '<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
ADOQueryCmd.Connection.BeginTrans;
while Order_Main.Locate('SSel', True, []) do
begin
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete PD_Plan_Main where MainId=''' + MMainid + '''');
sql.Add('delete PD_Plan_Sub where MainId=''' + MMainid + '''');
ExecSQL;
end;
Order_Main.Delete;
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><ECB3A3>', '<27><>ʾ', 0);
end;
end;
procedure TfrmSCSJJDList.FormDestroy(Sender: TObject);
begin
frmSCSJJDList := nil;
end;
procedure TfrmSCSJJDList.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
// with ADOQueryTemp do
// begin
// Close;
// sql.Clear;
// sql.Add('select cast((ROW_NUMBER() over(order by url )) as int) as keyNo,url from TP_File ');
// sql.Add(' where WBID= ' + quotedstr(trim(Order_Main.fieldbyname('Jdid').AsString)));
// Open;
// end;
//
// SCreateCDS20(ADOQueryTemp, CDS_Url);
// SInitCDSData20(ADOQueryTemp, CDS_Url);
// RecordsNumber := CDS_Url.RecordCount;
// ChangImg();
if Order_Main.IsEmpty then
Exit;
InitImage();
end;
procedure TfrmSCSJJDList.N4Click(Sender: TObject);
begin
if Order_Main.IsEmpty = True then
begin
Exit;
end;
Panel8.Visible := True;
xgnote.Text := '';
XGNote.Text := Trim(Order_Main.fieldbyname('CLNote').AsString);
lblJdid.Caption := Trim(Order_Main.fieldbyname('Jdid').AsString);
end;
procedure TfrmSCSJJDList.Image4Click(Sender: TObject);
begin
Panel8.Visible := False;
end;
procedure TfrmSCSJJDList.Button6Click(Sender: TObject);
begin
if trim(XGNote.Text) = '' then
begin
Application.MessageBox('<27><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
try
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('update JyOrder_Main_Jd SET hasProblem=0,CLNote=' + QUOTEDSTR(Trim(XGNOTE.Text)));
sql.Add('where Jdid=' + quotedstr(trim(lblJdid.Caption)));
execsql;
end;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ');
TBRafresh.Click;
Panel8.Visible := False;
except
application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
end.