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

📄 udocumentquery.pas

📁 delphi 源代码 界面上模仿了在2ccc.com网站发布的某一个程序.数据库为SQL2000。
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      end;
      -31,-32: Begin
         colHD.DataBinding.FieldName := 'cms';
         colKD.Visible := false;
      end;
      41: Begin
         colCodeClient.Visible := false;
         colNameClient.Visible := false;
         colDateJh.Visible := false;
         colJE.Visible := false;

         colCode.DataBinding.FieldName := 'iKeyCp';
         colHD.Visible := false;
         colKD.Visible := false;
         colYS.Visible := false;
         colZL.Visible := False;
         colDJ.Visible := false;
         colJE1.Visible := false;
      end;
      -41: Begin
         colCode.DataBinding.FieldName := 'iKeyCp';
         colHD.Visible := false;
         colKD.Visible := false;
         colYS.Visible := false;
         colZL.Visible := False;
         colDJ.DataBinding.FieldName := 'fdj';
         colDJ.Visible := true;
         colJE1.DataBinding.FieldName := 'fje';
         colJE1.Visible := true;
      end;
   end;
end;

procedure TfrmDocumentQuery.GetData;
var iOpt: integer;
begin
   iOpt := cboxSetOperation(cxComboBox1);
   if iOpt = 0 then exit;
   SetColumn(iOpt);
   if cxComboBox1.Text = '' then Begin
      infoWnd('请选择业务类别!');
      exit;
   end;
   cdMaster.Close;
   cdItem.Close;
   cdMaster.RemoteServer := frmMain.DCOMCn;
   cdMaster.ProviderName := 'pGetDocument';
   frmMain.DCOMCn.AppServer.IGetDocument(formatDateTime('yyyy-MM-dd',cxDateEdit1.date),
      formatDateTime('yyyy-MM-dd',cxDateEdit2.Date + 1),cxTextEdit1.Text,iOpt);
   cdMaster.Open;
   cdItem.Open;
   {sqlText := 'WHERE (DdatePz >= '''+formatDateTime('yyyy-MM-dd',cxDateEdit1.date)+''')'+
              ' AND (DdatePz < '''+formatDateTime('yyyy-MM-dd',cxDateEdit2.Date + 1)+''')'+
              ' AND (IDL = '''+intTostr(iOpt)+''') AND (btrash <> 1)';
   if cxTextEdit1.Text <> '' then
      sqlText := sqlText + ' AND (CDH = '''+cxTextEdit1.Text+''')';

   cdItem.Close;
   cdMaster.Close;
   cdItem.DataSource := dsMaster;
   cdItem.MasterFields := 'IKey';
   cdItem.IndexFieldNames := 'IKeyM';
   if iOpt = 11 then BEGIN
      sqlText := 'WHERE (DdatePz >= '''+formatDateTime('yyyy-MM-dd',cxDateEdit1.date)+''')'+
                 ' AND (DdatePz < '''+formatDateTime('yyyy-MM-dd',cxDateEdit2.Date + 1)+''')'+
                 ' AND (btrash <> 1)';
      if cxTextEdit1.Text <> '' then
         sqlText := sqlText + ' AND (CDH = '''+cxTextEdit1.Text+''')';
      cdItem.CommandText := 'SELECT i.*,s.ccode,s.cName,s.fhd,s.fkd,s.ccolor '+
                            'FROM T_StockPlanItemZb I INNER JOIN T_STOCK S '+
                            'ON (I.IKeySTK = S.IKey)';
      cdMaster.CommandText := 'SELECT M.IKey,M.CDH,k.ccode,k.cname,M.ddatePz,M.ddateJh,M.fje '+
                              'from T_StockPlanMasterZb M INNER JOIN T_PubClient k '+
                              'ON (M.IkeyClient = k.ikey)' +#13+ SqlText;
   END;
   if (iOpt = -41) OR (iOpt = 41) then BEGIN
      cdItem.CommandText := 'SELECT i.ikeyAu,i.IkeyM,i.ICodeCp,i.fsl,i.fdj,(i.fsl * i.fdj)fje,g.cName,g.cdw '+
                            'From T_GoodsItemZB i INNER JOIN T_Goods g on(i.ICodeCp = g.Ikey)';
      cdMaster.CommandText := 'SELECT M.IKey,M.CDH,k.ccode,k.cname,M.ddatePz,M.ddateJh,M.fje '+
                              'from T_GoodsMasterZb M INNER JOIN T_PubClient k '+
                              'ON (M.IkeyClient = k.ikey)' +#13+ SqlText;
   END;
   if (iOpt = -31) OR (iOpt = 31) OR (iOpt = -32) OR (iOpt = 32) then BEGIN
      cdItem.CommandText := 'SELECT I.ikeyAu,I.IkeyM,H.ccode,H.cname,I.fsl,I.fzl,H.cms,H.ccolor '+
                            'From T_HGoodsItemZB I INNER JOIN T_HGoods H '+
                            'ON (I.IKeyStk = H.ikey)';
      cdMaster.CommandText := 'SELECT M.IKey,M.CDH,k.ccode,k.cname,M.ddatePz,M.ddateJh,M.fje '+
                              'from T_HGoodsMasterZb M INNER JOIN T_PubClient k '+
                              'ON (M.IkeyClient = k.ikey)' +#13+ SqlText;
   END;
   if (iOpt = -21) OR (iOpt = 21) OR (iOpt = -22) OR (iOpt = 22) then BEGIN
      cdItem.CommandText := 'SELECT i.*,s.ccode,s.cName,s.fhd,s.fkd,s.ccolor '+
                            'FROM T_StockItemZb I INNER JOIN T_STOCK S '+
                            'ON (I.IKeySTK = S.IKey)';
      cdMaster.CommandText := 'SELECT M.IKey,M.CDH,k.ccode,k.cname,M.ddatePz,M.ddateJh,M.fje '+
                              'from T_StockMasterZb M INNER JOIN T_PubClient k '+
                              'ON (M.IkeyClient = k.ikey)' +#13+ SqlText;
   END;}
end;

procedure TfrmDocumentQuery.documentPrint(cdM,cdI: TclientDataSet; iOpt: integer);
var fje: real;
begin
   fje := cdM.fieldbyname('fje').asFloat;
   UpperCasePrint(fje);
   frVariables['VcodeClient'] := cdM.fieldbyname('ccode').asstring;
   frVariables['VnameClient'] := cdM.fieldbyname('cName').asstring;
   frVariables['VdateJH'] := cdM.fieldbyname('DDateJh').asdateTime;
   frVariables['Vdh'] := cdM.fieldbyname('cdh').asstring;
   frVariables['VdatePZ'] := cdM.fieldbyname('DDatePz').asdatetime;
   frVariables['Vje'] := fje;
   frVariables['Vdress'] := cdM.fieldbyname('cPost_Dz').asstring;
   frVariables['Vtel'] := cdM.fieldbyname('cTel').asstring;
   Case iOpt of
      -41: Begin
              with frmMain.cdPub do begin
                 close;
                 commandText := 'SELECT i.ikeyAu,i.IkeyM,i.ICodeCp IKeyCp,i.fsl,i.fdj,(i.fsl * i.fdj)fje,g.cName,g.cdw '+
                                 'From T_GoodsItemZB i INNER JOIN T_Goods g on(i.ICodeCp = g.Ikey)'+#13+
                                 'WHERE IKeyM = '''+cdM.Fieldbyname('iKey').asString+'''';
                 open;
                 fje := fcGetJeTotal(frmMain.cdPub);
                 frVariables['Vje'] := fje;
                 UpperCasePrint(fje);
              end;
              frmReport.ReportS(49, 0, '', frmMain.cdPub.Data);
           end;
       11: Begin
              with frmMain.cdPub do begin
                 close;
                 commandText := 'SELECT i.*,s.ccode,s.cName,s.fhd,s.fkd,s.ccolor,s.cdw '+
                                 'FROM T_StockPlanItemZb I INNER JOIN T_STOCK S '+
                                 'ON (I.IKeySTK = S.IKey)'+#13+
                                 'WHERE IKeyM = '''+cdM.Fieldbyname('iKey').asString+'''';
                 open;
              end;
              frmReport.ReportS(10, 0, '', cdI.Data);
           end;
      -21: Begin
              with frmMain.cdPub do begin
                 close;
                 commandText := 'SELECT i.*,s.ccode,s.cName,s.fhd,s.fkd,s.ccolor,s.cdw '+
                                 'FROM T_StockItemZb I INNER JOIN T_STOCK S '+
                                 'ON (I.IKeySTK = S.IKey)'+#13+
                                 'WHERE IKeyM = '''+cdM.Fieldbyname('iKey').asString+'''';
                 open;
                 fje := fcGetJeTotal(frmMain.cdPub);
                 frVariables['Vje'] := fje;
                 UpperCasePrint(fje);
              end;
              frmReport.ReportS(28, 0, '', cdI.Data);
           end;
      -22: Begin
              with frmMain.cdPub do begin
                 close;
                 commandText := 'SELECT i.*,s.ccode,s.cName,s.fhd,s.fkd,s.ccolor,s.cdw '+
                                 'FROM T_StockItemZb I INNER JOIN T_STOCK S '+
                                 'ON (I.IKeySTK = S.IKey)'+#13+
                                 'WHERE IKeyM = '''+cdM.Fieldbyname('iKey').asString+'''';
                 open;
                 fje := fcGetJeTotal(frmMain.cdPub);
                 frVariables['Vje'] := fje;
                 UpperCasePrint(fje);
              end;
              frmReport.ReportS(29, 0, '', cdI.Data);
           end;
      -31: Begin
              with frmMain.cdPub do begin
                 close;
                 commandText := 'SELECT I.ikeyAu,I.IkeyM,H.ccode,H.cname,I.fsl,I.fzl,I.fdj,(i.fsl * i.fdj)fje '+
                                 ',H.cms,H.ccolor,h.cdw From T_HGoodsItemZB I INNER JOIN T_HGoods H '+
                                 'ON (I.IKeyStk = H.ikey)'+#13+
                                 'WHERE IKeyM = '''+cdM.Fieldbyname('iKey').asString+'''';
                 open;
                 fje := fcGetJeTotal(frmMain.cdPub);
                 frVariables['Vje'] := fje;
                 UpperCasePrint(fje);
              end;
              frmReport.ReportS(38, 0, '', cdI.Data);
           end;
      -32: Begin
              with frmMain.cdPub do begin
                 close;
                 commandText := 'SELECT I.ikeyAu,I.IkeyM,H.ccode,H.cname,I.fsl,I.fzl,I.fdj,(i.fsl * i.fdj)fje '+
                                 ',H.cms,H.ccolor,h.cdw From T_HGoodsItemZB I INNER JOIN T_HGoods H '+
                                 'ON (I.IKeyStk = H.ikey)'+#13+
                                 'WHERE IKeyM = '''+cdM.Fieldbyname('iKey').asString+'''';
                 open;
                 fje := fcGetJeTotal(frmMain.cdPub);
                 frVariables['Vje'] := fje;
                 UpperCasePrint(fje);
              end;
              frmReport.ReportS(39, 0, '', cdI.Data);
           end;
   end;
end;

procedure TfrmDocumentQuery.ToolButton3Click(Sender: TObject);
begin
   IF not QueryWnd('作废单据等于删除,确认吗?') then
      Exit;
   IF frmMain.DCOMCn.AppServer.ITrashDocument(
      cdMaster.FieldByName('Ikey').AsInteger,
      cboxSetOperation(cxComboBox1)) = 1 then Begin
      cdMaster.Close;
      cdMaster.Open;
      cdItem.Close;
      cdItem.Open;
   end;
end;

procedure TfrmDocumentQuery.cxComboBox1PropertiesChange(Sender: TObject);
begin
   cdMaster.Close;
   cdItem.Close;
end;

procedure TfrmDocumentQuery.ToolButton5Click(Sender: TObject);
begin
   documentPrint(cdMaster,cdItem,cboxSetOperation(cxComboBox1));
end;

function TfrmDocumentQuery.fcGetJeTotal(cdTem: TclientDataSet): real;
var curren_re: TbookMark;
    fje: real;
begin
   fje := 0;
   with cdTem do begin
      curren_re :=getBookMark;
      disablecontrols;
      first;
      try
         while not eof do begin
            fje := fje + fieldbyname('fsl').AsFloat *
               fieldbyname('fdj').AsFloat;
            next;
         end;
      finally
         gotobookmark(curren_re);
         freebookmark(curren_re);
         enablecontrols;
      end;
   end;
   result := fje;
end;

procedure TfrmDocumentQuery.UpperCasePrint(fje: real);
var i,n,j: integer;
    s_je: string;
    dx_je: array[1..8] of string;
begin
   j := 0;
   for i := 1 to 8 do
      dx_je[i] := '';
   s_je :=intTostr(round(fje * 100));
   if length(s_je) > 8 then
      exit;
   for i := length(s_je) downTo 1 do
   begin
      j := j+1;
      n := strToint(s_je[i]);
      case n of
         0: dx_je[j] := '零';
         1: dx_je[j] := '壹';
         2: dx_je[j] := '贰';
         3: dx_je[j] := '叁';
         4: dx_je[j] := '肆';
         5: dx_je[j] := '伍';
         6: dx_je[j] := '陆';
         7: dx_je[j] := '柒';
         8: dx_je[j] := '捌';
         9: dx_je[j] := '玖';
      end;
   end;
   frVariables['vdx8'] := dx_je[8];
   frVariables['vdx7'] := dx_je[7];
   frVariables['vdx6'] := dx_je[6];
   frVariables['vdx5'] := dx_je[5];
   frVariables['vdx4'] := dx_je[4];
   frVariables['vdx3'] := dx_je[3];
   frVariables['vdx2'] := dx_je[2];
   frVariables['vdx1'] := dx_je[1];
end;

end.

⌨️ 快捷键说明

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