D7myChuangpin/管理系统/U_CKSMEdit.pas
“ddf” ece69a5ac1 1
2024-07-23 20:18:14 +08:00

957 lines
32 KiB
ObjectPascal
Raw 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_CKSMEdit;
interface
uses
Windows, Messages, strutils,SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls,
cxGridCustomView, cxGrid, StdCtrls, cxContainer, cxTextEdit,
cxCurrencyEdit, BtnEdit, ExtCtrls, ComCtrls, ToolWin, DBClient, ADODB,
MovePanel, cxCheckBox, RM_Common, RM_Class, RM_e_Xls, RM_GridReport,
RM_System, RM_Dataset,MMSystem;
type
TfrmCKSMEdit = class(TForm)
ToolBar1: TToolBar;
TBSave: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
PHYG: TBtnEditA;
defstr2: TComboBox;
Label16: TLabel;
Label15: TLabel;
packNo: TcxCurrencyEdit;
Label14: TLabel;
Label1: TLabel;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1MJID: TcxGridDBColumn;
v1MJXH: TcxGridDBColumn;
v1P_Code: TcxGridDBColumn;
v1P_Color: TcxGridDBColumn;
v1RollNum: TcxGridDBColumn;
v1Qty: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1PHRollNum: TcxGridDBColumn;
v1PHQty: TcxGridDBColumn;
Panel2: TPanel;
cxGrid2: TcxGrid;
TV2: TcxGridDBTableView;
cxGridDBColumn1: TcxGridDBColumn;
cxGridDBColumn2: TcxGridDBColumn;
cxGridDBColumn3: TcxGridDBColumn;
cxGridDBColumn4: TcxGridDBColumn;
cxGridDBColumn5: TcxGridDBColumn;
cxGridDBColumn6: TcxGridDBColumn;
cxGridDBColumn7: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
ADOQueryMain: TADOQuery;
ADOQueryCmd: TADOQuery;
CDSOrder: TClientDataSet;
CDSMJID: TClientDataSet;
DataSource1: TDataSource;
DataSource2: TDataSource;
SmNO: TEdit;
ADOQueryTmp: TADOQuery;
MovePanel1: TMovePanel;
Label2: TLabel;
Edit2: TEdit;
Button4: TButton;
V2Column1: TcxGridDBColumn;
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
cxStyle2: TcxStyle;
cxStyle_gridRow: TcxStyle;
cxStyle_gridFoot: TcxStyle;
cxStyle_gridHead: TcxStyle;
cxStyle_gridGroupBox: TcxStyle;
cxStyle_yellow: TcxStyle;
cxStyle_Red: TcxStyle;
cxStyle_fontBlack: TcxStyle;
cxStyle_fontclFuchsia: TcxStyle;
cxStyle_fontclPurple: TcxStyle;
cxStyle_fontclGreen: TcxStyle;
cxStyle_fontclBlue: TcxStyle;
cxStyle_fontclTeal: TcxStyle;
cxStyle_fontclOlive: TcxStyle;
ToolButton1: TToolButton;
V2Column2: TcxGridDBColumn;
CheckBox1: TCheckBox;
ToolButton2: TToolButton;
RMGridReport1: TRMGridReport;
RMXLSExport2: TRMXLSExport;
ADOQueryPrint: TADOQuery;
RMDB_Main: TRMDBDataSet;
ADOQuery1: TADOQuery;
v1Column3: TcxGridDBColumn;
V2Column3: TcxGridDBColumn;
V2Column4: TcxGridDBColumn;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure SmNOKeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender: TObject);
procedure TV2CustomDrawCell(Sender: TcxCustomGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
var ADone: Boolean);
procedure TBSaveClick(Sender: TObject);
procedure PHYGBtnClick(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
procedure InitGrid();
procedure InitOrder();
procedure InitMJID();
procedure InitMJID10();
function SavePH():Boolean;
{ Private declarations }
public
fckName,fSyrName:string;
{ Public declarations }
end;
var
frmCKSMEdit: TfrmCKSMEdit;
implementation
uses
U_DataLink,U_Fun, U_UserHelp, U_KCEdit;
{$R *.dfm}
procedure TfrmCKSMEdit.InitMJID10();
var
fP_No:string;
i:integer;
begin
MovePanel1.Visible:=false;
with ADOQueryTmp do
begin
Close;
sql.Clear;
SQL.Add('select MJID from WFB_MJJY A');
SQL.Add('where A.MJID='+quotedstr(trim(SmNO.text)));
SQL.Add('and MJstr2='<><CEB4><EFBFBD><EFBFBD>''');
Open;
IF not IsEmpty then
begin
CDSMJID.Append;
CDSMJID.FieldByName('SDefNote').Value:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>';
CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text);
CDSMJID.Post;
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>.wav'),0, SND_ASYNC);
Exit;
end;
end;
with ADOQueryTmp do
begin
Close;
sql.Clear;
SQL.Add('select MJID from CK_BanCP_CR A');
SQL.Add('where A.MJID='+quotedstr(trim(SmNO.text)));
SQL.Add('and CRFlag=''<27><><EFBFBD><EFBFBD>''');
Open;
IF not IsEmpty then
begin
CDSMJID.Append;
CDSMJID.FieldByName('SDefNote').Value:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѳ<EFBFBD><D1B3><EFBFBD>';
CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text);
CDSMJID.Post;
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѳ<EFBFBD><D1B3><EFBFBD>.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѳ<EFBFBD><D1B3><EFBFBD>.wav'),0, SND_ASYNC);
Exit;
end;
end;
with ADOQueryMain do
begin
Close;
sql.Clear;
SQL.Add('select A.*,B.mainID,B.subID,B.BCKZ,B.BCFK from CK_BanCP_KC A');
sql.add('left join CK_BanCP_CR B on B.BCID=A.BCID and B.CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
SQL.Add('where A.MJID='+quotedstr(trim(SmNO.text)));
sql.Add('and isnull(A.KCStatus,''0'')=''0'' ');
SQL.Add('and A.ckName='''+trim(fckName)+''' ');
sql.Add('and KCQty>0 ');
Open;
end;
IF ADOQueryMain.IsEmpty then
begin
CDSMJID.Append;
CDSMJID.FieldByName('SDefNote').Value:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB2BB><EFBFBD>ڻ<EFBFBD><DABB>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>';
CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text);
CDSMJID.Post;
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.wav'),0, SND_ASYNC);
exit;
end;
with ADOQueryTmp do
begin
Close;
sql.Clear;
SQL.Add('select B.mainID,B.subID from CK_BanCP_KC A');
sql.Add('inner join CK_BanCP_CR A1 on A1.BCID=A.BCID ');
sql.Add('inner join JYorder_Sub B on B.PRTCodeName=A.C_CodeName and B.PRtColor=A.C_Color and cast(B.PRTKZ as int)=cast(A1.BCKZ AS int) ');
SQL.Add('where A.MJID='+quotedstr(trim(SmNO.text)));
SQL.Add('and B.mainID='+quotedstr(trim(CDSOrder.Fieldbyname('mainID').AsString)));
// SQL.ADD('and isnull(B.PRTKZ,'''')<>'''' ');
Open;
end;
{ IF ADOQueryTmp.IsEmpty then
begin
with ADOQueryTmp do
begin
Close;
sql.Clear;
SQL.Add('select B.mainID,B.subID from CK_BanCP_KC A');
sql.Add('inner join JYorder_Sub B on B.PRTCodeName=A.C_CodeName and B.PRtColor=A.C_Color');
SQL.Add('where A.MJID='+quotedstr(trim(SmNO.text)));
SQL.Add('and B.mainID='+quotedstr(trim(CDSOrder.Fieldbyname('mainID').AsString)));
SQL.ADD('and isnull(B.PRTKZ,'''')='''' ');
Open;
end;
end;
}
IF ADOQueryTmp.IsEmpty then
begin
CDSMJID.Append;
CDSMJID.FieldByName('SDefNote').Value:='Ʒ<><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>Ӧ';
CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text);
CDSMJID.Post;
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\Ʒ<><C6B7><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>Ӧ.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\Ʒ<><C6B7><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>Ӧ.wav'),0, SND_ASYNC);
exit;
end;
i:=0;
while not ADOQueryTmp.eof do
begin
if CDSOrder.Locate('subID',trim(ADOQueryTmp.fieldbyname('subID').AsString),[]) then
begin
IF (CDSOrder.fieldbyName('PRTRollNum').AsInteger=CDSOrder.FieldByName('PHRollNum').AsInteger)
and (CDSOrder.fieldbyName('PRTRollNum').AsInteger>0) then
begin
end
else
begin
i:=1;
fP_No:=CDSOrder.fieldbyname('P_NO').AsString;
CDSMJID.Append;
CDSMJID.FieldByName('SDefNote').Value:=<><C9A8><EFBFBD>ɹ<EFBFBD>';
CDSMJID.FieldByName('MJID').Value:=trim(ADOQueryMain.Fieldbyname('MJID').AsString);
CDSMJID.FieldByName('CRID').Value:=trim(ADOQueryMain.Fieldbyname('CRID').AsString);
CDSMJID.FieldByName('C_CodeName').Value:=trim(ADOQueryMain.Fieldbyname('C_CodeName').AsString);
CDSMJID.FieldByName('C_Color').Value:=trim(ADOQueryMain.Fieldbyname('C_Color').AsString);
CDSMJID.FieldByName('CPType').Value:=trim(ADOQueryMain.Fieldbyname('CPType').AsString);
CDSMJID.FieldByName('RollNum').Value:=ADOQueryMain.Fieldbyname('kcRollNum').AsFloat;
CDSMJID.FieldByName('Qty').Value:=ADOQueryMain.Fieldbyname('kcQty').AsFloat;
CDSMJID.FieldByName('QtyUnit').Value:=trim(ADOQueryMain.Fieldbyname('kcQtyUnit').AsString);
CDSMJID.FieldByName('mainID').Value:=trim(ADOQueryTmp.Fieldbyname('mainID').AsString);
CDSMJID.FieldByName('subID').Value:=trim(ADOQueryTmp.Fieldbyname('subID').AsString);
CDSMJID.FieldByName('BCFK').Value:=ADOQueryMain.Fieldbyname('BCFK').AsFloat;
CDSMJID.FieldByName('BCKZ').Value:=ADOQueryMain.Fieldbyname('BCKZ').AsFloat;
CDSMJID.FieldByName('P_NO').Value:=trim(fP_No);
CDSMJID.FieldByName('PmainID').Value:=trim(ADOQueryMain.Fieldbyname('mainID').AsString);
CDSMJID.FieldByName('PsubID').Value:=trim(ADOQueryMain.Fieldbyname('subID').AsString);
CDSMJID.FieldByName('BCgangNO').Value:=trim(ADOQueryMain.Fieldbyname('BCgangNO').AsString);
// CDSMJID.FieldByName('conNo').Value:=trim(ADOQueryMain.Fieldbyname('conNo').AsString);
CDSMJID.Post;
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><>ȷ.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><>ȷ.wav'),0, SND_ASYNC);
CDSOrder.Edit;
CDSOrder.fieldbyName('PHRollNum').Value:=CDSOrder.fieldbyName('PHRollNum').AsInteger+1;
CDSOrder.fieldbyName('PHQty').Value:=CDSOrder.fieldbyName('PHQty').AsFloat+ADOQueryMain.Fieldbyname('kcQty').AsFloat;
CDSOrder.Post;
IF tv1.DataController.Summary.FooterSummaryValues[0]<>0 then
begin
IF tv1.DataController.Summary.FooterSummaryValues[0]= tv2.DataController.Summary.FooterSummaryValues[0] then
begin
TBSave.Click;
exit;
end;
end;
exit;
end;
end;
ADOQueryTmp.Next;
end;
IF i=0 then
begin
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>ƥ<EFBFBD><C6A5>.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>ƥ<EFBFBD><C6A5>.wav'),0, SND_ASYNC);
end;
end;
function TfrmCKSMEdit.SavePH():Boolean;
var
phID:string;
P_ID:integer;
begin
Result:=false;
ADOQueryCmd.Connection.BeginTrans;
P_ID:=1;
try
with CDSMJID do
begin
DisableControls;
first;
while not eof do
begin
if trim(CDSMJID.fieldbyname('SDefNote').AsString)=<><C9A8><EFBFBD>ɹ<EFBFBD>' then
begin
if GetLSNo(ADOQueryTmp,phID,'PH','CK_BanCP_PH',4,1)=False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from CK_BanCP_PH ');
sql.Add('where 1=2 ');
open;
end;
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('phID').Value:=trim(phID);
ADOQueryCmd.FieldByName('p_No').Value:=trim(fieldbyname('p_No').AsString);
ADOQueryCmd.FieldByName('p_ID').Value:=P_ID;
// ADOQueryCmd.FieldByName('conNo').Value:=trim(fieldbyname('conNo').AsString);
ADOQueryCmd.FieldByName('MainID').Value:=trim(fieldbyname('MainID').AsString);
ADOQueryCmd.FieldByName('SubID').Value:=trim(fieldbyname('SubID').AsString);
ADOQueryCmd.FieldByName('PMainID').Value:=trim(fieldbyname('PMainID').AsString);
ADOQueryCmd.FieldByName('PSubID').Value:=trim(fieldbyname('PSubID').AsString);
ADOQueryCmd.FieldByName('mjID').Value:=trim(fieldbyname('mjID').AsString);
ADOQueryCmd.FieldByName('CRID').Value:=trim(fieldbyname('CRID').AsString);
ADOQueryCmd.FieldByName('qtyunit').Value:=trim(fieldbyname('qtyunit').AsString);
ADOQueryCmd.FieldByName('defstr2').Value:=trim(defstr2.Text);
ADOQueryCmd.FieldByName('packNo').Value:=trim(packNO.Text);
ADOQueryCmd.FieldByName('qty').Value:=fieldbyname('qty').AsFloat;
ADOQueryCmd.FieldByName('Rollnum').Value:=fieldbyname('Rollnum').AsFloat;
ADOQueryCmd.FieldByName('Filler').Value:=trim(DName);
ADOQueryCmd.FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTmp);
ADOQueryCmd.FieldByName('BCGangNo').Value:=trim(fieldbyname('BCgangNO').AsString);
ADOQueryCmd.FieldByName('PHYG').Value:=trim(PHYG.Text);
ADOQueryCmd.FieldByName('PHType').Value:=<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
ADOQueryCmd.Post;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from CK_BanCP_KC ');
sql.Add('where mjid='+quotedstr(trim(CDSMJID.fieldbyname('mjid').AsString)));
sql.Add('and CRID='+quotedstr(trim(CDSMJID.fieldbyname('CRID').AsString)));
open;
edit;
fieldbyname('kcstatus').Value:='1';
post;
end;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from JYOrder_sub ');
sql.Add('where mainID='+quotedstr(trim(CDSMJID.fieldbyname('mainID').AsString)));
sql.Add('and subID='+quotedstr(trim(CDSMJID.fieldbyname('subID').AsString)));
open;
edit;
fieldbyname('substatus').Value:='2';
post;
end;
P_ID:=P_ID+1;
end;
next;
end;
first;
EnableControls;
end;
ADOQueryCmd.Connection.CommitTrans;
Result:=true;
except
ADOQueryCmd.Connection.RollbackTrans;
end;
end;
procedure TfrmCKSMEdit.InitGrid();
begin
with ADOQueryMain do
begin
Close;
sql.Clear;
SQL.Add('select A.*,B.CustomerNoName,');
sql.Add('PHRollNum=(select count(MJID) from CK_BanCP_PH X where X.MainId=A.mainID and X.subID=A.subID),');
sql.Add('PHQty=(select sum(Qty) from CK_BanCP_PH X where X.MainId=A.mainID and X.subID=A.subID)');
sql.Add('from JYOrder_sub A');
SQL.Add('inner join JYOrder_main B on B.mainID=A.mainID');
SQL.Add('where 1=2 ');
Open;
end;
SCreateCDS20(ADOQueryMain,CDSOrder);
SInitCDSData20(ADOQueryMain,CDSOrder);
with ADOQueryMain do
begin
Close;
sql.Clear;
SQL.Add('select A.*,B.PmainID,PSubID,P_NO from CK_BanCP_CR A ');
SQL.Add('inner join CK_BanCP_PH B on B.PHID=A.PHID ');
SQL.Add('where 1=2 ');
Open;
end;
SCreateCDS20(ADOQueryMain,CDSMJID);
SInitCDSData20(ADOQueryMain,CDSMJID);
end;
procedure TfrmCKSMEdit.InitOrder();
var
fP_No:string;
begin
MovePanel1.Visible:=false;
CDSMJID.EmptyDataSet;
with ADOQueryMain do
begin
Close;
sql.Clear;
SQL.Add(' select A.*,B.CustomerNoName,');
sql.Add(' PHRollNum=(select count(MJID) from CK_BanCP_PH X where X.MainId=A.mainID and X.subID=A.subID),');
sql.Add(' PHQty=(select sum(Qty) from CK_BanCP_PH X where X.MainId=A.mainID and X.subID=A.subID),');
sql.Add(' P_No=(select top 1 P_No from CK_BanCP_PH X where X.MainId=A.mainID and X.subID=A.subID)');
SQL.Add(' from JYOrder_sub A');
SQL.Add(' inner join JYOrder_main B on B.mainID=A.mainID and isnull(B.status,''0'')>''0'' ');
SQL.Add(' where A.mainID='+quotedstr(trim(SmNO.text)));
// SQL.Add(' and B.SYRName='''+trim(fSYRName)+''' ');
SQL.Add(' and B.CKName='''+trim(fckName)+''' ');
SQL.Add(' and isnull(A.substatus,''0'')<=''2'' and A.PrtRollNum<>0 ');
// sql.Add(' and not exists(select subID from CK_BanCP_PH X where X.subID=A.subID)');
Open;
end;
IF ADOQueryMain.IsEmpty then
begin
MovePanel1.Visible:=true;
Edit2.text:=SmNO.Text;
Label2.Caption:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD>˻<EFBFBD><CBBB>߲<EFBFBD><DFB2><EFBFBD><EFBFBD>ڻ<EFBFBD><DABB>ѷ<EFBFBD><D1B7><EFBFBD><EFBFBD><EFBFBD>';
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.wav'),0, SND_ASYNC);
exit;
end
else
begin
SCreateCDS20(ADOQueryMain,CDSOrder);
SInitCDSData20(ADOQueryMain,CDSOrder);
with CDSOrder do
begin
DisableControls;
first;
while not eof do
begin
if GetLSNo(ADOQueryTmp,fP_No,'PN','CK_BanCP_PH',4,1) then
begin
edit;
fieldbyname('P_No').Value:=trim(fP_No);
post;
end
else
begin
MovePanel1.Visible:=true;
Edit2.Enabled:=false;
Label2.Caption:='<27><><EFBFBD>ɱ<EFBFBD><C9B1>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>';
EnableControls;
exit;
end;
next;
end;
first;
EnableControls;
end;
end;
end;
procedure TfrmCKSMEdit.InitMJID();
var
fP_No:string;
begin
MovePanel1.Visible:=false;
with ADOQueryTmp do
begin
Close;
sql.Clear;
SQL.Add('select MJID from WFB_MJJY A');
SQL.Add('where A.MJID='+quotedstr(trim(SmNO.text)));
SQL.Add('and MJstr2='<><CEB4><EFBFBD><EFBFBD>''');
Open;
IF not IsEmpty then
begin
CDSMJID.Append;
CDSMJID.FieldByName('SDefNote').Value:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>';
CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text);
CDSMJID.Post;
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>.wav'),0, SND_ASYNC);
Exit;
end;
end;
with ADOQueryTmp do
begin
Close;
sql.Clear;
SQL.Add('select MJID from CK_BanCP_CR A');
SQL.Add('where A.MJID='+quotedstr(trim(SmNO.text)));
SQL.Add('and CRFlag=''<27><><EFBFBD><EFBFBD>''');
Open;
IF not IsEmpty then
begin
CDSMJID.Append;
CDSMJID.FieldByName('SDefNote').Value:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѳ<EFBFBD><D1B3><EFBFBD>';
CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text);
CDSMJID.Post;
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѳ<EFBFBD><D1B3><EFBFBD>.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѳ<EFBFBD><D1B3><EFBFBD>.wav'),0, SND_ASYNC);
Exit;
end;
end;
with ADOQueryMain do
begin
Close;
sql.Clear;
SQL.Add('select A.*,B.mainID,B.subID from CK_BanCP_KC A');
sql.add('left join CK_BanCP_CR B on B.BCID=A.BCID and B.CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
SQL.Add('where A.MJID='+quotedstr(trim(SmNO.text)));
sql.Add('and isnull(A.KCStatus,''0'')=''0'' ');
SQL.Add('and A.ckName='''+trim(fckName)+''' ');
sql.Add('and KCQty>0 ');
Open;
if not IsEmpty then
begin
with ADOQueryTmp do
begin
Close;
sql.Clear;
SQL.Add('select B.mainID,B.subID from CK_BanCP_KC A');
sql.Add('inner join JYorder_Sub B on B.PRTCodeName=A.C_CodeName and B.PRtColor=A.C_Color');
SQL.Add('where A.MJID='+quotedstr(trim(SmNO.text)));
SQL.Add('and B.mainID='+quotedstr(trim(CDSOrder.Fieldbyname('mainID').AsString)));
Open;
IF ADOQueryTmp.IsEmpty then
begin
CDSMJID.Append;
CDSMJID.FieldByName('SDefNote').Value:='Ʒ<><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>Ӧ';
CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text);
CDSMJID.Post;
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\Ʒ<><C6B7><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>Ӧ.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\Ʒ<><C6B7><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>Ӧ.wav'),0, SND_ASYNC);
end
else
begin
if CDSOrder.Locate('subID',trim(ADOQueryTmp.fieldbyname('subID').AsString),[]) then
begin
fP_No:=CDSOrder.fieldbyname('P_NO').AsString;
end;
IF CDSOrder.fieldbyName('PRTRollNum').AsInteger=CDSOrder.FieldByName('PHRollNum').AsInteger then
begin
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>ƥ<EFBFBD><C6A5>.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>ƥ<EFBFBD><C6A5>.wav'),0, SND_ASYNC);
end
else
begin
if CDSMJID.Locate('MJID',trim(ADOQueryMain.fieldbyname('MJID').AsString),[]) then
CDSMJID.Edit
else
CDSMJID.Append;
CDSMJID.FieldByName('SDefNote').Value:=<><C9A8><EFBFBD>ɹ<EFBFBD>';
CDSMJID.FieldByName('MJID').Value:=trim(ADOQueryMain.Fieldbyname('MJID').AsString);
CDSMJID.FieldByName('CRID').Value:=trim(ADOQueryMain.Fieldbyname('CRID').AsString);
CDSMJID.FieldByName('C_CodeName').Value:=trim(ADOQueryMain.Fieldbyname('C_CodeName').AsString);
CDSMJID.FieldByName('C_Color').Value:=trim(ADOQueryMain.Fieldbyname('C_Color').AsString);
CDSMJID.FieldByName('CPType').Value:=trim(ADOQueryMain.Fieldbyname('CPType').AsString);
CDSMJID.FieldByName('RollNum').Value:=ADOQueryMain.Fieldbyname('kcRollNum').AsFloat;
CDSMJID.FieldByName('Qty').Value:=ADOQueryMain.Fieldbyname('kcQty').AsFloat;
CDSMJID.FieldByName('QtyUnit').Value:=trim(ADOQueryMain.Fieldbyname('kcQtyUnit').AsString);
CDSMJID.FieldByName('mainID').Value:=trim(ADOQueryTmp.Fieldbyname('mainID').AsString);
CDSMJID.FieldByName('subID').Value:=trim(ADOQueryTmp.Fieldbyname('subID').AsString);
CDSMJID.FieldByName('P_NO').Value:=trim(fP_No);
CDSMJID.FieldByName('PmainID').Value:=trim(ADOQueryMain.Fieldbyname('mainID').AsString);
CDSMJID.FieldByName('PsubID').Value:=trim(ADOQueryMain.Fieldbyname('subID').AsString);
CDSMJID.FieldByName('BCgangNO').Value:=trim(ADOQueryMain.Fieldbyname('BCgangNO').AsString);
// CDSMJID.FieldByName('conNo').Value:=trim(ADOQueryMain.Fieldbyname('conNo').AsString);
CDSMJID.Post;
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><>ȷ.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><>ȷ.wav'),0, SND_ASYNC);
CDSOrder.Edit;
CDSOrder.fieldbyName('PHRollNum').Value:=CDSOrder.fieldbyName('PHRollNum').AsInteger+1;
CDSOrder.fieldbyName('PHQty').Value:=CDSOrder.fieldbyName('PHQty').AsFloat+ADOQueryMain.Fieldbyname('kcQty').AsFloat;
CDSOrder.Post;
IF tv1.DataController.Summary.FooterSummaryValues[0]<>0 then
begin
IF tv1.DataController.Summary.FooterSummaryValues[0]= tv2.DataController.Summary.FooterSummaryValues[0] then
begin
TBSave.Click;
exit;
end;
end;
end;
end;
end;
end
else
begin
CDSMJID.Append;
CDSMJID.FieldByName('SDefNote').Value:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB2BB><EFBFBD>ڻ<EFBFBD><DABB>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>';
CDSMJID.FieldByName('MJID').Value:=trim(SmNO.Text);
CDSMJID.Post;
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.wav'),0, SND_ASYNC);
end;
end;
{ IF trim(CDSMJID.FieldByName('SDefNote').AsString)<>'ɨ<><C9A8><EFBFBD>ɹ<EFBFBD>' then
begin
MovePanel1.Visible:=true;
Edit2.Text:=SmNO.Text;
Label2.Caption:=trim(CDSMJID.FieldByName('SDefNote').AsString);
end;}
end;
procedure TfrmCKSMEdit.FormDestroy(Sender: TObject);
begin
wRITECxGrid(self.Caption+tV1.Name,Tv1,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
wRITECxGrid(self.Caption+TV2.Name+'2',Tv2,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
frmCKSMEdit:=nil;
end;
procedure TfrmCKSMEdit.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=cafree;
end;
procedure TfrmCKSMEdit.TBCloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmCKSMEdit.FormCreate(Sender: TObject);
begin
Panel2.Align:=alClient;
end;
procedure TfrmCKSMEdit.SmNOKeyPress(Sender: TObject; var Key: Char);
begin
IF key=#13 then
begin
MovePanel1.Visible:=false;
if trim(smno.Text)='' then exit;
IF uppercase(leftBstr(trim(smno.Text),2))='JM' then
begin
IF not CDSMJID.IsEmpty then
begin
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>.wav'),0, SND_ASYNC);
exit;
end;
inItorder();
end
else
begin
IF CDSOrder.IsEmpty then
begin
MovePanel1.Visible:=true;
Edit2.Text:=SmNO.Text;
Label2.Caption:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>';
smno.Text:='';
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>.wav'),0, SND_ASYNC);
exit;
end;
if not CDSMJID.Locate('MJID',trim(smNo.Text),[]) then
begin
initMjid10();
end
else
begin
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C>ظ<EFBFBD>ɨ<EFBFBD><C9A8>.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C>ظ<EFBFBD>ɨ<EFBFBD><C9A8>.wav'),0, SND_ASYNC);
end;
end;
smno.Text:='';
smno.SetFocus;
end;
end;
procedure TfrmCKSMEdit.FormShow(Sender: TObject);
begin
ReadCxGrid(self.Caption+tV1.Name,Tv1,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
ReadCxGrid(self.Caption+TV2.Name+'2',Tv2,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
MovePanel1.Left:=(Width-MovePanel1.Width) div 2;
MovePanel1.top:=(Height-MovePanel1.Height-200) div 2;
InitGrid();
end;
procedure TfrmCKSMEdit.TV2CustomDrawCell(Sender: TcxCustomGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
var ADone: Boolean);
var
i:integer;
begin
i:=tv2.GetColumnByFieldName('SDefNote').Index;
if (AViewInfo.GridRecord.Values[i]<><><C9A8><EFBFBD>ɹ<EFBFBD>') then
ACanvas.Brush.Color:=clred;
end;
procedure TfrmCKSMEdit.TBSaveClick(Sender: TObject);
begin
IF CDSOrder.IsEmpty then exit;
if CDSMJID.IsEmpty then exit;
{ IF tv1.DataController.Summary.FooterSummaryValues[0]<>0 then
begin
IF tv1.DataController.Summary.FooterSummaryValues[0]<> tv2.DataController.Summary.FooterSummaryValues[0] then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',MB_ICONERROR);
exit;
end;
end;
IF tv1.DataController.Summary.FooterSummaryValues[1]<>0 then
begin
IF tv1.DataController.Summary.FooterSummaryValues[1]<> tv2.DataController.Summary.FooterSummaryValues[1] then
begin
// if Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>Ƿ񱣴棿','<27><>ʾ',32+4)<>IDYES then Exit;
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',MB_ICONERROR);
exit;
end;
end;
}
try
// ADOQueryCmd.Connection.BeginTrans;
IF not savePh() then
begin
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>.wav'),0, SND_ASYNC);
exit;
end
else
begin
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>.wav'),0, SND_ASYNC);
initGrid();
exit;
end;
// ADOQueryCmd.Connection.CommitTrans;
except
// ADOQueryCmd.Connection.RollbackTrans;
end;
end;
procedure TfrmCKSMEdit.PHYGBtnClick(Sender: TObject);
begin
frmUserHelp:=TfrmUserHelp.Create(self);
with frmUserHelp do
begin
if showmodal=1 then
begin
PHYG.Text:=trim(ADOQueryHelp.fieldbyname('userName').AsString);
end;
free;
end;
end;
procedure TfrmCKSMEdit.Button4Click(Sender: TObject);
begin
MovePanel1.Visible:=false;
end;
procedure TfrmCKSMEdit.ToolButton1Click(Sender: TObject);
var
kcQty,num1:double;
i:integer;
isEdit:boolean;
begin
if not CDSMJID.Active then exit;
if CDSMJID.Locate('SSel',True,[])=False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ',0);
Exit;
end;
isEdit:=false;
frmKCEdit:=TfrmKCEdit.create(self);
with frmKCEdit do
begin
if showmodal=1 then
begin
num1:=strtofloatdef(cxCurrencyEdit2.Text,0);
i:=RadioGroup1.ItemIndex;
isEdit:=true;
end;
free;
end;
IF Isedit=false then exit;
try
ADOQueryCmd.Connection.BeginTrans;
with CDSMJID do
begin
while CDSMJID.Locate('SSel',True,[]) do
begin
IF trim(Fieldbyname('SDefNote').AsString)=<><C9A8><EFBFBD>ɹ<EFBFBD>' then
begin
if i=0 then
kcQty:=CDSMJID.fieldbyname('Qty').AsFloat + num1 ;
if i=1 then
kcQty:=CDSMJID.fieldbyname('Qty').AsFloat - num1 ;
if i=2 then
kcQty:=strtofloat(format('%.1f',[CDSMJID.fieldbyname('Qty').AsFloat * num1])) ;
if i=3 then
kcQty:=strtofloat(format('%.1f',[CDSMJID.fieldbyname('Qty').AsFloat / num1])) ;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' Update CK_BanCP_KC Set ZDYFlote1=KCqty ');
sql.Add(' where CRID='+CDSMJID.Fieldbyname('CRID').AsString);
sql.Add(' and ZDYFlote1=0 ');
sql.Add(' Update CK_BanCP_KC Set kcqty='''+floattostr(kcQty)+''',ZDYStr1=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' ');
sql.Add(' where CRID='+CDSMJID.Fieldbyname('CRID').AsString);
sql.Add(' Update CK_BanCP_KC Set kcRollNum=0 ');
sql.Add(' where CRID='+CDSMJID.Fieldbyname('CRID').AsString);
sql.Add(' and kcqty=0 and kcRollNum<>0 ');
ExecSQL;
end;
Edit;
FieldByName('qty').Value:=kcQty;
FieldByName('SSel').Value:=False;
post;
end
else
begin
Edit;
FieldByName('SSel').Value:=False;
post;
end;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
// initGrid();
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!','<27><>ʾ',0);
Exit;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>쳣!','<27><>ʾ',0);
end;
end;
procedure TfrmCKSMEdit.CheckBox1Click(Sender: TObject);
begin
IF CDSMJID.IsEmpty then exit;
with CDSMJID do
begin
DisableControls;
first;
while not eof do
begin
edit;
fieldbyname('ssel').Value:=checkbox1.Checked;
post;
next;
end;
First;
EnableControls;
end;
end;
procedure TfrmCKSMEdit.ToolButton2Click(Sender: TObject);
var
fPrintFile:string;
Txt,fImagePath:string;
Moudle: THandle;
Makebar:TMakebar;
Mixtext:TMixtext;
begin
if CDSMJID.IsEmpty then Exit;
if CDSMJID.Locate('SSel',True,[])=False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ',0);
Exit;
end;
CDSMJID.DisableControls;
with CDSMJID do
begin
First;
while not Eof do
begin
if CDSMJID.FieldByName('SSel').AsBoolean=True then
begin
try
Moudle:=LoadLibrary('MakeQRBarcode.dll');
@Makebar:=GetProcAddress(Moudle,'Make');
@Mixtext:=GetProcAddress(Moudle,'MixText');
Txt:=Trim(CDSMJID.fieldbyname('MJID').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('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',MB_ICONERROR);
CDSMJID.EnableControls;
exit;
end;
with ADOQueryPrint do //Ӣ<><D3A2><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>ж<EFBFBD>ȡ<EFBFBD><C8A1>Ҫ<EFBFBD>ڿͻ<DABF><CDBB>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ȡ<EFBFBD><C8A1>note<74>ֶΡ<D6B6>
begin
Close;
SQL.Clear;
sql.Add('select A.*,kcQty as mjlen,kcQtyUnit as MJTypeother ');
sql.Add(' from CK_BanCP_KC A') ;
SQL.Add(' where A.MJID='''+Trim(CDSMJID.fieldbyname('MJID').AsString)+'''');
SQL.Add(' and KCQty>0 ');
Open;
end;
fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\ͨ<>ñ<EFBFBD>ǩ.rmf' ;
if FileExists(fPrintFile) then
begin
RMVariables['QRBARCODE']:=fImagePath;
RMGridReport1.LoadFromFile(fPrintFile);
// RMGridReport1.ShowReport;
RMGridReport1.PrintReport;
end else
begin
CDSMJID.EnableControls;
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>'+ExtractFilePath(Application.ExeName)+'Report\<5C><><EFBFBD><EFBFBD>ǩ.rmf'),'<27><>ʾ',0);
Exit;
end;
end;
Next;
end;
end;
CDSMJID.EnableControls;
end;
procedure TfrmCKSMEdit.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
IF not CDSMJID.IsEmpty then
begin
if application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><E6A3BF><EFBFBD>Ƿ<EFBFBD>Ҫ<EFBFBD>˳<EFBFBD><CBB3><EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ!',MB_YESNO+MB_ICONQUESTION)=IDYES
then CanClose:= True
else CanClose:= False;
end;
end;
end.