📄 unit_manageroperate.pas
字号:
unit Unit_ManagerOperate;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, CheckLst, TFlatEditUnit, TFlatComboBoxUnit, Grids, DBGrids,
ExtCtrls, TFlatButtonUnit, Db, DBTables;
const
INVALI='1'; //无效值
VALI='2'; //有效值
FUNCLOSE='0'; // 关
FUNOPEN='1'; //开通
MAXFunCount=40;//最大功能数
MAXStatCount=60;//最大状态数
type
TFRM_ManagerOperate = class(TForm)
PanelLeft: TPanel;
Label69: TLabel;
DBGrid_Normal: TDBGrid;
Panel13: TPanel;
Label71: TLabel;
Label89: TLabel;
Label90: TLabel;
Label91: TLabel;
Label92: TLabel;
Label93: TLabel;
CoBR_CITYNO: TFlatComboBox;
CoBR_OFF_NO_HOME: TFlatComboBox;
CoBR_DJDM: TFlatComboBox;
EdBR_Sid: TFlatEdit;
CoBR_SXDM: TFlatComboBox;
Panel_CustInfo: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
Panel7: TPanel;
Panel8: TPanel;
clb_operate: TCheckListBox;
Label1: TLabel;
Label2: TLabel;
Label9: TLabel;
Label47: TLabel;
Label55: TLabel;
Label94: TLabel;
Label18: TLabel;
Label49: TLabel;
Label42: TLabel;
ed_xb_desc: TFlatEdit;
ed_SID_C: TFlatEdit;
ed_off_no_home_desc: TFlatEdit;
ed_name: TFlatEdit;
ed_LXDH: TFlatEdit;
ed_DJDM_Desc: TFlatEdit;
ed_sxdm_desc: TFlatEdit;
ed_cityno_Desc: TFlatEdit;
ed_GH_C: TFlatEdit;
FlatButton1: TFlatButton;
Query_tmp: TQuery;
coBR_GH: TFlatComboBox;
Query_CustInfo: TQuery;
ds_CustInfo: TDataSource;
Panel1: TPanel;
Btn_Modify: TFlatButton;
Btn_Cancel: TFlatButton;
Btn_Save: TFlatButton;
Btn_Exit: TFlatButton;
Splitter1: TSplitter;
Splitter2: TSplitter;
lb_stat: TListBox;
procedure FormShow(Sender: TObject);
procedure CoBR_CITYNOChange(Sender: TObject);
procedure CoBR_OFF_NO_HOMEChange(Sender: TObject);
procedure FlatButton1Click(Sender: TObject);
procedure Query_CustInfoAfterScroll(DataSet: TDataSet);
procedure Btn_ModifyClick(Sender: TObject);
procedure Btn_CancelClick(Sender: TObject);
procedure Btn_SaveClick(Sender: TObject);
procedure Btn_ExitClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure EdBR_SidKeyPress(Sender: TObject; var Key: Char);
private
iSign:integer;
ifunCount:integer;
arrayfun:string[MAXFunCount];
arrayStat:string[MAXStatCount];
arrayfundesc:array [1..MAXFunCount] of string;
arrayStatdesc:array [0..MAXStatCount] of string;
procedure setFun;
procedure setStat;
function SaveFun:string;
function SaveStat:string;
{ Private declarations }
public
{ Public declarations }
end;
var
FRM_ManagerOperate: TFRM_ManagerOperate;
implementation
uses main,Unit_Public,dmmain;
//按钮控制
function Fun_ButtonStatus(pFormName:TForm;pStatus:Boolean=False):Boolean;stdcall;export;external'winfun.dll';
{$R *.DFM}
procedure TFRM_ManagerOperate.FormShow(Sender: TObject);
var
tmpstr:string;
i,j,iPos:integer;
begin
with query_tmp do
begin
close;
sql.clear;
sql.add('select fun,PAR_Desc,par_Values from T_V_Fun');
open;
clb_operate.Items.Clear;
arrayFun:='';
first;
while not eof do
begin
iPos:=strtoint(trim(fieldbyname('PAR_values').asstring));
if not((pos('无效',fieldbyname('PAR_Desc').asstring)>0) or (pos('未定义',fieldbyname('PAR_Desc').asstring)>0)) then
begin
arrayfundesc[iPos]:=trim(fieldbyname('PAR_Desc').asstring);
arrayfun[iPos]:=VALI; //有效
end
else
begin
arrayfun[iPos]:=INVALI; //无效
end;
next;
end;
end;
for i:=1 to MAXFunCount do
begin
if arrayfun[i] = VALI then
clb_operate.Items.Add(arrayfundesc[i]);
end;
//
with query_tmp do
begin
close;
sql.clear;
sql.add('select PAR_Desc,STAT from T_V_CUSTSTATUS');
open;
lb_stat.Items.Clear;
arrayStat:='';
first;
while not eof do
begin
iPos:=strtoint(trim(fieldbyname('STAT').asstring));
if not(pos('保留',fieldbyname('PAR_Desc').asstring)>0) then
begin
arrayStatdesc[iPos]:=trim(fieldbyname('PAR_Desc').asstring);
arrayStat[iPos]:=VALI; //有效
end
else
begin
arrayStat[iPos]:=INVALI; //无效
end;
next;
end;
end;
for i:=0 to MAXFunCount do
begin
if arrayStat[i] = VALI then
lb_stat.Items.Add(arrayStatdesc[i]);
end;
Fun_GetCity(CoBR_CITYNO,'所有',0,PS_CityName);//初始化所管辖的地市
coBR_citynoChange(nil);
Pro_GFillInitValue(Self,'所有');
Fun_ButtonStatus(Self,False);
EdBR_Sid.SetFocus;
end;
procedure TFRM_ManagerOperate.CoBR_CITYNOChange(Sender: TObject);
begin
Fun_Getcounty(coBR_off_no_home,'所有',coBR_Cityno.Text,0,ps_homename);
coBR_off_no_homeChange(coBR_off_no_home);
end;
procedure TFRM_ManagerOperate.CoBR_OFF_NO_HOMEChange(Sender: TObject);
begin
Fun_GetManager(coBR_GH,'所有',coBR_Cityno.Text,coBR_off_no_home.Text,GH);
end;
procedure TFRM_ManagerOperate.FlatButton1Click(Sender: TObject);
var
BR_sqlquery,BR_sqlwhere,BR_sqlOrder,tmpstr:string;
lBR_GH:string;
lBR_CityNo:string;
lBR_Off_no_home:string;
lBR_DJDM:string;
begin
BR_sqlquery:='select rownum row_num,t.* from T_V_CustInfo_Browse t where 1=1';
//BR_sqlOrder:=' order by DJDM';
//
lBR_GH:='';
lBR_CityNo:='';
lBR_Off_no_home:='';
lBR_DJDM:='';
if coBR_GH.text<>'所有' then
lBR_GH:=copy(coBR_GH.text,1,pos(':',coBR_GH.text)-1);
if CoBR_CityNo.text<>'所有' then
lBR_cityno:=Fun_GetCity(CoBR_CityNo,'',1);
if CoBR_OFF_NO_HOME.text<>'所有' then
lBR_off_no_home:=Fun_GetCounty(CoBR_OFF_NO_HOME,'','',1);
if coBR_DJDM.text<>'所有' then
lBR_DJDM:=fun_getcodename(coBR_DJDM);
//
if lBR_cityno<>'' then
tmpstr:=tmpstr+' and '+'t.cityno_c='+lBR_cityno+' and '+'t.cityno_city_c='+lBR_cityno+' and '+'t.cityno_county_c='+lBR_cityno;
if lBR_off_no_home<>'' then
tmpstr:=tmpstr+' and '+'t.off_no_home_c='+lBR_off_no_home+' and '+'t.off_no_home_county_c='+lBR_off_no_home;
if edBR_SID.Text<>'' then
tmpstr:=tmpstr+' and '+'t.SID_c like '+''''+edBR_SID.Text+'%''';
if lBR_GH<>'' then
tmpstr:=tmpstr+' and '+'t.GH_c='+''''+lBR_GH+'''';
if lBR_DJDM<>'' then
tmpstr:=tmpstr+' and '+'t.DJDM='+lBR_DJDM+' and '+'t.gradeno_c='+lBR_DJDM;
BR_sqlwhere:=tmpstr;
with Query_CustInfo do
begin
close;
sql.clear;
sql.add(BR_sqlquery+BR_sqlwhere);
open;
end;
If Query_CustInfo.IsEmpty Then
Begin
clb_operate.Enabled:=False;
lb_stat.Enabled:=False;
End
Else
Begin
clb_operate.Enabled:=True;
lb_stat.Enabled:=True;
End;
end;
procedure TFRM_ManagerOperate.Query_CustInfoAfterScroll(DataSet: TDataSet);
begin
ShowRecord(Query_CustInfo,Panel_CustInfo);
setFun;
setStat;
end;
procedure TFRM_ManagerOperate.setFun;
var
i,itmp:integer;
tmpstr:string;
begin
with query_CustInfo do
begin
for i:=0 to fields.Count-1 do
if pos('FUN',uppercase(fields[i].displayname))>0 then
begin
tmpstr:= fields[i].displayname ;
itmp:=strtoint(copy(fields[i].displayname,pos('FUN',uppercase(fields[i].displayname))+3,length(fields[i].displayname)));
itmp:=clb_operate.items.IndexOf(arrayfundesc[itmp]);
if itmp>=0 then
if fields[i].AsString=FUNOPEN then
clb_operate.Checked[itmp]:=true
else
clb_operate.Checked[itmp]:=false;
end;
end;
end;
function TFRM_ManagerOperate.SaveFun:string;
var
i,j,itmp:integer;
tmpstr:string;
begin
for i:=0 to clb_operate.Items.Count-1 do
for j:=1 to MAXFunCount do
if arrayfundesc[j]=trim(clb_operate.Items[i]) then
if clb_operate.checked[i] then
begin
if Query_CustInfo.fieldbyname('FUN'+inttostr(j)).asstring<>'1' then
begin
tmpstr:='insert into t_i_interface(cityno,sid,submit_type,submit_content,submit_val,submit_time) values(';
tmpstr:=tmpstr+Query_CustInfo.fieldbyname('cityno_c').asstring+',';
tmpstr:=tmpstr+''''+Query_CustInfo.fieldbyname('sid_C').asstring+''''+',';
tmpstr:=tmpstr+'2'+',';
tmpstr:=tmpstr+''''+'FUN'+inttostr(j)+''''+',';
tmpstr:=tmpstr+'''1'''+',';
tmpstr:=tmpstr+'sysdate)';
with query_tmp do
begin
close;
sql.clear;
sql.Add(tmpstr);
SQL.SaveToFile('C:\123.TXT');
prepare;
execsql;
end;
end;
end
else
begin
if Query_CustInfo.fieldbyname('FUN'+inttostr(j)).asstring<>'0' then
begin
tmpstr:='insert into t_i_interface(cityno,sid,submit_type,submit_content,submit_val,submit_time) values(';
tmpstr:=tmpstr+Query_CustInfo.fieldbyname('cityno_c').asstring+',';
tmpstr:=tmpstr+''''+Query_CustInfo.fieldbyname('sid_C').asstring+''''+',';
tmpstr:=tmpstr+'2'+',';
tmpstr:=tmpstr+''''+'FUN'+inttostr(j)+''''+',';
tmpstr:=tmpstr+'''0'''+',';
tmpstr:=tmpstr+'sysdate)';
with query_tmp do
begin
close;
sql.clear;
sql.Add(tmpstr);
SQL.SaveToFile('C:\123.TXT');
prepare;
execsql;
end; end;
end;
end;
procedure TFRM_ManagerOperate.Btn_ModifyClick(Sender: TObject);
begin
if not Query_CustInfo.isempty then
begin
iSign:=2;
Fun_ButtonStatus(Self,True);
// DBGrid_Normal.Enabled:=false;
// DBGrid_Normal.refresh;
Panelleft.Enabled:=False;
end;
end;
procedure TFRM_ManagerOperate.Btn_CancelClick(Sender: TObject);
begin
iSign:=0;
Fun_ButtonStatus(Self,False);
DBGrid_Normal.Enabled:=true;
DBGrid_Normal.refresh;
Query_CustInfo.AfterScroll(query_custInfo);
end;
procedure TFRM_ManagerOperate.Btn_SaveClick(Sender: TObject);
var
update_set,tmpstr:string;
saveplace:tbookmark;
begin
If iSign=2 Then
Begin
if Application.MessageBox('是否保存修改','提示',MB_OKCancel) <>IDOK then
exit;
try
Dm_Main.Databasedh.StartTransaction;
savefun;
saveStat;
Dm_Main.Databasedh.Commit;
Fun_ButtonStatus(Self,False);
Panelleft.Enabled:=True;
except
DM_Main.Databasedh.Rollback;
Application.MessageBox('系统在执行过程中发生错误!','提示',MB_ICONINFORMATION);
end;
end;
end;
procedure TFRM_ManagerOperate.Btn_ExitClick(Sender: TObject);
begin
Close;
end;
procedure TFRM_ManagerOperate.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
action:=cafree;
end;
function TFRM_ManagerOperate.SaveStat: string;
var
i:integer;
tmpstr:string;
begin
for i:=0 to MAXStatCount-1 do
begin
if arrayStatDesc[i]=lb_stat.items[lb_stat.ItemIndex] then
begin
if query_CustInfo.fieldbyname('STAT').asinteger<>i then
begin
tmpstr:='insert into t_i_interface(cityno,sid,submit_type,submit_content,submit_val,submit_time) values(';
tmpstr:=tmpstr+Query_CustInfo.fieldbyname('cityno_c').asstring+',';
tmpstr:=tmpstr+''''+Query_CustInfo.fieldbyname('sid_C').asstring+''''+',';
tmpstr:=tmpstr+'1'+',';
tmpstr:=tmpstr+'''STAT'''+',';
tmpstr:=tmpstr+''''+inttostr(i)+''''+',';
tmpstr:=tmpstr+'sysdate)';
with query_tmp do
begin
close;
sql.clear;
sql.Add(tmpstr);
SQL.SaveToFile('C:\123.TXT');
prepare;
execsql;
end;
end;
break;
end;
end;
end;
procedure TFRM_ManagerOperate.setStat;
var
itmp:integer;
tmpstr:string;
begin
with query_CustInfo do
begin
itmp:=fieldbyname('STAT').asinteger;
tmpstr:=arrayStatDesc[itmp];
itmp:=lb_stat.items.IndexOf(tmpstr);
if itmp>=0 then
lb_stat.itemindex:=itmp;
end;
end;
procedure TFRM_ManagerOperate.EdBR_SidKeyPress(Sender: TObject;
var Key: Char);
begin
FlatButton1Click(Nil);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -