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

📄 inv_journalqry_c.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    +' Left Join Customer On InvOutBill.CustomerCode=Customer.CustomerCode'
    +' Left Join Dept On InvOutBill.DeptCode=Dept.DeptCode'
    +' Where InvOutBill.InvBillMonth>='''+StArtMonth+''''
    +' And InvOutBill.InvBillMonth<='''+endMonth+''''
    +' And InvOutBill.WHCode='''+GetCode(CmBx_Warehouse.Text)+''''
    +' And InvOutBillLine.ItemCode='''+ExtEdt_ItemCode.Text+''''
    +' And ((InvOutBill.BillTypeCode In (''0202''))'
    +' Or ((InvOutBill.BillTypeCode In (''0201'',''0203'',''0204'',''0299''))'
    +' And (InvOutBill.InvBillWHChck=1)))';
  AdoQry_Tmp.ExecSQL;

  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.Text:='Select JournalQryId,DateSting'
    +',MonthSting'
    +',BillTypeCode'
    +',InvBillNo'
    +',MoPoNo'
    +',InvBillRemArk'
    +',InvBillQty'
    +',OInvBillQty'
    +',InvBlncQty'
    +',InvBillPrice'
    +',OInvBillPrice'
    +',InvBlncPrice'
    +',InvBillAmount'
    +',OInvBillAmount'
    +',InvBlncAmount'
    +',InvBillCreateTime'
    +' From #JournalQry'
    +' Where MonthSting>='''+StArtMonth+'_'''
    +' And MonthSting<='''+endMonth+'_'''
    +' Order By MonthSting,InvBillCreateTime';
  AdoQry_Tmp.Open;

  NowMonth:=FormatDateTime('yyyy.mm',IncMonth(StrToDateTime(StrMonth+'.01'),1));
  if NowMonth<>endMonth then
  begin
    if not AdoQry_Tmp.Locate('DateSting',NowMonth,[]) then
    begin
      AdoQry_Tmp.Append;
      AdoQry_Tmp.fieldbyname('DateSting').AsString:=NowMonth;
      AdoQry_Tmp.fieldbyname('MonthSting').AsString:=NowMonth+'_';
      AdoQry_Tmp.fieldbyname('BillTypeCode').AsString:='0000';
      AdoQry_Tmp.fieldbyname('InvBillNo').AsString:='';
      AdoQry_Tmp.fieldbyname('MoPoNo').AsString:='';
      AdoQry_Tmp.fieldbyname('InvBillRemArk').AsString:='本月合计(未结帐)';
      AdoQry_Tmp.fieldbyname('InvBillQty').AsString:='0';
      AdoQry_Tmp.fieldbyname('OInvBillQty').AsString:='0';
      AdoQry_Tmp.fieldbyname('InvBlncQty').AsString:='0';
      AdoQry_Tmp.fieldbyname('InvBillPrice').AsString:='0';
      AdoQry_Tmp.fieldbyname('OInvBillPrice').AsString:='0';
      AdoQry_Tmp.fieldbyname('InvBlncPrice').AsString:='0';
      AdoQry_Tmp.fieldbyname('InvBillAmount').AsString:='0';
      AdoQry_Tmp.fieldbyname('OInvBillAmount').AsString:='0';
      AdoQry_Tmp.fieldbyname('InvBlncAmount').AsString:='0';
      AdoQry_Tmp.fieldbyname('InvBillCreateTime').AsDateTime:=Now;
      AdoQry_Tmp.Post;
    end;
  end;
  AdoQry_Tmp.First;
  if not AdoQry_Tmp.Locate('MonthSting',StrMonth+'_',[]) then
  begin
    AdoQry_Tmp.Append;
    AdoQry_Tmp.fieldbyname('DateSting').AsString:=StrMonth;
    AdoQry_Tmp.fieldbyname('MonthSting').AsString:=StrMonth+'_';
    AdoQry_Tmp.fieldbyname('BillTypeCode').AsString:='0000';
    AdoQry_Tmp.fieldbyname('InvBillNo').AsString:='';
    AdoQry_Tmp.fieldbyname('MoPoNo').AsString:='';
    AdoQry_Tmp.fieldbyname('InvBillRemArk').AsString:='本月合计';
    AdoQry_Tmp.fieldbyname('InvBillQty').AsString:='0';
    AdoQry_Tmp.fieldbyname('OInvBillQty').AsString:='0';
    AdoQry_Tmp.fieldbyname('InvBlncQty').AsString:='0';
    AdoQry_Tmp.fieldbyname('InvBillPrice').AsString:='0';
    AdoQry_Tmp.fieldbyname('OInvBillPrice').AsString:='0';
    AdoQry_Tmp.fieldbyname('InvBlncPrice').AsString:='0';
    AdoQry_Tmp.fieldbyname('InvBillAmount').AsString:='0';
    AdoQry_Tmp.fieldbyname('OInvBillAmount').AsString:='0';
    AdoQry_Tmp.fieldbyname('InvBlncAmount').AsString:='0';
    AdoQry_Tmp.fieldbyname('InvBillCreateTime').AsDateTime:=Now;
    AdoQry_Tmp.Post;
  end;
  if(StrToDateTime(MEdt_StArtDate.Text+'.01')-1>=StrToDateTime(StrMonth+'.01')) then
  begin
  end;
  AdoQry_Tmp.Sort := 'MonthSting,InvBillCreateTime';
  AmountIn:=0;
  AmountOut:=0;
  AmountTotal:=0;
  AmountInm:=0;
  AmountOutm:=0;
  AmountTotalm:=0;
  InvBlncPrice:=0;
  AdoQry_Tmp.First;
  while not AdoQry_Tmp.Eof do
  begin
    if(AdoQry_Tmp.fieldbyname('InvBillRemArk').AsString<>'本月合计')then
    begin
      if(AdoQry_Tmp.fieldbyname('InvBillRemArk').AsString='本月合计(未结帐)')then
      begin
        AdoQry_Tmp.Edit;
        AdoQry_Tmp.fieldbyname('InvBlncQty').AsFloat:=AmountTotal;
        AdoQry_Tmp.fieldbyname('InvBillQty').AsFloat:=0;//AmountIn;
        AdoQry_Tmp.fieldbyname('OInvBillQty').AsFloat:=0;//AmountOut;
        AdoQry_Tmp.fieldbyname('InvBlncAmount').AsFloat:=AmountTotalm;
        AdoQry_Tmp.fieldbyname('InvBillAmount').AsFloat:=0;//AmountInm;
        AdoQry_Tmp.fieldbyname('OInvBillAmount').AsFloat:=0;//AmountOutm;
        if AmountTotal<>0 then
           AdoQry_Tmp.fieldbyname('InvBlncPrice').AsFloat:= AmountTotalm/AmountTotal
        else
          AdoQry_Tmp.fieldbyname('InvBlncPrice').AsFloat:=0;
        AdoQry_Tmp.Post;

      end
      else
      begin
        if (AdoQry_Tmp.fieldbyname('BillTypeCode').AsString<>'0000') and
           (AdoQry_Tmp.fieldbyname('BillTypeCode').AsString<>'1102') then
        begin
          AdoQry_Tmp.Edit;
          AmountTotal:=AmountTotal+AdoQry_Tmp.fieldbyname('InvBillQty').AsFloat
            -AdoQry_Tmp.fieldbyname('OInvBillQty').AsFloat;
          AdoQry_Tmp.fieldbyname('InvBlncQty').AsFloat:=AmountTotal;
          AmountIn:=AmountIn+AdoQry_Tmp.fieldbyname('InvBillQty').AsFloat;
          AmountOut:=AmountOut+AdoQry_Tmp.fieldbyname('OInvBillQty').AsFloat;
          AmountTotalm:=AmountTotalm+AdoQry_Tmp.fieldbyname('InvBillAmount').AsFloat
            -AdoQry_Tmp.fieldbyname('oInvBillAmount').AsFloat;
          AdoQry_Tmp.fieldbyname('InvBlncAmount').AsFloat:=AmountTotalm;
          if (AmountTotal=0 ) or (AmountTotalm=0) then
            AdoQry_Tmp.fieldbyname('InvBlncPrice').AsFloat:=0
          else
          AdoQry_Tmp.fieldbyname('InvBlncPrice').AsFloat:=AmountTotalm/AmountTotal;
          AmountInm:=AmountInm+AdoQry_Tmp.fieldbyname('InvBillAmount').AsFloat;
          AmountOutm:=AmountOutm+AdoQry_Tmp.fieldbyname('OInvBillAmount').AsFloat;
          InvBlncPrice:=AdoQry_Tmp.fieldbyname('InvBlncPrice').AsFloat ;
          AdoQry_Tmp.Post;
        end;
      end;
    end
    else
    begin
      AmountTotal:=AdoQry_Tmp.fieldbyname('InvBlncQty').AsFloat;
      AmountIn:=0;//AdoQry_Tmp.fieldbyname('InvBillQty').AsFloat;
      AmountOut:=0;//AdoQry_Tmp.fieldbyname('OInvBillQty').AsFloat;
      AmountTotalm:=AdoQry_Tmp.fieldbyname('InvBlncAmount').AsFloat;
      //InvBlncPrice:=AdoQry_Tmp.fieldbyname('InvBlncPrice').AsFloat ;
      AmountInm:=0;//AdoQry_Tmp.fieldbyname('InvBillQty').AsFloat;
      AmountOutm:=0;//AdoQry_Tmp.fieldbyname('OInvBillQty').AsFloat;

    end;
    AdoQry_Tmp.Next;
  end;

  ConditionHint:='仓库: '+CmBx_Warehouse.Text+'/物料: '
    +ExtEdt_ItemCode.Text+' '+Lbl_ItemName.Caption+' '+Lbl_UomName.Caption;

  Condition:='MonthSting>='''+StArtMonth+'_'''
    +' And MonthSting<='''+endMonth+'_''';
  FatherForm.SetFormParam(MEdt_StArtDate.Text,MEdt_EndDate.Text,'','','','');
  ModalResult:=mrOk;
end;

procedure TFrm_Inv_JournalQry_C.FormActivate(Sender: TObject);
begin
  inherited;
  if CmBx_Warehouse.Items.Count=0 then
  begin
    MEdt_StArtDate.Text:=FormatDateTime('yyyy.mm',IncMonth(Now,-1));
    MEdt_EndDate.Text:=FormatDateTime('yyyy.mm',Now);
    InitUsableWHCmBx(AdoQry_Tmp,UserCode,CmBx_Warehouse,False);
  end;
end;

procedure TFrm_Inv_JournalQry_C.ItemCodeCheck(Sender: TObject);
begin
  inherited;
  if(ActiveControl.Name='btn_Cancel')then
    Exit;
  AdoQry_Tmp.Close;
  AdoQry_Tmp.SQL.Text:='Select Uom.UomName From Item'
    +' Join Uom On Item.UomCode=Uom.UomCode'
    +' Where Item.ItemCode='''+TExtEdit(Sender).Text+'''';
  AdoQry_Tmp.Open;
  Lbl_UomName.Caption:=AdoQry_Tmp.fieldbyname('UomName').AsString;
end;

procedure TFrm_Inv_JournalQry_C.SetFormParam(FrmParam1, FrmParam2,
  FrmParam3, FrmParam4, FrmParam5, FrmParam6: String);
var
  i:integer;
begin
  inherited;
  if CmBx_Warehouse.Items.Count=0 then
  begin
    MEdt_StArtDate.Text:=FormatDateTime('yyyy.mm',IncMonth(Now,-1));
    MEdt_EndDate.Text:=FormatDateTime('yyyy.mm',Now);
    InitUsableWHCmBx(AdoQry_Tmp,UserCode,CmBx_Warehouse,False);
  end;
  MEdt_StArtDate.Text:=FrmParam4;
  MEdt_EndDate.Text:=FrmParam4;
  ExtEdt_ItemCode.Text:=FrmParam5;
  for i:=0 to CmBx_Warehouse.Items.Count-1 do
  begin
    if FrmParam6=GetCode(CmBx_Warehouse.Text) then
    begin
      CmBx_Warehouse.ItemIndex:=i;
      break;
    end;
  end;
  btn_okClick(btn_ok);
end;

end.

⌨️ 快捷键说明

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