D10szGerun/A02基础产品管理/U_CraftInfo.pas

347 lines
9.0 KiB
ObjectPascal
Raw Permalink Normal View History

2026-10-19 17:25:11 +08:00
unit U_CraftInfo;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxCustomData, cxStyles, cxFilter, cxData, cxDataStorage,
cxEdit, DB, cxDBData, ADODB, DBClient, ComCtrls, ToolWin, StdCtrls, ExtCtrls, Menus,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGrid, cxGridCustomPopupMenu,
cxGridPopupMenu, cxNavigator, dxDateRanges, dxBarBuiltInMenu, cxCheckBox,
dxScrollbarAnnotations, U_BaseList, cxLookAndFeels, cxLookAndFeelPainters,
dxSkinsCore, dxSkinsDefaultPainters, dxSkinWXI;
type
TfrmCraftInfo = class(TfrmBaseList)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBAdd: TToolButton;
TBEdit: TToolButton;
TBDel: TToolButton;
TBExport: TToolButton;
ToolButton2: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
CR_Code: TEdit;
CR_Name: TEdit;
GPM_1: TcxGridPopupMenu;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
Tv1SSel: TcxGridDBColumn;
Tv1CR_Code: TcxGridDBColumn;
Tv1CR_Name: TcxGridDBColumn;
Tv1C_Width: TcxGridDBColumn;
Tv1C_GramWeight: TcxGridDBColumn;
Tv1C_Color: TcxGridDBColumn;
Tv1C_YarnQty: TcxGridDBColumn;
Tv1head_count: TcxGridDBColumn;
Tv1strip_width: TcxGridDBColumn;
Tv1C_MachLatitudeDensity: TcxGridDBColumn;
Tv1row_count_top: TcxGridDBColumn;
Tv1displace: TcxGridDBColumn;
Tv1reed_width: TcxGridDBColumn;
Tv1C_ReedNo: TcxGridDBColumn;
Tv1ends_per_dent: TcxGridDBColumn;
Tv1selvage_yarn: TcxGridDBColumn;
Tv1yardage: TcxGridDBColumn;
2026-10-19 17:25:11 +08:00
Tv1FILLER: TcxGridDBColumn;
Tv1FILLTIME: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
DS_1: TDataSource;
ADOQueryMain: TADOQuery;
CDS_1: TClientDataSet;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
PM_1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
TbPrint: TToolButton;
2026-10-19 17:25:11 +08:00
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure TBAddClick(Sender: TObject);
procedure TBEditClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure CRCodeKeyPress(Sender: TObject; var Key: Char);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure TbPrintClick(Sender: TObject);
2026-10-19 17:25:11 +08:00
private
{ Private declarations }
procedure InitGrid();
public
{ Public declarations }
end;
var
frmCraftInfo: TfrmCraftInfo;
implementation
uses
U_DataLink, U_RTFun, U_CraftInfoInput,U_LabelPrint;
2026-10-19 17:25:11 +08:00
{$R *.dfm}
procedure TfrmCraftInfo.InitGrid();
var
fwhere, Pwhere: string;
begin
Panel1.Refresh;
fwhere := '';
Pwhere := SGetFilters(Panel1, 1, 2);
if trim(Pwhere) <> '' then
fwhere := ' where ' + trim(Pwhere);
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
Filtered := False;
sql.Clear;
sql.Add('select A.* from BS_Craft_Info A' + fwhere + ' order by CR_Code');
Open;
end;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS(ADOQueryMain, CDS_1);
SInitCDSData(ADOQueryMain, CDS_1);
TV1.DataController.Filter.Clear;
finally
ADOQueryMain.EnableControls;
TV1.DataController.Filter.Clear;
end;
end;
procedure TfrmCraftInfo.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := caFree;
end;
procedure TfrmCraftInfo.FormDestroy(Sender: TObject);
begin
inherited;
frmCraftInfo := nil;
end;
procedure TfrmCraftInfo.FormShow(Sender: TObject);
begin
inherited;
ReadCxGrid(self.Caption + 'TV1', Tv1, '<27><><EFBFBD>չ<EFBFBD><D5B9><EFBFBD>');
InitGrid();
end;
procedure TfrmCraftInfo.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmCraftInfo.TBAddClick(Sender: TObject);
begin
try
frmCraftInfoInput := TfrmCraftInfoInput.Create(Application);
with frmCraftInfoInput do
begin
FCRID := '';
if ShowModal = 1 then
begin
Self.InitGrid();
end;
end;
finally
frmCraftInfoInput.Free;
end;
end;
procedure TfrmCraftInfo.TBEditClick(Sender: TObject);
begin
if CDS_1.IsEmpty then
Exit;
try
frmCraftInfoInput := TfrmCraftInfoInput.Create(Application);
with frmCraftInfoInput do
begin
FCRID := Trim(Self.CDS_1.fieldbyname('CRID').AsString);
if ShowModal = 1 then
begin
Self.InitGrid();
end;
end;
finally
frmCraftInfoInput.Free;
end;
end;
procedure TfrmCraftInfo.TBDelClick(Sender: TObject);
var
MRefCodes: string;
begin
if CDS_1.IsEmpty then
Exit;
if not CDS_1.Locate('SSel', True, []) then
begin
Application.MessageBox('û<><C3BB>ѡ<EFBFBD><D1A1><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;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ձ<EFBFBD><D5B1><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD>ֹ(<28><><EFBFBD><EFBFBD>ɾһ<C9BE><D2BB>)
MRefCodes := '';
CDS_1.DisableControls;
try
CDS_1.First;
while not CDS_1.Eof do
begin
if CDS_1.fieldbyname('SSel').AsBoolean then
begin
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select count(*) as AA from BS_Cloth_Info where CRID=' + QuotedStr(Trim(CDS_1.fieldbyname('CRID').AsString)));
Open;
end;
if ADOQueryTemp.FieldByName('AA').AsInteger > 0 then
begin
if MRefCodes <> '' then
MRefCodes := MRefCodes + ',';
MRefCodes := MRefCodes + Trim(CDS_1.fieldbyname('CR_Code').AsString);
end;
end;
CDS_1.Next;
end;
CDS_1.Locate('SSel', True, []);
finally
CDS_1.EnableControls;
end;
if MRefCodes <> '' then
begin
Application.MessageBox(PChar('<27><><EFBFBD><EFBFBD> ' + MRefCodes + ' <20>ѱ<EFBFBD><D1B1><EFBFBD>Ʒʹ<C6B7><CAB9>,<2C><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>!<21><><EFBFBD>Ƚ<EFBFBD><C8BD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD>Ĺ<EFBFBD><C4B9>հ󶨡<D5B0>'), '<27><>ʾ', 0);
Exit;
end;
try
ADOQueryCmd.Connection.BeginTrans;
//<2F><><EFBFBD><EFBFBD>Ʒɾ<C6B7><C9BE>һ<EFBFBD><D2BB>:ѭ<><D1AD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>(<28><><EFBFBD><EFBFBD>+<2B><><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD>+<2B>ư<EFBFBD>ͼ<EFBFBD>ӱ<EFBFBD>)
while CDS_1.Locate('SSel', true, []) do
begin
if Trim(CDS_1.fieldbyname('CRID').AsString) <> '' then
begin
//<2F>ȱ<EFBFBD><C8B1>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>(<28><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ṹ<EFBFBD><E1B9B9>ȫһ<C8AB><D2BB>,select * <20><><EFBFBD><EFBFBD><EFBFBD>嵥,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>)
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add('insert into BS_Craft_Info_Del select * from BS_Craft_Info where CRID=' + QuotedStr(Trim(CDS_1.fieldbyname('CRID').AsString)));
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add('delete BS_Craft_Yarn where CRID=' + QuotedStr(Trim(CDS_1.fieldbyname('CRID').AsString)));
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add('delete BS_Craft_Info_WB where CRID=' + QuotedStr(Trim(CDS_1.fieldbyname('CRID').AsString)));
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add('delete BS_Craft_Info where CRID=' + QuotedStr(Trim(CDS_1.fieldbyname('CRID').AsString)));
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
SQL.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
SQL.Add(' ' + QuotedStr(Trim(DName)));
SQL.Add(',getdate() ');
SQL.Add(',' + QuotedStr(Trim(self.Caption)));
SQL.Add(',' + QuotedStr(Trim('ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>')));
SQL.Add(',' + QuotedStr(Trim(CDS_1.fieldbyname('CRID').AsString)));
SQL.Add(',' + QuotedStr(Trim('<27>ɹ<EFBFBD>')));
SQL.Add(')');
ExecSQL;
end;
end;
CDS_1.Delete;
end;
ADOQueryCmd.Connection.CommitTrans;
Application.MessageBox('ɾ<><C9BE><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ');
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('ɾ<><C9BE>ʧ<EFBFBD><CAA7>!', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmCraftInfo.N1Click(Sender: TObject);
begin
SelOKNoFiler(Tv1, True);
end;
procedure TfrmCraftInfo.N2Click(Sender: TObject);
begin
SelOKNoFiler(Tv1, False);
end;
procedure TfrmCraftInfo.TBExportClick(Sender: TObject);
begin
if CDS_1.IsEmpty then
Exit;
TcxGridToExcel(self.Caption, cxGrid1);
end;
procedure TfrmCraftInfo.TbPrintClick(Sender: TObject);
begin
try
frmLabelPrint := TfrmLabelPrint.Create(Application);
with frmLabelPrint do
begin
FLMType := 'CraftInfoPrint';
FFiltration1 := CDS_1.fieldbyname('CRID').AsString;
if ShowModal = 1 then
begin
// Self.InitGrid();
end;
end;
finally
frmLabelPrint.Free;
end;
end;
2026-10-19 17:25:11 +08:00
procedure TfrmCraftInfo.ToolButton2Click(Sender: TObject);
begin
WriteCxGrid(self.Caption + 'TV1', Tv1, '<27><><EFBFBD>չ<EFBFBD><D5B9><EFBFBD>');
end;
procedure TfrmCraftInfo.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmCraftInfo.CRCodeKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
InitGrid();
end;
end.