📄 mainu.pas
字号:
valuest:= valuest +',' +
cb1.Text+',' + cb2.Text+',' + cb3.Text+ ',' + cb4.Text+ ',' +
cb5.Text+',' + cb6.Text+',' + cb7.Text+ ',' + cb8.Text+ ',' +
cb9.Text+',' + cb10.Text+',' + cb11.Text+ ',' + cb12.Text+ ',' +
cb13.Text+',' + cb14.Text+',' + cb15.Text+ ',' + cb16.Text+ ',' +
cb17.Text+',' + cb18.Text+',' + cb19.Text+ ',' + cb20.Text+ ',' +
cb21.Text+',' + cb22.Text+',,,,,';
myinsertjlfu(clientDBGrid,clientDBNavi,valuest);
{ if cb60.Picture.Height>0
then cb60.Picture.SaveToFile(ExtractFilePath(Application.ExeName)+'pic\'+'cb60'+floattostr(DateTime)+'.bmp');
if cb62.Picture.Height>0
then cb62.Picture.SaveToFile(ExtractFilePath(Application.ExeName)+'pic\'+'cb62'+floattostr(DateTime)+'.bmp');
if cb64.Picture.Height>0
then cb64.Picture.SaveToFile(ExtractFilePath(Application.ExeName)+'pic\'+'cb64'+floattostr(DateTime)+'.bmp');
if cb66.Picture.Height>0
then cb66.Picture.SaveToFile(ExtractFilePath(Application.ExeName)+'pic\'+'cb66'+floattostr(DateTime)+'.bmp');
patientid:=patientDBGrid.Fields[0].AsInteger;
selectonepd(operationADOQ, 'operation' , 'patient_id',inttostr(patientid));
operationaddClick(sender); }
CB1.Text:='';CB2.Text:='';CB3.Text:='';CB4.Text:='';CB5.Text:='';
CB6.Text:='';CB7.Text:='';CB8.Text:='';CB9.Text:='';CB10.Text:='';
CB11.Text:='';CB12.Text:='';CB13.Text:='';CB14.Text:='';CB15.Text:='';
CB16.Text:='';CB17.Text:='';CB18.Text:='';CB19.Text:='';CB20.Text:='';
CB21.Text:='';CB22.Text:='';
CB16.Text:=mygetdatefu; //日期
end;
procedure Tmainfm.clientmodifybutClick(Sender: TObject);
var valuest:string;
begin
if clientid=0 then exit;
valuest:= clientDBGrid.Fields[1].Asstring+','+ clientDBGrid.Fields[2].Asstring ; //类型 级别
valuest:= valuest +',' +
cb1.Text+',' + cb2.Text+',' + cb3.Text+ ',' + cb4.Text+ ',' +
cb5.Text+',' + cb6.Text+',' + cb7.Text+ ',' + cb8.Text+ ',' +
cb9.Text+',' + cb10.Text+',' + cb11.Text+ ',' + cb12.Text+ ',' +
cb13.Text+',' + cb14.Text+',' + cb15.Text+ ',' + cb16.Text+ ',' +
cb17.Text+',' + cb18.Text+',' + cb19.Text+ ',' + cb20.Text+ ',' +
cb21.Text+',' + cb22.Text+',,,,,';
mymodifyjlfu(clientDBGrid,clientDBNavi,valuest);
end;
procedure Tmainfm.clientdeletebutClick(Sender: TObject);
begin
if clientid=0 then exit;
//if not (MessageDLG('确定要删除编号为("'+inttostr(clientid)+'")的客户所有信息吗?',mtCONfirmation,[mbYes,mbNo],0) = mrYes)
// then Exit;
clientDBNavi.BtnClick(nbDelete);
end;
procedure Tmainfm.clientDBGridMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var i:integer;
begin
if clientDBGrid.DataSource.DataSet.IsEmpty then exit ;
if clientDBGrid.DataSource.DataSet.Active=false then exit ;
if clientDBGrid.DataSource.DataSet.RecordCount=0 then exit;
clientid:=clientDBGrid.Fields[0].AsInteger ;
mainPan.Caption:='客户:'+ clientDBGrid.Fields[3].AsString+'('+inttostr(clientid)+')'+ clientDBGrid.Fields[1].AsString+clientDBGrid.Fields[2].AsString+'级';
operationtimeLb.Caption:='记录数:'+inttostr(clientADOQ.RecordCount)+'条';
i:=3 ;
CB1.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB2.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB3.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB4.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB5.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB6.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB7.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB8.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB9.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB10.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB11.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB12.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB13.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB14.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB15.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB16.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB17.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB18.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB19.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB20.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB21.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
CB22.Text:= clientDBGrid.Fields[i].Asstring ; i:=i+1;
end;
procedure selectzdalltjpd(quy : TADOQuery; sn, tj,sort :string);
begin
quy.Close;
quy.SQL.Clear;
quy.SQL.Add(' select * from ' + sn +' where '+ tj + ' order by '+ sort );
// showmessage(quy.SQL.Text);
// mainfm.CB13.Text:= quy.SQL.Text;
quy.Active := true;
quy.First;
end;
procedure Tmainfm.selectBtClick(Sender: TObject);
var sort,scout,range,tempkind,templevel :string;
var year,month,date: integer;
var begin_time, end_time:string;
var value:string;
var num,i:integer;
begin
if allCkB.Checked then begin
selectallpd(clientADOQ, 'client');
exit;
end ;
//字段
if CBselete.Items.IndexOf(CBselete.Text)=-1 then scout:=''
else scout:=zdvalue[CBselete.Items.IndexOf(CBselete.Text)]+' like '+'''%'+zdvedit.Text+'%''';
//范围
if CBRange.Items.IndexOf(CBRange.Text)=-1 then range:=''
else begin
begin_time:=minCB.Text;
end_time:=maxCB.Text;
if maxbt.Enabled //时间
then range:='('+zdrange[CBRange.Items.IndexOf(CBRange.Text)]+' >= #'+ begin_time +'#) and '+
'('+zdrange[CBRange.Items.IndexOf(CBRange.Text)]+' <= #'+ end_time +'#)'
else range:='('+zdrange[CBRange.Items.IndexOf(CBRange.Text)]+' >= '+ begin_time +') and '+
'('+zdrange[CBRange.Items.IndexOf(CBRange.Text)]+' <= '+ end_time +')' ;
end;
//排序字段
if CBsort.Items.IndexOf(CBsort.Text)=-1 then sort:='id'
else sort:= zdsort[CBsort.Items.IndexOf(CBsort.Text)];
//正反排序
if not sortRB.Checked then sort:=sort+ ' desc';
//类型
for i:=1 to length(RB) do
begin
if RB[i].Checked=true
then begin
tempkind:= '( kind = ''' + RB[i].Caption +''')';
break;
end;
end;
// 级别
for i:=1 to length(CK) do
begin
if ck[i].Checked=true
then if templevel='' then templevel:= '( level = ' + inttostr(i)
else templevel:=templevel + ' or '+ 'level = ' + inttostr(i);
end;
if templevel='' then
begin
MessageDLG('首先选择培训级别.',mtCONfirmation,[mbok],0);
exit;
end;
templevel:=templevel+') ';
if range <> '' then range:= templevel + ' and ' + range
else range:= templevel;
if scout<>'' then range:=range+ ' and ' +scout;
range:=range+ ' and ' +tempkind;
selectzdalltjpd(clientADOQ, 'client' , range , sort );
StatusBar.Caption:='查得记录数:'+ inttostr(clientADOQ.RecordCount)+' 条';
end;
procedure Tmainfm.CBRangeChange(Sender: TObject);
begin
if (zdrange[CBRange.Items.IndexOf(CBRange.Text)] = 'age') then
begin
minbt.Enabled:=false; maxbt.Enabled:=minbt.Enabled;
mincb.Enabled:=not minbt.Enabled; maxcb.Enabled:=not minbt.Enabled;
mincb.Text:='20'; maxcb.Text:='25';
end;
if (zdrange[CBRange.Items.IndexOf(CBRange.Text)] = 'data' )then
begin
minbt.Enabled:=true; maxbt.Enabled:=minbt.Enabled;
mincb.Enabled:=not minbt.Enabled; maxcb.Enabled:=not minbt.Enabled;
mincb.Text:=mygetdatefu; maxcb.Text:=mygetdatefu;
end
end;
{存库表记录到文件}
procedure mysaveADOquyfilepd(StatusBar:TPanel;ProBar: TsuiProgressBar;quy:tadoquery;fname:string);
var txt : textfile;
gs : string;
i : integer;
begin
if quy.IsEmpty
then exit;
assignfile(txt,fname);
rewrite(txt);
//quy.DisableConstraints;
ProBar.Visible:=true;
ProBar.Max:= quy.RecordCount;
ProBar.Position:=0;
while not Quy.Eof do
begin
ProBar.Position:= ProBar.Position+1;
i := 0; gs := '';
while i < quy.FieldCount do
begin
if pos(',',quy.Fields.Fields[i].AsString)<0
then gs := gs + quy.Fields.Fields[i].AsString + ','
else gs := gs + mychgstrfu(quy.Fields.Fields[i].AsString,',','.') + ',' ;
inc(i);
end;
writeln(txt,gs);
StatusBar.Caption := gs;
Quy.Next;
end;
closefile(txt);
// quy.EnableConstraints;
ProBar.Visible:=false;
StatusBar.Caption := '总共导出'+inttostr(ProBar.Position)+'条数据记录' ;
end;
function getmaxid(quy : TADOQuery; sn:string):integer;
begin
quy.Close;
quy.SQL.Clear;
quy.SQL.Add(' select max(id) from ' + sn );
quy.Active := true;
quy.First;
result := quy.Fields.Fields[0].AsInteger;
end;
procedure delete_biger_then_id(quy : TADOQuery; sn:string;beginid:integer);
begin
quy.Close;
quy.SQL.Clear;
quy.SQL.Add(' delete from ' + sn + ' where id > '+ inttostr(beginid) + ' ');
quy.Active := true;
quy.First;
end;
{读文件记录入库表}
procedure myopenADOquyfilepd(StatusBar:TPanel;ProBar: TsuiProgressBar; dbgrid:Tdbgrid;DBNavigator:TDBNavigator;
findADOQ:TADOQuery;tablename,filename:string);
var txt : textfile;
line,s : string;
i,j,jlh ,beginid : integer;
begin
if not FileExists(filename)
then Exit;
j := 0;
beginid:= getmaxid(findADOQ,tablename );
try
assignfile(txt,filename);
reset(txt);
ProBar.Visible:=true;
ProBar.Max:= FileSize(txt); ////////////////////
while not Eof(txt) do
begin
readln(txt,line); inc(j);
ProBar.Position:=j; //////////////////////
StatusBar.Caption := line;
sltfu(line); //去掉序号
try
if myinsertjlfu(dbgrid,DBNavigator,line)<>0
then begin
messagedlg('输入文件出错!!! 第《 ' + inttostr(j)+ ' 》行!',mtinformation,[mbok],0);
j:=j-1;
if (MessageDLG('删除已入库的记录吗?',mtCONfirmation,[mbYes,mbNo],0) = mrYes)
then begin
delete_biger_then_id(findADOQ,tablename,beginid);
j:=0;
exit;
end;
end
except
messagedlg('输入文件出错!!! 第《 ' + inttostr(j)+ ' 》行!',mtinformation,[mbok],0);
if (MessageDLG('删除已入库的记录吗?',mtCONfirmation,[mbYes,mbNo],0) = mrYes)
then begin
delete_biger_then_id(findADOQ,tablename,beginid);
j:=0;
end;
StatusBar.Caption := line ;
break;
end;
end;
finally
closefile(txt);
if j>1 then StatusBar.Caption :='读入记录起始ID:'+inttostr(beginid+1)+' 总共读入'+inttostr(j)+'行数据记录' ;
end;
ProBar.Position:= ProBar.Max;
ProBar.Visible:=false;
end;
procedure Tmainfm.dbBtClick(Sender: TObject);
begin
if Sender = ToButsv //保存
then begin
SaveDlgtxt.FileName := ExtractFilePath( Application.ExeName)+ 'backup.txt';//保存记录到文件
if SaveDlgtxt.Execute
then mysaveADOquyfilepd(StatusBar,suiProgressBar,clientADOQ,SaveDlgtxt.FileName);
end;
if Sender = ToButla //读入
then begin
OpenDlgtxt.FileName := ExtractFilePath( Application.ExeName)+ '*.txt';//从文件读入记录
if OpenDlgtxt.Execute
then myopenADOquyfilepd(StatusBar,suiProgressBar,clientDBGrid,clientDBNavi,
findADOQ,'client', OpenDlgtxt.FileName);
end;
end;
procedure Tmainfm.mcdyClick(Sender: TObject);
var tempkind,strlevel : string;
var templevel :integer;
var i:integer;
begin
//类别
for i:=1 to length(RB) do
begin
if RB[i].Checked=true
then begin
tempkind := RB[i].Caption ;
break;
end;
end;
// 级别
for i:=1 to length(CK) do
begin
if ck[i].Checked=true
then templevel:=i;
end;
if templevel=1 then strlevel:='一' ;
if templevel=2 then strlevel:='二' ;
if templevel=3 then strlevel:='三' ;
if templevel=4 then strlevel:='四' ;
application.CreateForm(Treportfm,reportfm);
//reportfm.titlelb.Caption:= tempkind+strlevel+'级'+'意向汇总表';
reportfm.clientreport.Preview;
reportfm.Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -