D10myYicheng/样品(YPGL.dll)/U_CPAdd.pas

525 lines
13 KiB
ObjectPascal
Raw Normal View History

2025-05-27 14:08:09 +08:00
unit U_CPAdd;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
cxEdit, DB, cxDBData, ADODB, DBClient, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView,
cxGrid, ComCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, cxTextEdit,
cxButtonEdit, StdCtrls, ExtCtrls, cxCurrencyEdit, BtnEdit, U_BaseList,
cxLookAndFeels, cxLookAndFeelPainters, dxSkinsCore, dxSkinsDefaultPainters,
cxNavigator, dxDateRanges;
type
TfrmCPAdd = class(TForm)
ToolBar1: TToolBar;
ToolButton1: TToolButton;
TBClose: TToolButton;
CDS_Sub: TClientDataSet;
ADOQueryMain: TADOQuery;
DataSource2: TDataSource;
ADOQueryCmd: TADOQuery;
ADOQueryTemp: TADOQuery;
ScrollBox1: TScrollBox;
Label1: TLabel;
Label5: TLabel;
Label15: TLabel;
Label22: TLabel;
Label2: TLabel;
Label4: TLabel;
Label3: TLabel;
lbl1: TLabel;
Label14: TLabel;
Label16: TLabel;
Label19: TLabel;
CYNo: TEdit;
CYName: TEdit;
CYColor: TEdit;
CYHX: TEdit;
CYID: TEdit;
CYPUnit: TEdit;
PBLengthXS: TEdit;
SuoLv: TEdit;
CYTiJi: TEdit;
ToolButton2: TToolButton;
ToolBar2: TToolBar;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
cxGrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1CYNo: TcxGridDBColumn;
v1Column9: TcxGridDBColumn;
cv1Column10: TcxGridDBColumn;
v1Column2: TcxGridDBColumn;
cxGrid1Level1: TcxGridLevel;
DataSource1: TDataSource;
ClientDataSet1: TClientDataSet;
Label6: TLabel;
HuoMiao: TEdit;
Label7: TLabel;
Label8: TLabel;
CYJGGY: TBtnEditC;
CYMF: TBtnEditC;
CYKZ: TBtnEditC;
CYCF: TBtnEditC;
Label9: TLabel;
Label10: TLabel;
LaiYuan: TBtnEditC;
procedure FormShow(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure CYColorKeyPress(Sender: TObject; var Key: Char);
procedure CYKZExit(Sender: TObject);
procedure CYMFExit(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
procedure CYJGGYBtnUpClick(Sender: TObject);
procedure CYJGGYBtnDnClick(Sender: TObject);
procedure CYMFBtnDnClick(Sender: TObject);
procedure CYMFBtnUpClick(Sender: TObject);
private
canshu1: string;
Fint: Integer;
procedure InitSubGrid();
function SaveData(): Boolean;
{ Private declarations }
public
FCYID, FCYCode, FCPID, FCPNO, FCYNO, FCPName: string;
CopyInt: Integer;
{ Public declarations }
end;
var
frmCPAdd: TfrmCPAdd;
implementation
uses
U_DataLink, U_RTFun, U_iniParam, U_ZDYHelp, U_ZdyAttachGYS, U_FileUp,
U_CPManageFMSel, u_ZDYHelpSel;
{$R *.dfm}
procedure TfrmCPAdd.InitSubGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
SQL.Clear;
SQL.Add('select * from CP_YDang where CYID=''' + Trim(FCYID) + '''');
Open;
end;
SCSHData(ADOQueryMain, ScrollBox1, 2);
SCSHData(ADOQueryMain, ScrollBox1, 0);
finally
ADOQueryMain.EnableControls;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' select A.*,B.CYNo,B.CYName,B.CYMF,B.CYKZ from ');
sql.Add(' CP_YDang_Link A inner join CP_YDang B on A.ChildCYID=B.CYID');
sql.Add(' where A.CYID= ' + quotedstr(FCYID));
Open;
end;
SCreateCDS(ADOQueryTemp, CDS_Sub);
SInitCDSData(ADOQueryTemp, CDS_Sub);
end;
procedure TfrmCPAdd.FormShow(Sender: TObject);
begin
InitSubGrid();
if CopyInt = 1 then
begin
FCYID := '';
CYID.text := '';
// LaYangDate.DateTime := SGetServerDateTime(ADOQueryTemp);
CYNo.text := '';
end;
if CYNo.text = '' then
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' exec P_YP_Get_CPBH ');
sql.Add('@CPID=' + quotedstr(Trim(FCPID)));
// ShowMessage(SQL.Text);
Open;
end;
// CYNo.text := Trim(Self.ADOQueryTemp.fieldbyname('NewCYNo').AsString);
end;
if trim(CYNo.Text) = '' then
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add(' exec P_YP_Get_No @Str=''CP'' ');
Open;
end;
CYNo.Text := trim(ADOQueryTemp.FieldByName('NewCyno').asstring);
end;
if FCPName = '<27><>֯' then
begin
CYPUnit.text := 'KG';
end;
if FCPName = '<27><>֯' then
begin
CYPUnit.text := 'M';
end;
end;
procedure TfrmCPAdd.TBCloseClick(Sender: TObject);
begin
Close;
end;
function TfrmCPAdd.SaveData(): Boolean;
var
maxId, FCYNo, maxno: string;
begin
try
ADOQueryCmd.Connection.BeginTrans;
if Trim(FCYID) = '' then
begin
if GetLSNo(ADOQueryCmd, maxId, 'Y', 'CP_YDang', 4, 1) = False then
begin
Result := False;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
// if trim(CYNo.Text) = '<27>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>' then
// begin
// if GetLSNo(ADOQueryCmd, fCYNo, 'CP', 'SalesContract_Main', 4, 1) = False then
// begin
// ADOQueryCmd.Connection.RollbackTrans;
// Application.MessageBox('ȡ<><C8A1><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
// Exit;
// end;
// CYNo.Text := fCYNo;
// end;
CYID.Text := trim(maxId);
end
else
begin
maxId := Trim(FCYID);
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from CP_YDang where CYID=''' + Trim(FCYID) + '''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(FCYID) = '' then
begin
Append;
FieldByName('CYType').Value := Trim(FCPID);
FieldByName('FILLER').Value := Trim(DName);
FieldByName('FILLTIME').Value := SGetServerDateTime(ADOQueryTemp);
end
else
begin
Edit;
FieldByName('EDITER').Value := Trim(DName);
FieldByName('EDITTIME').Value := SGetServerDateTime(ADOQueryTemp);
end;
FieldByName('CYID').Value := Trim(maxId);
if trim(CYNo.Text) = '' then
CYNo.Text := Trim(maxId);
RTSetsavedata(ADOQueryCmd, 'CP_YDang', ScrollBox1, 2);
Post;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select count(*) as AA from CP_YDang where CYNo=''' + Trim(CYNo.Text) + '''');
Open;
if FieldByName('AA').AsInteger > 1 then
begin
ADOQueryCmd.Connection.RollbackTrans;
Result := False;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
end;
//////////////// <20><><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD> //////////////////
with CDS_Sub do
begin
First;
while not Eof do
begin
if Trim(CDS_Sub.fieldbyname('LKID').AsString) = '' then
begin
if GetLSNo(ADOQueryTemp, maxno, 'LK', 'CP_YDang_Link', 4, 1) = False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
end
else
begin
maxno := Trim(CDS_Sub.fieldbyname('LKID').AsString);
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from CP_YDang_Link where LKID=''' + Trim(maxno) + '''');
Open;
end;
with ADOQueryCmd do
begin
if Trim(CDS_Sub.fieldbyname('LKID').AsString) = '' then
begin
Append;
FieldByName('LKID').Value := Trim(maxno);
FieldByName('LKLevel').Value := 1;
FieldByName('LKName').Value := '<27><><EFBFBD><EFBFBD>';
end
else
Edit;
FieldByName('CYID').Value := Trim(maxId);
FieldByName('ChildCYID').Value := Trim(CDS_Sub.FieldByName('ChildCYID').AsString);
Post;
end;
CDS_Sub.Edit;
CDS_Sub.FieldByName('LKID').Value := Trim(maxno);
Next;
end;
end;
//////////////// <20><><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD> //////////////////
ADOQueryCmd.Connection.CommitTrans;
FCYID := maxId;
Result := True;
except
Result := False;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
end;
end;
procedure TfrmCPAdd.CYJGGYBtnDnClick(Sender: TObject);
begin
TBtnEditC(Sender).Text := '';
end;
procedure TfrmCPAdd.CYJGGYBtnUpClick(Sender: TObject);
var
FOStr: string;
fsj: string;
FWZ: Integer;
i: integer;
j: integer;
begin
FOStr := StringReplace(trim(CYJGGY.text), ',', '|', [rfReplaceAll]);
fsj := Trim(TBtnEditC(Sender).Hint);
FWZ := Pos('/', fsj);
i := 0;
try
frmZDYHelpSel := TfrmZDYHelpSel.Create(Application);
with frmZDYHelpSel do
begin
flag := Copy(fsj, 1, FWZ - 1);
flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ);
FChkStr := FOStr;
if ShowModal = 1 then
begin
TBtnEditC(Sender).text := '';
with ClientDataSet1 do
begin
First;
while not Eof do
begin
if FieldByName('SSel').AsBoolean = True then
begin
i := i + 1;
if TBtnEditC(Sender).text = '' then
TBtnEditC(Sender).text := FieldByName('ZDYName').AsString
else
TBtnEditC(Sender).text := TBtnEditC(Sender).text + ',' + FieldByName('ZDYName').AsString; //inttostr(i)+'.'+
end;
Next;
end;
end;
end;
end;
finally
frmZDYHelpSel.Free;
end;
end;
procedure TfrmCPAdd.ToolButton1Click(Sender: TObject);
begin
if CYName.Text = '' then
begin
Application.MessageBox('<27><>Ʒ<EFBFBD><C6B7><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
if SuoLv.Text = '' then
begin
Application.MessageBox('<27><><EFBFBD>ʲ<EFBFBD><CAB2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>', '<27><>ʾ', 0);
ModalResult := 1;
end;
end;
procedure TfrmCPAdd.CYColorKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
Key := #0;
SelectNext(ActiveControl as TWinControl, True, True);
end;
end;
procedure TfrmCPAdd.CYKZExit(Sender: TObject);
begin
// if pos('G/M2', trim(CYKZ.Text)) = 0 then
// begin
// if pos('G/M', trim(CYKZ.Text)) = 0 then
// begin
// CYKZ.Text := trim(CYKZ.Text) + 'G/M2';
// end;
// end;
end;
procedure TfrmCPAdd.CYMFBtnDnClick(Sender: TObject);
begin
TBtnEditC(Sender).Text := '';
TBtnEditC(Sender).TxtCode := '';
end;
procedure TfrmCPAdd.CYMFBtnUpClick(Sender: TObject);
var
fsj: string;
FWZ: Integer;
begin
fsj := Trim(TEdit(Sender).Hint);
FWZ := Pos('/', fsj);
try
frmZDYHelp := TfrmZDYHelp.Create(Application);
with frmZDYHelp do
begin
flag := Copy(fsj, 1, FWZ - 1);
flagname := Copy(fsj, FWZ + 1, Length(fsj) - FWZ);
if ShowModal = 1 then
begin
TEdit(Sender).Text := Trim(ClientDataSet1.fieldbyname('ZDYName').AsString);
end;
end;
finally
frmZDYHelp.Free;
end;
end;
procedure TfrmCPAdd.CYMFExit(Sender: TObject);
begin
// if pos('"', trim(CYMF.Text)) = 0 then
// begin
// if pos('CM', trim(CYMF.Text)) = 0 then
// CYMF.Text := trim(CYMF.Text) + 'CM';
// end;
end;
procedure TfrmCPAdd.FormCreate(Sender: TObject);
begin
// LaYangDate.DateTime := SGetServerDateTime(ADOQueryTemp);
end;
procedure TfrmCPAdd.ToolButton2Click(Sender: TObject);
begin
if pos('CM', trim(CYMF.Text)) > 0 then
begin
CYMF.Text := StringReplace(trim(CYMF.Text), 'CM', '"', []);
end
else
begin
CYMF.Text := StringReplace(trim(CYMF.Text), '"', 'CM', []);
end;
end;
procedure TfrmCPAdd.ToolButton3Click(Sender: TObject);
begin
try
frmCPManageFMSel := TfrmCPManageFMSel.Create(Application);
with frmCPManageFMSel do
begin
if ShowModal = 1 then
begin
with Self.CDS_Sub do
begin
Append;
FieldByName('ChildCYID').Value := CDS_Main.fieldbyname('CYid').value;
FieldByName('CYNo').Value := CDS_Main.fieldbyname('CYNo').value;
FieldByName('CYName').Value := CDS_Main.fieldbyname('CYName').value;
FieldByName('CYMF').Value := CDS_Main.fieldbyname('CYMF').value;
FieldByName('CYKZ').Value := CDS_Main.fieldbyname('CYKZ').value;
Post;
end;
end;
end;
finally
frmCPManageFMSel.Free;
end;
end;
procedure TfrmCPAdd.ToolButton4Click(Sender: TObject);
begin
if CDS_Sub.IsEmpty then
Exit;
if Trim(CDS_Sub.fieldbyname('LKID').AsString) <> '' then
begin
if Application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ', 32 + 4) <> IDYES then
Exit;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add(' delete CP_YDang_Link ');
sql.Add(' where LKID=' + quotedstr(Trim(Self.CDS_Sub.fieldbyname('LKID').AsString)));
ExecSQL;
end;
end;
CDS_Sub.Delete;
end;
end.