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

📄 thunit.pas

📁 一个票据管理系统
💻 PAS
📖 第 1 页 / 共 4 页
字号:
var
  kqsl:integer;
  kqqxhm:string;
begin
   if (edit1.Text = '') or (edit2.Text = '') or (edit3.Text ='') or (edit4.Text = '') or (combobox1.Text='') then
    exit;
   if dmdata.qsjzADOQuery.FieldByName('dbegin').AsDateTime > datetimepicker1.Date then
   begin
     showmessage('日期已小于本月范围,请重新选择!');
      datetimepicker1.Date:=dmdata.ADOTable_T_user['date'];
     exit;
   end;
   if (dmdata.qsjzADOQuery.FieldByName('dend').AsDateTime+1) < datetimepicker1.Date then
   begin
     showmessage('日期已大于本月范围,请重新选择!');
      datetimepicker1.Date:=dmdata.ADOTable_T_user['date'];
     exit;
   end;
   //showmessage(floattostr(frac((strtofloat(edit2.Text)-strtofloat(dmdata.LyADOQuery.FieldByName('qxhm').AsString))/unm)));
   if frac((strtofloat(edit2.Text)-strtofloat(qxhm))/unm)<>0 then
   begin
     showmessage('你所输入的起始号码不合法');
     exit;
   end;
    if (sl < strtofloat(edit1.Text)) then
    begin
       showmessage('数量太大');
       exit;
    end;
   if ((strtofloat(edit2.Text)-strtofloat(qxhm))<0) or (strtofloat(edit3.Text)>strtofloat(jxhm)) then
   begin
     showmessage('录入起始号码超出起始或结束号码');
     exit;
   end;
   if (sl=strtofloat(edit1.Text))and(qxhm=edit2.Text) then
   begin
      with dmdata.editADOQuery do
      begin
         close;
         sql.Clear;
         sql.Add('delete * from t_th where id=:a');
         parameters.ParamByName('a').Value:=id;
         execsql;
      end;
   end
   else
   begin
    if (qxhm=edit2.Text) then
    begin
      with dmdata.EditADOQuery do
      begin
        close;
        sql.Clear;
        sql.Add('update t_th set sl = :b,qxhm = :c where id = :a');
        parameters.ParamByName('a').Value:=id;
        parameters.ParamByName('b').Value:=sl-strtofloat(edit1.Text);
        parameters.parambyname('c').value:=formatfloat(dm.DMData.pjlenstr,strtofloat(floattostr(strtofloat(edit3.text)+1)));
        Execsql;
      end;
    end
    else
    begin
      with dmdata.editADOQuery do
      begin
        close;
        sql.Clear;
        sql.Add('insert into t_th(ql_id,rq,sl,qxhm,jxhm,thbm,qt,thr,ms_id,th_qt) values(:a,:b,:c,:d,:e,:f,:g,:h,:i,:l)');
        parameters.ParamByName('a').Value:=ql_id;
        parameters.parambyname('b').value:=datetostr(datetimepicker1.Date);
        parameters.ParamByName('c').Value:=(strtofloat(edit2.Text)-strtofloat(qxhm))/unm;
        parameters.ParamByName('d').Value:=formatfloat(dm.DMData.pjlenstr,strtofloat(qxhm));
        parameters.ParamByName('e').Value:=formatfloat(dm.DMData.pjlenstr,strtofloat(floattostr(strtofloat(edit2.Text)-1)));
        parameters.ParamByName('f').Value:=trim(lybm);
        parameters.ParamByName('g').Value:=qt;
        parameters.ParamByName('h').Value:=trim(lyr);
        parameters.ParamByName('i').Value:=ms_id;
         parameters.ParamByName('l').Value:=th_qt;
        Execsql;
      end;
      with dmdata.KqeditADOQuery do
      begin
         close;
         sql.Clear;
         sql.Add('update t_th set sl = :b,qxhm = :c where id = :a');
         parameters.ParamByName('a').Value:=id;
         parameters.ParamByName('b').Value:=sl-(strtofloat(edit2.Text)-strtofloat(qxhm))/unm-strtofloat(edit1.Text);
         parameters.parambyname('c').value:=formatfloat(dm.DMData.pjlenstr,strtofloat(floattostr(strtofloat(edit3.text)+1)));
         Execsql;
      end;
   end;
 end;
 with dmdata.KqqsADOQuery do
 begin
    close;
    sql.Clear;
    sql.Add('select a.ql,b.ms_id,b.ql_id,b.rq,b.sl,b.qxhm,b.jxhm,b.kqbm from t_bjql as a inner join t_kqb as b on a.km = b.ql_id where(qt = 1) and (id=:a)' );
    parameters.ParamByName('a').Value:=strtofloat(labelid1.Caption);
    open;
    if (RecordCount > 0) and (strtofloat(fieldbyname('qxhm').AsString)=(strtofloat(edit3.Text)+1)) then
    begin
      kqsl:=fieldbyname('sl').AsInteger;
      kqqxhm:=fieldbyname('qxhm').AsString;
      with dmdata.KqeditADOQuery do
      begin
        close;
        sql.Clear;
        sql.Add('update t_kqb set sl = :b,qxhm = :c where id = :a');
        parameters.ParamByName('a').Value:=strtofloat(labelid1.Caption);
        parameters.ParamByName('b').Value:=kqsl+strtofloat(edit1.Text);
        parameters.parambyname('c').value:=formatfloat(dm.DMData.pjlenstr,strtofloat(floattostr(strtofloat(kqqxhm)-strtofloat(edit1.Text)*unm)));
        Execsql;
        end;
      end
      else
      begin
        with dmdata.kqeditADOQuery do
        begin
           close;
           sql.Clear;
           sql.Add('insert into t_kqb(ms_id,ql_id,rq,sl,qxhm,jxhm,kqbm,qt) values(:a,:b,:c,:d,:e,:f,:g,:h)');
           parameters.ParamByName('a').Value:=ms_id;
           parameters.ParamByName('b').Value:=ql_id;
           parameters.parambyname('c').value:=datetostr(datetimepicker1.Date);
           parameters.ParamByName('d').Value:=strtofloat(edit1.Text);
           parameters.ParamByName('e').Value:=formatfloat(dm.DMData.pjlenstr,strtofloat(edit2.Text));
           parameters.ParamByName('f').Value:=formatfloat(dm.DMData.pjlenstr,strtofloat(edit3.Text));
           parameters.ParamByName('g').Value:=trim(lybm);
           parameters.ParamByName('h').Value:=0;
           Execsql;
        end;
      end;
  end;
   delnewll;
   kqhznewll;
   comboboxchange(Sender);
   thnewll;
  combobox1.Text:='';
  edit1.Text:='';
  edit2.Text:='';
  edit3.Text:='';
  edit4.Text:='';
  edit1.SetFocus;
  button2.Enabled:=false;
end;

procedure TThForm.BitBtn2Click(Sender: TObject);
begin
   printerpreview.Orientation:=poLandscape;
   printdbgrideh1.Preview;
end;

procedure TThForm.BitBtn4Click(Sender: TObject);
begin
   printerpreview.Orientation:=poLandscape;
   printdbgrideh2.Preview;
end;

procedure TThForm.BitBtn1Click(Sender: TObject);
var
 iacc_id,iyear,id:integer;
begin
  iacc_id:=dmdata.qsjzADOQuery.fieldbyname('iacc_id').AsInteger;
  iyear:=dmdata.qsjzADOQuery.fieldbyname('iyear').AsInteger;
  id:=dmdata.qsjzADOQuery.fieldbyname('id').AsInteger-1;
  if dmdata.qsjzADOQuery.fieldbyname('id').AsInteger <> 1 then
  begin
    with dmdata.JzADOQuery do
    begin
      close;
      sql.Clear;
      sql.Add('select * from g_period where (iacc_id=:a)and(iyear=:b)and(id=:c)');
      parameters.ParamByName('a').Value := iacc_id;
      parameters.ParamByName('b').Value:=iyear;
      parameters.ParamByName('c').Value :=id;
      open;
      if dmdata.jzADOQuery.fieldByName('bflag').AsBoolean = false then
      begin
         showmessage('上月未结账,不能登记入账;重新注册结账,结账后请重新注册登记入账.');
         exit;
      end;
    end;
  end;    
    with dmdata.thADOQuery  do
    begin
       close;
       sql.Clear;
       sql.Add('select * from T_th where th_qt = 0');
       open;
       First;
       while not eof do
       begin
          with dmdata.QcKqADOQuery do
          begin
            close;
            sql.Clear;
            sql.Add('insert into t_ms_jl(ql_id,rq,sl,qxhm,jxhm,Lybm,qt,jbr) values(:a,:b,:c,:d,:e,:f,:g,:i)');
            parameters.ParamByName('a').Value:=dmdata.thADOQuery.fieldByName('ql_id').AsString;
            parameters.ParamByName('b').Value:=dmdata.thADOQuery.fieldByName('rq').AsDateTime;
            parameters.parambyname('c').value:=dmdata.thADOQuery.fieldByName('sl').AsInteger;
            parameters.ParamByName('d').Value:=dmdata.thADOQuery.fieldByName('QXHM').AsString;
            parameters.ParamByName('e').Value:=dmdata.thADOQuery.fieldByName('JXHM').AsString;
            parameters.ParamByName('f').Value:=dmdata.thADOQuery.fieldByName('thbm').AsString;
            parameters.ParamByName('g').Value:=5;
            parameters.ParamByName('i').Value:=dmdata.thADOQuery.fieldByName('thr').AsString;
            Execsql;
          end;
          next;
        end;
  
    end;
    with dmdata.thADOQuery do
    begin
     close;
     sql.Clear;
     sql.Add('delete from t_th where th_qt=0');
     Execsql;
    end;
    thnewll;
    showmessage('登记完成!');


end;

procedure TThForm.BitBtn3Click(Sender: TObject);
var
 iacc_id,iyear,id,ms_id:integer;
begin
  iacc_id:=dmdata.qsjzADOQuery.fieldbyname('iacc_id').AsInteger;
  iyear:=dmdata.qsjzADOQuery.fieldbyname('iyear').AsInteger;
  id:=dmdata.qsjzADOQuery.fieldbyname('id').AsInteger-1;
  if dmdata.qsjzADOQuery.fieldbyname('id').AsInteger <> 1 then
  begin
    with dmdata.JzADOQuery do
    begin
      close;
      sql.Clear;
      sql.Add('select * from g_period where (iacc_id=:a)and(iyear=:b)and(id=:c)');
      parameters.ParamByName('a').Value := iacc_id;
      parameters.ParamByName('b').Value:=iyear;
      parameters.ParamByName('c').Value :=id;
      open;
      if dmdata.jzADOQuery.fieldByName('bflag').AsBoolean = false then
      begin
         showmessage('上月未结账,不能登记入账;重新注册结账,结账后请重新注册登记入账.');
         exit;
      end;
    end;
  end;
    with dmdata.bmthADOQuery  do
    begin
       close;
       sql.Clear;
       sql.Add('select * from T_th where th_qt = 1');
       open;
       First;
       while not eof do
       begin
          with dmdata.QcKqADOQuery do
          begin
            close;
            sql.Clear;
            //sql.Add('update t_ms_jl set qt = :c where (qxhm = :a and jxhm=:b)');
              //parameters.ParamByName('a').Value:=dmdata.bmthADOQuery.fieldByName('QXHM').AsString;
              //parameters.ParamByName('b').Value:=dmdata.bmthADOQuery.fieldByName('JXHM').AsString;
              //parameters.parambyname('c').value:=5;
            sql.Add('insert into t_ms_jl(ql_id,rq,sl,qxhm,jxhm,Lybm,qt,jbr) values(:a,:b,:c,:d,:e,:f,:g,:i)');
            parameters.ParamByName('a').Value:=dmdata.bmthADOQuery.fieldByName('ql_id').AsString;
            parameters.ParamByName('b').Value:=dmdata.bmthADOQuery.fieldByName('rq').AsDateTime;
            parameters.parambyname('c').value:=dmdata.bmthADOQuery.fieldByName('sl').AsInteger;
            parameters.ParamByName('d').Value:=dmdata.bmthADOQuery.fieldByName('QXHM').AsString;
            parameters.ParamByName('e').Value:=dmdata.bmthADOQuery.fieldByName('JXHM').AsString;
            parameters.ParamByName('f').Value:=dmdata.bmthADOQuery.fieldByName('thbm').AsString;
            parameters.ParamByName('g').Value:=5;
            parameters.ParamByName('i').Value:=dmdata.bmthADOQuery.fieldByName('thr').AsString;
            Execsql;
          end;
          with dmdata.QcKqADOQuery do
          begin
            close;
            sql.Clear;
            sql.Add('select MAX(ID) AS ms_id from t_ms_jl' );
            open;
            ms_id:= fieldByName('ms_id').AsInteger;
          end;
          with dmdata.QcKqADOQuery do
          begin
             close;
             sql.Clear;
             sql.Add('insert into t_kqb(ms_id,ql_id,rq,sl,qxhm,jxhm,KQbm,qt) values(:h,:a,:b,:c,:d,:e,:f,:g)');
             parameters.ParamByName('h').Value := ms_id;
             parameters.ParamByName('a').Value:=dmdata.bmthADOQuery.fieldByName('ql_id').AsString;
             parameters.ParamByName('b').Value:=dmdata.bmthADOQuery.fieldByName('rq').AsDateTime;
             parameters.parambyname('c').value:=dmdata.bmthADOQuery.fieldByName('sl').AsInteger;
             parameters.ParamByName('d').Value:=dmdata.bmthADOQuery.fieldByName('QXHM').AsString;
             parameters.ParamByName('e').Value:=dmdata.bmthADOQuery.fieldByName('JXHM').AsString;
             parameters.ParamByName('f').Value:='库存';
             parameters.ParamByName('g').Value:=0;
             Execsql;
          end;
          next;
        end;
      
    end;
    with dmdata.bmthADOQuery do
    begin
     close;
     sql.Clear;
     sql.Add('delete from t_th where th_qt = 1');
     Execsql;
    end;
    bmthnewll;
     kqhznewll;
    showmessage('登记完成!');


end;

procedure TThForm.edit1keypress(Sender: TObject; var Key: Char);
var
  m:boolean;
begin
  m:=(key<#8)or(key>#8)and(key<#48)or(key>#57);
  if m then key := #0;


end;

procedure TThForm.edti2keypress(Sender: TObject; var Key: Char);
var
  m:boolean;
begin
  m:=(key<#8)or(key>#8)and(key<#48)or(key>#57);
  if m then key := #0;


end;

procedure TThForm.edit3keypress(Sender: TObject; var Key: Char);
var
  m:boolean;
begin
  m:=(key<#8)or(key>#8)and(key<#48)or(key>#57);
  if m then key := #0;


end;

procedure TThForm.edit5keypress(Sender: TObject; var Key: Char);
var
  m:boolean;
begin
  m:=(key<#8)or(key>#8)and(key<#48)or(key>#57);
  if m then key := #0;


end;

procedure TThForm.edit7keypress(Sender: TObject; var Key: Char);
var
  m:boolean;
begin
  m:=(key<#8)or(key>#8)and(key<#48)or(key>#57);
  if m then key := #0;


end;

procedure TThForm.edit6keypress(Sender: TObject; var Key: Char);
var
  m:boolean;
begin
  m:=(key<#8)or(key>#8)and(key<#48)or(key>#57);
  if m then key := #0;


end;

procedure TThForm.BitBtn5Click(Sender: TObject);
begin
  close;
end;

procedure TThForm.BitBtn6Click(Sender: TObject);
begin
  close;
end;

end.

⌨️ 快捷键说明

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