D7szYidui/Z99Dependency/ThreeFun/Form/U_ZDYHelpSel.pas

498 lines
14 KiB
ObjectPascal
Raw Normal View History

2025-07-19 14:23:30 +08:00
unit U_ZDYHelpSel;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
2025-10-18 14:10:28 +08:00
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, ToolWin, ComCtrls,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGridLevel,
cxClasses, cxControls, cxGridCustomView, cxGrid, DBClient, ADODB, ImgList,
StdCtrls, ExtCtrls, cxCheckBox, cxTextEdit, cxLookAndFeels,
cxLookAndFeelPainters, cxNavigator;
2025-07-19 14:23:30 +08:00
type
TfrmZDYHelpSel = class(TForm)
TV1: TcxGridDBTableView;
cxGrid1Level1: TcxGridLevel;
cxGrid1: TcxGrid;
V1Code: TcxGridDBColumn;
V1Name: TcxGridDBColumn;
ToolBar1: TToolBar;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
ADOQueryCmd: TADOQuery;
DataSource1: TDataSource;
ClientDataSet1: TClientDataSet;
TBAdd: TToolButton;
TBSave: TToolButton;
TBDel: TToolButton;
TBClose: TToolButton;
ToolButton1: TToolButton;
TBEdit: TToolButton;
V1Note: TcxGridDBColumn;
V1OrderNo: TcxGridDBColumn;
ADOConnection1: TADOConnection;
Panel1: TPanel;
Label1: TLabel;
ZDYName: TEdit;
ThreeImgList: TImageList;
V1Column1: TcxGridDBColumn;
Label2: TLabel;
2025-10-18 14:10:28 +08:00
cxStyleRepository1: TcxStyleRepository;
cxStyle1: TcxStyle;
2025-07-19 14:23:30 +08:00
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure TBAddClick(Sender: TObject);
procedure TBSaveClick(Sender: TObject);
procedure TBDelClick(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure TBEditClick(Sender: TObject);
2025-10-18 14:10:28 +08:00
procedure TV1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
2025-07-19 14:23:30 +08:00
procedure ZDYNameChange(Sender: TObject);
procedure V1NamePropertiesEditValueChanged(Sender: TObject);
private
procedure InitGrid();
{ Private declarations }
public
2025-10-18 14:10:28 +08:00
flag,flagname,snote,MainType,ReturnStr,FGStr:string;
fnote,forderno:Boolean;
PPSTE,JiangeStr:integer;
2025-07-19 14:23:30 +08:00
{ Public declarations }
end;
var
frmZDYHelpSel: TfrmZDYHelpSel;
implementation
uses
2025-10-18 14:10:28 +08:00
U_DataLink,U_Fun10;
2025-07-19 14:23:30 +08:00
{$R *.dfm}
procedure TfrmZDYHelpSel.FormCreate(Sender: TObject);
begin
try
2025-10-18 14:10:28 +08:00
cxGrid1.Align:=alClient;
2025-07-19 14:23:30 +08:00
with ADOConnection1 do
begin
2025-10-18 14:10:28 +08:00
Connected:=false;
ConnectionString:=DConString;
2025-07-19 14:23:30 +08:00
//ConnectionString:='';
2025-10-18 14:10:28 +08:00
Connected:=true;
2025-07-19 14:23:30 +08:00
end;
except
{if Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>,<2C>Ƿ<EFBFBD>Ҫ<EFBFBD>ٴ<EFBFBD><D9B4><EFBFBD><EFBFBD><EFBFBD>?','<27><>ʾ',32+4)=IDYES then
begin
try
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=DConString;
//ConnectionString:='23242';
Connected:=true;
end;
except
end;
end; }
2025-10-18 14:10:28 +08:00
2025-07-19 14:23:30 +08:00
frmZDYHelpSel.Free;
end;
end;
2025-10-18 14:10:28 +08:00
procedure TfrmZDYHelpSel.FormClose(Sender: TObject;
var Action: TCloseAction);
2025-07-19 14:23:30 +08:00
begin
ZDYName.SetFocus;
2025-10-18 14:10:28 +08:00
Action:=caFree;
2025-07-19 14:23:30 +08:00
end;
procedure TfrmZDYHelpSel.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
sql.Clear;
2025-10-18 14:10:28 +08:00
sql.Add('select * from KH_ZDY where Type='''+flag+'''');
if Trim(MainType)<>'' then
2025-07-19 14:23:30 +08:00
begin
2025-10-18 14:10:28 +08:00
sql.Add(' and MainType='''+Trim(MainType)+'''');
2025-07-19 14:23:30 +08:00
end;
Open;
end;
2025-10-18 14:10:28 +08:00
SCreateCDS20(ADOQueryMain,ClientDataSet1);
SInitCDSData20(ADOQueryMain,ClientDataSet1);
2025-07-19 14:23:30 +08:00
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmZDYHelpSel.TBAddClick(Sender: TObject);
var
2025-10-18 14:10:28 +08:00
i:Integer;
2025-07-19 14:23:30 +08:00
begin
ZDYName.SetFocus;
2025-10-18 14:10:28 +08:00
TV1.OptionsData.Editing:=True;
TV1.OptionsSelection.CellSelect:=True;
for i:=0 to 5 do
2025-07-19 14:23:30 +08:00
begin
with ClientDataSet1 do
begin
Append;
Post;
end;
end;
end;
procedure TfrmZDYHelpSel.TBSaveClick(Sender: TObject);
var
2025-10-18 14:10:28 +08:00
maxno:string;
2025-07-19 14:23:30 +08:00
begin
2025-10-18 14:10:28 +08:00
if ClientDataSet1.IsEmpty then Exit;
2025-07-19 14:23:30 +08:00
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
2025-10-18 14:10:28 +08:00
SQL.Add('select * from KH_ZDY where ZdyNo='''+Trim(flag)+'''');
2025-07-19 14:23:30 +08:00
open;
end;
if ADOQueryTemp.IsEmpty then
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('insert into KH_ZDY(ZDYNo,ZDYName,Type,MainType) select :ZDYNo,:ZDYName,:Type,:MainType ');
2025-10-18 14:10:28 +08:00
Parameters.ParamByName('ZDYNo').Value:=Trim(flag);
Parameters.ParamByName('ZDYName').Value:=Trim(flagname);
Parameters.ParamByName('Type').Value:='Main';
Parameters.ParamByName('MainType').Value:=Trim(MainType);
2025-07-19 14:23:30 +08:00
ExecSQL;
end;
end;
with ADOQueryCmd do
begin
with ClientDataSet1 do
begin
First;
while not eof do
begin
2025-10-18 14:10:28 +08:00
if Trim(ClientDataSet1.FieldByName('ZDYNO').AsString)='' then
2025-07-19 14:23:30 +08:00
begin
2025-10-18 14:10:28 +08:00
if GetLSNo(ADOQueryTemp,maxno,'SY','KH_ZDY',3,1)=False then
2025-07-19 14:23:30 +08:00
begin
ADOQueryCmd.Connection.RollbackTrans;
2025-10-18 14:10:28 +08:00
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
2025-07-19 14:23:30 +08:00
Exit;
end;
2025-10-18 14:10:28 +08:00
end else
2025-07-19 14:23:30 +08:00
begin
2025-10-18 14:10:28 +08:00
maxno:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
2025-07-19 14:23:30 +08:00
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
2025-10-18 14:10:28 +08:00
SQL.Add('delete KH_ZDY where ZDYNO='''+Trim(ClientDataSet1.fieldbyname('ZDYNO').AsString)+'''');
2025-07-19 14:23:30 +08:00
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from KH_ZDY where 1<>1');
Open;
end;
2025-10-18 14:10:28 +08:00
if Trim(ClientDataSet1.FieldByName('ZDYName').AsString)='' then
2025-07-19 14:23:30 +08:00
begin
ADOQueryCmd.Connection.RollbackTrans;
2025-10-18 14:10:28 +08:00
Application.MessageBox('<27><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>','<27><>ʾ',0);
2025-07-19 14:23:30 +08:00
Exit;
end;
ADOQueryCmd.Append;
2025-10-18 14:10:28 +08:00
ADOQueryCmd.FieldByName('ZDYNo').Value:=Trim(maxno);
ADOQueryCmd.FieldByName('ZDYName').Value:=ClientDataSet1.fieldbyname('ZDYName').AsString;
ADOQueryCmd.FieldByName('note').Value:=Trim(snote);
2025-07-19 14:23:30 +08:00
//ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString;
2025-10-18 14:10:28 +08:00
ADOQueryCmd.FieldByName('Type').Value:=flag;
ADOQueryCmd.FieldByName('valid').Value:='Y';
if Trim(MainType)<>'' then
ADOQueryCmd.FieldByName('MainType').Value:=Trim(MainType);
2025-07-19 14:23:30 +08:00
//ADOQueryCmd.FieldByName('sel').Value:=0;
ADOQueryCmd.Post;
ClientDataSet1.Edit;
2025-10-18 14:10:28 +08:00
ClientDataSet1.FieldByName('ZDYNo').Value:=Trim(maxno);
2025-07-19 14:23:30 +08:00
ClientDataSet1.Post;
Next;
end;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
2025-10-18 14:10:28 +08:00
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ',0);
2025-07-19 14:23:30 +08:00
except
ADOQueryCmd.Connection.RollbackTrans;
2025-10-18 14:10:28 +08:00
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
2025-07-19 14:23:30 +08:00
end;
// TV1.OptionsData.Editing:=False;
end;
procedure TfrmZDYHelpSel.TBDelClick(Sender: TObject);
begin
2025-10-18 14:10:28 +08:00
if ClientDataSet1.IsEmpty then Exit;
if (Trim(ClientDataSet1.FieldByName('ZDYNo').AsString)<>'') or
(Trim(ClientDataSet1.FieldByName('ZDYname').AsString)<>'') then
2025-07-19 14:23:30 +08:00
begin
2025-10-18 14:10:28 +08:00
if application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD>?','<27><>ʾ<EFBFBD><CABE>Ϣ',1)=2 then exit;
2025-07-19 14:23:30 +08:00
with ADOQueryCmd do
begin
Close;
sql.Clear;
2025-10-18 14:10:28 +08:00
sql.Add('delete KH_ZDY where ZDYNo='''+Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString)+'''');
SQL.Add(' and Type='''+Trim(flag)+'''');
2025-07-19 14:23:30 +08:00
ExecSQL;
end;
end;
ClientDataSet1.Delete;
end;
procedure TfrmZDYHelpSel.TBCloseClick(Sender: TObject);
begin
2025-10-18 14:10:28 +08:00
ModalResult:=2;
2025-07-19 14:23:30 +08:00
ZDYName.SetFocus;
Close;
end;
procedure TfrmZDYHelpSel.FormShow(Sender: TObject);
var
2025-10-18 14:10:28 +08:00
fsj,fsj1:string;
2025-07-19 14:23:30 +08:00
begin
{if PPSTE=1 then
begin
Application.Terminate;
Exit;
end; }
InitGrid();
2025-10-18 14:10:28 +08:00
fsj:=Trim(flag)+'01';
fsj1:=Trim(flagname)+'01';
{if ClientDataSet1.IsEmpty then
2025-07-19 14:23:30 +08:00
begin
2025-10-18 14:10:28 +08:00
with ADOQueryCmd do
2025-07-19 14:23:30 +08:00
begin
2025-10-18 14:10:28 +08:00
Close;
sql.Clear;
sql.Add('insert into KH_ZDY(ZDYNo,ZDYname,Type,note)');
sql.Add('select '''+Trim(fsj)+'''');
sql.Add(','''+Trim(fsj1)+'''');
SQL.Add(','''+Trim(flag)+'''');
sql.Add(','''+Trim(snote)+'''');
ExecSQL;
2025-07-19 14:23:30 +08:00
end;
2025-10-18 14:10:28 +08:00
InitGrid();
end;}
//frmZDYHelp.Caption:=Trim(flagname)+'<'+Trim(flag)+'>';
frmZDYHelpSel.Caption:=Trim(flagname);
2025-07-19 14:23:30 +08:00
end;
procedure TfrmZDYHelpSel.ToolButton1Click(Sender: TObject);
begin
2025-10-18 14:10:28 +08:00
ReturnStr:='';
2025-07-19 14:23:30 +08:00
with ClientDataSet1 do
begin
First;
while not Eof do
begin
2025-10-18 14:10:28 +08:00
if FieldByName('SSel').AsBoolean=True then
2025-07-19 14:23:30 +08:00
begin
2025-10-18 14:10:28 +08:00
if JiangeStr<>99 then
2025-07-19 14:23:30 +08:00
begin
2025-10-18 14:10:28 +08:00
if FGStr<>'' then
ReturnStr:=ReturnStr+Trim(fieldbyname('ZDYName').AsString)+FGStr
2025-07-19 14:23:30 +08:00
else
2025-10-18 14:10:28 +08:00
ReturnStr:=ReturnStr+Trim(fieldbyname('ZDYName').AsString)+';'
2025-07-19 14:23:30 +08:00
end
else
2025-10-18 14:10:28 +08:00
ReturnStr:=ReturnStr+Trim(fieldbyname('ZDYName').AsString);
2025-07-19 14:23:30 +08:00
end;
Next;
end;
end;
2025-10-18 14:10:28 +08:00
if JiangeStr<>99 then
ReturnStr:=Copy(ReturnStr,1,Length(ReturnStr)-1);
ModalResult:=1;
2025-07-19 14:23:30 +08:00
end;
procedure TfrmZDYHelpSel.TBEditClick(Sender: TObject);
begin
2025-10-18 14:10:28 +08:00
TV1.OptionsData.Editing:=True;
2025-07-19 14:23:30 +08:00
end;
2025-10-18 14:10:28 +08:00
procedure TfrmZDYHelpSel.TV1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
2025-07-19 14:23:30 +08:00
begin
2025-10-18 14:10:28 +08:00
if TV1.OptionsData.Editing=False then
2025-07-19 14:23:30 +08:00
begin
2025-10-18 14:10:28 +08:00
ModalResult:=1;
2025-07-19 14:23:30 +08:00
end;
end;
procedure TfrmZDYHelpSel.ZDYNameChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
2025-10-18 14:10:28 +08:00
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,ClientDataSet1);
SInitCDSData20(ADOQueryMain,ClientDataSet1);
2025-07-19 14:23:30 +08:00
end;
end;
procedure TfrmZDYHelpSel.V1NamePropertiesEditValueChanged(Sender: TObject);
var
2025-10-18 14:10:28 +08:00
maxno,mvalue:string;
2025-07-19 14:23:30 +08:00
begin
2025-10-18 14:10:28 +08:00
mvalue:=TcxTextEdit(Sender).EditingText;
if Trim(mvalue)='' then
2025-07-19 14:23:30 +08:00
begin
//Application.MessageBox('<27><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
with ClientDataSet1 do
begin
Edit;
2025-10-18 14:10:28 +08:00
FieldByName('ZdyName').Value:=Trim(mvalue);
2025-07-19 14:23:30 +08:00
//Post;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
2025-10-18 14:10:28 +08:00
SQL.Add('select * from KH_ZDY where ZdyNo='''+Trim(flag)+'''');
2025-07-19 14:23:30 +08:00
open;
end;
if ADOQueryTemp.IsEmpty then
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('insert into KH_ZDY(ZDYNo,ZDYName,Type,MainType) select :ZDYNo,:ZDYName,:Type,:MainType ');
2025-10-18 14:10:28 +08:00
Parameters.ParamByName('ZDYNo').Value:=Trim(flag);
Parameters.ParamByName('ZDYName').Value:=Trim(flagname);
Parameters.ParamByName('Type').Value:='Main';
Parameters.ParamByName('MainType').Value:=Trim(MainType);
2025-07-19 14:23:30 +08:00
ExecSQL;
end;
end;
with ADOQueryCmd do
begin
//ClientDataSet1.DisableControls;
//with ClientDataSet1 do
//begin
//First;
//while not eof do
//begin
2025-10-18 14:10:28 +08:00
if Trim(ClientDataSet1.FieldByName('ZDYNO').AsString)='' then
begin
if GetLSNo(ADOQueryTemp,maxno,'SY','KH_ZDY',3,1)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
2025-07-19 14:23:30 +08:00
//ClientDataSet1.EnableControls;
2025-10-18 14:10:28 +08:00
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
end else
begin
maxno:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString);
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.add('select * from KH_Zdy where Type='''+Trim(flag)+'''');
if Trim(MainType)<>'' then
SQL.Add(' and MainType='''+Trim(MainType)+'''');
sql.Add(' and ZdyName='''+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)+'''');
Open;
end;
if ADOQueryTemp.IsEmpty=False then
begin
if ADOQueryTemp.RecordCount>1 then
begin
ADOQueryCmd.Connection.RollbackTrans;
2025-07-19 14:23:30 +08:00
//ClientDataSet1.EnableControls;
2025-10-18 14:10:28 +08:00
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>','<27><>ʾ',0);
Exit;
end;
if Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString)='' then
begin
ADOQueryCmd.Connection.RollbackTrans;
2025-07-19 14:23:30 +08:00
//ClientDataSet1.EnableControls;
2025-10-18 14:10:28 +08:00
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>','<27><>ʾ',0);
Exit;
end else
begin
if Trim(ADOQueryTemp.fieldbyname('ZdyNo').AsString)<>Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString) then
begin
ADOQueryCmd.Connection.RollbackTrans;
2025-07-19 14:23:30 +08:00
//ClientDataSet1.EnableControls;
2025-10-18 14:10:28 +08:00
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>','<27><>ʾ',0);
Exit;
end;
end;
2025-07-19 14:23:30 +08:00
end;
2025-10-18 14:10:28 +08:00
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('delete KH_ZDY where ZDYNO='''+Trim(ClientDataSet1.fieldbyname('ZDYNO').AsString)+'''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from KH_ZDY where 1<>1');
Open;
end;
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('ZDYNo').Value:=Trim(maxno);
ADOQueryCmd.FieldByName('ZDYName').Value:=ClientDataSet1.fieldbyname('ZDYName').AsString;
ADOQueryCmd.FieldByName('note').Value:=Trim(snote);
2025-07-19 14:23:30 +08:00
//ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString;
2025-10-18 14:10:28 +08:00
ADOQueryCmd.FieldByName('Type').Value:=flag;
ADOQueryCmd.FieldByName('valid').Value:='Y';
if Trim(MainType)<>'' then
ADOQueryCmd.FieldByName('MainType').Value:=Trim(MainType);
2025-07-19 14:23:30 +08:00
//ADOQueryCmd.FieldByName('sel').Value:=0;
2025-10-18 14:10:28 +08:00
ADOQueryCmd.Post;
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('ZDYNo').Value:=Trim(maxno);
2025-07-19 14:23:30 +08:00
//ClientDataSet1.Post;
// Next;
//end;
//end;
// ClientDataSet1.EnableControls;
end;
ADOQueryCmd.Connection.CommitTrans;
//Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ',0);
//TV1.OptionsData.Editing:=False;
//TV1.OptionsSelection.CellSelect:=False;
except
ADOQueryCmd.Connection.RollbackTrans;
2025-10-18 14:10:28 +08:00
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
2025-07-19 14:23:30 +08:00
end;
end;
end.