⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 f007unit.pas

📁 工商收费系统,主要是管理非税收收入的费用的管理
💻 PAS
字号:
unit F007Unit;interfaceuses  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,  Buttons, StdCtrls, Grids, DBGrids, Db, DBTables, ADODB;type  TF007Frm = class(TForm)    BitBtn1: TBitBtn;    BitBtn2: TBitBtn;    BitBtn3: TBitBtn;    codeGrd: TDBGrid;    fieldCbx: TComboBox;    signCbx: TComboBox;    ValueEdt: TEdit;    queryBtn: TBitBtn;    codeDt: TDataSource;    codeAQey: TADOQuery;    btnAddClient: TBitBtn;    btnAddAccount: TBitBtn;    btnAdduse: TBitBtn;    btnjsr: TBitBtn;    procedure FormShow(Sender: TObject);    procedure queryBtnClick(Sender: TObject);    procedure codeGrdTitleClick(Column: TColumn);    procedure BitBtn2Click(Sender: TObject);    procedure BitBtn1Click(Sender: TObject);    procedure ValueEdtKeyDown(Sender: TObject; var Key: Word;      Shift: TShiftState);    procedure FormClose(Sender: TObject; var Action: TCloseAction);    procedure btnAddClientClick(Sender: TObject);    procedure btnAddAccountClick(Sender: TObject);    procedure btnAdduseClick(Sender: TObject);    procedure btnjsrClick(Sender: TObject);  private    { Private declarations }    procedure GetGrid(striniFileName:String;strViewName:String;AdoQuery:TAdoQuery;DBGrid:TDBGrid);    procedure SetGrid(striniFileName:String;strViewName:String;AdoQuery:TAdoQuery;DBGrid:TDBGrid);  public    { Public declarations }    adoConnAdd: TADOConnection;    sqlText:string;     // 原始SQL.TEXT    strResult:string;   //返回值    fieldName:string;   //要返回的字段名称    strSort:string;     //排序的字段    queryText:string;   //查询内容    striniHelpName:string; //Grid设置文件查询    strViewName:string; //查询的数据表    intFieldNum:integer;//默认的查询设置    arrayResult:array of string;//查询结果    procedure CallCodeHelp(strViewText:string;intFieldNum:integer;striniHelpName,strViewName:string;var arrResult:array of string);  end;var   F007Frm: TF007Frm;implementationuses datalinkunit, A0102ConEdtUnit, A0101ConEdtUnit, GlobalLibUnit,   A0103ConEdtUnit, A0104ConEdtUnit;{$R *.DFM}procedure  TF007Frm.GetGrid(striniFileName:String;strViewName:String;                            AdoQuery:TAdoQuery;DBGrid:TDBGrid);var   i,j:integer;   strReturned:array[0..20] of char;//   strContent:string;//   strDivideFlag:string;//   intPosition:integer;//   strVisible:string;//   strLength:string;//begin   strDivideFlag:='/';   for i:=0 to AdoQuery.Fields.Count -1 do      begin         GetPrivateProfileString(PChar(strViewName),                                 pchar(AdoQuery.Fields[i].FieldName),                                 '',strReturned,255,pchar(striniFileName));         j:=0;         strContent:='';         while strReturned[j]<>'' do            begin               strContent:=strContent+strReturned[j];               j:=j+1;            end;         intPosition:=Pos(strDivideFlag,strContent);         strVisible:=Copy(strContent,1,intPosition-1);         Delete(strContent,1,intPosition);         intPosition:=Pos(strDivideFlag,strContent);         strLength:=Copy(strContent,1,intPosition-1);         if strVisible='1' then            DBGrid.columns[i].Visible:=True         else            DBGrid.columns[i].Visible:=False;         if strLength<>'' then            DBGrid.columns[i].width:=StrToInt(strLength);      end;end;//////////////////////////////////////////////////////////////////函数功能;保存DBGrid的状态                                  ////输入参数:StrIniFilePath,配置文件完全文件名                ////          strViewName, 表名                                 ////          AdoQuery, AdoQuery组件名                          ////          DBGrid, DBGrid组件名                              ////输出参数:无                                                ////编写人:李刚                                                ////编写时间:2001年9月7日                                      //////////////////////////////////////////////////////////////////procedure TF007Frm.SetGrid(striniFileName:String;strViewName:String;                           AdoQuery:TAdoQuery;DBGrid:TDBGrid);var   i:integer;   strFields:pChar;//   StrStr:PChar;//   strVisible:string;//   strLength:string;//   strDivideFlag:string;//begin   strDivideFlag:='/';   for i:=0 to AdoQuery.Fields.Count -1 do     begin       strfields:= PChar(AdoQuery.Fields[i].FieldName);       if DBGrid.columns[i].Visible=true then          strVisible:='1'       else          strVisible:='0';       strLength:=IntToStr(DBGrid.columns[i].width);       StrStr:=PChar(strVisible+strDivideFlag+strLength+strDivideFlag);       WritePrivateProfileString(PChar(strViewName),strFields,StrStr,                                 pChar(striniFileName));     end;end;procedure TF007Frm.FormShow(Sender: TObject);var   i:integer;   totalWidth:integer;begin   GetGrid(striniHelpName,strViewName,codeAQey,codeGrd);//调用DBGrid配置参数函数   //初始化字段列表
   fieldCbx.items:=codeDt.DataSet.FieldList;
   fieldCbx.Text:='助记码';//fieldCbx.items[intFieldNum];
   signCbx.ItemIndex:=6; // 默认包含
   //初始化界面
   totalWidth:=0;
   for i:=0 to codeGrd.Columns.Count-1 do
   begin
       totalWidth:=totalWidth+codeGrd.Columns[i].Width;
   end;
   if totalWidth>GetSystemMetrics(SM_CXSCREEN)-80 then
       totalWidth:=GetSystemMetrics(SM_CXSCREEN)-80;
   if totalWidth<444 then totalWidth:=444;
   self.Width :=totalWidth;
   codeGrd.Width :=totalWidth-40;
   valueEdt.Width :=self.Width - valueEdt.Left - queryBtn.Width-20;
   queryBtn.Left := valueEdt.left+valueEdt.Width +5;

    //初始化变量
   sqlText:=codeAQey.SQL.Text;
   if strpos(pChar(sqlText),' where ')=nil then
       sqlText:=sqlText+' where 1=1';
   queryText:='';
   strSort:='';end;procedure TF007Frm.queryBtnClick(Sender: TObject);var   sResult:string;   //储存查询串begin   sResult:=fieldCbx.Text;   case signCbx.ItemIndex+1 of
   1:  sResult:=sResult+'=';
   2:  sResult:=sResult+'<>';
   3:  sResult:=sResult+' > ';
   4:  sResult:=sResult+'<';
   5:  sResult:=sResult+'<=';
   6:  sResult:=sResult+' >= ';
   7:  sResult:=sResult+' like ';
   else sResult:=sResult+'=';
   end;
   if signCbx.ItemIndex+1<>7 then    //如果是LIKE需要特殊处理
      sResult:=sResult+''''+valueEdt.Text+''''
   else
   begin
     if Trim(ValueEdt.Text)<>'' then
      sResult:=sResult+'''%'+valueEdt.text+'%'''
     else
      sResult:=sResult+'''%'+valueEdt.text+'%'' or '+fieldCbx.Text+' is null'  ;
   end;
   queryText:=' and '+sResult; //保存查询内容

   //更新查询
   codeAQey.Close;
   codeAQey.SQL.Text:=sqlText+queryText+strSort;
   codeAQey.Open;
   GetGrid(striniHelpName,strViewName,codeAQey,codeGrd);//调用DBGrid配置参数函数end;procedure TF007Frm.codeGrdTitleClick(Column: TColumn);begin   try      //按点击的列排序      strSort:=' order by '+Column.Title.Caption;      codeAQey.Close;      codeAQey.SQL.Text:=sqlText+queryText+strSort;      codeAQey.Open   except   end;end;procedure TF007Frm.BitBtn2Click(Sender: TObject);begin   tag:=0;  //tag为0代表没有正确的返回值   close;end;procedure TF007Frm.BitBtn1Click(Sender: TObject);Vari:Integer;begin   tag:=0;  //tag为1代表有正确的返回值//   if not codeAQey.Eof then//   begin       tag:=1;       SetLength(arrayResult,codeAQey.FieldCount);       For i:=0 to codeAQey.FieldCount-1 do          arrayResult[i]:=codeAQey.Fields[i].AsString;//   end;   close;end;//////////////////////////////////////////////////////////////////函数名称:function TF007Frm.CallCodeHelp                    ////函数功能;通过用户选择,返回编码                            ////输入参数:strViewText 视图查询串                            ////          retField    要返回值的字段名称                    ////输出参数:指定字段的值                                      ////编写人:陈宇                                                ////编写时间:2001年9月21日                                     //////////////////////////////////////////////////////////////////procedure TF007Frm.CallCodeHelp(strViewText:string;intFieldNum:integer;striniHelpName,strViewName:string;var arrResult:array of string);Vari:Integer;begin   //进行ADOQUERY的初始化   codeAQey.SQL.Text :=strViewText;
   //打开查询
   codeAQey.Open;   //出示窗体   F007Frm.strViewName:=strViewName;   F007Frm.intFieldNum:=intFieldNum;   F007Frm.striniHelpName:=striniHelpName;   if strViewName='TC03' then   begin      btnAddClient.Visible:=False;  //显示“新增账户”      btnAdduse.Visible:=False;      btnjsr.Visible:=False;   end;   if strViewName='TC02' then   begin      btnAddAccount.Visible:=False; //显示“新增客户”      btnAdduse.Visible:=False;      btnjsr.Visible:=False;   end;   if strViewName='TC04' then   begin      btnAddAccount.Visible:=False;  //显示“新增用途”      btnAddClient.Visible:=False;      btnjsr.Visible:=False;   end;   if strViewName='TC05' then   begin      btnAddAccount.Visible:=False; //显示“新增经手人”      btnAddClient.Visible:=False;      btnAdduse.Visible:=False;   end;      //进行ADOQUERY的初始化   //sqlText:=strViewText;   //codeAQey.SQL.Text :=strViewText;   F007Frm.ShowModal;   //返回结果   if (tag=1) then      begin         For i:=0 to codeAQey.FieldCount-1 do            arrResult[i]:=arrayResult[i];      end   else      arrResult[0]:='-1';   //关闭查询   codeAQey.Close;   //adoConnAdd.Free;end;procedure TF007Frm.ValueEdtKeyDown(Sender: TObject; var Key: Word;  Shift: TShiftState);begin   //在此按下回车键完成与单击查询按钮同样的功能   if key=13 then   begin      queryBtn.Click;   end;end;procedure TF007Frm.FormClose(Sender: TObject; var Action: TCloseAction);begin   SetGrid(striniHelpName,strViewName,codeAQey,CodeGrd);//调用DBGrid参数保存函数   Action:=caFree;end;procedure TF007Frm.btnAddClientClick(Sender: TObject);begin  Application.CreateForm(TFrmA0102ConEdt,FrmA0102ConEdt);  FrmA0102ConEdt.Tag:=1;  //FrmA0102ConEdt.AQeyObject.Connection:=adoConnAdd;  FrmA0102ConEdt.ShowModal;  FrmA0102ConEdt.Free;  queryBtn.Click;end;procedure TF007Frm.btnAddAccountClick(Sender: TObject);//var // strDatabaseConnectString:string;begin  Application.CreateForm(TFrmA0101ConEdt,FrmA0101ConEdt);  FrmA0101ConEdt.Tag:=1;  //FrmA0101ConEdt.AQeyObject.Connection:=adoConnAdd;  FrmA0101ConEdt.ShowModal;  FrmA0101ConEdt.Free;  queryBtn.Click;end;procedure TF007Frm.btnAdduseClick(Sender: TObject);//var //strDatabaseConnectString:string;begin  Application.CreateForm(TFrmA0103ConEdt,FrmA0103ConEdt);  FrmA0103ConEdt.Tag:=1;  //FrmA0103ConEdt.AQeyObject.Connection:=  adoConnAdd;  FrmA0103ConEdt.ShowModal;  FrmA0103ConEdt.Free;  queryBtn.Click;end;procedure TF007Frm.btnjsrClick(Sender: TObject);//var //strDatabaseConnectString:string;begin  Application.CreateForm(TFrmA0104ConEdt,FrmA0104ConEdt);  FrmA0104ConEdt.Tag:=1;  //FrmA0104ConEdt.AQeyObject.Connection:=  adoConnAdd;  FrmA0104ConEdt.ShowModal;  FrmA0104ConEdt.Free;  queryBtn.Click;end;end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -