D7gmYushang/成品仓库(FinishedClothWarehouse.dll)/U_KcRollCaiFen.pas

972 lines
26 KiB
ObjectPascal
Raw Normal View History

2025-09-24 13:13:14 +08:00
unit U_KcRollCaiFen;
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, RM_Dataset, RM_System,
RM_Common, RM_Class, RM_GridReport, cxLookAndFeels, cxLookAndFeelPainters,
cxNavigator, RM_Preview;
type
TfrmKcRollCaiFen = class(TForm)
ToolBar1: TToolBar;
TBSave: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
Label1: TLabel;
Panel2: TPanel;
cxGrid2: TcxGrid;
TV2: TcxGridDBTableView;
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;
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;
CheckBox3: TCheckBox;
Panel3: TPanel;
MJLen: TEdit;
Label5: TLabel;
Label9: TLabel;
Edit7: TEdit;
Label32: TLabel;
Label33: TLabel;
Edit8: TEdit;
Edit6: TEdit;
Label26: TLabel;
BTPrint: TButton;
Button5: TButton;
ADOQueryPrint: TADOQuery;
RM2: TRMGridReport;
RMDB_Main: TRMDBDataSet;
MJQty4: TEdit;
Label3: TLabel;
Label4: TLabel;
MJQty3: TEdit;
Label6: TLabel;
Label7: TLabel;
V2Column3: TcxGridDBColumn;
V2Column4: TcxGridDBColumn;
V2Column5: TcxGridDBColumn;
Label8: TLabel;
MKXS: TEdit;
Panel5: TPanel;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1MJID: TcxGridDBColumn;
v1P_Code: TcxGridDBColumn;
v1P_Color: TcxGridDBColumn;
v1RollNum: TcxGridDBColumn;
v1Qty: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
Button1: TButton;
Edit1: TEdit;
Label10: TLabel;
ComboBox1: TComboBox;
Label11: TLabel;
kuwei: TEdit;
ADOQuery1: TADOQuery;
MovePanel1: TMovePanel;
Label2: TLabel;
Edit2: TEdit;
Button4: TButton;
Label12: TLabel;
Label13: TLabel;
KJ: TEdit;
Label14: TLabel;
Edit3: TEdit;
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 Button4Click(Sender: TObject);
procedure Edit7Click(Sender: TObject);
procedure Edit8Click(Sender: TObject);
procedure Edit6Click(Sender: TObject);
procedure BTPrintClick(Sender: TObject);
procedure Tv1DblClick(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure MJLenChange(Sender: TObject);
procedure MKXSExit(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Label13Click(Sender: TObject);
private
procedure InitGrid();
procedure InitMJID();
function Savedata1(): boolean;
function Savedata2(): boolean;
procedure Printdata(FMJID: string);
procedure On1301(var Message: Tmessage); message 1301;
procedure CloseCom(DllName: string);
procedure OpenCom(DllName: string);
procedure QuantityConversion();
{ Private declarations }
public
iscom: boolean;
isCommopen: boolean;
{ Public declarations }
end;
var
frmKcRollCaiFen: TfrmKcRollCaiFen;
newh, newh1: hwnd;
implementation
uses
U_DataLink, U_Fun, U_iniParam, U_ZDYHelp, U_LabelList;
{$R *.dfm}
procedure TfrmKcRollCaiFen.QuantityConversion();
var
MLen, MNWet, MGWet, MPWet, MCC, FYJZQty: Double;
begin
MLen := StrToFloatdef(trim(MJLen.Text), 0);
MNWet := StrToFloatdef(trim(MJQty4.Text), 0);
MPWet := StrToFloatdef(trim(MJQty3.Text), 0);
MCC := StrToFloatdef(trim(MKXS.Text), 0);
//<2F><><EFBFBD><EFBFBD> <20><> <20><>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD>
if TV2.DataController.Summary.FooterSummaryValues[2] <> NULL then
begin
FYJZQty := StrToFloatdef(TV2.DataController.Summary.FooterSummaryValues[2], 0);
end
else
begin
FYJZQty := 0;
end;
if MCC > 0 then
begin
MGWet := StrToFloat(format('%.1f', [(MLen - FYJZQty) * MCC]));
MNWet := MGWet - MPWet;
MJQty4.Text := FloatToStr(MNWet);
end;
// MNWet := MGWet - MPWet;
MJQty4.Text := FloatToStr(MNWet);
end;
procedure TfrmKcRollCaiFen.CloseCom(DllName: string);
type
TMyFunc = function(sCommName: PAnsiChar): HWND; stdcall;
var
Tf1: TMyFunc;
Tp1: TFarProc;
Th1: Thandle;
begin
Th1 := LoadLibrary(Pchar(trim(DllName)));
if Th1 > 0 then
begin
try
Tp1 := GetProcAddress(Th1, 'CommClose');
if Tp1 <> nil then
begin
Tf1 := TMyFunc(Tp1);
newh1 := Tf1('Comm1');
end
else
begin
end;
finally
// FreeLibrary(Th1);
end;
end
else
begin
application.MessageBox(Pchar('<27>Ҳ<EFBFBD><D2B2><EFBFBD> ' + trim(DllName) + ' <20>ļ<EFBFBD><C4BC><EFBFBD>'), '<27><>ʾ');
end;
end;
procedure TfrmKcRollCaiFen.OpenCom(DllName: string);
type
TMyFunc = function(fhandle: hwnd; sCommName: PAnsiChar; IntTime: integer; IsMessage: integer): HWND; stdcall;
var
Tf: TMyFunc;
Tp: TFarProc;
Th: Thandle;
begin
// closeCom(FComFile);
Th := LoadLibrary(Pchar(trim(DllName)));
if Th > 0 then
begin
try
Tp := GetProcAddress(Th, 'CommOpen');
if Tp <> nil then
begin
Tf := TMyFunc(Tp);
newh := Tf(self.Handle, 'Comm1', 500, 1);
if newh < 1 then
begin
application.MessageBox(Pchar('<27>򿪴<EFBFBD><F2BFAAB4><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>'), '<27><>ʾ');
end
else
IsCommOpen := true;
end
else
begin
IsCommOpen := false;
end;
finally
// FreeLibrary(Th);
end;
end
else
begin
IsCommOpen := false;
application.MessageBox(Pchar('<27>Ҳ<EFBFBD><D2B2><EFBFBD> ' + trim(DllName) + ' <20>ļ<EFBFBD><C4BC><EFBFBD>'), '<27><>ʾ');
end;
end;
procedure TfrmKcRollCaiFen.On1301(var Message: Tmessage);
var
i1, i2: integer;
unitname: string;
fdata: double;
begin
i1 := Message.WParam;
i2 := Message.LParam;
if not CheckBox3.Checked then
exit;
MJLen.Text := format('%.1f', [i1 / 100000]);
if i2 = 0 then
Label9.Caption := 'M'
else
Label9.Caption := 'Y';
end;
procedure TfrmKcRollCaiFen.Printdata(FMJID: string);
var
fPrintFile: string;
Txt, fImagePath: string;
Moudle: THandle;
Makebar: TMakebar;
Mixtext: TMixtext;
begin
with ADOQueryPrint do
begin
Close;
SQL.Clear;
SQL.Add('exec P_Print_JYLab ' + quotedstr(Trim(FMJID)));
Open;
end;
try
Moudle := LoadLibrary('MakeQRBarcode.dll');
@Makebar := GetProcAddress(Moudle, 'Make');
@Mixtext := GetProcAddress(Moudle, 'MixText');
Txt := Trim(ADOQueryPrint.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);
exit;
end;
if Edit1.Text <> '' then
begin
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\' + trim(Edit1.Text) + '.rmf';
ExportFtErpFile(Trim(Edit1.Text) + '.rmf', ADOQueryTmp);
// ExportFtErpFile(trim(Edit1.Text) + '.rmf', ADOQueryTemp);
end
else
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ͨ<><CDA8>Ӣ<EFBFBD>ı<EFBFBD>ǩ.rmf';
if FileExists(fPrintFile) then
begin
RMVariables['QRBARCODE'] := fImagePath;
RM2.LoadFromFile(fPrintFile);
Rm2.DefaultCopies := StrToIntDef(ComboBox1.Text, 0);
RM2.ShowReport;
// RM2.PrintReport;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>' + ExtractFilePath(Application.ExeName) + 'Report\' + trim(Edit1.Text)), '<27><>ʾ', 0);
end;
end;
function TfrmKcRollCaiFen.Savedata2(): boolean;
var
i, FCRID: integer;
fconNo, FC_CodeName, FC_Color, fMJID: string;
fRollNum, FQty, fMJQty2, FMJQty3, fMJQty4, FMJQty5, fMJMaoZ: double;
begin
result := false;
if CDSOrder.RecordCount <= 1 then
begin
application.MessageBox('<27><><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ڻ<EFBFBD><DABB>ߵ<EFBFBD><DFB5><EFBFBD>һƥ<D2BB><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><E8B5BD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
i := 0;
{with CDSOrder do
begin
DisableControls;
First;
while not eof do
begin
if i=0 then
begin
// fconNo:= trim(Fieldbyname('ConNo').AsString);
FC_CodeName:= trim(Fieldbyname('CodeName').AsString);
FC_Color:= trim(Fieldbyname('C_Color').AsString);
end
else
begin
{ if trim(fconNo)<>trim(Fieldbyname('ConNo').AsString) then
begin
EnableControls;
application.MessageBox('<27><><EFBFBD>񵥺Ų<F1B5A5BA>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>ܺϲ<DCBA><CFB2><EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
exit;
end;
if trim(FC_CodeName)<>trim(Fieldbyname('C_CodeName').AsString) then
begin
EnableControls;
application.MessageBox('<27><>Ʒ<EFBFBD><C6B7><EFBFBD>Ʋ<EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>ܺϲ<DCBA><CFB2><EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
exit;
end;
if trim(FC_Color)<>trim(Fieldbyname('C_Color').AsString) then
begin
EnableControls;
application.MessageBox('<27><>ɫ<EFBFBD><C9AB>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD>ܺϲ<DCBA><CFB2><EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
exit;
end;
end;
i:=i+1;
next;
end;
EnableControls;
First;
end;
if i<2 then exit; }
ADOQueryCmd.Connection.BeginTrans;
try
fRollNum := 0;
FQty := 0;
i := 0;
fMJQty2 := 0;
FMJQty3 := 0;
fMJQty4 := 0;
FMJQty5 := 0;
fMJMaoZ := 0;
with CDSOrder do
begin
DisableControls;
First;
while not eof do
begin
// if Fieldbyname('Ssel').AsBoolean then
// begin
if i = 0 then
begin
FCRID := Fieldbyname('CRID').AsInteger;
fMJID := Fieldbyname('MJID').asstring;
end;
fRollNum := 1;
FQty := strtofloatdef(trim(MJLen.Text), 0);
fMJQty2 := fMJQty2 + Fieldbyname('MJQty2').AsFloat;
FMJQty3 := strtofloatdef(trim(mjQty3.Text), 0);
fMJQty4 := strtofloatdef(trim(mjQty4.Text), 0);
FMJQty5 := FMJQty5 + Fieldbyname('MJQty5').AsFloat;
fMJMaoZ := FMJQty3 + fMJQty4;
with adoqueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from CK_BanCP_KC ');
sql.Add('where CRID=' + quotedstr(trim(CDSOrder.Fieldbyname('CRID').AsString)));
open;
edit;
fieldbyname('ZDYstr1').Value := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϲ<EFBFBD>';
fieldbyname('ZDYFlote1').Value := fieldbyname('kcQty').AsFloat;
// fieldbyname('KCROllNum').Value:=0;
fieldbyname('kcQty').Value := 0;
fieldbyname('kcKGQty').Value := 0;
post;
end;
i := i + 1;
//end;
next;
end;
EnableControls;
First;
end;
with adoqueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from CK_BanCP_KC ');
sql.Add('where CRID=' + quotedstr(inttostr(FCRID)));
open;
edit;
// fieldbyname('KCROllNum').Value:=1;
fieldbyname('kcQty').Value := FQty;
fieldbyname('kckgQty').Value := fMJMaoZ;
post;
end;
with adoqueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from WFB_MJJY ');
sql.Add('where MJID=' + quotedstr(trim(fMJID)));
open;
edit;
fieldbyname('MJLen').Value := FQty;
fieldbyname('MJQty2').Value := fMJQty2;
fieldbyname('MJQty3').Value := FMJQty3;
fieldbyname('MJQty4').Value := fMJQty4;
fieldbyname('MJQty5').Value := FMJQty5;
fieldbyname('MJMaoZ').Value := fMJMaoZ;
post;
end;
with adoqueryCmd do
begin
close;
sql.Clear;
SQL.Add('select A.*,D.PRTCodeName,D.PrtColor,C.MJQty2,C.MJQty3,C.MJQty4,C.MJQty5,C.MJMaoZ from CK_BanCP_KC A');
sql.Add('inner join WFB_MJJY C on C.MJID=A.MJID ');
sql.Add('inner join JYOrder_sub D on D.MainID=C.MainID and D.subID=C.subID ');
sql.Add('where CRID=' + quotedstr(inttostr(FCRID)));
open;
SInitCDSData20(adoqueryCmd, CDSMJID);
end;
ADOQueryCmd.Connection.CommitTrans;
CDSOrder.EmptyDataSet;
if Trim(Edit6.Text) = '<27><>' then
begin
printdata(fMJID);
end;
ModalResult := 1;
// application.MessageBox('<27><><EFBFBD>ݺϲ<DDBA><CFB2>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ');
// TBRafresh.Click;
except
ADOQueryCmd.Connection.RollbackTrans;
// application.MessageBox('<27><><EFBFBD>ݺϲ<DDBA>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',0);
end;
end;
function TfrmKcRollCaiFen.Savedata1(): boolean;
var
fbcID, FCRID, fAPTM, FMJID, fNewMJID, fnewbcid: string;
CRID: integer;
i: integer;
fKGQty1, fKGQty2: double;
begin
result := false;
if CDSOrder.RecordCount > 1 then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>һƥ<D2BB><C6A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><E8B5BD>ƥ<EFBFBD><C6A5><EFBFBD><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
if (StrToFloatDef(MJLen.Text, 0) = 0) and (StrToFloatDef(MJQty4.Text, 0) = 0) then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܶ<EFBFBD>Ϊ0<CEAA><30>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
if CDSOrder.FieldByName('KCqty').AsFloat > 0 then
begin
if strtofloatdef(trim(mjlen.Text), 0) > CDSOrder.FieldByName('KCqty').AsFloat then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
end;
if GetLSNo(ADOQueryCmd, fAPTM, 'C', 'APTM', 4, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
fbcID := CDSOrder.fieldbyname('BCID').AsString;
FCRID := CDSOrder.fieldbyname('CRID').AsString;
FMJID := CDSOrder.fieldbyname('MJID').AsString;
ADOQueryCmd.Connection.BeginTrans;
try
//<2F><><EFBFBD><EFBFBD><EFBFBD>¾<EFBFBD>
with ADOQueryTmp do
begin
close;
sql.Clear;
sql.Add('select * from WFB_MJJY A');
sql.Add('where MJID=' + quotedstr(trim(CDSOrder.fieldbyname('MJID').asstring)));
open;
end;
if GetLSNo(ADOQueryCmd, fNewMJID, 'C', 'WFB_MJJY', 4, 1) = False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><ECB3A3>', '<27><>ʾ', 0);
exit;
end;
with ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from WFB_MJJY ');
sql.Add('where MJID=' + quotedstr(trim(FMJID)));
open;
end;
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from WFB_MJJY A');
sql.Add('where 1=2 ');
open;
end;
ADOQueryCmd.Append;
for i := 0 to ADOQueryCmd.FieldCount - 1 do
begin
ADOQueryCmd.fields[i].value := ADOQueryTmp.Fields[i].Value;
end;
ADOQueryCmd.FieldByName('MJID').Value := fNewMJID;
ADOQueryCmd.FieldByName('mjxh').Value := ADOQuery1.fieldbyname('mjxh').value;
ADOQueryCmd.FieldByName('MJQty2').Value := 0;
ADOQueryCmd.FieldByName('MJQty5').Value := 0;
ADOQueryCmd.FieldByName('MJStr2').Value := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
// ADOQueryCmd.FieldByName('MJQty3').Value := strtofloatdef(MJQty3.Text, 0);
if CDSOrder.FieldByName('KCqty').AsFloat <= 0 then
begin
ADOQueryCmd.fieldbyname('MJLen').Value := 0;
end
else
begin
ADOQueryCmd.fieldbyname('MJLen').Value := ADOQuery1.fieldbyname('MJLen').AsFloat - strtofloatdef(MJLen.Text, 0);
end;
ADOQueryCmd.fieldbyname('MJQty4').Value := ADOQuery1.fieldbyname('MJQty4').AsFloat - strtofloatdef(MJQty4.Text, 0);
ADOQueryCmd.fieldbyname('MJMaoZ').Value := ADOQuery1.fieldbyname('MJMaoZ').AsFloat - strtofloatdef(MJQty4.Text, 0);
//- strtofloatdef(MJQty3.Text, 0);
//- strtofloatdef(MJQty3.Text, 0);
ADOQueryCmd.FieldByName('ZDMJID').Value := FMJID;
ADOQueryCmd.Post;
// with ADOQueryCmd do
// begin
// Close;
// sql.Clear;
// sql.Add('update WFB_MJJY SET MJXH=(SELECT ISNULL(MJXH,0)+1 FROM WFB_MJJY WHERE MJID=' + QuotedStr(Trim(FMJID)));
// SQL.Add(')');
// sql.Add('where MJID=''' + Trim(fNewMJID) + '''');
// execsql;
// end;
// with ADOQueryCmd do
// begin
// Close;
// sql.Clear;
// sql.Add('update WFB_MJJY SET mjxh=1+isnull((select cast (max(mjxh) as int) from WFB_MJJY X where X.subID=WFB_MJJY.subID and X.MJstr4=WFB_MJJY.Mjstr4 and X.MJID<>WFB_MJJY.MJID ),0)');
// sql.Add('where MJID=''' + Trim(fNewMJID) + '''');
// execsql;
// end;
//<2F>޸<EFBFBD>ԭƥ<D4AD><C6A5><EFBFBD><EFBFBD>
with adoqueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from WFB_MJJY ');
sql.Add('where MJID=' + quotedstr(trim(FMJID)));
open;
edit;
if Label13.Caption = 'M' then
begin
ADOQueryCmd.FieldByName('MJLen').Value := strtofloatdef(MJLen.Text, 0) + strtofloatdef(KJ.Text, 0);
end
else
begin
ADOQueryCmd.FieldByName('MJLen').Value := strtofloatdef(MJLen.Text, 0);
end;
if Label13.Caption = 'M' then
begin
ADOQueryCmd.FieldByName('MJQty4').Value := strtofloatdef(MJQty4.Text, 0);
ADOQueryCmd.FieldByName('MJmaoz').Value := strtofloatdef(MJQty4.Text, 0) + strtofloatdef(MJQty3.Text, 0);
end
else
begin
ADOQueryCmd.FieldByName('MJQty4').Value := strtofloatdef(MJQty4.Text, 0) + strtofloatdef(KJ.Text, 0);
ADOQueryCmd.FieldByName('MJmaoz').Value := strtofloatdef(MJQty4.Text, 0) + strtofloatdef(MJQty3.Text, 0) + strtofloatdef(KJ.Text, 0);
end;
ADOQueryCmd.FieldByName('kj').Value := strtofloatdef(KJ.Text, 0);
// ADOQueryCmd.FieldByName('mjstr4').Value := Trim(kuwei.Text);
ADOQueryCmd.FieldByName('MJXH').Value := StrToIntDef(Edit3.Text, 30);
// ADOQueryCmd.FieldByName('jbs').Value:= strtofloatdef(KJ.Text, 0)
// ADOQueryCmd.FieldByName('MJQty4').Value := strtofloatdef(MJQty4.Text, 0);
ADOQueryCmd.FieldByName('MJQty3').Value := strtofloatdef(MJQty3.Text, 0);
post;
end;
//<2F><><EFBFBD>³<EFBFBD><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('exec P_Do_CFCRK @MJID=' + quotedstr(trim(fNewMJID)) + ',@OldMJID=' + quotedstr(trim(FMJID)));
// ShowMessage(SQL.Text);
execsql;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('UPDATE CK_BanCP_CR SET RKPlaCE=' + QuotedStr(Trim(kuwei.Text)));
SQL.Add(',ganghao=' + QuotedStr(Trim(ADOQuery1.FieldByName('MJSTR4').AsString)));
sql.Add(' where MJID=' + QuotedStr(Trim(fNewMJID)));
SQL.Add('AND ISNowCycle=''1''');
SQL.Add('UPDATE WFB_MJJY SET MJSTR4=' + QuotedStr(Trim(ADOQuery1.FieldByName('MJSTR4').AsString)));
sql.Add(' where MJID=' + QuotedStr(Trim(fNewMJID)));
SQL.Add('UPDATE CK_BanCP_CR SET RKPlaCE=' + QuotedStr(Trim(kuwei.Text)));
sql.Add(' where MJID=' + QuotedStr(Trim(FMJID)));
SQL.Add('AND ISNowCycle=''1''');
SQL.Add('UPDATE CK_BanCP_kc SET C_KUWEI=' + QuotedStr(Trim(kuwei.Text)));
sql.Add(' where MJID in (' + quotedstr(trim(fNewMJID)) + ',' + quotedstr(trim(FMJID)) + ')');
SQL.Add('UPDATE FHSQ_SUB SET SFKP=''<27><>''');
SQL.Add('where MJID=' + QuotedStr(Trim(FMJID)));
execsql;
end;
ADOQueryCmd.Connection.CommitTrans;
with adoqueryCmd do
begin
close;
sql.Clear;
SQL.Add('select A.*,D.MPRTCodeName,E.PrtColor,C.MJQty2,C.MJQty3,C.MJQty4,C.MJQty5,C.MJMaoZ from CK_BanCP_KC A');
sql.Add('inner join WFB_MJJY C on C.MJID=A.MJID ');
sql.Add('LEFT join JYOrder_main D on D.MainID=C.MainID ');
sql.Add('LEFT join JYOrder_sub E on E.subID=C.subID ');
sql.Add('where C.MJID in (' + quotedstr(trim(fNewMJID)) + ',' + quotedstr(trim(FMJID)) + ')');
open;
SInitCDSData20(adoqueryCmd, CDSMJID);
end;
CDSOrder.EmptyDataSet;
if Trim(Edit6.Text) = '<27><>' then
begin
printdata(fNewMJID);
printdata(FMJID);
end;
ModalResult := 1;
except
ADOQueryCmd.Connection.RollbackTrans;
application.MessageBox('<27><><EFBFBD>ݱ<EFBFBD><DDB1><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', 0);
end;
end;
procedure TfrmKcRollCaiFen.InitGrid();
begin
with ADOQueryMain do
begin
Close;
sql.Clear;
SQL.Add('select A.*,ISNULL(C_CODENAME,D.MPRTCodeName)MPRTCodeName,ISNULL(C_COLOR,E.PrtColor)PrtColor,C.MJQty2,C.MJQty3,C.MJQty4,C.MJQty5,C.MJMaoZ from CK_BanCP_KC A');
sql.Add('inner join WFB_MJJY C on C.MJID=A.MJID ');
sql.Add('inner join JYOrder_Main D on D.MainID=C.MainID ');
sql.Add('inner join JYOrder_sub E on E.subID=C.subID ');
SQL.Add('where 1=2 ');
Open;
end;
SCreateCDS20(ADOQueryMain, CDSOrder);
SInitCDSData20(ADOQueryMain, CDSOrder);
SCreateCDS20(ADOQueryMain, CDSMJID);
SInitCDSData20(ADOQueryMain, CDSMJID);
end;
procedure TfrmKcRollCaiFen.InitMJID();
var
fP_No: string;
begin
MovePanel1.Visible := false;
with ADOQueryTmp do
begin
Close;
sql.Clear;
SQL.Add('select B.MJID from CK_BanCP_CR B where B.CRFlag=''<27><><EFBFBD><EFBFBD>'' ');
SQL.Add('and B.MJID=' + quotedstr(trim(SmNO.text)));
SQL.Add('AND ISNowCycle=''1''');
Open;
end;
if ADOQueryTmp.IsEmpty = false then
begin
MovePanel1.Visible := true;
Edit2.Text := SmNO.Text;
Label2.Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѳ<EFBFBD><D1B3><EFBFBD>';
exit;
end;
with ADOQueryMain do
begin
Close;
sql.Clear;
SQL.Add('select A.*,ISNULL(C_CODENAME,D.MPRTCodeName)MPRTCodeName,ISNULL(C_COLOR,E.PrtColor)PrtColor,C.MJQty2,C.MJQty3,C.MJQty4,C.MJQty5,C.MJMaoZ ');
SQL.Add(',RKPLACE=(SELECT TOP 1 C_KUWEI FROM CK_BanCP_KC B WHERE B.MJID=A.MJID AND B.KCVALID=''Y'' )');
sql.Add('from CK_BanCP_KC A inner join WFB_MJJY C on C.MJID=A.MJID ');
sql.Add('LEFT join JYOrder_main D on D.MainID=C.MainID ');
sql.Add('LEFT join JYOrder_sub E on E.SubId=C.SubId ');
// 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 a.Cycle=(select max(e.Cycle) from CK_BanCP_CR e where e.mjid=a.mjid) ');
// sql.Add('and KCQty>0 ');
Open;
if not IsEmpty then
begin
if ((Fieldbyname('KCQty').AsFloat <= 0) and (Fieldbyname('KCKGQty').AsFloat <= 0)) then
begin
MovePanel1.Visible := true;
Edit2.Text := SmNO.Text;
Label2.Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѳ<EFBFBD><D1B3><EFBFBD>';
end
else
begin
SInitCDSData20(ADOQueryMain, CDSOrder);
kuwei.Text := Fieldbyname('rkplace').AsString;
end;
end
else
begin
MovePanel1.Visible := true;
Edit2.Text := SmNO.Text;
Label2.Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB2BB><EFBFBD><EFBFBD>';
end;
end;
end;
procedure TfrmKcRollCaiFen.FormDestroy(Sender: TObject);
begin
wRITECxGrid(self.Caption + tV1.Name, Tv1, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
wRITECxGrid(self.Caption + TV2.Name, Tv2, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
frmKcRollCaiFen := nil;
end;
procedure TfrmKcRollCaiFen.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmKcRollCaiFen.TBCloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmKcRollCaiFen.FormCreate(Sender: TObject);
begin
Panel2.Align := alClient;
end;
procedure TfrmKcRollCaiFen.SmNOKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
MovePanel1.Visible := false;
if not CDSOrder.Locate('MJID', trim(smNo.Text), []) then
initMjid();
smno.Text := '';
smno.SetFocus;
if trim(Edit8.Text) = '<27><>' then
begin
if not CDSOrder.IsEmpty then
MJLen.Text := floattostr(tv1.DataController.Summary.FooterSummaryValues[1]);
end;
end;
end;
procedure TfrmKcRollCaiFen.FormShow(Sender: TObject);
begin
ReadCxGrid(self.Caption + tV1.Name, Tv1, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
ReadCxGrid(self.Caption + TV2.Name, Tv2, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>');
MovePanel1.Left := (Width - MovePanel1.Width) div 2;
MovePanel1.top := (Height - MovePanel1.Height - 200) div 2;
InitGrid();
SmNO.SetFocus;
end;
procedure TfrmKcRollCaiFen.Button4Click(Sender: TObject);
begin
MovePanel1.Visible := false;
end;
procedure TfrmKcRollCaiFen.Edit7Click(Sender: TObject);
begin
if Trim(Edit7.Text) = '' then
begin
Edit7.Text := '<27><>';
Edit8.Text := '';
// Edit9.Text:='';
end
else
begin
Edit7.Text := '';
Edit8.Text := '';
// Edit9.Text:='';
end;
end;
procedure TfrmKcRollCaiFen.Edit8Click(Sender: TObject);
begin
if Trim(Edit8.Text) = '' then
begin
Edit7.Text := '';
Edit8.Text := '<27><>';
// Edit9.Text:='';
end
else
begin
Edit7.Text := '';
Edit8.Text := '';
// Edit9.Text:='';
end;
if trim(Edit8.Text) = '<27><>' then
begin
// IF not CDSOrder.IsEmpty then
// MJLen.Text:=floattostr(tv1.DataController.Summary.FooterSummaryValues[1]);
end;
end;
procedure TfrmKcRollCaiFen.Edit6Click(Sender: TObject);
begin
if Trim(Edit6.Text) = '' then
begin
Edit6.Text := '<27><>';
end
else
begin
Edit6.Text := '';
end;
end;
procedure TfrmKcRollCaiFen.BTPrintClick(Sender: TObject);
begin
if Trim(Edit7.Text) = '<27><>' then
begin
savedata1();
end;
if Trim(Edit8.Text) = '<27><>' then
begin
savedata2();
end;
SmNO.SetFocus;
end;
procedure TfrmKcRollCaiFen.Tv1DblClick(Sender: TObject);
begin
if CDSOrder.IsEmpty then
exit;
CDSOrder.Delete;
end;
procedure TfrmKcRollCaiFen.Button5Click(Sender: TObject);
begin
if CDSMJID.IsEmpty then
exit;
printdata(CDSMJID.fieldbyname('MJID').AsString);
SmNO.SetFocus;
end;
procedure TfrmKcRollCaiFen.MJLenChange(Sender: TObject);
begin
QuantityConversion();
end;
procedure TfrmKcRollCaiFen.MKXSExit(Sender: TObject);
begin
QuantityConversion();
end;
procedure TfrmKcRollCaiFen.Button1Click(Sender: TObject);
begin
try
frmLabelList := TfrmLabelList.Create(Application);
with frmLabelList do
begin
if ShowModal = 1 then
begin
Edit1.Text := Trim(ADOQueryLabel.fieldbyname('labelCaption').AsString);
end;
end;
finally
frmLabelList.Free;
end;
end;
procedure TfrmKcRollCaiFen.Label13Click(Sender: TObject);
begin
if Label13.Caption = 'M' then
begin
Label13.Caption := 'KG'
end
else
begin
Label13.Caption := 'M'
end;
end;
end.