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

📄 jm_fhdsc.pas

📁 省级集邮品管理ERP
💻 PAS
📖 第 1 页 / 共 2 页
字号:
        Save;
        RxQry_fhd.GotoBookmark(bk);
        PPlb_StateChange;
      end;
    bnCancel:
      if CHQMsgBox('取消编辑, 确定吗?', 2) = IDYES then
      begin
        bk := rxQry_fhd.GetBookmark;
        RxQry_ckpp.Cancelupdates;
        rxQry_fhd.GotoBookmark(bk);
        SetState(dtBrowse);
        Rgp_ppfl.Enabled := True;
      end;
    bnPrint:
      begin
        if RxQry_ckpp.IsEmpty then
        begin
          CHQMsgBox('没有票品信息可打印!');
          Exit;
        end;

        Frm_RKDRPT := TFrm_RKDRPT.Create(nil);
        with Frm_RKDRPT do
        try                   //RxQry_ckpp.FieldByName('lb').AsString
          QRLabel1.Caption := Rgp_ppfl.Items[Rgp_ppfl.ItemIndex] + ' 入库通知单';
          QRLabel1.Left := round((ColumnHeaderBand1.Width - QRLabel1.Width) / 2);
          QRLabel25.Caption := VG_UnitName;//DBEdit7.Text;
          QRLabel8.Caption := rxQry_fhd.fieldByName('fhdh').AsString; //edit3.text;

          jycx := 'select a.FHDH, a.PPDM, DECODE(a.LB,''0'',''集邮票'',''1'',''集邮品'',''2'',''购入票'') LB'
            + ', a.ZH, a.PPMC, a.JJ/100 jj,a.JJ*a.SL/100 JJJE, a.SL, a.XJ/100 xj,a.XJ*a.SL/100 ZJJE,b.fxrq from tm_htckpp a,tb_yzppxxb b '
            + ' where a.ppdm(+)=b.tdm and fhdh= ''' + rxQry_fhd.FieldByName('fhdh').AsString + '''';

          Qry_ckdayin.close;
          Qry_ckdayin.sql.clear;
          Qry_ckdayin.sql.add(jycx);
          Qry_ckdayin.open;

          QRLabel11.Caption := FormatDateTime('yyyy"年"mm"月"d"日" ', DBDateEdit1.Date);
    {初始化Frm_RKDRPT中的全局变量}
          sumzj := 0;
          sumjsj := 0;
          DetailLines := 0;
    {设置套打标记}
          if CHQMsgBox('是否采用套打?', 2) = IDYES then
            Tao_Print_Flag := True
          else
            Tao_Print_Flag := False;
    {得到总页数}
          Prepare;
          try
            QRLabel29.Caption := IntToStr(QRPrinter.PageCount);
          finally
            QRPrinter.Free;
          end;
          QRPrinter := nil;
    {受PREPARE方法的影响必须再次的初始化Frm_RKDRPT中的全局变量}
          sumzj := 0;
          sumjsj := 0;
          DetailLines := 0;
          preview;
        finally
          Frm_RKDRPT.Free;
          Frm_RKDRPT := nil;
        end;



{          if rxQry_fhd.IsEmpty then Exit;
        if not AsSigned(frm_httjrpt) then
          frm_httjrpt := TFrm_httjrpt.Create(nil);
        with frm_httjrpt do
        try
          Qry_tjd.Close;
          Qry_tjd.SQL.Clear;
          Qry_tjd.SQL.Add('select * from tm_htckd where fhdh=''' + rxQry_fhd.fieldByName('fhdh').AsString + '''');
          Qry_tjd.Open;
          QRLabel1.Caption := '营业员票品发货单';
          QRLabel1.Left := Round((PageHeaderBand1.Width - QRlabel1.Width) / 2);
          QRLabel3.Caption := Qry_tjd.FieldByName('fhdh').AsString;
          QRLabel5.Caption := FormatDateTime('yyyy-mm-dd', Qry_tjd.FieldByName('kdrq').AsDateTime);
          with Qry_tjpp do
          begin
            Close;
            SQL.Clear;
            SQL.Add('select decode(lb,''0'',''集邮票'',''1'',''集邮品'',''2'',''购入票'')'
              + '  LB,jj/100 jj,xj/100 xj,jsj/100 jsj,sl, zh,ppmc from tm_htckpp where  fhdh=''' + rxQry_fhd.fieldByName('fhdh').AsString + '''');
            Open;
          end;
          Preview;
        finally
          Free;
          Frm_httjrpt := nil;
        end;   }
      end;
    bnClose: Close;
  end;
end;

procedure Tfrm_FHDSC.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
  if (FDtState in [dtInsert, dtEdit]) then
    case CHQMsgBox('数据已经编辑,需要保存吗?', 3) of
      IDYES:
        if not Save then Action := caNone;
      IDCANCEL: Action := caNone;
    end;
end;

procedure Tfrm_FHDSC.Qry_jycxXJSetText(Sender: TField; const Text: string);
begin
  inherited;
  CurrSetText(sender, Text);
end;

procedure Tfrm_FHDSC.Qry_jycxXJGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  inherited;
  CurrGetText(Sender, Text, DisplayText);
end;

procedure Tfrm_FHDSC.Qry_jycxJSJSetText(Sender: TField;
  const Text: string);
begin
  inherited;
  CurrSetText(sender, Text);
end;

procedure Tfrm_FHDSC.Qry_jycxJSJGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  inherited;
  CurrGetText(Sender, Text, DisplayText);
end;

procedure Tfrm_FHDSC.Qry_jycxJJGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  inherited;
  CurrGetText(Sender, Text, DisplayText);
end;

procedure Tfrm_FHDSC.Qry_jycxJJSetText(Sender: TField; const Text: string);
begin
  inherited;
  CurrSetText(Sender, Text);
end;

procedure Tfrm_FHDSC.CBo_checkedClick(Sender: TObject);
begin
  pplb_statechange;
end;

procedure Tfrm_FHDSC.DBG_fhdDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  inherited;
  if rxQry_fhd.FieldByName('GHRQ').AsString = '' then
    DBG_fhd.Canvas.Font.Color := clblue
  else
    DBG_fhd.Canvas.Font.Color := clred;
  if gdSelected in State then
  begin
    DBG_fhd.Canvas.Brush.Color := clNavy;
    dbg_fhd.Canvas.Font.Color := clWhite;
  end;
  DBG_fhd.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

procedure Tfrm_FHDSC.DoDeleteFHD;
begin
  Data.DM.StartTransaction;
  try
    RxQry_ckpp.Edit;
    rxQry_ckpp.First;
    while not rxQry_ckpp.Eof do
    begin
      RxQry_ckpp.Delete;
      RxQry_ckpp.Next;
    end;
    rxQry_ckpp.First;
    while not rxQry_ckpp.Eof do
    begin
      RxQry_ckpp.Delete;
      RxQry_ckpp.Next;
    end;
    rxQry_fhd.Edit;
    rxQry_fhd.Delete;

    RxQry_ckpp.ApplyUpdates;
    rxQry_fhd.ApplyUpdates;
    data.DM.Commit;
  except
    data.DM.Rollback;
    raise;
  end;
end;

procedure Tfrm_FHDSC.SetState(currdtState: TDataState);
begin
  FDtState := currdtState;
  ModiPanel1.ChangeMode(currdtState = dtBrowse);
  if currdtState = dtEdit then
    DBGrid3.Columns[3].Color := clInfoBk
  else
    DBGrid3.Columns[3].Color := clWindow;
end;

procedure Tfrm_FHDSC.RxQry_ckppJJGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  inherited;
  CurrGetText(Sender, Text, DisplayText);
end;

procedure Tfrm_FHDSC.RxQry_ckppJJSetText(Sender: TField;
  const Text: string);
begin
  inherited;
  CurrSetText(Sender, Text);
end;

procedure Tfrm_FHDSC.RxQry_ckppXJGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  inherited;
  CurrGetText(Sender, Text, DisplayText);
end;

procedure Tfrm_FHDSC.RxQry_ckppXJSetText(Sender: TField;
  const Text: string);
begin
  inherited;
  CurrSetText(Sender, Text);
end;

procedure Tfrm_FHDSC.Rgp_ppflClick(Sender: TObject);
begin
  case Rgp_ppfl.ItemIndex of
    0:
      begin
        L_type := io_jyp;
        lb_type := '0';
      end;
    1:
      begin
        L_type := io_yp;
        lb_type := '1';
      end;
    2:
      begin
        L_type := io_GRP;
        lb_type := '2';
      end;
  end;
  PPLB_StateChange;
end;

procedure Tfrm_FHDSC.PPLB_StateChange;
var
  v_s_sql: string;
begin
  inherited;
  v_s_sql := 'a.QXDW=b.DWDM and a.CKXZ=c.RCKXZDM and fhdh in (select distinct fhdh from tm_htckpp where lb=''' + lb_type + ''') ';
  if CBo_checked.Checked then
    v_s_sql := v_s_sql + 'and GHRQ is null';

  rxQry_fhd.Close;
  rxQry_fhd.MacroByName('TJ').AsString := v_s_sql;
  rxQry_fhd.Open;
end;

procedure Tfrm_FHDSC.RxQry_ckppBeforeInsert(DataSet: TDataSet);
begin
  Abort;
end;

function Tfrm_FHDSC.CheckKC: Integer; //检测分配的票品 数量是否超出库存
var
  FQuery1, FQuery2, FQuery3: TQuery;
  StrSql: string;
begin
  Result := 0;
  if rxQry_ckpp.IsEmpty then exit;
  rxQry_ckpp.First;
  with rxQry_ckpp do
  begin
    while not Eof do
    begin
      try
        FQuery1 := TQuery.Create(nil);
        FQuery2 := TQuery.Create(nil);
        case RGp_ppfl.ItemIndex of
          0: StrSql := SqlStrings1.jyp_Sql.Text;
          1: StrSql := SqlStrings1.yp_Sql.Text;
          2: StrSql := SqlStrings1.grp_Sql.Text;
        end;
        with FQuery1 do
        begin
          DataBaseName := 'yzpp';
          Close;
          Sql.clear;
          Sql.add(strsql);
          Params[0].Value := rxQry_ckpp.fieldbyname('kfdm').AsString;
          Open;
        end;

        case Rgp_ppfl.ItemIndex of
          0: StrSql := 'select ppdm,jj,lb,sl ts,kfdm from tm_htckpp  where fhdh=''' + FieldByName('fhdh').AsString + ''' and lb=''0'' and kfdm=''' + FieldbyName('kfdm').AsString + ''' and ppdm=''' + FieldByName('Ppdm').AsString + ''' and jj=' + FieldByName('jj').AsString;
          1: StrSql := 'select ppdm,jj,lb,sl ts,kfdm from tm_htckpp  where fhdh=''' + FieldByName('fhdh').AsString + ''' and lb=''1'' and kfdm=''' + FieldbyName('kfdm').AsString + ''' and ppdm=''' + FieldByName('Ppdm').AsString + ''' and jj=' + FieldByName('jj').AsString;
          2: StrSql := 'select ppdm,jj,lb,sl ts,kfdm from tm_htckpp  where fhdh=''' + FieldByName('fhdh').AsString + ''' and lb=''2'' and kfdm=''' + FieldbyName('kfdm').AsString + ''' and ppdm=''' + FieldByName('Ppdm').AsString + ''' and jj=' + FieldByName('jj').AsString;
        end;

        with FQuery2 do
        begin
          DataBaseName := 'yzpp';
          Close;
          Sql.Clear;
          Sql.Add(StrSql);
          Open;
        end;

        if FQuery1.Locate('PPDM;JJ;KFDM', vararrayof([Fieldbyname('ppdm').AsString, FieldbyName('jj').asString, FieldByname('kfdm').AsString]), []) then
          if FieldByName('sl').AsInteger > FQuery1.FieldByName('ts').AsInteger - FQuery2.FieldByName('ts').AsInteger then
          begin
            Result := 1;
            CHQMsgBox('退缴票品数量大于库存数量,请重新设置!'#13'(库存数量为:' + VarToStr(FQuery1.FieldByName('ts').AsInteger - FQuery2.FieldByName('ts').AsInteger) + ')');
            Exit;
          end;
      finally
        FQuery1.Free;
        FQuery2.Free;
      end;
      Next;
    end;
  end;
end;

end.

⌨️ 快捷键说明

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