RTFormwork/public10/ThreeFun/Form/U_ZDYHelpDL.pas

295 lines
8.6 KiB
ObjectPascal
Raw Normal View History

2024-07-07 09:35:27 +08:00
unit U_ZDYHelpDL;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
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, cxTL, cxMaskEdit, cxInplaceContainer, cxDBTL,
cxTLData, cxDropDownEdit;
type
TfrmZDYDLHelp = 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;
ADOQueryChild: TADOQuery;
DataSource2: TDataSource;
cxDBTreeList1: TcxDBTreeList;
cxColumn2: TcxDBTreeListColumn;
V1Column1: TcxGridDBColumn;
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);
procedure TV1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
procedure ZDYNameChange(Sender: TObject);
procedure cxDBTreeList1Click(Sender: TObject);
private
procedure InitGrid();
{ Private declarations }
public
MainType,MainTypeName,flag,flagname,snote:string;
fnote,forderno:Boolean;
{ Public declarations }
end;
var
frmZDYDLHelp: TfrmZDYDLHelp;
implementation
uses
U_DataLink,U_Fun;
{$R *.dfm}
procedure TfrmZDYDLHelp.FormCreate(Sender: TObject);
begin
cxGrid1.Align:=alClient;
with ADOConnection1 do
begin
Connected:=false;
ConnectionString:=DConString;
Connected:=true;
end;
end;
procedure TfrmZDYDLHelp.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfrmZDYDLHelp.InitGrid();
begin
try
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add('select A.*,TypeName=(select ZdyName from KH_Zdy B where B.ZdyNO=A.Type) from KH_Zdy A');
if Trim(ADOQueryChild.fieldbyname('frameNo').AsString)<>'QB' then
sql.Add('where Type='''+Trim(ADOQueryChild.fieldbyname('frameNo').AsString)+'''')
else
sql.Add('where MainType='''+Trim(MainType)+''' and Type<>''Main'' ');
Open;
end;
SCreateCDS20(ADOQueryMain,ClientDataSet1);
SInitCDSData20(ADOQueryMain,ClientDataSet1);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmZDYDLHelp.TBAddClick(Sender: TObject);
begin
TV1.OptionsData.Editing:=True;
with ClientDataSet1 do
begin
Append;
Post;
end;
end;
procedure TfrmZDYDLHelp.TBSaveClick(Sender: TObject);
var
maxno,fsj:string;
i:Integer;
begin
if ClientDataSet1.IsEmpty then Exit;
if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString)='' then
begin
Application.MessageBox('<27><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
if Trim(ClientDataSet1.fieldbyname('TypeName').AsString)='' then
begin
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
with ClientDataSet1 do
begin
First;
while not eof do
begin
if Trim(ClientDataSet1.FieldByName('ZDYNO').AsString)='' then
begin
if GetLSNo(ADOQueryTemp,maxno,'SY','KH_ZDY',3,1)=False then
begin
ADOQueryCmd.Connection.RollbackTrans;
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 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;
if Trim(ClientDataSet1.FieldByName('ZDYName').AsString)='' then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('ZDYNo').Value:=Trim(maxno);
ADOQueryCmd.FieldByName('ZDYName').Value:=ClientDataSet1.fieldbyname('ZDYName').AsString;
ADOQueryCmd.FieldByName('note').Value:=Trim(snote);
//ADOQueryCmd.FieldByName('orderno').Value:=ClientDataSet1.fieldbyname('Name').AsString;
// ADOQueryCmd.FieldByName('Type').Value:=TcxComboBox(V1Column1).Properties.Items.Strings[1];
i:=(V1Column1.Properties as TcxComboBoxProperties).Items.IndexOf(ClientDataSet1.fieldbyname('TypeName').AsString);
fsj:=TA((V1Column1.Properties as TcxComboBoxProperties).Items.Objects[i]).S;
ADOQueryCmd.FieldByName('Type').Value:=Trim(fsj);
ADOQueryCmd.FieldByName('valid').Value:='Y';
ADOQueryCmd.FieldByName('Maintype').Value:=Trim(MainType);
//ADOQueryCmd.FieldByName('sel').Value:=0;
ADOQueryCmd.Post;
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('ZDYNo').Value:=Trim(maxno);
ClientDataSet1.Post;
Next;
end;
end;
end;
ADOQueryCmd.Connection.CommitTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>','<27><>ʾ',0);
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>','<27><>ʾ',0);
end;
TV1.OptionsData.Editing:=False;
end;
procedure TfrmZDYDLHelp.TBDelClick(Sender: TObject);
begin
if ClientDataSet1.IsEmpty then Exit;
if (Trim(ClientDataSet1.FieldByName('ZDYNo').AsString)<>'') or
(Trim(ClientDataSet1.FieldByName('ZDYname').AsString)<>'') then
begin
if application.MessageBox(<><C8B7>Ҫɾ<D2AA><C9BE><EFBFBD><EFBFBD>?','<27><>ʾ<EFBFBD><CABE>Ϣ',1)=2 then exit;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('delete KH_ZDY where ZDYNo='''+Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString)+'''');
SQL.Add(' and Type='''+Trim(ADOQueryChild.fieldbyname('frameNO').AsString)+'''');
ExecSQL;
end;
end;
ClientDataSet1.Delete;
end;
procedure TfrmZDYDLHelp.TBCloseClick(Sender: TObject);
begin
ModalResult:=2;
Close;
end;
procedure TfrmZDYDLHelp.FormShow(Sender: TObject);
var
fsj,fsj1:string;
begin
fsj:='select ZdyNo code,ZdyName name from KH_Zdy where MainType='''+MainType+''' and Type=''Main''';
SInitCxGridComboBoxBySql(ADOQueryTemp,V1Column1,fsj,1,True,'');
fsj:= ' select frameNo=''QB'',frameName='<><C8AB>'',TopFrameNo='''+Trim(MainType)+''''+
' union all select frameNo=ZdyNo,frameName=ZdyName,TopFrameNo=MainType '+
' from KH_Zdy A '+
' where A.MainType='''+MainType+''' and Type=''Main''';
with ADOQueryChild do
begin
Close;
sql.Clear;
sql.Add(fsj);
Open;
end;
cxDBTreeList1.FullExpand;
InitGrid();
frmZDYDLHelp.Caption:=Trim(MainTypename)+'<'+Trim(MainType)+'>';
end;
procedure TfrmZDYDLHelp.ToolButton1Click(Sender: TObject);
begin
ModalResult:=1;
end;
procedure TfrmZDYDLHelp.TBEditClick(Sender: TObject);
begin
TV1.OptionsData.Editing:=True;
end;
procedure TfrmZDYDLHelp.TV1CellDblClick(Sender: TcxCustomGridTableView;
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
AShift: TShiftState; var AHandled: Boolean);
begin
if TV1.OptionsData.Editing=False then
begin
ModalResult:=1;
end;
end;
procedure TfrmZDYDLHelp.ZDYNameChange(Sender: TObject);
begin
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain,SGetFilters(Panel1,1,2));
SCreateCDS20(ADOQueryMain,ClientDataSet1);
SInitCDSData20(ADOQueryMain,ClientDataSet1);
end;
end;
procedure TfrmZDYDLHelp.cxDBTreeList1Click(Sender: TObject);
begin
InitGrid();
end;
end.