D7myYunxiang/样品新云翔(YPGLBOM.dll)/U_ZdyAttInputGYS_ZXX.pas

471 lines
14 KiB
ObjectPascal
Raw Normal View History

2025-01-20 13:04:03 +08:00
unit U_ZdyAttInputGYS_ZXX;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin,
StdCtrls, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdFTP,ShellAPI,IniFiles, cxCheckBox, cxCalendar,
cxButtonEdit, cxTextEdit, cxDropDownEdit, cxPC;
type
TfrmZdyAttInputGYS_ZXX = class(TForm)
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
RM1: TRMGridReport;
RMDB_Main: TRMDBDataSet;
cxGridPopupMenu2: TcxGridPopupMenu;
DS_HZ: TDataSource;
CDS_HZ: TClientDataSet;
cxGridPopupMenu1: TcxGridPopupMenu;
DS_HZ2: TDataSource;
CDS_HZ2: TClientDataSet;
ADOQueryMain2: TADOQuery;
cxGridPopupMenu3: TcxGridPopupMenu;
DS_HZ3: TDataSource;
ADOQueryMain3: TADOQuery;
CDS_HZ3: TClientDataSet;
Panel2: TPanel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label10: TLabel;
GYSName: TEdit;
GYSFZRen: TEdit;
GYSNameZC: TEdit;
GYSTel: TEdit;
GYSCodeFW: TMemo;
Note: TMemo;
GYSAdd: TMemo;
GYSNo: TEdit;
ToolBar1: TToolBar;
ToolButton3: TToolButton;
TBClose: TToolButton;
Panel1: TPanel;
Label2: TLabel;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
private
{ Private declarations }
procedure InitGrid();
function SaveData():Boolean;
function SaveData2():Boolean;
procedure SSetsaveSqlNewTClient(ADOQueryCmd:TClientDataSet;
Myparent:TWinControl;MyTag:integer);
procedure SCSHDataNewTclient(ADOQueryTmp:TClientDataSet;mParent:TWinControl;FTag:Integer);
public
{ Public declarations }
RKFlag,FKHMainid,formid:String;
fDEFstr5:string;
end;
var
frmZdyAttInputGYS_ZXX: TfrmZdyAttInputGYS_ZXX;
implementation
uses
U_DataLink,U_Fun,U_ZDYHelp,U_FjList_RZ;
{$R *.dfm}
procedure TfrmZdyAttInputGYS_ZXX.InitGrid();
begin
with ADOQueryMain do
begin
Filtered:=False;
Close;
SQL.Clear;
sql.Add('select * from KH_Main where KHMainID='''+Trim(FKHMainid)+'''');
Open;
end;
//<2F><><EFBFBD><EFBFBD>
if ADOQueryMain.IsEmpty=false then
SCSHDataNew(ADOQueryMain,Panel2,2)
else
begin
//GYSFZRen.Text:=Trim(DName);
end;
end;
procedure TfrmZdyAttInputGYS_ZXX.FormDestroy(Sender: TObject);
begin
frmZdyAttInputGYS_ZXX:=nil;
end;
procedure TfrmZdyAttInputGYS_ZXX.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmZdyAttInputGYS_ZXX.TBCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmZdyAttInputGYS_ZXX.FormShow(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmZdyAttInputGYS_ZXX.TBRafreshClick(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmZdyAttInputGYS_ZXX.SSetsaveSqlNewTClient(ADOQueryCmd:TClientDataSet;
Myparent:TWinControl;MyTag:integer);
var
i:Integer;
MCode:String;
begin
with Myparent do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i].Tag=MyTag then
begin
if Controls[i] is TEdit then
begin
if Trim(TEdit(Controls[i]).Text)<>'' then
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TEdit(Controls[i]).Text)
else
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Null;
end else
if Controls[i] is TRichEdit then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=TRichEdit(Controls[i]).Text;
end else
if Controls[i] is TCheckBox then
begin
if TCheckBox(Controls[i]).Checked=True then
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=1
else
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=0;
end else
if Controls[i] is TMemo then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=TMemo(Controls[i]).Text;
end else
if Controls[i] is TComboBox then
begin
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TComboBox(Controls[i]).Text);
end else
if Controls[i] is TDateTimePicker then
begin
if TDateTimePicker(Controls[i]).ShowCheckbox then
begin
if TDateTimePicker(Controls[i]).Checked then
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=TDateTimePicker(Controls[i]).DateTime
else
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=null;
end else
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=TDateTimePicker(Controls[i]).DateTime;
end else
if Controls[i] is TcxButtonEdit then
begin
if (TcxButtonEdit(Controls[i]).BeepOnEnter=True) or (TcxButtonEdit(Controls[i]).ParentShowHint=True) then
ADOQueryCmd.FieldByName(Controls[i].Name).Value:=Trim(TcxButtonEdit(Controls[i]).Text);
if TcxButtonEdit(Controls[i]).ParentShowHint=False then
begin
MCode:=Copy(Trim(Controls[i].Name),1,Length(Trim(Controls[i].Name))-4);
ADOQueryCmd.FieldByName(MCode).Value:=Trim(TcxButtonEdit(Controls[i]).Hint);
end;
end;
end;
end;
end;
end;
function TfrmZdyAttInputGYS_ZXX.SaveData():Boolean;
var
maxId,CRID,fzdyCode,FYSSubId,maxno,maxnum,FMXNO:String;
begin
///ȡmaxId
result:=false;
ADOQueryCmd.Connection.BeginTrans;
if Trim(FKHMainid)='' then
begin
if GetLSNo(ADOQueryCmd,maxId,'KH','KH_Main',4,1)=False then
begin
Result:=False;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
if GetLSNo(ADOQueryCmd,fzdyCode,'PB','KH_Main',4,0)=False then
begin
Result:=False;
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
GYSNo.Text:=Trim(fzdyCode);
end else
begin
maxId:=Trim(FKHMainid);
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from KH_Main where KHMainID='''+Trim(FKHMainid)+'''');
Open;
If IsEmpty then
begin
append;
FieldByName('Filler').Value:=Trim(DName);
FieldByName('fillcode').Value:=Trim(DCode);
end
else
begin
Edit;
FieldByName('Editer').Value:=Trim(DName);
FieldByName('Edittime').Value:=SGetServerDateTime(ADOQueryTemp);
end;
FieldByName('KHMainID').Value:=Trim(maxId);
FieldByName('GYSType').Value:='<27><><EFBFBD><EFBFBD>';
SSetsaveSqlNew(ADOQueryCmd,'KH_Main',Panel2,2);
post;
end;
if FKHMainid='' then
begin
if GetLSNo(ADOQueryCmd,maxno,'HB','KH_Sub',4,1)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('ȡϵ<C8A1><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IDʧ<44><CAA7>!','<27><>ʾ',0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from KH_Sub where KHSubid='''+Trim(maxno)+'''');
Open;
If IsEmpty then
begin
append;
FieldByName('XHNo').Value:=1;
end
else
begin
Edit;
end;
FieldByName('KHSubid').Value:=Trim(maxno);
FieldByName('KHMainID').Value:=Trim(maxId);
FieldByName('KHMXName').Value:=Trim(GYSName.Text);
FieldByName('KHMXJC').Value:=Trim(GYSNameZC.Text);
FieldByName('KHMXLXR').Value:=Trim(GYSFZRen.Text);
FieldByName('KHMXTel').Value:=Trim(GYSTel.Text);
FieldByName('KHMXAdd').Value:=Trim(GYSAdd.Text);
FieldByName('KHMXSJAdd').Value:=Trim(GYSAdd.Text);
FieldByName('KHMXNo').Value:=Trim(fzdyCode);
//FieldByName('KHMXNote').Value:=Trim(Note.Text);
post;
end;
end;
FKHMainid:=maxId;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from KH_Main where GYSName='''+Trim(GYSName.Text)+'''');
sql.Add(' and GYSType=''<27><><EFBFBD><EFBFBD>'' ');
Open;
end;
if ADOQueryCmd.RecordCount>1 then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><>Ӧ<EFBFBD><D3A6><EFBFBD>ظ<EFBFBD>!','<27><>ʾ',0);
Exit;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from KH_Main where GYSNameZC='''+Trim(GYSNameZC.Text)+'''');
sql.Add(' and GYSType=''<27><><EFBFBD><EFBFBD>'' ');
Open;
end;
if ADOQueryCmd.RecordCount>1 then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><>Ӧ<EFBFBD>̼<EFBFBD><CCBC><EFBFBD><EFBFBD>ظ<EFBFBD>!','<27><>ʾ',0);
Exit;
end;
ADOQueryCmd.Connection.CommitTrans;
result:=true;
end;
procedure TfrmZdyAttInputGYS_ZXX.ToolButton3Click(Sender: TObject);
begin
Panel2.SetFocus;
IF trim(GYSName.Text)='' then
begin
application.MessageBox('<27><>Ӧ<EFBFBD>̲<EFBFBD><CCB2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',MB_ICONERROR);
exit;
end;
if Trim(GYSNameZC.Text)='' then
begin
application.MessageBox('<27><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>','<27><>ʾ<EFBFBD><CABE>Ϣ',MB_ICONERROR);
exit;
end;
if Application.MessageBox(<><C8B7>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>ʾ',32+4)<>IDYES then Exit;
if SaveData() then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>!','<27><>ʾ',0);
ModalResult:=1;
end;
end;
function TfrmZdyAttInputGYS_ZXX.SaveData2():Boolean;
var
maxId,CRID,fzdyCode,FYSSubId,maxno:String;
begin
///<2F>жϡ<D0B6><CFA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
with CDS_HZ3 do
begin
CDS_HZ3.First;
while not Eof do
begin
FYSSubId:=Trim(CDS_HZ3.fieldbyname('LXFS_ZJ').AsString);
if Trim(FYSSubId)='' then
begin
if GetLSNo(ADOQueryMain3,maxno,'LX','LXFS_ZJ',4,1)=False then
begin
// ADOQueryCmd.Connection.RollbackTrans; //<2F>ع<EFBFBD><D8B9><EFBFBD><EFBFBD><EFBFBD>
Application.MessageBox('ȡϵ<C8A1><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IDʧ<44><CAA7>!','<27><>ʾ',0);
Exit;
end;
end else
begin
maxno:=Trim(FYSSubId);
end;
ADOQueryCmd.Connection.BeginTrans; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('select * from GYS_LXFS where LXFS_ZJ='''+Trim(maxno)+'''');
Open;
If Trim(FYSSubId)='' then
begin
append;
end
else
begin
Edit;
end;
FieldByName('LXFS_BH').Value:=Trim(CDS_HZ3.fieldbyname('LXFS_BH').AsString);
FieldByName('LXFS_LXR').Value:=Trim(CDS_HZ3.fieldbyname('LXFS_LXR').AsString);
FieldByName('LXFS_SJ').Value:=Trim(CDS_HZ3.fieldbyname('LXFS_SJ').AsString);
FieldByName('LXFS_DZ').Value:=Trim(CDS_HZ3.fieldbyname('LXFS_DZ').AsString);
FieldByName('LXFS_DH').Value:=Trim(CDS_HZ3.fieldbyname('LXFS_DH').AsString);
FieldByName('LXFS_CZ').Value:=Trim(CDS_HZ3.fieldbyname('LXFS_CZ').AsString);
FieldByName('LXFS_BZ').Value:=Trim(CDS_HZ3.fieldbyname('LXFS_BZ').AsString);
FieldByName('LXFS_ZJ').Value:=Trim(maxno);
FieldByName('KHMainID').Value:=Trim(CDS_HZ2.fieldbyname('KHMainID').AsString);
FieldByName('KHSubid').Value:=Trim(CDS_HZ2.fieldbyname('KHSubid').AsString);
post;
end;
CDS_HZ3.Next;
end;
end;
ADOQueryCmd.Connection.CommitTrans; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
result:=true;
end;
procedure TfrmZdyAttInputGYS_ZXX.SCSHDataNewTclient(ADOQueryTmp:TClientDataSet;mParent:TWinControl;FTag:Integer);
var
i,idx:integer;
mfield,mfieldCode:string;
ma:TA;
begin
with ADOQueryTmp do
begin
if isEmpty then exit;
with mParent do
begin
for i:=0 to ControlCount-1 do
begin
if Controls[i] is TLabel then continue;
if Controls[i].Tag<>FTag then continue;
mfield:=Controls[i].Name;
if Controls[i] is TEdit then
begin
if Trim(fieldByName(mfield).AsString)<>'' then
TEdit(Controls[i]).Text:=trim(fieldByName(mfield).AsString)
else
TEdit(Controls[i]).Text:='';
end
else if Controls[i] is TRichEdit then
begin
if Trim(fieldByName(mfield).AsString)<>'' then
TRichEdit(Controls[i]).Text:=trim(fieldByName(mfield).AsString);
end
else if Controls[i] is TComboBox then
begin
if TComboBox(Controls[i]).Items.Count>0 then
begin
idx:=TComboBox(Controls[i]).Items.IndexOf(trim(fieldByName(mfield).AsString));
end
else
idx:=-1;
TComboBox(Controls[i]).ItemIndex:=idx;
end
else if Controls[i] is TDateTimePicker then
begin
if Trim(fieldByName(mfield).AsString)='' then
begin
TDateTimePicker(Controls[i]).Checked:=False;
end
else
TDateTimePicker(Controls[i]).DateTime:=fieldByName(mfield).AsDateTime;
end
else if Controls[i] is Tmemo then
begin
Tmemo(Controls[i]).Text :=trim(fieldByName(mfield).AsString);
end
else if Controls[i] is TcxDateEdit then
begin
if not IsEmpty and not fieldByName(mfield).IsNull then
TcxDateEdit(Controls[i]).text :=fieldByName(mfield).AsString;
end
else if Controls[i] is TcheckBox then
begin
if FieldByName(mfield).Value=null then
TcheckBox(Controls[i]).Checked:=False
else
TcheckBox(Controls[i]).Checked:=fieldByName(mfield).asBoolean;
end else if Controls[i] is TcxButtonEdit then
begin
TcxButtonEdit(Controls[i]).Text:=Trim(fieldbyname(mfield).AsString);
if TcxButtonEdit(Controls[i]).ParentShowHint=False then
begin
mfieldCode:=Trim(Copy(mfield,1,Length(mfield)-4));
TcxButtonEdit(Controls[i]).Hint:=Trim(fieldbyname(mfieldCode).AsString);
end;
end;
end; // end for
end; // end with
end; //end for with
end;
end.