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

1137 lines
31 KiB
ObjectPascal
Raw Normal View History

2025-09-24 13:13:14 +08:00
unit U_KcRollCaiFen2;
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
TfrmKcRollCaiFen2 = 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;
V2Column2: TcxGridDBColumn;
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;
v1Column1: 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;
Button2: TButton;
ADOQueryXH: TADOQuery;
cxStyleRepository2: TcxStyleRepository;
cxStyle3: TcxStyle;
Button3: TButton;
Button6: TButton;
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);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
procedure InitGrid();
procedure InitMJID();
function Savedata1(): boolean;
function Savedata2(): boolean;
procedure Printdata(FMJID: string);
procedure Printdata2(FMJID: string; FnewMJID: 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
frmKcRollCaiFen2: TfrmKcRollCaiFen2;
newh, newh1: hwnd;
implementation
uses
U_DataLink, U_Fun, U_iniParam, U_ZDYHelp, U_LabelList, U_CKProductBCPKCListSel;
{$R *.dfm}
procedure TfrmKcRollCaiFen2.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 TfrmKcRollCaiFen2.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 TfrmKcRollCaiFen2.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 TfrmKcRollCaiFen2.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 TfrmKcRollCaiFen2.Printdata2(FMJID: string; FnewMJID: string);
var
fPrintFile: string;
Txt, fImagePath: string;
Moudle: THandle;
Makebar: TMakebar;
Mixtext: TMixtext;
begin
with ADOQueryPrint do
begin
close;
sql.Clear;
SQL.Add('select A.*,D.MPRTCodeName,d.mprtcode,C.MJTypeOther,D.SALESCLASS,E.PrtColor,C.MJQty2,C.MJQty3,C.MJQty4,C.MJQty5,C.MJMaoZ,c.mjlen,C.KPNO from CK_BanCP_CR 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 C.MJID in (' + quotedstr(trim(FnewMJID)) + ',' + quotedstr(trim(FMJID)) + ')');
SQL.Add('AND A.CRFLAG=''<27><><EFBFBD><EFBFBD>''');
// SQL.Add('order by ')
// ShowMessage(SQL.Text);
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\<5C><><EFBFBD><EFBFBD><EFBFBD>뵥.rmf';
ExportFtErpFile('<27><><EFBFBD><EFBFBD><EFBFBD>뵥.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;
RMVariables['ZDR'] := TRIM(DName);
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;
procedure TfrmKcRollCaiFen2.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 TfrmKcRollCaiFen2.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 TfrmKcRollCaiFen2.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 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, 'KPS', '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 ADOQueryXH 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 := ADOQueryXH.Fields[i].Value;
end;
ADOQueryCmd.FieldByName('MJID').Value := fNewMJID;
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 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('MJXH').VALUE := 30;
// ADOQueryCmd.FieldByName('KPSNO').VALUE := fAPTM;
ADOQueryCmd.FieldByName('ZDMJID').Value := FMJID;
ADOQueryCmd.Post;
//<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;
ADOQueryCmd.FieldByName('KPSNO').VALUE := fAPTM;
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);
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)));
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('UPDATE CK_BanCP_CR SET RKPlaCE=' + QuotedStr(Trim(kuwei.Text)));
sql.Add(' where MJID=' + QuotedStr(Trim(FMJID)));
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_kc SET C_KUWEI=' + QuotedStr(Trim(kuwei.Text)));
sql.Add(' where MJID in (' + quotedstr(trim(fNewMJID)) + ',' + quotedstr(trim(FMJID)) + ')');
SQL.Add('UPDATE WFB_MJJY SET KPNO=' + QuotedStr(Trim(edit3.text)));
sql.Add(' where MJID in (' + quotedstr(trim(fNewMJID)) + ',' + quotedstr(trim(FMJID)) + ')');
// ShowMessage(SQL.Text);
execsql;
end;
//<2F><><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// with ADOQueryCmd do
// begin
// Close;
// sql.Clear;
// sql.Add('exec P_Update_Order_JD_ByOther @MainType=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>༭'', @MJId= ' + quotedstr(Trim(fNewMJID)));
// 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,C.MJTypeOther 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 C.MJID in (' + quotedstr(trim(fNewMJID)) + ',' + quotedstr(trim(FMJID)) + ')');
open;
SInitCDSData20(adoqueryCmd, CDSMJID);
end;
CDSOrder.EmptyDataSet;
if Trim(Edit6.Text) = '<27><>' then
begin
printdata2(fNewMJID, FMJID);
// 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 TfrmKcRollCaiFen2.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,MJTypeOther 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 1=2 ');
Open;
end;
SCreateCDS20(ADOQueryMain, CDSOrder);
SInitCDSData20(ADOQueryMain, CDSOrder);
SCreateCDS20(ADOQueryMain, CDSMJID);
SInitCDSData20(ADOQueryMain, CDSMJID);
end;
procedure TfrmKcRollCaiFen2.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)));
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, MJTypeOther ');
SQL.Add(',RKPLACE=(SELECT TOP 1 RKPLACE FROM CK_BanCP_CR B WHERE B.MJID=A.MJID AND B.CRFLAG=''<27><><EFBFBD><EFBFBD>'' )');
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('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) ');
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 TfrmKcRollCaiFen2.FormDestroy(Sender: TObject);
begin
wRITECxGrid(self.Caption + tV1.Name, Tv1, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>1');
wRITECxGrid(self.Caption + TV2.Name, Tv2, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>2');
frmKcRollCaiFen2 := nil;
end;
procedure TfrmKcRollCaiFen2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmKcRollCaiFen2.TBCloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmKcRollCaiFen2.FormCreate(Sender: TObject);
begin
Panel2.Align := alClient;
end;
procedure TfrmKcRollCaiFen2.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 TfrmKcRollCaiFen2.FormShow(Sender: TObject);
begin
ReadCxGrid(self.Caption + tV1.Name, Tv1, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>1');
ReadCxGrid(self.Caption + TV2.Name, Tv2, '<27><>Ʒ<EFBFBD>ֿ<EFBFBD>2');
MovePanel1.Left := (Width - MovePanel1.Width) div 2;
MovePanel1.top := (Height - MovePanel1.Height - 200) div 2;
InitGrid();
SmNO.SetFocus;
end;
procedure TfrmKcRollCaiFen2.Button4Click(Sender: TObject);
begin
MovePanel1.Visible := false;
end;
procedure TfrmKcRollCaiFen2.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 TfrmKcRollCaiFen2.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 TfrmKcRollCaiFen2.Edit6Click(Sender: TObject);
begin
if Trim(Edit6.Text) = '' then
begin
Edit6.Text := '<27><>';
end
else
begin
Edit6.Text := '';
end;
end;
procedure TfrmKcRollCaiFen2.BTPrintClick(Sender: TObject);
begin
if Edit3.Text = '' then
begin
application.MessageBox('<27><><EFBFBD><EFBFBD>ȡ<EFBFBD>ţ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
if Trim(Edit7.Text) = '<27><>' then
begin
savedata1();
end;
if Trim(Edit8.Text) = '<27><>' then
begin
savedata2();
end;
SmNO.SetFocus;
end;
procedure TfrmKcRollCaiFen2.Tv1DblClick(Sender: TObject);
begin
if CDSOrder.IsEmpty then
exit;
CDSOrder.Delete;
end;
procedure TfrmKcRollCaiFen2.Button5Click(Sender: TObject);
begin
if CDSMJID.IsEmpty then
exit;
printdata(CDSMJID.fieldbyname('MJID').AsString);
SmNO.SetFocus;
end;
procedure TfrmKcRollCaiFen2.MJLenChange(Sender: TObject);
begin
QuantityConversion();
end;
procedure TfrmKcRollCaiFen2.MKXSExit(Sender: TObject);
begin
QuantityConversion();
end;
procedure TfrmKcRollCaiFen2.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 TfrmKcRollCaiFen2.Label13Click(Sender: TObject);
begin
if Label13.Caption = 'M' then
begin
Label13.Caption := 'KG'
end
else
begin
Label13.Caption := 'M'
end;
end;
procedure TfrmKcRollCaiFen2.Button2Click(Sender: TObject);
var
fPrintFile: string;
Txt, fImagePath: string;
Moudle: THandle;
Makebar: TMakebar;
Mixtext: TMixtext;
begin
if CDSMJID.IsEmpty then
Exit;
with ADOQueryPrint do
begin
close;
sql.Clear;
SQL.Add('select A.*,D.MPRTCodeName,d.mprtcode,D.SALESCLASS,E.PrtColor,C.MJQty2,C.MJQty3,C.MJQty4,C.MJQty5,C.MJMaoZ,c.mjlen,C.KPNO from CK_BanCP_CR 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 C.kpno=(select kpno from wfb_mjjy G WHERE G.MJID=' + QuotedStr(Trim(CDSMJID.fieldbyname('MJID').AsString)));
SQL.Add(')');
SQL.Add('AND A.CRFLAG=''<27><><EFBFBD><EFBFBD>''');
// ShowMessage(SQL.Text);
open;
end;
// if Edit1.Text <> '' then
// begin
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\<5C><><EFBFBD><EFBFBD><EFBFBD>뵥.rmf';
ExportFtErpFile('<27><><EFBFBD><EFBFBD><EFBFBD>뵥.rmf', ADOQueryTmp);
// ExportFtErpFile(trim(Edit1.Text) + '.rmf', ADOQueryTemp);
// end
// else
// fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\ͨ<><CDA8>Ӣ<EFBFBD>ı<EFBFBD>ǩ.rmf';
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 FileExists(fPrintFile) then
begin
RMVariables['QRBARCODE'] := fImagePath;
RMVariables['ZDR'] := TRIM(DName);
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\<5C><><EFBFBD><EFBFBD><EFBFBD>뵥'), '<27><>ʾ', 0);
end;
end;
procedure TfrmKcRollCaiFen2.Button3Click(Sender: TObject);
begin
try
frmCKProductBCPKCListSel := TfrmCKProductBCPKCListSel.Create(Application);
with frmCKProductBCPKCListSel do
begin
if ShowModal = 1 then
begin
SmNO.Text := Trim(CDS_MAIN.fieldbyname('MJID').ASSTRING);
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;
finally
frmCKProductBCPKCListSel.Free;
end;
end;
procedure TfrmKcRollCaiFen2.Button6Click(Sender: TObject);
var
fAPNO: string;
begin
if GetLSNo(ADOQueryCmd, fAPNO, 'KP', 'WFB_MJJY', 4, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
edit3.Text := Trim(fAPNO);
end;
end.