D10myBiaoqi/A02基础产品管理/U_DictList.pas

1114 lines
32 KiB
ObjectPascal
Raw Normal View History

2024-07-04 16:01:24 +08:00
unit U_DictList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage,
cxEdit, DB, cxDBData, ToolWin, ComCtrls, U_BaseInput, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGrid, DBClient, ADODB, ImgList, StdCtrls, ExtCtrls,
cxTextEdit, cxGridCustomPopupMenu, cxGridPopupMenu, cxLookAndFeels,
cxLookAndFeelPainters, dxSkinsCore, dxSkinsDefaultPainters, cxNavigator,
dxDateRanges, dxBarBuiltInMenu, System.ImageList, Vcl.Menus, U_BaseList;
type
TfrmDictList = class(TfrmBaseList)
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;
DictName: TEdit;
ThreeImgList: TImageList;
Label2: TLabel;
cxGridPopupMenu1: TcxGridPopupMenu;
ImageList1: TImageList;
V1Description: TcxGridDBColumn;
cxGrid2: TcxGrid;
TV2: TcxGridDBTableView;
V2Code: TcxGridDBColumn;
V2OrderNo: TcxGridDBColumn;
V2Name: TcxGridDBColumn;
V2Note: TcxGridDBColumn;
V2Description: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
ADOQuerySub: TADOQuery;
DataSource2: TDataSource;
ClientDataSet2: TClientDataSet;
PM_1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
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 DictNameChange(Sender: TObject);
procedure V1NamePropertiesEditValueChanged(Sender: TObject);
procedure V1OrderNoPropertiesEditValueChanged(Sender: TObject);
procedure V1NotePropertiesEditValueChanged(Sender: TObject);
procedure V1Column1PropertiesEditValueChanged(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure V1DescriptionPropertiesEditValueChanged(Sender: TObject);
procedure TV1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
procedure V2NamePropertiesEditValueChanged(Sender: TObject);
procedure V2NotePropertiesEditValueChanged(Sender: TObject);
procedure V2OrderNoPropertiesEditValueChanged(Sender: TObject);
procedure V2DescriptionPropertiesEditValueChanged(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure TV2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
private
procedure InitGrid();
{ Private declarations }
public
flag, flagname, snote: string;
f1note, f1orderno, f2note, f2orderno: Boolean;
PPSTE: integer;
{ Public declarations }
end;
var
frmDictList: TfrmDictList;
implementation
uses
U_DataLink, U_RTFun, U_ZDYHelp;
{$R *.dfm}
procedure TfrmDictList.FormCreate(Sender: TObject);
begin
inherited;
try
// cxGrid1.Align := alClient;
with ADOConnection1 do
begin
Connected := false;
ConnectionString := DConString;
Connected := true;
end;
ADOQueryBaseCmd.Connection := ADOConnection1;
ADOQueryBaseTemp.Connection := ADOConnection1;
except
end;
end;
procedure TfrmDictList.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DictName.SetFocus;
Action := cafree;
end;
procedure TfrmDictList.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add('select A.*,ZJM=dbo.getPinYin(A.DictName) from Sy_Dict A where A.Type=''' + flag + '''');
Open;
end;
SCreateCDS(ADOQueryMain, ClientDataSet1);
SInitCDSData(ADOQueryMain, ClientDataSet1);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmDictList.N1Click(Sender: TObject);
var
i: Integer;
begin
DictName.SetFocus;
TV2.OptionsData.Editing := True;
TV2.OptionsSelection.CellSelect := True;
for i := 0 to 0 do
begin
with ClientDataSet2 do
begin
Append;
Post;
end;
end;
end;
procedure TfrmDictList.N2Click(Sender: TObject);
begin
inherited;
if ClientDataSet2.IsEmpty then
Exit;
if (Trim(ClientDataSet2.FieldByName('itemId').AsString) <> '') or (Trim(ClientDataSet2.FieldByName('itemtext').AsString) <> '') then
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.add('select * from BS_Cloth_Glide A ');
sql.Add('inner join bs_cloth_info X on A.bciid=X.bciid');
sql.Add('where isnull(A.ProcessNO,'''')+isnull(A.ProcessTypeNO,'''') ');
sql.Add('=(select isnull(A.Note,'''')+isnull(B.ItemNote,'''') from SY_Dict A ');
sql.Add('inner join SY_Dict_item B on A.DictId=B.DictId where B.itemId=''' + Trim(ClientDataSet2.fieldbyname('itemId').AsString) + ''' ) ');
sql.Add('and isnull(A.ProcessName,'''')+isnull(A.ProcessTypeName,'''') ');
sql.Add('=(select isnull(A.DictName,'''')+isnull(B.ItemText,'''') from SY_Dict A ');
sql.Add('inner join SY_Dict_item B on A.DictId=B.DictId where B.itemId=''' + Trim(ClientDataSet2.fieldbyname('itemId').AsString) + ''' ) ');
// showmessage(sql.Text);
open;
end;
if ADOQueryTemp.IsEmpty = false then
begin
Application.MessageBox('<27><><EFBFBD>в<EFBFBD>Ʒ<EFBFBD>ǼǸù<C7B8><C3B9>򣬲<EFBFBD><F2A3ACB2><EFBFBD>ɾ<EFBFBD><C9BE>!', '<27><>ʾ', 0);
Exit;
end;
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 SY_Dict_item where itemId=''' + Trim(ClientDataSet2.fieldbyname('itemId').AsString) + '''');
ExecSQL;
end;
end;
ClientDataSet2.Delete;
end;
procedure TfrmDictList.N3Click(Sender: TObject);
begin
inherited;
TV2.OptionsData.Editing := True;
TV2.OptionsSelection.CellSelect := True;
end;
procedure TfrmDictList.TBAddClick(Sender: TObject);
var
i: Integer;
begin
DictName.SetFocus;
TV1.OptionsData.Editing := True;
TV1.OptionsSelection.CellSelect := True;
for i := 0 to 0 do
begin
with ClientDataSet1 do
begin
Append;
Post;
end;
end;
end;
procedure TfrmDictList.TBSaveClick(Sender: TObject);
var
maxno: string;
begin
if ClientDataSet1.IsEmpty then
Exit;
DictName.SetFocus;
if ClientDataSet1.Locate('DictName', null, []) then
begin
Application.MessageBox('<27><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
if ClientDataSet1.Locate('DictName', '', []) then
begin
Application.MessageBox('<27><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select * from SY_Dict where DictId=''' + Trim(flag) + '''');
open;
end;
if ADOQueryTemp.IsEmpty then
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from SY_Dict where 1=2');
open;
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('DictId').Value := Trim(flag);
ADOQueryCmd.FieldByName('DictName').Value := trim(flagname);
ADOQueryCmd.FieldByName('Type').Value := 'Main';
ADOQueryCmd.Post;
end;
end;
with ADOQueryCmd do
begin
ClientDataSet1.DisableControls;
with ClientDataSet1 do
begin
First;
while not eof do
begin
if Trim(ClientDataSet1.FieldByName('DictId').AsString) = '' then
begin
if GetLSNo(ADOQueryTemp, maxno, 'SY', 'SY_Dict', 3, 1) = False then
begin
ADOQueryCmd.Connection.RollbackTrans;
ClientDataSet1.EnableControls;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
end
else
begin
maxno := Trim(ClientDataSet1.fieldbyname('DictId').AsString);
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.add('select * from SY_Dict where Type=''' + Trim(flag) + '''');
sql.Add(' and DictName=''' + Trim(ClientDataSet1.fieldbyname('DictName').AsString) + '''');
Open;
end;
if ADOQueryTemp.IsEmpty = False then
begin
if ADOQueryTemp.RecordCount > 1 then
begin
ADOQueryCmd.Connection.RollbackTrans;
ClientDataSet1.EnableControls;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
if Trim(ClientDataSet1.fieldbyname('DictId').AsString) = '' then
begin
ADOQueryCmd.Connection.RollbackTrans;
ClientDataSet1.EnableControls;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>', '<27><>ʾ', 0);
Exit;
end
else
begin
if Trim(ADOQueryTemp.fieldbyname('DictId').AsString) <> Trim(ClientDataSet1.fieldbyname('DictId').AsString) then
begin
ADOQueryCmd.Connection.RollbackTrans;
ClientDataSet1.EnableControls;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
end;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('delete SY_Dict where DictId=''' + Trim(ClientDataSet1.fieldbyname('DictId').AsString) + '''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from SY_Dict where 1<>1');
Open;
end;
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('DictId').Value := Trim(maxno);
ADOQueryCmd.FieldByName('DictName').Value := ClientDataSet1.fieldbyname('DictName').Value;
ADOQueryCmd.FieldByName('note').Value := Trim(snote);
ADOQueryCmd.FieldByName('Type').Value := flag;
ADOQueryCmd.FieldByName('valid').Value := '1';
ADOQueryCmd.Post;
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('DictId').Value := Trim(maxno);
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;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
end;
end;
procedure TfrmDictList.TBDelClick(Sender: TObject);
begin
if ClientDataSet1.IsEmpty then
Exit;
if (Trim(ClientDataSet1.FieldByName('DictId').AsString) <> '') or (Trim(ClientDataSet1.FieldByName('DictName').AsString) <> '') then
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from SY_Dict_Item where DictId=''' + Trim(ClientDataSet1.fieldbyname('DictId').AsString) + '''');
open;
end;
if ADOQueryTemp.IsEmpty = false then
begin
Application.MessageBox('<27>Ѿ<EFBFBD><D1BE>Ǽǹ<C7BC><C7B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>!', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.add('select * from BS_Cloth_Glide A ');
sql.Add('where isnull(A.ProcessName,'''')=''' + Trim(ClientDataSet1.fieldbyname('DictName').AsString) + ''' ');
open;
end;
if ADOQueryTemp.IsEmpty = false then
begin
Application.MessageBox('<27><><EFBFBD>в<EFBFBD>Ʒ<EFBFBD>ǼǸù<C7B8><C3B9>򣬲<EFBFBD><F2A3ACB2><EFBFBD>ɾ<EFBFBD><C9BE>!', '<27><>ʾ', 0);
Exit;
end;
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 SY_Dict where DictId=''' + Trim(ClientDataSet1.fieldbyname('DictId').AsString) + '''');
SQL.Add(' and Type=''' + Trim(flag) + '''');
sql.Add('delete SY_Dict_Item where DictId=''' + Trim(ClientDataSet1.fieldbyname('DictId').AsString) + '''');
ExecSQL;
end;
end;
ClientDataSet1.Delete;
end;
procedure TfrmDictList.TBCloseClick(Sender: TObject);
begin
DictName.SetFocus;
Close;
end;
procedure TfrmDictList.FormShow(Sender: TObject);
var
fsj, fsj1: string;
begin
inherited;
flag := 'GYName';
flagname := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
InitGrid();
// fsj := Trim(flag) + '01';
// fsj1 := Trim(flagname) + '01';
ReadCxGrid(self.Caption + Trim(flag), TV1, '<27>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
// V1Note.Visible := f1note;
// V1OrderNo.Visible := f1orderno;
//
// V2Note.Visible := f2note;
// V2OrderNo.Visible := f2orderno;
// if ViewFlag = True then
// begin
// TBAdd.Visible := False;
// TBSave.Visible := False;
// TBDel.Visible := False;
// TBEdit.Visible := False;
// Label2.Visible := False;
// end;
end;
procedure TfrmDictList.ToolButton1Click(Sender: TObject);
begin
DictName.SetFocus;
// WriteCxGrid('<27>Զ<EFBFBD><D4B6><EFBFBD>'+Trim(flag),TV1,'<27>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
ModalResult := 1;
end;
procedure TfrmDictList.TBEditClick(Sender: TObject);
begin
TV1.OptionsData.Editing := True;
TV1.OptionsSelection.CellSelect := True;
end;
procedure TfrmDictList.TV1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
if TV1.OptionsData.Editing = true then
begin
TV1.OptionsData.Editing := false;
end;
if TV1.OptionsData.Editing = False then
begin
ModalResult := 1;
end;
end;
procedure TfrmDictList.TV1FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean);
begin
inherited;
if ClientDataSet1.IsEmpty then
exit;
with ADOQuerySub do
begin
close;
SQL.Clear;
sql.Add('select * from SY_Dict_Item where DictId =''' + ClientDataSet1.FieldByName('DictId').asstring + ''' ');
open;
end;
SCreateCDS(ADOQuerySub, ClientDataSet2);
SInitCDSData(ADOQuerySub, ClientDataSet2);
end;
procedure TfrmDictList.TV2CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
inherited;
if TV2.OptionsData.Editing = true then
begin
TV2.OptionsData.Editing := false;
end;
if TV2.OptionsData.Editing = False then
begin
ModalResult := 1;
end;
end;
procedure TfrmDictList.DictNameChange(Sender: TObject);
var
fsj: string;
begin
if Trim(DictName.Text) <> '' then
begin
fsj := ' DictName like ''' + '%' + Trim(DictName.Text) + '%' + '''' + ' or Note like ''' + '%' + Trim(DictName.Text) + '%' + '''' + ' or ZJM like ''' + '%' + Trim(DictName.Text) + '%' + '''';
end;
if ADOQueryMain.Active then
begin
SDofilter(ADOQueryMain, fsj);
SCreateCDS(ADOQueryMain, ClientDataSet1);
SInitCDSData(ADOQueryMain, ClientDataSet1);
end;
end;
procedure TfrmDictList.V1NamePropertiesEditValueChanged(Sender: TObject);
var
maxno, mvalue: string;
begin
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
begin
//Application.MessageBox('<27><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
with ClientDataSet1 do
begin
Edit;
FieldByName('DictName').Value := Trim(mvalue);
//Post;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryTemp do
begin
Close;
SQL.Clear;
SQL.Add('select * from SY_Dict where DictID=''' + Trim(flag) + '''');
open;
end;
if ADOQueryTemp.IsEmpty then
begin
with ADOQueryCmd do
begin
close;
sql.Clear;
sql.Add('select * from SY_Dict where 1=2');
open;
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('DictID').Value := Trim(flag);
ADOQueryCmd.FieldByName('DictName').Value := trim(flagname);
ADOQueryCmd.FieldByName('Type').Value := 'Main';
ADOQueryCmd.Post;
end;
end;
with ADOQueryCmd do
begin
if Trim(ClientDataSet1.FieldByName('DictID').AsString) = '' then
begin
if GetLSNo(ADOQueryTemp, maxno, 'SY', 'SY_Dict', 3, 1) = False then
begin
ADOQueryCmd.Connection.RollbackTrans;
//ClientDataSet1.EnableControls;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
end
else
begin
maxno := Trim(ClientDataSet1.fieldbyname('DictID').AsString);
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from SY_Dict_Item where DictId=''' + Trim(ClientDataSet1.fieldbyname('DictId').AsString) + '''');
open;
end;
if ADOQueryTemp.IsEmpty = False then
begin
Application.MessageBox('<27>Ѿ<EFBFBD><D1BE>Ǽǹ<C7BC><C7B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.add('select * from SY_Dict where Type=''' + Trim(flag) + '''');
sql.Add(' and DictName=''' + Trim(ClientDataSet1.fieldbyname('DictName').AsString) + '''');
sql.Add(' and note=''' + Trim(ClientDataSet1.fieldbyname('note').AsString) + '''');
Open;
end;
if ADOQueryTemp.IsEmpty = False then
begin
if ADOQueryTemp.RecordCount > 1 then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
if Trim(ClientDataSet1.fieldbyname('DictID').AsString) = '' then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>', '<27><>ʾ', 0);
Exit;
end
else
begin
if Trim(ADOQueryTemp.fieldbyname('DictID').AsString) <> Trim(ClientDataSet1.fieldbyname('DictID').AsString) then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
end;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('delete SY_Dict where DictID=''' + Trim(ClientDataSet1.fieldbyname('DictID').AsString) + '''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from SY_Dict where 1<>1');
Open;
end;
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('DictID').Value := Trim(maxno);
ADOQueryCmd.FieldByName('DictName').Value := ClientDataSet1.fieldbyname('DictName').AsString;
ADOQueryCmd.FieldByName('note').Value := Trim(snote);
ADOQueryCmd.FieldByName('Type').Value := flag;
ADOQueryCmd.FieldByName('valid').Value := '1';
ADOQueryCmd.Post;
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('DictID').Value := Trim(maxno);
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
end;
end;
procedure TfrmDictList.V1OrderNoPropertiesEditValueChanged(Sender: TObject);
var
mvalue: string;
begin
if Trim(ClientDataSet1.fieldbyname('DictName').AsString) = '' then
begin
Application.MessageBox('<27><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
begin
mvalue := '0';
end;
with ClientDataSet1 do
begin
Edit;
FieldByName('SortOrder').Value := mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('Update SY_Dict Set SortOrder=' + mvalue);
sql.Add(' where DictId=''' + Trim(ClientDataSet1.fieldbyname('DictId').AsString) + '''');
ExecSQL;
end;
end;
procedure TfrmDictList.V2DescriptionPropertiesEditValueChanged(Sender: TObject);
var
mvalue: string;
begin
if Trim(ClientDataSet1.fieldbyname('ItemName').AsString) = '' then
begin
Application.MessageBox('<27><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
begin
mvalue := '';
end;
with ClientDataSet2 do
begin
Edit;
FieldByName('Description').Value := mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('Update SY_Dict_Item Set Description=''' + Trim(mvalue) + '''');
sql.Add(' where itemId=''' + Trim(ClientDataSet1.fieldbyname('itemId').AsString) + '''');
ExecSQL;
end;
end;
procedure TfrmDictList.V2NamePropertiesEditValueChanged(Sender: TObject);
var
maxno, mvalue: string;
begin
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
begin
//Application.MessageBox('<27><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD>','<27><>ʾ',0);
Exit;
end;
with ClientDataSet2 do
begin
Edit;
FieldByName('ItemText').Value := Trim(mvalue);
//Post;
end;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
if Trim(ClientDataSet2.FieldByName('ItemId').AsString) = '' then
begin
if GetLSNo(ADOQueryTemp, maxno, 'SDI', 'SY_Dict_Item', 3, 1) = False then
begin
ADOQueryCmd.Connection.RollbackTrans;
//ClientDataSet1.EnableControls;
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
end
else
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.add('select * from BS_Cloth_Glide A ');
sql.Add('where isnull(A.ProcessNO,'''')+isnull(A.ProcessTypeNO,'''') ');
sql.Add('=(select isnull(A.Note,'''')+isnull(B.ItemNote,'''') from SY_Dict A ');
sql.Add('inner join SY_Dict_item B on A.DictId=B.DictId where B.itemId=''' + Trim(ClientDataSet2.fieldbyname('itemId').AsString) + ''' ) ');
open;
end;
if ADOQueryTemp.IsEmpty = false then
begin
Application.MessageBox('<27><><EFBFBD>в<EFBFBD>Ʒ<EFBFBD>ǼǸù<C7B8><C3B9>򣬲<EFBFBD><F2A3ACB2><EFBFBD><EFBFBD>޸<EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
maxno := Trim(ClientDataSet2.fieldbyname('ItemId').AsString);
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.add('select * from SY_Dict_Item where ');
sql.Add(' ItemText=''' + Trim(ClientDataSet2.fieldbyname('ItemText').AsString) + '''');
sql.Add(' and ItemNote=''' + Trim(ClientDataSet2.fieldbyname('ItemNote').AsString) + '''');
Open;
end;
if ADOQueryTemp.IsEmpty = False then
begin
if ADOQueryTemp.RecordCount > 1 then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
if Trim(ClientDataSet2.fieldbyname('ItemID').AsString) = '' then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>', '<27><>ʾ', 0);
Exit;
end
else
begin
if Trim(ADOQueryTemp.fieldbyname('ItemID').AsString) <> Trim(ClientDataSet2.fieldbyname('ItemID').AsString) then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD>', '<27><>ʾ', 0);
Exit;
end;
end;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
SQL.Add('delete SY_Dict_ITEM where ItemID=''' + Trim(ClientDataSet2.fieldbyname('ItemID').AsString) + '''');
ExecSQL;
end;
with ADOQueryCmd do
begin
Close;
sql.Clear;
sql.Add('select * from SY_Dict_Item where 1<>1');
Open;
end;
ADOQueryCmd.Append;
ADOQueryCmd.FieldByName('DictID').Value := Trim(ClientDataSet1.FieldByName('DictID').AsString);
ADOQueryCmd.FieldByName('ItemId').Value := Trim(maxno);
ADOQueryCmd.FieldByName('ItemText').Value := ClientDataSet2.fieldbyname('ItemText').AsString;
ADOQueryCmd.FieldByName('Itemnote').Value := Trim(snote);
ADOQueryCmd.FieldByName('valid').Value := '1';
ADOQueryCmd.Post;
ClientDataSet2.Edit;
ClientDataSet2.FieldByName('DictID').Value := Trim(ClientDataSet1.FieldByName('DictID').AsString);
ClientDataSet2.FieldByName('ItemId').Value := Trim(maxno);
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ', 0);
end;
end;
procedure TfrmDictList.V2NotePropertiesEditValueChanged(Sender: TObject);
var
mvalue: string;
FDictID: string;
begin
if Trim(ClientDataSet2.fieldbyname('ItemText').AsString) = '' then
begin
Application.MessageBox('<27><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
begin
mvalue := '';
end;
with ClientDataSet2 do
begin
Edit;
FieldByName('itemNote').Value := mvalue;
Post;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.add('select * from BS_Cloth_Glide A ');
sql.Add('inner join bs_cloth_info X on A.bciid=X.bciid');
sql.Add('where isnull(A.ProcessNO,'''')+isnull(A.ProcessTypeNO,'''') ');
sql.Add('=(select isnull(A.Note,'''')+isnull(B.ItemNote,'''') from SY_Dict A ');
sql.Add('inner join SY_Dict_item B on A.DictId=B.DictId where B.itemId=''' + Trim(ClientDataSet2.fieldbyname('itemId').AsString) + ''' ) ');
sql.Add('and isnull(A.ProcessName,'''')+isnull(A.ProcessTypeName,'''') ');
sql.Add('=(select isnull(A.DictName,'''')+isnull(B.ItemText,'''') from SY_Dict A ');
sql.Add('inner join SY_Dict_item B on A.DictId=B.DictId where B.itemId=''' + Trim(ClientDataSet2.fieldbyname('itemId').AsString) + ''' ) ');
// showmessage(sql.Text);
open;
end;
if ADOQueryTemp.IsEmpty = false then
begin
Application.MessageBox('<27><><EFBFBD>в<EFBFBD>Ʒ<EFBFBD>ǼǸù<C7B8><C3B9>򣬲<EFBFBD><F2A3ACB2><EFBFBD><EFBFBD>޸<EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
FDictID := ClientDataSet2.fieldbyname('ItemId').AsString;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('Update SY_Dict_ITEM Set itemNote=''' + Trim(mvalue) + '''');
sql.Add(' where ITEMID=''' + Trim(ClientDataSet2.fieldbyname('ITEMID').AsString) + '''');
ExecSQL;
end;
with ADOQueryTemp do
begin
close;
sql.Clear;
SQL.Add(' select isnull(A.Note,'''')+isnull(B.ItemNote,'''') from SY_Dict A ');
SQL.Add(' inner join SY_Dict_Item B on A.DictId=B.DictId ');
sql.Add(' where isnull(A.Note,'''')<>'''' and isnull(B.ItemNote,'''')<>'''' ');
SQL.Add(' group by isnull(A.Note,'''')+isnull(B.ItemNote,'''') having count(*)>1');
open;
end;
if ADOQueryTemp.IsEmpty = False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD>!', '<27><>ʾ', 0);
with ADOQuerySub do
begin
close;
SQL.Clear;
sql.Add('select * from SY_Dict_Item where DictId =''' + ClientDataSet1.FieldByName('DictId').asstring + ''' ');
open;
end;
SCreateCDS(ADOQuerySub, ClientDataSet2);
SInitCDSData(ADOQuerySub, ClientDataSet2);
ClientDataSet2.Locate('ItemId', FDictID, []);
exit;
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
end;
end;
procedure TfrmDictList.V2OrderNoPropertiesEditValueChanged(Sender: TObject);
var
mvalue: string;
begin
if Trim(ClientDataSet2.fieldbyname('ItemText').AsString) = '' then
begin
Application.MessageBox('<27><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
begin
mvalue := '0';
end;
with ClientDataSet2 do
begin
Edit;
FieldByName('Note').Value := mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('Update SY_Dict_ITEM Set SortOrder=''' + Trim(mvalue) + '''');
sql.Add(' where ITEMID=''' + Trim(ClientDataSet1.fieldbyname('ITEMID').AsString) + '''');
ExecSQL;
end;
end;
procedure TfrmDictList.V1NotePropertiesEditValueChanged(Sender: TObject);
var
mvalue: string;
FDictID: string;
begin
if Trim(ClientDataSet1.fieldbyname('DictName').AsString) = '' then
begin
Application.MessageBox('<27><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
begin
mvalue := '';
end;
with ClientDataSet1 do
begin
Edit;
FieldByName('Note').Value := mvalue;
Post;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from SY_Dict_Item where DictId=''' + Trim(ClientDataSet1.fieldbyname('DictId').AsString) + '''');
open;
end;
if ADOQueryTemp.IsEmpty = false then
begin
Application.MessageBox('<27>Ѿ<EFBFBD><D1BE>Ǽǹ<C7BC><C7B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>!', '<27><>ʾ', 0);
Exit;
end;
FDictID := ClientDataSet1.fieldbyname('DictID').AsString;
try
ADOQueryCmd.Connection.BeginTrans;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('Update SY_Dict Set Note=''' + Trim(mvalue) + '''');
sql.Add(' where DictID=''' + Trim(ClientDataSet1.fieldbyname('DictID').AsString) + '''');
ExecSQL;
end;
with ADOQueryTemp do
begin
close;
sql.Clear;
SQL.Add(' select isnull(A.Note,'''')+isnull(B.ItemNote,'''') from SY_Dict A ');
SQL.Add(' inner join SY_Dict_Item B on A.DictId=B.DictId ');
sql.Add(' where isnull(A.Note,'''')<>'''' and isnull(B.ItemNote,'''')<>'''' ');
SQL.Add(' group by isnull(A.Note,'''')+isnull(B.ItemNote,'''') having count(*)>1');
open;
end;
if ADOQueryTemp.IsEmpty = False then
begin
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD>!', '<27><>ʾ', 0);
initgrid();
ClientDataSet1.Locate('DictID', FDictID, []);
exit;
end;
ADOQueryCmd.Connection.CommitTrans;
except
ADOQueryCmd.Connection.RollbackTrans;
Application.MessageBox('<27><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
end;
end;
procedure TfrmDictList.V1Column1PropertiesEditValueChanged(Sender: TObject);
var
mvalue: string;
fieldname: string;
begin
fieldname := Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName;
if Trim(ClientDataSet1.fieldbyname('ZdyName').AsString) = '' then
begin
Application.MessageBox('<27><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
mvalue := TcxTextEdit(Sender).EditingText;
with ClientDataSet1 do
begin
Edit;
FieldByName(fieldname).Value := mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('Update KH_Zdy Set ' + fieldname + '=''' + Trim(mvalue) + ''' ');
sql.Add('where ZdyNo=''' + Trim(ClientDataSet1.fieldbyname('ZdyNo').AsString) + '''');
ExecSQL;
end;
end;
procedure TfrmDictList.V1DescriptionPropertiesEditValueChanged(Sender: TObject);
var
mvalue: string;
begin
if Trim(ClientDataSet1.fieldbyname('DictName').AsString) = '' then
begin
Application.MessageBox('<27><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>Ϊ<EFBFBD><CEAA>!', '<27><>ʾ', 0);
Exit;
end;
mvalue := TcxTextEdit(Sender).EditingText;
if Trim(mvalue) = '' then
begin
mvalue := '0';
end;
with ClientDataSet1 do
begin
Edit;
FieldByName('Description').Value := mvalue;
Post;
end;
with ADOQueryCmd do
begin
Close;
SQL.Clear;
sql.Add('Update SY_Dict Set Description=' + mvalue);
sql.Add(' where DictId=''' + Trim(ClientDataSet1.fieldbyname('DictId').AsString) + '''');
ExecSQL;
end;
end;
procedure TfrmDictList.FormDestroy(Sender: TObject);
begin
inherited;
WriteCxGrid(self.Caption, TV1, '<27>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
frmZDYHelp := nil;
end;
end.