D7myYunxiang/云翔生产管理(MYSC.dll)/U_XiShouInPut.pas

375 lines
11 KiB
ObjectPascal
Raw Normal View History

2025-01-20 13:04:03 +08:00
unit U_XiShouInPut;
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;
type
TfrmXiShouInPut = class(TForm)
ToolBar1: TToolBar;
TBClose: TToolButton;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
ADOQuery1: TADOQuery;
TBSave: TToolButton;
DataSource1: TDataSource;
CDS_Sub: TClientDataSet;
cxGridPopupMenu1: TcxGridPopupMenu;
Label21: TLabel;
Label26: TLabel;
Label19: TLabel;
Panel3: TPanel;
labMYType: TLabel;
Panel2: TPanel;
Label13: TLabel;
Label27: TLabel;
CRTime: TDateTimePicker;
FactoryName: TBtnEditA;
CKNO: TEdit;
Label22: TLabel;
Panel16: TPanel;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1Column11: TcxGridDBColumn;
v1Column5: TcxGridDBColumn;
v1Column4: TcxGridDBColumn;
v1Column6: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1Column17: TcxGridDBColumn;
v1Column3: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
v1Column7: TcxGridDBColumn;
Button1: TButton;
v1Column8: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
v1Column10: TcxGridDBColumn;
v1Column12: TcxGridDBColumn;
v1Column13: TcxGridDBColumn;
v1Column14: TcxGridDBColumn;
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FactoryNameBtnClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
procedure InitData();
function SaveData():Boolean;
{ Private declarations }
public
canshu1:String;
PState,CopyInt:Integer;
FMainId:String;
{ Public declarations }
end;
var
frmXiShouInPut: TfrmXiShouInPut;
implementation
uses
U_DataLink,U_ZDYHelp,U_RTFun,U_ZDYHelpSel,U_KHListSelJJ,U_XiaoShouDataOldList;
{$R *.dfm}
procedure TfrmXiShouInPut.TBCloseClick(Sender: TObject);
begin
Close;
ReadCxGrid('<27><>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>',Tv1,<><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
procedure TfrmXiShouInPut.InitData();
begin
ReadCxGrid('<27><>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD>',Tv1,<><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
CRTime.Date:=SGetServerDate(ADOQueryTemp);
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from CK_YCL_CR_Main ');
sql.Add(' where SMID='''+Trim(FMainId)+'''');
Open;
end;
SCSHData(ADOQueryTemp,Panel2,2);
FactoryName.Text:=Trim(ADOQueryTemp.fieldbyname('FactoryName').AsString);
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select A.* ');
sql.Add(' from CK_YCL_CR A');
sql.Add(' where SMID='''+Trim(FMainId)+'''');
Open;
end;
SCreateCDS20(ADOQueryTemp,CDS_Sub);
SInitCDSData20(ADOQueryTemp,CDS_Sub);
if TBSave.Visible=False then
begin
FactoryName.Enabled:=False;
FactoryName.Color:=clMenu;
Button1.Visible:=False;
Tv1.OptionsSelection.CellSelect:=False;
end;
end;
procedure TfrmXiShouInPut.FormShow(Sender: TObject);
begin
InitData();
end;
function TfrmXiShouInPut.SaveData():Boolean;
var
FCRID,Maxno,FFSPID,MMaxNo:string;
begin
try
ADOQueryCmd.Connection.BeginTrans;
if Trim(FMainId)='' then
begin
if GetLSNo(ADOQueryCmd,MMaxNo,'SM','CK_YCL_CR_Main',3,1)=False then
begin
Result:=False;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǼǺ<C7BC>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
Exit;
end;
end else
begin
MMaxNo:=Trim(FMainId);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from CK_YCL_CR_Main where SMID='''+Trim(MMaxNo)+'''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(FMainId)='' then
begin
Append;
FieldByName('Filler').Value:=Trim(DName);
end else
begin
Edit;
FieldByName('EditTime').Value:=SGetServerDateTime(ADOQueryTemp);
FieldByName('Editer').Value:=Trim(DName);
end;
FieldByName('SMID').Value:=Trim(MMaxNo);
FieldByName('CKName').Value:='<27><><EFBFBD>۳<EFBFBD><DBB3><EFBFBD>';
FieldByName('CRFlag').Value:='<27><><EFBFBD><EFBFBD>';
FieldByName('CRType').Value:='<27><>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>';
FieldByName('CRQtyFlag').Value:=-1;
RTSetsavedata(ADOQueryCmd,'CK_YCL_CR_Main',Panel2,2);
Post;
end;
CDS_Sub.DisableControls;
with CDS_Sub do
begin
First;
while not eof do
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from CK_YCL_CR where SPID='''+Trim(CDS_Sub.fieldbyname('SPID').AsString)+'''');
open;
end;
FFSPID:=Trim(ADOQueryTemp.fieldbyname('SPID').AsString);
if Trim(FFSPID)='' then
begin
if GetLSNo(ADOQueryCmd,Maxno,'SC','CK_YCL_CR',3,1)=False then
begin
Result:=False;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD><D3B1><EFBFBD>ʧ<EFBFBD><CAA7>!','<27><>ʾ',0);
Exit;
end;
end else
begin
Maxno:=Trim(FFSPID);
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from CK_YCL_CR where SPID='''+Trim(Maxno)+'''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(FFSPID)='' then
begin
Append;
end else
begin
Edit;
end;
FieldByName('SMID').Value:=Trim(MMaxno);
FieldByName('SPID').Value:=Trim(Maxno);
RTSetSaveDataCDS(ADOQueryCmd,Tv1,CDS_Sub,'CK_YCL_CR',2);
if Trim(FFSPID)='' then
FieldByName('Filler').Value:=Trim(DName)
else
begin
FieldByName('Editer').Value:=Trim(DName);
FieldByName('EditTime').Value:=SGetServerDate(ADOQueryTemp);
end;
Post;
end;
Edit;
FieldByName('SPID').Value:=Trim(Maxno);
Post;
Next;
end;
end;
CDS_Sub.EnableControls;
ADOQueryCmd.Connection.CommitTrans;
FMainId:=Trim(MMaxNo);
Result:=True;
except
Result:=False;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>쳣!','<27><>ʾ',0);
end;
end;
procedure TfrmXiShouInPut.TBSaveClick(Sender: TObject);
begin
ToolBar1.SetFocus;
if Trim(FactoryName.Text)='' then
begin
Application.MessageBox('<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if CDS_Sub.Locate('SPName',null,[])=True then
begin
Application.MessageBox('Ʒ<><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if CDS_Sub.Locate('HSQty',null,[])=True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if CDS_Sub.Locate('QtyUnit',null,[])=True then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>!','<27><>ʾ',0);
Exit;
end;
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ',0);
ModalResult:=1;
end;
end;
Procedure TfrmXiShouInPut.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
ModalResult:=1;
end;
procedure TfrmXiShouInPut.FactoryNameBtnClick(Sender: TObject);
begin
if CDS_Sub.IsEmpty=False then Exit;
try
frmKHListSelJJ:=TfrmKHListSelJJ.Create(Application);
with frmKHListSelJJ do
begin
frmKHListSelJJ.canshu2:='<27><>Ȩ<EFBFBD><C8A8>';
if ShowModal=1 then
begin
Self.FactoryName.Text:=Trim(frmKHListSelJJ.CDS_HZ.fieldbyname('KHNameJC').AsString);
Self.FactoryName.TxtCode:=Trim(frmKHListSelJJ.CDS_HZ.fieldbyname('KHNo').AsString);
end;
end;
finally
frmKHListSelJJ.Free;
end;
if Trim(FactoryName.Text)<>'' then
begin
Button1.Click;
end;
end;
procedure TfrmXiShouInPut.Button1Click(Sender: TObject);
begin
if Trim(FactoryName.Text)='' then
begin
Application.MessageBox('<27>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
try
frmXiaoShouDataOldList:=TfrmXiaoShouDataOldList.Create(Application);
with frmXiaoShouDataOldList do
begin
FKHName:=Trim(Self.FactoryName.Text);
if ShowModal=1 then
begin
Self.CKNO.Text:=Trim(frmXiaoShouDataOldList.Order_Main.fieldbyname('CKOrdNo').AsString);
Self.CRTime.Date:=frmXiaoShouDataOldList.Order_Main.fieldbyname('CRTime').AsDateTime;
end;
end;
finally
frmXiaoShouDataOldList.Free;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select AA.CRTime,AA.CKOrdNo,AA.QtyUnit,AA.JQty,AA.HSQty,JM.ConNo,JM.CustomerNoName,SPName=JM.MPRTCodeName ');
sql.Add(',SPColor=JS.PRTColor,SPMF=JM.MPRTMF,SPKZ=JS.PRTKZ,SPColorNo=JS.SOrdDefStr1,SPHX=JS.PRTHX,Note=SOrdDefNote8 ');
sql.Add(',SPID=SOrdDefNote8');
sql.Add(',Case when isnull(JS.PriceUnit,'''')=''<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'' then ''<27><>'' ');
sql.Add(' when isnull(PriceUnit,'''')=''RMB'' then ''<27><>'' ');
sql.Add(' when isnull(PriceUnit,'''')='''' then ''<27><>'' ');
sql.Add(' else ''$'' end as BZType ');
sql.Add(',Price=JS.PRTPrice,HZFee=isnull(JS.SOrdqty1,0)+isnull(JS.SOrdqty2,0)+isnull(JS.SOrdqty3,0)+isnull(JS.SOrdqty4,0)');
sql.Add(',Money=Cast(JS.PRTPrice*AA.HSQty as decimal(18,2))+isnull(JS.SOrdqty1,0)+isnull(JS.SOrdqty2,0)+isnull(JS.SOrdqty3,0)+isnull(JS.SOrdqty4,0)');
sql.Add('from (');
sql.Add(' select MainId,SubId,CRTime,CKOrdNo,QtyUnit,JQty=Count(*),HSQty=sum(Qty) ');
sql.Add(' from CK_BanCP_CR A ');
sql.Add(' where isnull(A.CKOrdNo,'''')='''+Trim(CKNO.Text)+'''');
sql.Add(' and isnull(A.CKOrdNo,'''')<>'''' ');
sql.Add(' and not exists(select * from CK_YCL_CR_Main CM where isnull(CM.CKNO,'''')=isnull(A.CKOrdNo,'''') )');
sql.Add('Group by MainId,SubId,CRTime,CKOrdNo,QtyUnit)AA');
sql.Add('inner join JYOrder_Sub JS on AA.SubId=JS.SubId ');
sql.Add('inner join JYOrder_Main JM on JS.MainId=JM.MainId ');
sql.Add('Union All ');
sql.Add('select CRTime,CKOrdNo=InOutNo,QtyUnit,JQty=Sum(RollNum),HSQty=Sum(Qty),ConNo,CustomerNoName=CustName');
sql.Add(',SPName=P_CodeName,SPColor=P_Color,SPMF=Cast(P_MF as varchar(20)),SPKZ=Cast(P_KZ as varchar(20)),SPColorNo=P_ColNo,SPHX=P_HX');
sql.Add(',Note=Cast(Null as varchar(200)),SPID=Cast(Null as varchar(200)),BZType=''<27><>'' ');
sql.Add(',Price,HZFee=0.00,Money=sum(Money)');
sql.Add(' from CP_InOut1 A ');
sql.Add(' where isnull(A.InOutNo,'''')='''+Trim(CKNO.Text)+'''');
SQL.Add(' and CRType=''<27><><EFBFBD>۳<EFBFBD><DBB3><EFBFBD>'' ');
sql.Add('Group by CRTime,InOutNo,QtyUnit,ConNo,CustName,P_CodeName,P_Color,P_MF,P_KZ,P_ColNo,P_HX,Price');
Open;
end;
SCreateCDS20(ADOQueryTemp,CDS_Sub);
SInitCDSData20(ADOQueryTemp,CDS_Sub);
end;
end.