D7myYunxiang/云翔生产管理(MYSC.dll)/U_KuWeiInPutCeng.pas
DESKTOP-E401PHE\Administrator 1011cb7292 1
2025-01-20 13:04:03 +08:00

666 lines
17 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_KuWeiInPutCeng;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls,
cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer,
cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB,
ExtCtrls, BtnEdit, cxCalendar,StrUtils, cxDropDownEdit,jpeg,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdFTP, cxPC,
cxGridCustomPopupMenu, cxGridPopupMenu, cxGroupBox, cxCheckBox,
RM_Dataset, RM_System, RM_Common, RM_Class, RM_GridReport,IniFiles, Menus;
type
TfrmKuWeiInPutCeng = class(TForm)
ToolBar1: TToolBar;
TBClose: TToolButton;
ADOTemp: TADOQuery;
ADOCmd: TADOQuery;
ADOQuery1: TADOQuery;
Label26: TLabel;
CDS_Print: TClientDataSet;
RM1: TRMGridReport;
Panel5: TPanel;
RMDBMain: TRMDBDataSet;
Panel1: TPanel;
Label14: TLabel;
Panel4: TPanel;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column7: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1Column1: TcxGridDBColumn;
ClientDataSet1: TClientDataSet;
DataSource1: TDataSource;
ToolButton1: TToolButton;
Label10: TLabel;
QuYu: TBtnEditA;
Label11: TLabel;
FenQu: TBtnEditA;
Button1: TButton;
PrtFlag: TEdit;
Label9: TLabel;
v1Column2: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
ClientDataSet2: TClientDataSet;
cxPageControl1: TcxPageControl;
cxTabSheet1: TcxTabSheet;
cxTabSheet2: TcxTabSheet;
Label1: TLabel;
Label5: TLabel;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
Panel2: TPanel;
Label3: TLabel;
Label4: TLabel;
CengQty: TComboBox;
Label6: TLabel;
Pai: TEdit;
Label12: TLabel;
Label7: TLabel;
PaiQty: TEdit;
Label8: TLabel;
v1Column5: TcxGridDBColumn;
Label2: TLabel;
ComboBox1: TComboBox;
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure PrtFlagClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure QuYuBtnClick(Sender: TObject);
procedure FenQuBtnClick(Sender: TObject);
procedure QuYuDblClick(Sender: TObject);
procedure FenQuDblClick(Sender: TObject);
procedure CengChange(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
procedure InitData();
function SaveData():Boolean;
function SaveDataDuoCeng():Boolean;
procedure PrtData(KWID:String);
{ Private declarations }
public
canshu1:String;
PState:Integer;
FMainId:String;
{ Public declarations }
end;
var
frmKuWeiInPutCeng: TfrmKuWeiInPutCeng;
implementation
uses
U_DataLink,U_ZDYHelp,U_RTFun;
{$R *.dfm}
procedure TfrmKuWeiInPutCeng.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmKuWeiInPutCeng.InitData();
begin
with ADOQuery1 do
begin
Close;
sql.Clear;
sql.Add(' select * ');
sql.Add(' from KuWei ');
if Trim(QuYu.Text)='' then
begin
sql.Add(' where 1=2');
end else
begin
sql.Add(' where isnull(QuYu,'''')='''+Trim(QuYu.Text)+'''');
end;
if Trim(FenQu.Text)<>'' then
begin
sql.Add(' and isnull(FenQu,'''')='''+Trim(FenQu.Text)+'''');
end;
sql.Add(' and Valid=''Y'' ');
Open;
end;
SCreateCDS20(ADOQuery1,ClientDataSet1);
SInitCDSData20(ADOQuery1,ClientDataSet1);
end;
procedure TfrmKuWeiInPutCeng.FormShow(Sender: TObject);
begin
InitData();
end;
function TfrmKuWeiInPutCeng.SaveData():Boolean;
var
maxno,PaiStr:String;
i:Integer;
begin
with ADOTemp do
begin
Close;
sql.Clear;
sql.Add('select KWID from KuWei where 1=2');
open;
end;
SCreateCDS20(ADOTemp,ClientDataSet2);
SInitCDSData20(ADOTemp,ClientDataSet2);
Result:=False;
try
ADOCmd.Connection.BeginTrans;
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for i:=1 to StrToInt(CengQty.Text) do
begin
if GetLSNoHZ(ADOCmd,maxno,'KW','KuWei',4,0,0)=False then
begin
ADOCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
Exit;
end;
with ADOCmd do
begin
Close;
sql.Clear;
SQL.Add('select * from KuWei where KWId='''+Trim(maxno)+'''');
Open;
end;
with ADOCmd do
begin
Append;
FieldByName('KWId').Value:=Trim(maxno);
FieldByName('KWType').Value:='GG';//<2F>ҹ<EFBFBD>
FieldByName('Filler').Value:=Trim(DName);
FieldByName('FillerCode').Value:=Trim(DCode);
FieldByName('QuYu').Value:=Trim(QuYu.Text);
FieldByName('FenQu').Value:=Trim(FenQu.Text);
if StrToInt(Pai.Text)<10 then
begin
FieldByName('Pai').Value:='0'+Trim(IntToStr(StrToInt(Pai.Text)));
end else
begin
FieldByName('Pai').Value:=Trim(Pai.Text);
end;
FieldByName('Valid').Value:='Y';
Post;
end;
with ADOCmd do
begin
Close;
sql.Clear;
sql.Add('Update KuWei Set KWNoInt=isnull((select max(KWNoInt) from KuWei ');
sql.Add(' where KWType=''GG'' and isnull(QuYu,'''')='''+Trim(QuYu.Text)+'''');
sql.Add(' and isnull(FenQu,'''')='''+Trim(FenQu.Text)+'''');
if StrToInt(Pai.Text)<10 then
begin
PaiStr:='0'+Trim(IntToStr(strtoint(Pai.Text)));
end else
begin
PaiStr:=Trim(Pai.Text)
end;
sql.Add(' and isnull(Pai,'''')='''+PaiStr+'''');
sql.Add(' and Valid=''Y''),0)+1');
sql.Add(' where KWID='''+Trim(maxno)+'''');
ExecSQL;
end;
with ADOCmd do
begin
Close;
sql.Clear;
sql.Add('Update KuWei Set KWNo=''0''+RTrim(Cast(KWNoInt As varchar(10))) ');
sql.Add(' where KWID='''+Trim(maxno)+''' and KWNoInt<10');
ExecSQL;
end;
with ADOCmd do
begin
Close;
sql.Clear;
sql.Add('Update KuWei Set KWNo=RTrim(Cast(KWNoInt As varchar(10))) ');
sql.Add(' where KWID='''+Trim(maxno)+''' and KWNoInt>9');
ExecSQL;
end;
with ADOCmd do
begin
Close;
sql.Clear;
sql.Add('Update KuWei Set Ceng=KWNo ');
sql.Add(' where KWID='''+Trim(maxno)+'''');
ExecSQL;
end;
with ADOCmd do
begin
Close;
sql.Clear;
sql.Add('Update KuWei Set KWName=RTrim(isnull(QuYu,''''))+''-''+RTrim(isnull(FenQu,''''))+''<27><>-'' ');
sql.Add('+RTrim(isnull(Pai,''''))+''<27><>-''+RTrim(isnull(Ceng,''''))+''<27><>'' ');
sql.Add(' where KWID='''+Trim(maxno)+'''');
ExecSQL;
end;
with ClientDataSet2 do
begin
Append;
FieldByName('KWID').Value:=Trim(maxno);
Post;
end;
end;
ADOCmd.Connection.CommitTrans;
if Trim(PrtFlag.Text)<>'' then
begin
with ClientDataSet2 do
begin
First;
while not eof do
begin
PrtData(Trim(ClientDataSet2.fieldbyname('KWID').AsString));
Next;
end;
end;
end;
Result:=True;
except
Result:=False;
ADOCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
end;
end;
function TfrmKuWeiInPutCeng.SaveDataDuoCeng():Boolean;
var
maxno,PaiStr:String;
p,c,i,PInt:Integer;
begin
with ADOTemp do
begin
Close;
sql.Clear;
sql.Add('select KWID from KuWei where 1=2');
open;
end;
SCreateCDS20(ADOTemp,ClientDataSet2);
SInitCDSData20(ADOTemp,ClientDataSet2);
Result:=False;
try
ADOCmd.Connection.BeginTrans;
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for P:=1 to StrToInt(PaiQty.Text) do
begin
for C:=1 to StrToInt(CengQty.Text) do
begin
if GetLSNoHZ(ADOCmd,maxno,'KW','KuWei',4,0,0)=False then
begin
ADOCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
Exit;
end;
with ADOCmd do
begin
Close;
sql.Clear;
SQL.Add('select * from KuWei where KWId='''+Trim(maxno)+'''');
Open;
end;
with ADOCmd do
begin
Append;
FieldByName('KWId').Value:=Trim(maxno);
FieldByName('KWType').Value:='GG';//<2F>ҹ<EFBFBD>
FieldByName('Filler').Value:=Trim(DName);
FieldByName('FillerCode').Value:=Trim(DCode);
FieldByName('QuYu').Value:=Trim(QuYu.Text);
FieldByName('FenQu').Value:=Trim(FenQu.Text);
if c<10 then
begin
FieldByName('Ceng').Value:='0'+Trim(IntToStr(c));
end else
begin
FieldByName('Ceng').Value:=Trim(IntToStr(c));
end;
FieldByName('Valid').Value:='Y';
Post;
end;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if C=1 then
begin
with ADOCmd do
begin
Close;
sql.Clear;
sql.Add('select AA=isnull(Cast(max(Pai) as int),0)+1 from KuWei where KWType=''GG'' ');
sql.Add(' and isnull(QuYu,'''')='''+Trim(QuYu.Text)+'''');
sql.Add(' and isnull(FenQu,'''')='''+Trim(FenQu.Text)+'''');
sql.Add(' and valid=''Y'' ');
Open;
end;
PInt:=ADOCmd.fieldbyname('AA').Value;
if PInt<10 then
begin
PaiStr:='0'+Trim(IntToStr(PInt));
end else
begin
PaiStr:=Trim(IntToStr(PInt));
end;
end;
with ADOCmd do
begin
Close;
sql.Clear;
sql.Add('Update KuWei Set Pai='''+Trim(PaiStr)+'''');
sql.Add(' where KWID='''+Trim(maxno)+'''');
ExecSQL;
end;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
with ADOCmd do
begin
Close;
sql.Clear;
sql.Add('Update KuWei Set KWNo=Ceng ');
sql.Add(' where KWID='''+Trim(maxno)+'''');
ExecSQL;
end;
with ADOCmd do
begin
Close;
sql.Clear;
sql.Add('Update KuWei Set KWNoInt=Cast(Ceng as int) ');
sql.Add(' where KWID='''+Trim(maxno)+'''');
ExecSQL;
end;
with ADOCmd do
begin
Close;
sql.Clear;
sql.Add('Update KuWei Set KWName=RTrim(isnull(QuYu,''''))+''-''+RTrim(isnull(FenQu,''''))+''<27><>-'' ');
sql.Add('+RTrim(isnull(Pai,''''))+''<27><>-''+RTrim(isnull(Ceng,''''))+''<27><>'' ');
sql.Add(' where KWID='''+Trim(maxno)+'''');
ExecSQL;
end;
with ClientDataSet2 do
begin
Append;
FieldByName('KWID').Value:=Trim(maxno);
Post;
end;
end;
end;
ADOCmd.Connection.CommitTrans;
if Trim(PrtFlag.Text)<>'' then
begin
with ClientDataSet2 do
begin
First;
while not eof do
begin
PrtData(Trim(ClientDataSet2.fieldbyname('KWID').AsString));
Next;
end;
end;
end;
Result:=True;
except
Result:=False;
ADOCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
end;
end;
procedure TfrmKuWeiInPutCeng.PrtData(KWID:String);
var
fPrintFile,Txt,fImagePath:string;
i,j:Integer;
Moudle: THandle;
Makebar:TMakebar;
Mixtext:TMixtext;
begin
fPrintFile:= ExtractFilePath(Application.ExeName) + 'Report\<5C><>λ<EFBFBD><CEBB>ǩ.rmf';
if FileExists(fPrintFile)=False then
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>'+ExtractFilePath(Application.ExeName)+'Report\<5C><>λ<EFBFBD><CEBB>ǩ.rmf'),'<27><>ʾ',0);
exit;
end;
with ADOTemp do
begin
Close;
SQL.Clear;
sql.Add('select * from KuWei where KWID='''+Trim(KWID)+'''');
Open;
end;
SCreateCDS20(ADOTemp,CDS_Print);
SInitCDSData20(ADOTemp,CDS_Print);
try
Moudle:=LoadLibrary('MakeQRBarcode.dll');
@Makebar:=GetProcAddress(Moudle,'Make');
@Mixtext:=GetProcAddress(Moudle,'MixText');
Txt:=Trim(KWID);
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><CEAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',MB_ICONERROR);
exit;
end;
RMVariables['QRBARCODE']:=fImagePath;
if Trim(ComboBox1.Text)='<27><>' then
begin
RMVariables['FangXiang']:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
end else
if Trim(ComboBox1.Text)='<27><>' then
begin
RMVariables['FangXiang']:='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
end;
RM1.LoadFromFile(fPrintFile);
//RM1.ShowReport;
RM1.PrintReport;
end;
Procedure TfrmKuWeiInPutCeng.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
ModalResult:=1;
end;
procedure TfrmKuWeiInPutCeng.PrtFlagClick(Sender: TObject);
begin
if Trim(PrtFlag.Text)='' then
begin
PrtFlag.Text:='<27><>';
end else
begin
PrtFlag.Text:='';
end;
end;
procedure TfrmKuWeiInPutCeng.Button1Click(Sender: TObject);
var
FInt:Integer;
begin
if Trim(QuYu.Text)='' then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if Trim(FenQu.Text)='' then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if cxPageControl1.ActivePageIndex=0 then
begin
if Trim(pai.Text)='' then
begin
Application.MessageBox('<27>ڼ<EFBFBD><DABC>Ų<EFBFBD><C5B2><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if TryStrToInt(pai.Text,FInt)=False then
begin
Application.MessageBox('<27>ڼ<EFBFBD><DABC>ŷǷ<C5B7><C7B7><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ',0);
Exit;
end;
if StrToInt(pai.Text)>99 then
begin
Application.MessageBox('<27>ڼ<EFBFBD><DABC>Ų<EFBFBD><C5B2>ܴ<EFBFBD><DCB4><EFBFBD>100<30><30>','<27><>ʾ',0);
Exit;
end;
end else
if cxPageControl1.ActivePageIndex=1 then
begin
if Trim(paiQty.Text)='' then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if TryStrToInt(paiQty.Text,FInt)=False then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ',0);
Exit;
end;
if StrToInt(paiQty.Text)>99 then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>100<30><30>','<27><>ʾ',0);
Exit;
end;
end;
if cxPageControl1.ActivePageIndex=0 then
begin
if Trim(CengQty.Text)='' then
begin
Application.MessageBox('<27><><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
end else
if cxPageControl1.ActivePageIndex=1 then
begin
if Trim(CengQty.Text)='' then
begin
Application.MessageBox('ÿ<>Ų<EFBFBD><C5B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
end;
if Trim(PrtFlag.Text)<>'' then
begin
if Trim(ComboBox1.Text)='' then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
end;
Panel2.Visible:=True;
Panel2.Refresh;
if cxPageControl1.ActivePageIndex=0 then
begin
if SaveData() then
begin
InitData();
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>~','<27><>ʾ',0);
end;
end else
if cxPageControl1.ActivePageIndex=1 then
begin
if SaveDataDuoCeng() then
begin
InitData();
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>~','<27><>ʾ',0);
end;
end;
Panel2.Visible:=False;
end;
procedure TfrmKuWeiInPutCeng.QuYuBtnClick(Sender: TObject);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='GGQuYu';
flagname:='<27><><EFBFBD><EFBFBD>';
if ShowModal=1 then
begin
QuYu.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
InitData();
end;
procedure TfrmKuWeiInPutCeng.FenQuBtnClick(Sender: TObject);
begin
try
frmZDYHelp:=TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag:='GGFenQu';
flagname:='<27><><EFBFBD><EFBFBD>';
if ShowModal=1 then
begin
FenQu.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
InitData();
end;
procedure TfrmKuWeiInPutCeng.QuYuDblClick(Sender: TObject);
begin
QuYu.Text:='';
InitData();
end;
procedure TfrmKuWeiInPutCeng.FenQuDblClick(Sender: TObject);
begin
FenQu.Text:='';
InitData();
end;
procedure TfrmKuWeiInPutCeng.CengChange(Sender: TObject);
begin
InitData();
end;
procedure TfrmKuWeiInPutCeng.ToolButton1Click(Sender: TObject);
begin
if ClientDataSet1.IsEmpty then Exit;
if ClientDataSet1.Locate('SSel',True,[])=False then
begin
Application.MessageBox(<><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!','<27><>ʾ',0);
Exit;
end;
ClientDataSet1.DisableControls;
with ClientDataSet1 do
begin
First;
while Locate('SSel',True,[]) do
begin
PrtData(Trim(ClientDataSet1.fieldbyname('KWID').AsString));
Edit;
FieldByName('SSel').Value:=False;
end;
end;
ClientDataSet1.EnableControls;
end;
procedure TfrmKuWeiInPutCeng.N1Click(Sender: TObject);
begin
SelOKNo(ClientDataSet1,True);
end;
procedure TfrmKuWeiInPutCeng.N2Click(Sender: TObject);
begin
SelOKNo(ClientDataSet1,False);
end;
end.