D7myChuangpin/管理系统/U_KWSMEdit.pas

510 lines
17 KiB
ObjectPascal
Raw Normal View History

2024-07-23 20:18:14 +08:00
unit U_KWSMEdit;
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,MMSystem;
type
TfrmKWSMEdit = class(TForm)
ToolBar1: TToolBar;
TBSave: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
PHYG: TBtnEditA;
defstr2: TComboBox;
Label16: TLabel;
Label15: TLabel;
packNo: TcxCurrencyEdit;
Label14: TLabel;
Label1: TLabel;
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;
CDSMJID: TClientDataSet;
DataSource2: TDataSource;
SmNO: TEdit;
ADOQueryTmp: TADOQuery;
V2Column1: TcxGridDBColumn;
kcKw: TBtnEditA;
Label5: TLabel;
MovePanel1: TMovePanel;
Edit2: TEdit;
Button4: TButton;
Label2: TLabel;
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;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
ADOQueryTm: TADOQuery;
DSTm: TDataSource;
V2Column2: 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 kcKwBtnClick(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
procedure InitGrid();
procedure InitMJID();
procedure InitKw();
function SaveRK():Boolean;
function SaveKW():Boolean;
Procedure QueryRk();
Procedure QueryTM();
{ Private declarations }
public
{ Public declarations }
end;
var
frmKWSMEdit: TfrmKWSMEdit;
implementation
uses
U_DataLink,U_Fun, U_UserHelp, U_ZDYHelp, U_CPKWListSel;
{$R *.dfm}
procedure TfrmKWSMEdit.InitKw();
begin
kcKw.text:='';
CDSMJID.EmptyDataSet;
with ADOQueryTmp do
begin
Close;
sql.Clear;
SQL.add('select * from KH_Zdy_Attachment where ATID='+quotedstr(trim(smNO.Text)));
sql.Add('and Type=''CPKW''');
Open;
end;
IF not ADOQueryTmp.IsEmpty then
begin
kcKw.text:=trim(ADOQueryTmp.fieldbyname('ZdyCode').AsString);
end;
end;
Procedure TfrmKWSMEdit.QueryTm();
begin
{ with ADOQueryTM do
begin
close;
sql.Clear;
sql.Add('select TOP 50 MJID');
sql.Add('from WFB_MJJY A ');
SQL.Add('WHERE exists(select MJID from WFB_MJJY X where X.APID=A.APID and X.MJID='+quotedstr(trim(smNO.Text)));
sql.Add(') and A.mjstr2='<><CEB4><EFBFBD><EFBFBD>'' ');
open;
end; }
end;
Procedure TfrmKWSMEdit.QueryRk();
begin
{ with ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select A.*,hC_ps=A.AordQty2,JY_ps=(select count(MainID) from WFB_MJJY X where X.APID=A.APID),');
sql.Add('JY_Qty=(select sum(MJLen) from WFB_MJJY X where X.APID=A.APID), ');
sql.Add('RK_RollNum=(select sum(RollNum) from CK_BanCP_CR X where X.APID=A.APID and X.CRType=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>''),');
sql.Add('RK_Qty=(select sum(Qty) from CK_BanCP_CR X where X.APID=A.APID and X.CRType=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'') ');
sql.Add('from JYOrder_sub_anPai A ');
SQL.Add('WHERE exists(select MJID from WFB_MJJY X where X.APID=A.APID and X.MJID='+quotedstr(trim(smNO.Text)));
sql.Add(')');
open;
end; }
end;
function TfrmKWSMEdit.SaveKW():Boolean;
begin
Result:=false;
ADOQueryCmd.Connection.BeginTrans;
try
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from CK_BanCP_CR where MJID='''+Trim(ADOQueryMain.fieldbyname('MJId').AsString)+''' ');
Open;
end;
IF not ADOQueryCmd.IsEmpty then
begin
with ADOQueryCmd do
begin
edit;
fieldbyname('kcKw').Value:=trim(kcKw.Text);
Post;
end;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from CK_BanCP_KC where MJID='''+Trim(ADOQueryMain.fieldbyname('MJId').AsString)+''' ');
Open;
end;
IF not ADOQueryCmd.IsEmpty then
begin
with ADOQueryCmd do
begin
edit;
fieldbyname('kcKw').Value:=trim(kcKw.Text);
Post;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
Result:=true;
except
ADOQueryCmd.Connection.RollbackTrans;
end;
end;
function TfrmKWSMEdit.SaveRK():Boolean;
var
maxno:String;
CRID:Integer;
MaxCkNo,MaxCkSubNo:String;
MhcTime:TdateTime;
begin
Result:=false;
ADOQueryCmd.Connection.BeginTrans;
try
with ADOQueryTmp do
begin
Close;
sql.Clear;
SQL.add('Update CK_BanCP_CRID Set CRID=CRID+1');
sql.Add('select * from CK_BanCP_CRID');
Open;
end;
CRID:=ADOQueryTmp.fieldbyname('CRID').AsInteger;
if GetLSNo(ADOQueryTmp,MaxCkNo,'JR','CK_BanCP_CR',4,1)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1>Ʒ<EFBFBD>ֿ<EFBFBD><D6BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from CK_BanCP_CR where 1<>1');
Open;
end;
{ with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select * from JYOrder_Sub_AnPai ');
sql.Add(' where APID='+quotedstr(trim(ADOQueryMain.fieldbyname('APID').AsString)));
open;
IF not ADOQueryTmp.IsEmpty then
begin
mhcTime:=ADOQueryTmp.fieldbyname('ADefDate1').AsDateTime;
end
else
begin
mhcTime:=date();
end;
end; }
mhcTime:=SGetServerDateTime(ADOQueryTmp);
with ADOQueryCmd do
begin
Append;
FieldByName('MainId').Value:=Trim(ADOQueryMain.fieldbyname('MainId').AsString);
FieldByName('SubId').Value:=Trim(ADOQueryMain.fieldbyname('SubId').AsString);
FieldByName('C_Code').Value:=Trim(ADOQueryMain.fieldbyname('C_Code').AsString);
FieldByName('C_CodeName').Value:=Trim(ADOQueryMain.fieldbyname('C_CodeName').AsString);
FieldByName('C_SPec').Value:=Trim(ADOQueryMain.fieldbyname('C_SPec').AsString);
FieldByName('C_Color').Value:=Trim(ADOQueryMain.fieldbyname('C_Color').AsString);
FieldByName('APID').Value:=Trim(ADOQueryMain.fieldbyname('APID').AsString);
FieldByName('MJID').Value:=Trim(ADOQueryMain.fieldbyname('MJId').AsString);
FieldByName('mjxh').Value:=Trim(ADOQueryMain.fieldbyname('mjxh').AsString);
FieldByName('BCGangNO').Value:=Trim(ADOQueryMain.fieldbyname('BCGangNO').AsString);
FieldByName('RCGangNO').Value:=Trim(ADOQueryMain.fieldbyname('RCGangNO').AsString);
FieldByName('BCID').Value:=Trim(MaxCkNo);
FieldByName('CRTime').Value:=FormatDateTime('yyyy-MM-dd',mhcTime);
FieldByName('CRFlag').Value:='<27><><EFBFBD><EFBFBD>';
FieldByName('CRType').Value:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
FieldByName('CRID').Value:=CRID;
FieldByName('KGQty').Value:=0;
FieldByName('Qty').Value:=ADOQueryMain.fieldbyname('MJLen').Value;
FieldByName('RollNum').Value:=1;
FieldByName('QtyUnit').Value:=ADOQueryMain.fieldbyname('MJTypeOther').Value;
FieldByName('CPType').Value:=ADOQueryMain.fieldbyname('MJType').Value;
FieldByName('Note').Value:=ADOQueryMain.fieldbyname('Note').Value;
FieldByName('Filler').Value:=Trim(DName);
FieldByName('FillTime').Value:=SGetServerDateTime(ADOQueryTmp);
// FieldByName('kcKw').Value:=Trim(kcKw.Text);
fieldbyname('kcKw').Value:=GetKw(ADOQueryTmp,ADOQueryMain.fieldbyname('C_CodeName').AsString,ADOQueryMain.fieldbyname('C_Color').AsString);
Post;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from CK_BanCP_KC where 1<>1');
Open;
end;
with ADOQueryCmd do
begin
Append;
FieldByName('CRID').Value:=CRID;
FieldByName('BCID').Value:=Trim(MaxCkNo);
FieldByName('CRTime').Value:=FormatDateTime('yyyy-MM-dd',mhcTime);
FieldByName('CRType').Value:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
FieldByName('CPType').Value:=ADOQueryMain.fieldbyname('MJType').Value;
FieldByName('C_Code').Value:=Trim(ADOQueryMain.fieldbyname('C_Code').AsString);
FieldByName('C_CodeName').Value:=Trim(ADOQueryMain.fieldbyname('C_CodeName').AsString);
FieldByName('C_SPec').Value:=Trim(ADOQueryMain.fieldbyname('C_SPec').AsString);
FieldByName('C_Color').Value:=Trim(ADOQueryMain.fieldbyname('C_Color').AsString);
FieldByName('BCGangNO').Value:=Trim(ADOQueryMain.fieldbyname('BCGangNO').AsString);
FieldByName('RCGangNO').Value:=Trim(ADOQueryMain.fieldbyname('RCGangNO').AsString);
FieldByName('MJID').Value:=Trim(ADOQueryMain.fieldbyname('MJID').AsString);
FieldByName('KCKGQty').Value:=0;
FieldByName('KCQty').Value:=ADOQueryMain.fieldbyname('MJlen').Value;
FieldByName('KCRollNum').Value:=1;
FieldByName('KCQtyUnit').Value:=ADOQueryMain.fieldbyname('MJTypeOther').Value;
FieldByName('mjxh').Value:=Trim(ADOQueryMain.fieldbyname('mjxh').AsString);
FieldByName('KCNote').Value:=ADOQueryMain.fieldbyname('Note').Value;
// FieldByName('kcKw').Value:=Trim(kcKw.Text);
fieldbyname('kcKw').Value:=GetKw(ADOQueryTmp,ADOQueryMain.fieldbyname('C_CodeName').AsString,ADOQueryMain.fieldbyname('C_Color').AsString);
Post;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('Update WFB_MJJY Set MJStr2=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' where MJID='''+Trim(ADOQueryMain.fieldbyname('MJID').AsString)+'''');
ExecSQL;
end;
ADOQueryCmd.Connection.CommitTrans;
Result:=true;
except
ADOQueryCmd.Connection.RollbackTrans;
end;
end;
procedure TfrmKWSMEdit.InitGrid();
begin
with ADOQueryMain do
begin
Close;
sql.Clear;
SQL.Add('select A.* from CK_BanCP_CR A ');
SQL.Add('where 1=2 ');
Open;
end;
SCreateCDS20(ADOQueryMain,CDSMJID);
SInitCDSData20(ADOQueryMain,CDSMJID);
end;
procedure TfrmKWSMEdit.InitMJID();
begin
MovePanel1.Visible:=false;
with ADOQueryMain do
begin
Close;
sql.Clear;
SQL.Add('select A.*,B.MainID,B.SubID ');
SQL.Add('from CK_BanCP_KC A');
sql.Add('inner join CK_BanCP_CR B on B.BCID=A.BCID');
sql.Add('where A.MJID='+quotedstr(trim(SmNO.Text)));
Open;
if not IsEmpty then
begin
IF not CDSMJID.Locate('MJID',trim(ADOQueryMain.Fieldbyname('MJID').AsString),[]) then
begin
IF saveKW() then
begin
CDSMJID.Append;
CDSMJID.FieldByName('SDefNote').Value:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ɹ<EFBFBD>';
CDSMJID.FieldByName('MJID').Value:=trim(ADOQueryMain.Fieldbyname('MJID').AsString);
CDSMJID.FieldByName('KCKw').Value:=trim(KCKw.Text);
// 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:=1;
CDSMJID.FieldByName('Qty').Value:=ADOQueryMain.Fieldbyname('KCQty').AsFloat;
CDSMJID.FieldByName('QtyUnit').Value:=trim(ADOQueryMain.Fieldbyname('KCQtyUnit').AsString);
CDSMJID.FieldByName('mainID').Value:=trim(ADOQueryMain.Fieldbyname('mainID').AsString);
CDSMJID.FieldByName('subID').Value:=trim(ADOQueryMain.Fieldbyname('subID').AsString);
CDSMJID.FieldByName('RCGangNO').Value:=trim(ADOQueryMain.Fieldbyname('RCGangNO').AsString);
CDSMJID.FieldByName('BCgangNO').Value:=trim(ADOQueryMain.Fieldbyname('BCgangNO').AsString);
CDSMJID.Post;
IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><>ȷ.wav')) then
PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><>ȷ.wav'),0, SND_ASYNC);
// QueryRk();
// QueryTm();
end
else
begin
CDSMJID.Append;
CDSMJID.FieldByName('SDefNote').Value:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λʧ<CEBB>ܣ<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;
end
else
begin
CDSMJID.Append;
CDSMJID.FieldByName('SDefNote').Value:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB2BB><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)<>'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ɹ<EFBFBD>' then
begin
MovePanel1.Visible:=true;
Edit2.Text:=SmNO.Text;
Label2.Caption:=trim(CDSMJID.FieldByName('SDefNote').AsString);
end;
SmNO.Text:='';
end;
procedure TfrmKWSMEdit.FormDestroy(Sender: TObject);
begin
frmkwSMEdit:=nil;
end;
procedure TfrmKWSMEdit.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
// writeCxGrid(self.Caption+tv1.Name,Tv1,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
writeCxGrid(self.Caption+Tv2.Name,Tv2,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
// writeCxGrid(self.Caption+Tv3.Name,Tv3,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
Action:=cafree;
end;
procedure TfrmKWSMEdit.TBCloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmKWSMEdit.FormCreate(Sender: TObject);
begin
Panel2.Align:=alClient;
// readCxGrid(self.Caption+tv1.Name,Tv1,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
readCxGrid(self.Caption+Tv2.Name,Tv2,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
//readCxGrid(self.Caption+Tv3.Name,Tv3,'<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
end;
procedure TfrmKWSMEdit.SmNOKeyPress(Sender: TObject; var Key: Char);
begin
IF key=#13 then
begin
if trim(smno.Text)='' then exit;
IF uppercase(leftBstr(trim(smno.Text),2))='KW' then
begin
InitKw();
end
else
begin
IF trim(kcKw.Text)='' then
begin
MovePanel1.Visible:=true;
Edit2.Text:=SmNO.Text;
Label2.Caption:='<27><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>';
smno.Text:='';
// IF FileExists(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>.wav')) then
// PlaySound(PChar(ExtractFilePath(Application.ExeName)+'wav\<5C><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>.wav'),0, SND_ASYNC);
exit;
end;
initMJID();
end;
smno.Text:='';
smno.SetFocus;
end;
end;
procedure TfrmKWSMEdit.FormShow(Sender: TObject);
begin
MovePanel1.Left:=(Width-MovePanel1.Width) div 2;
MovePanel1.top:=(Height-MovePanel1.Height-200) div 2;
InitGrid();
end;
procedure TfrmKWSMEdit.TV2CustomDrawCell(Sender: TcxCustomGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
var ADone: Boolean);
var
i:integer;
begin
i:=tv2.GetColumnByFieldName('SDefNote').Index;
if (AViewInfo.GridRecord.Values[i]<>'<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>') then
ACanvas.Brush.Color:=clred;
end;
procedure TfrmKWSMEdit.kcKwBtnClick(Sender: TObject);
begin
try
frmCPKWListSel:=TfrmCPKWListSel.Create(Application);
with frmCPKWListSel do
begin
if ShowModal=1 then
begin
kcKw.Text:=Trim(CDS_HZ.fieldbyname('ZdyCode').AsString);
end;
end;
finally
frmCPKWListSel.Free;
end;
end;
procedure TfrmKWSMEdit.Button4Click(Sender: TObject);
begin
MovePanel1.Visible:=False;
SmNO.SetFocus;
end;
end.