起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 110|回复: 5

表格赋值问题**

[复制链接]
发表于 2008-10-11 09:10:19 | 显示全部楼层 |阅读模式
v_where:='';
  lSheetDoc := TSheetDoc(DocView1.Doc);
  lSheet := TDataSheet(lSheetDoc.Sheet);

  if SDate1.Text<>'    -  -  ' then
  begin
    tdate1:=DatetoStr(SDate1.Date)+' '+TimetoStr(STime1.Time)  ;
    v_where :=v_where+' and a.checkdate>=to_date('+quotedstr(tdate1)+',''yyyy-mm-dd hh24:mi:ss'')';
    SysUtils.DateTimeToString(smonth,'yyyy-MM',SDate1.date);
  end;
  if SDate2.Text<>'    -  -  ' then
  begin
    tdate2:=DatetoStr(SDate2.Date)+' '+TimetoStr(STime2.Time) ;
    v_where :=v_where+' and a.checkdate<to_date('+quotedstr(tdate2)+',''yyyy-mm-dd hh24:mi:ss'')';
  end;
  if v_where='' then
  begin
    dialogs.ShowMessage('请选择条件');
    sysutils.abort;
  end;


  //白胚投料  外发
  with qry1 do
  begin
    close;
    commandtext:='select b.stufftype,c.stufftype dyestufftype,b.addition,b.stationitem,nvl(sum(outkg/c.switchrate),0) outkg ,'
    +'nvl(sum(outkg/c.switchrate*nvl(d.price,0)),0) price from dye_outdetail a join '
    +'dye_outmain b on a.guid=b.guid join dye_dyestuffbase c on a.dyestuffno=c.dyestuffno left join (select * from DYE_PRICEDETAIL where '
    +'pmonth='+sysutils.QuotedStr(smonth)+') d on c.dyestuffno=d.dyestuffno where b.outid not in (select outid from '
    +'dye_outmain where addition=0 and stufftype=''工卡回修'') ' +v_where
    +'group by  b.stufftype,c.stufftype,b.addition,b.stationitem'  ;
    open;
    first;
    ProgressBar2.Visible:=true;
    ProgressBar2.Position:=0;
    ProgressBar2.Max:=recordcount;
    while not eof do
    begin
      i:=0;j:=0;z:=0;
      //dialogs.ShowMessage(fieldbyname('stufftype').AsString.trim);
      if (fieldbyname('stufftype').AsString.trim='工卡领料单') or (fieldbyname('stufftype').AsString.trim='前后处理') or (fieldbyname('stufftype').AsString.trim='样品工卡')  then
      begin
        i:=4;j:=6;z:=7  ;
        if fieldbyname('dyestufftype').AsString.trim='助剂' then  i:=i+2
        else
          if fieldbyname('dyestufftype').AsString.trim='化工料' then i:=i+4;
      end
      else
        if fieldbyname('stufftype').AsString.trim='工卡加料单' then
        begin
          if  fieldbyname('addition').asinteger=0 then
          begin
            i:=4;j:=14;z:=15;
          end
          else
            if  fieldbyname('addition').asinteger=1 then
            begin
                i:=4;j:=8;z:=9;
            end
            else
              if  fieldbyname('addition').asinteger=2 then
              begin
                i:=4;j:=10;z:=11;
              end
              else
                if  fieldbyname('addition').asinteger>=3 then
                begin
                      i:=4;j:=12;z:=13;
                end ;
           if  fieldbyname('dyestufftype').AsString.trim='助剂' then i:=i+2
           else
             if fieldbyname('dyestufftype').AsString.trim='化工料' then
               i:=i+4;
        end
        else
        if fieldbyname('stufftype').AsString.trim='外发及其它出库' then
        begin
          if FieldByName('stationitem').AsString.trim='洗缸' then
          begin
            i:=4;j:=30;z:=31;
          end
          else
            if  FieldByName('stationitem').AsString.trim='化验室领用' then
            begin
              i:=4;j:=32;z:=33;
            end
            else
              if  FieldByName('stationitem').AsString.trim='后整领用' then
              begin
                i:=4;j:=34;z:=35;
              end
              else
                if FieldByName('stationitem').AsString.trim='水洗' then
                begin
                      i:=4;j:=36;z:=37;
                end
                else
                  if FieldByName('stationitem').AsString.trim='车间退回' then
                  begin
                        i:=4;j:=44;z:=45;
                  end
                  else
                  begin
                    i:=4;j:=38;z:=39;
                  end;
           if  fieldbyname('dyestufftype').AsString.trim='助剂' then i:=i+2
           else
             if fieldbyname('dyestufftype').AsString.trim='化工料' then  i:=i+4;
        end;
      lSheet.CellTypes[i,j] := TCellType.ctCell;       //静态单元格
      if fieldbyname('outkg').AsString.trim<>'' then
      begin
        if lSheet.Cells[i,j].AsString.trim<>'' then
          lSheet.Cells[i,j].AsString :=floattostr(strtofloat(lSheet.Cells[i,j].AsString)+strtofloat(fieldbyname('outkg').AsString ) )
        else
          lSheet.Cells[i,j].AsString :=fieldbyname('outkg').AsString     ;
       // dialogs.ShowMessage(fieldbyname('outkg').AsString);
      end
      else
        lSheet.Cells[i,j].AsString :='0';
      lSheet.CellTypes[i,z] := TCellType.ctCell; //静态单元格
      if fieldbyname('price').AsString.trim<>'' then
      begin
        if lSheet.Cells[i,z].AsString.trim<>'' then
          lSheet.Cells[i,z].AsString :=floattostr(strtofloat(lSheet.Cells[i,z].AsString)+strtofloat( fieldbyname('price').AsString      ) )
        else
          lSheet.Cells[i,z].AsString := fieldbyname('price').AsString;
      end
      else
        lSheet.Cells[i,z].AsString :='0';
      ProgressBar2.Position:=progressbar2.Position+1;
      next ;
    end;
  end;
  ProgressBar2.Visible:=false;
回复

使用道具 举报

 楼主| 发表于 2008-10-11 09:11:37 | 显示全部楼层
有值  可是表格里面没有啊  怎么赋制值都没有   
用最简单的语句也没有
lSheet.CellTypes[2,2] := TCellType.ctCell;
  lSheet.Cells[2,2].AsString:='fsafdsf' ;
奇怪 我是不是有哪里写错了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-11 09:13:55 | 显示全部楼层
因为这个表格比较复杂就没有用数据集
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-11 09:14:56 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-11 09:16:14 | 显示全部楼层
1
回复 支持 反对

使用道具 举报

发表于 2008-10-11 11:36:06 | 显示全部楼层
图呢?一直没有看到,
给表格文档的单元格复制可以参考 http://bbs.justep.com/forum.php?mod=viewthread&tid=1861
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-22 21:50 , Processed in 0.038936 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表