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

📄 unit_main.pas

📁 用于家庭养殖的财务进出
💻 PAS
📖 第 1 页 / 共 5 页
字号:
        csperscode:=prescodelist[i];
      //@@@@@@@@@@@2
       gencode:=csperscode;
    end;
  end;
  if gencode<>'' then
  begin
  AppPath:=ExtractFilePath(Application.ExeName);
  DefPath:=AppPath+'defaultbmp.bmp';
  image1.Picture.LoadFromFile(DefPath);//载入默认图片
  readpic;
  if pagecontrol1.ActivePageIndex<>0 then
  begin
    label1.Parent:=tabsheet[pagecontrol1.ActivePageIndex];
    label1.BringToFront;
    label1.Top:=tabsheet[pagecontrol1.ActivePageIndex].Top-10;
    label1.Left:=90;
    with dm.ADOQuery1 do       //显示当前用户信息
    begin
      close;
      sql.Clear;
      sql.Add('select a0101,a0102,a0103,a0104 from a01 where prescode='+quotedstr(gencode));
      open;
      label1.Caption:=fieldbyname('a0101').AsString+' , '+fieldbyname('a0102').AsString+' , '
               +fieldbyname('a0103').AsString+' , '+fieldbyname('a0104').AsString;
    end;
  end;
  end;
  is_addnew:=false;
  pagecontrol1.ActivePageIndex:=0;
    showinfo(pagecontrol1.ActivePageIndex+1,perscode);
    is_mod:=false;
    }
end;


procedure Tfrm_main.PageControl1Change(Sender: TObject);
var
  sqlstr:string;
  str,tmpstr:string;
  row,col:integer;
  code:string;
  fieldstr:string;
  table_name:string;
  loopnum:integer;
  postion:integer;
  field:string;
  i:integer;
  j:Variant;
  //定义stringgrid的位置
  itop,ileft:integer;
begin
  is_mult:=false;
  if pagecontrol1.ActivePageIndex=0 then        //照片显示的相关控件显现与否
  begin
    groupbox1.Visible:=true;
    B_ADD.Visible:=true;
    b_del.Visible:=true;
  end
  else
  begin
    groupbox1.Visible:=false;
    b_add.Visible:=false;
    b_del.Visible:=false;
  end;
  if gencode<>'' then         //显示某个成员姓名,性别等信息
  begin
    showinfo(pagecontrol1.ActivePageIndex+1,gencode);
    if pagecontrol1.ActivePageIndex<>0 then
    begin
      label1.Parent:=tabsheet[pagecontrol1.ActivePageIndex];
      label1.BringToFront;
      label1.Top:=tabsheet[pagecontrol1.ActivePageIndex].Top-10;
      label1.Left:=90;
      with dm.ADOQuery1 do
      begin
        close;
        sql.Clear;
        sql.Add('select a0101,a0102,a0103,a0104 from a01 where prescode='+quotedstr(gencode));
        open;
        label1.Caption:=fieldbyname('a0101').AsString+' , '+fieldbyname('a0102').AsString+' , '
               +fieldbyname('a0103').AsString+' , '+fieldbyname('a0104').AsString;
      end;
    end;
  end;
  sqlstr:='select page_name,mult_rec,grid_top from page_def where page_no='+inttostr(pagecontrol1.ActivePageindex+1);
  with dm.ADOQuery1 do
  begin
    close;
    sql.Clear;
    sql.Add(sqlstr);
    open;
  end;
  if dm.ADOQuery1.fieldbyname('mult_rec').AsVariant then
  begin
    tbn_newcszxx.Enabled:=true;
    n_2_newcszxx.Enabled:=true;
    tbn_newcs.Enabled:=false;
    n_2_newcs.Enabled:=false;
    is_mult:=true;
    tbn_delzxx.Enabled:=true;  //1023添加  删除子信息按钮可用
    n_2_delcszxx.Enabled:=true;  //1023添加  菜单项选项可用
    //======20050403修改
    stringgrid1.Top:=dm.ADOQuery1.fieldbyname('grid_top').asinteger;
    stringgrid1.Left:=pagecontrol1.Left+5;
    stringgrid1.Width:=pagecontrol1.Width-10;
    stringgrid1.Height:=pagecontrol1.Top+pagecontrol1.Height-stringgrid1.Top-10;
    //============
    unit3.UpdateStringGrid;
    StringGrid1.Visible:=true;
    for i:=1 to StringGrid1.RowCount do
    begin
      if trim(combobox[xh_posi][xh_posy].text)<>'' then
      if combobox[xh_posi][xh_posy].Text=stringgrid1.Cells[1,i] then
      begin
        xh_value:=strtoint(stringgrid1.Cells[0,i]);
        break;
      end;
    end;
  end
  else
  begin
    stringgrid1.Visible:=false;
    tbn_newcszxx.Enabled:=false;
    n_2_newcszxx.Enabled:=false;
    tbn_newcs.Enabled:=true;
    n_2_newcs.Enabled:=true;
  end;
end;

procedure Tfrm_main.PageControl1Changing(Sender: TObject;
  var AllowChange: Boolean);
var
  pagenum,index:integer;
begin
  if gencode='' then
  begin
    allowchange:=false;
    exit;
  end;
  if addstate and (is_save=false) then
  begin
    if application.MessageBox('还未保存当前增加的信息,是否要保存','注意!',MB_OKCANCEL+ mb_iconexclamation)=IDOK then
    begin
      N_2_saveClick(Sender);//(Sender);
      allowchange:=false;
      exit;   //回到浏览状态
    end
    else
    begin
///////////////////2006-03//////////////////////////////////////////////////
      ChangeComposeState(true,false);//组建内容不可以修改
///////////////////////////////////////////////////////////////////////////
      if is_addnew and (is_save=false) then
      begin
        delrecord('a01',gencode);          //$$$$$$$$$$$$$$444
        addstate:=false;
        is_addnew:=false;
        gencode:='';
        pagecontrol1.ActivePageIndex:=0;
        addstate:=false;
        is_csadd:=false;
        is_save:=true;
        unit3.ClearAllComp;
        is_mod:=false;
        allowchange:=false;
        exit;
      end;
      addstate:=false;
      is_csadd:=false;
      is_save:=true;
      is_mod:=false;
    end;
  end;
  if is_mod or upstate then
  begin
    if application.MessageBox('还未保存当前修改的信息,是否要保存','注意!',MB_OKCANCEL+ mb_iconexclamation)=IDOK then
    begin
      N_2_saveClick(Sender);//N5Click(Sender);
      is_mod:=false;
      allowchange:=false;
      exit;    //回到浏览状态
    end
    else
    begin
///////////////////2006-03//////////////////////////////////////////////////
      ChangeComposeState(true,false);//组建内容不可修改
/////////////////////////////////////////////////////////////////////////
      upstate:=false;
      is_save:=true;
      is_mod:=false;
    end;
  end;
end;

procedure Tfrm_main.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
var
  row,col:integer;
  i,index,loopnum:integer;
  sqltmp:string;
  values:string;
  table_name:string;
  seafield:String;
  sqlstr:string;
begin
  if trim(stringgrid1.Cells[0,arow])='' then
    exit;
  xh_value:=strtoint(stringgrid1.Cells[0,arow]);
  seafield:='xh';
  row:=arow;
  comprow:=row;
  col:=2;
  i:=pagecontrol1.ActivePageIndex+1;
   dm.ADOQry_gen.First;
   while not dm.ADOQry_gen.Eof do
   begin
     if (dm.ADOQry_gen.FieldByName('page').AsInteger=i) and (dm.ADOQry_gen.FieldByName('yn').AsString='1') then
     begin
       index:=dm.ADOQry_gen.FieldValues['ord']-1;
      with dm.ADOQuery1 do
      begin
        table_name:=dm.ADOQry_gen.fieldbyname('table_name').AsString;
        close;
        sql.Clear;
        sql.Add('select '+dm.ADOQry_gen.fieldbyname('field').AsString+' from '+table_name+' where prescode='+quotedstr(gencode)+' and '+seafield+'='+inttostr(xh_value));///quotedstr(frm_main.StringGrid1.Cells[xhpos,comprow]));  //??????????????????//
        open;
        values:=dm.ADOQuery1.fieldbyname(dm.ADOQry_gen.fieldbyname('field').AsString).AsString;
            if (dm.ADOQry_gen.FieldByName('type').AsString='E') or (dm.ADOQry_gen.fieldbyname('type').AsString='UE') then
              editbox[i-1][index].Text:=values;//dm.AQ_dg.fieldbyname(dm.ADOQuery2.fieldbyname('field').AsString).AsString;
            if dm.ADOQry_gen.FieldByName('type').AsString='D' then
              maskedit[i-1][index].Text:=dm.ADOQuery1.Fieldbyname(dm.ADOQry_gen.FieldValues['field']).AsString;
            if dm.ADOQry_gen.FieldByName('type').AsString='C' then
              Combobox[i-1][index].Text:=values;
            if dm.ADOQry_gen.FieldByName('type').AsString='M' then
              memo[i-1][index].Text:=values;
            if dm.ADOQry_gen.FieldByName('type').AsString='N' then
              editbox[i-1][index].Text:=values;
      end;
     end;
    dm.ADOQry_gen.next;
  end;
end;

procedure Tfrm_main.t_2_exitClick(Sender: TObject);     //退出
begin
  if addstate and (is_save=false) then
  begin
    if Messagedlg('还未保存当前增加的信息,是否要保存',mtConfirmation, [mbYes, mbNo], 0) = mryes then
    begin
      N_2_saveClick(Sender);//N5Click(Sender);
      exit;   //回到浏览状态
    end
    else
    begin
///////////////////2006-03//////////////////////////////////////////////////
     ChangeComposeState(true,false);//组建内容不可修改
/////////////////////////////////////////////////////////////////////////
      addstate:=false;
    end;
  end;
  if upstate and (is_save=false) then
  begin
    if Messagedlg('还未保存当前修改的信息,是否要保存',mtConfirmation, [mbYes, mbNo], 0) = mryes then
    begin
      N_2_saveClick(Sender);//N5Click(Sender);
      exit;    //回到浏览状态
    end
    else
    begin
///////////////////2006-03//////////////////////////////////////////////////
      ChangeComposeState(true,false);//组建内容不可修改
/////////////////////////////////////////////////////////////////////////
      upstate:=false;
      //unit3.lockcomp;
    end;
  end;
  close;
end;

procedure Tfrm_main.N_2_newcsClick(Sender: TObject);     //增加从属信息
var
  pagenum:integer;
  table_name:string;
begin
///////////////////2006-03//////////////////////////////////////////////////
  ChangeComposeState(false,true);//组建内容可修改
///////////////////////////////////////////////////////////////////////////
  addstate:=true;
  is_save:=false;
  pagenum:=pagecontrol1.ActivePageIndex+1;
  with dm.ADOQuery1 do
  begin
    close;
    sql.Clear;
    sql.Add('select table_name from field_info where page='+inttostr(pagenum));
    open;
    table_name:=fieldbyname('table_name').AsString;
  end;
  with dm.ADOQuery1 do           //判断是否有该成员的记录信息
  begin
    close;
    sql.Clear;
    sql.Add('select prescode from '+table_name+' where prescode='+quotedstr(gencode));
    open;
    if not eof then
    begin
      application.MessageBox('该成员的从属信息已经存在,请修改当前信息!','注意',mb_ok);
      addstate:=false;
      is_save:=true;
      exit;
    end
    else
    begin
      unit3.AddRecord(table_name,gencode);
    end;
  end;
end;

procedure Tfrm_main.CBOnChange(Sender: TObject);
begin
end;

procedure Tfrm_main.CkOnChange(Sender: TObject);
begin
  ckmod:=true;
end;

procedure Tfrm_main.N_2_delcszxxClick(Sender: TObject);
var
  pagenum:integer;
  table_name:string;
  sqlstr:string;
  seafield:String;
begin
  if is_mult=true then
  begin
  if application.MessageBox('确定要删除当前用户该页的从属子信息','注意!',MB_OKCANCEL+ mb_iconexclamation)=IDOK then
  begin
  pagenum:=pagecontrol1.ActivePageIndex+1;
  {sqlstr:='select field from field_info where yn=''1'' and page='+inttostr(pagecontrol1.ActivePageIndex+1)+' and lab_name=''序号''';
   with dm.ADOQuery1 do
   begin
     close;
     sql.Clear;
     sql.Add(sqlstr);
     open;
     seafield:=fieldbyname('field').AsString;
   end;}
  with dm.ADOQuery1 do
  begin
    close;
    sql.Clear;
    sql.Add('select table_name from field_info where page='+inttostr(pagenum));
    open;
    table_name:=fieldbyname('table_name').AsString;
  end;
  if comprow=0 then
    comprow:=1;
  //sqlstr:='delete from '+table_name+' where prescode='+quotedstr(gencode)+' and '+seafield+'='+quotedstr(stringgrid1.Cells[xhpos,comprow]);
  sqlstr:='delete from '+table_name+' where XH='+stringgrid1.Cells[0,comprow];
  showmessage(sqlstr);
  with dm.ADOQuery1 do
  begin
    close;
    sql.Clear;
    sql.Add(sqlstr);
    execsql;
  end;
  unit3.UpdateStringGrid;
  unit3.ClearSGSheet;
  end;
  end
  else
  begin
    if application.MessageBox('确定要删除当前用户该页的从属信息','注意!',MB_OKCANCEL+ mb_iconexclamation)=IDOK then
    begin
      pagenum:=pagecontrol1.ActivePageIndex+1;
      with dm.ADOQuery1 do
      begin
        close;
        sql.Clear;
        sql.Add('select table_name from field_info where page='+inttostr(pagenum));
        open;
      end;
      sqlstr:='delete from '+ dm.ADOQuery1.fieldbyname('table_name').AsString +' where prescode='+quotedstr(gencode);
      with dm.ADOQuery1 do
      begin
        close;
        sql.Clear;
        sql.Add(sqlstr);
        execsql;
      end;
    end;
  unit3.ClearSGSheet;
  end;
end;

⌨️ 快捷键说明

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