起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 407|回复: 15

【结帖】调用窗体时报错**

[复制链接]
发表于 2008-1-21 11:13:26 | 显示全部楼层 |阅读模式
调用窗体时报错如下图错:在调用时给被调用窗体传参

2.jpg

9.58 KB, 下载次数: 217

回复

使用道具 举报

发表于 2008-1-21 11:16:14 | 显示全部楼层
把代码贴上来 看一下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-21 11:21:04 | 显示全部楼层
procedure TZZS_ZY_PT_FPSYMX.Button1Click(Sender: TObject);
var
  FRMFP:TFRM_FPSYBB;
  strDySj,VG_Cnq,BN,EN:string;
  i,rc:integer;
  scale,cess:double;
  RParam: TBizParam;
  RBizURL: TBizURL;
  RContextCurrent:TContextCurrent;
begin
  if time1.Date>time2.Date then
  begin
    Dialogs.ShowMessage('日期出错!');
    time1.SetFocus;
    exit;
  end;
  RBizURL := TBizURL.Create;
  RContextCurrent := TContextCurrent.Create(self.Context);
  try
    RBizURL.URL:='Biz:\BTSFXT\DICT\BTSFGGCSZ.ParamGroup\DQCNQ.param';
    RParam := RContextCurrent.GetParam(RBizURL);
    VG_Cnq:=Variants.VarToStr(RParam.Value);
  finally
    RBizURL.Free;
    RContextCurrent.Free;
  end;
  with querytemp do
  begin
    close;
    commandtext:='';
    commandtext:='Select CSZ FROM SF_CS_t WHERE CNQ = ''' + VG_CNQ + '''  AND CSMC = ''价税合计''';
    open;
  end;
  scale:=querytemp.fieldbyname('csz').AsFloat;
  with querytemp do
  begin
    close;
    commandtext:='';
    commandtext:='Select CSZ FROM SF_CS_t WHERE CNQ = ''' + VG_CNQ + ''' AND CSMC = ''税率''';
    open;
  end;
  cess:=querytemp.fieldbyname('csz').AsFloat;
  with query1 do
  begin
    for i:=0 to params.Count-1 do
    begin
      if params.Items.Name = 'czy' then
      begin
        params.Items.DataType :=TFieldType.ftString;
        if length(ComboBox_czy.Text) = 0 then
          params.Items.Value := '%'
        else
          params.Items.Value := ComboBox_czy.Text;
        Continue;
      end;
      if params.Items.Name = 'scale' then
      begin
        params.Items.DataType := TFieldType.ftfloat;
        params.Items.Value := scale;
        Continue;
      end;
      if params.Items.Name = 'cess' then
      begin
        params.Items.DataType := TFieldType.ftfloat;
        params.Items.Value :=cess;
        Continue;
      end;
      if params.Items.Name = 'begindate' then
      begin
        params.Items.DataType := TFieldType.ftdate;
        params.Items.Value := time1.Date;
        Continue;
      end;
      if params.Items.Name = 'enddate' then
      begin
        params.Items.DataType := TFieldType.ftdate;
        params.Items.Value := time2.Date;
        Continue;
      end;
    end;
    close;
    open;
    BN:=query1.FieldByName('B').asstring;
    EN:=query1.FieldByName('E').asstring;
  end;
  try
    FRMFP:=TFRM_FPSYBB.Create(self.Context);
    with FRMFP.InfoBrokerYWXX_FPSYBB.Info.DataSets.Find('FPSYBB') do
    begin
      for i := 0 to params.Count - 1 do
      begin
        if params.Items.Name = 'fgs' then
        begin
          params.Items.DataType := Tfieldtype.ftstring;
          params.Items.Value:=trim(combobox1.Text)+'%';
          Continue;
        end;
        if params.Items.Name = 'czy' then
        begin
          params.Items.DataType := Tfieldtype.ftString;
          params.Items.Value := ComboBox_czy.Text+'%';
          Continue;
        end;
        if params.Items.Name = 'scale' then
        begin
          params.Items.DataType := Tfieldtype.ftfloat;
          params.Items.Value := scale;
          Continue;
        end;
        if params.Items.Name = 'cess' then
        begin
          params.Items.DataType := Tfieldtype.ftfloat;
          params.Items.Value := cess;
          Continue;
        end;
        if params.Items.Name = 'begindate' then
        begin
          params.Items.DataType := Tfieldtype.ftDate;
          params.Items.Value :=time1.Date;
          Continue;
        end;
        if params.Items.Name = 'enddate' then
        begin
          params.Items.DataType := Tfieldtype.ftDate;
          params.Items.Value :=time2.Date;
          Continue;
        end;
      end;
      try
        close;
        Open;
      except
        Dialogs.showmessage('查询失败,请检查增值税发票使用明细查询');
        exit;
      end;
      rc := recordcount;
      if rc = 0 then
      begin
        Forms.Application.MessageBox( '没有查询数据,请重新选择时间', '提示信息', 0);
        exit;
      end;
    end;
    Business.Model.TSheetDoc(FRMFP.DocViewYWXX_FPSYBB_FPSY.Doc).Sheet.Values[2,1]:=FormatDateTime('yyyy-mm-dd',time1.Date)+'~'+Formatdatetime('yyyy-mm-dd',time2.Date)+'增值税(专用、普通)发票使用明细';
    strDySj:=FormatDateTime('yyyymmdd hh:mm:ss',now);
    Business.Model.TSheetDoc(FRMFP.DocViewYWXX_FPSYBB_FPSY.Doc).Sheet.Values[2,2]:='打印日期:'+copy(strDysj,1,4)+'年'+copy(strDysj,5,2)+'月'+copy(strDysj,7,2)+'日'+copy(strDysj,10,8);
    Business.Model.TSheetDoc(FRMFP.DocViewYWXX_FPSYBB_FPSY.Doc).Sheet.Values[2,3]:='纳税人名称:'+ComboBox_taxpayer.text;
    Business.Model.TSheetDoc(FRMFP.DocViewYWXX_FPSYBB_FPSY.Doc).Sheet.Values[6,3]:='纳税登记号:'+ComboBox_code.text;
    Business.Model.TSheetDoc(FRMFP.DocViewYWXX_FPSYBB_FPSY.Doc).Sheet.Values[8,3]:='发票启止号码:'+BN+'~'+EN;
    FRMFP.DocViewYWXX_FPSYBB_FPSY.Doc.Close;
    FRMFP.DocViewYWXX_FPSYBB_FPSY.OpenView(TDocMode.dmView);
    FRMFP.showmodal;
  finally
    FRMFP.free;
  end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-21 12:48:13 | 显示全部楼层
上面那段代码中查出来记录条数是2054,可是到FRMFP.DocViewYWXX_FPSYBB_FPSY.Doc中看到的只有1725,而且还报上图那个错
回复 支持 反对

使用道具 举报

发表于 2008-1-21 13:09:18 | 显示全部楼层
错误停到哪里
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-21 13:12:48 | 显示全部楼层
Business.Model.TSheetDoc(FRMFP.DocViewYWXX_FPSYBB_FPSY.Doc).Sheet.Values[2,1]:=FormatDateTime('yyyy-mm-dd',time1.Date)+'~'+Formatdatetime('yyyy-mm-dd',time2.Date)+'增值税(专用、普通)发票使用明细';
    strDySj:=FormatDateTime('yyyymmdd hh:mm:ss',now);
    Business.Model.TSheetDoc(FRMFP.DocViewYWXX_FPSYBB_FPSY.Doc).Sheet.Values[2,2]:='打印日期:'+copy(strDysj,1,4)+'年'+copy(strDysj,5,2)+'月'+copy(strDysj,7,2)+'日'+copy(strDysj,10,8);
    Business.Model.TSheetDoc(FRMFP.DocViewYWXX_FPSYBB_FPSY.Doc).Sheet.Values[2,3]:='纳税人名称:'+ComboBox_taxpayer.text;
    Business.Model.TSheetDoc(FRMFP.DocViewYWXX_FPSYBB_FPSY.Doc).Sheet.Values[6,3]:='纳税登记号:'+ComboBox_code.text;
    Business.Model.TSheetDoc(FRMFP.DocViewYWXX_FPSYBB_FPSY.Doc).Sheet.Values[8,3]:='发票启止号码:'+BN+'~'+EN;
    FRMFP.DocViewYWXX_FPSYBB_FPSY.Doc.Close;
    FRMFP.DocViewYWXX_FPSYBB_FPSY.OpenView(TDocMode.dmView);


我把这段提到前面去之后,没有错误,就是显示记录显示不全
回复 支持 反对

使用道具 举报

发表于 2008-1-21 13:17:29 | 显示全部楼层
贴了那么多,没看明白。4楼和6楼的记录数目为什么不同?实在不理解,楼主看看是不是有什么数据策略之类的策略
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-21 13:23:30 | 显示全部楼层
rc := recordcount;  这个结果是2054
可是在FRMFP.DocViewYWXX_FPSYBB_FPSY.Doc中只能看到1725条
还有几百条看不见,明白了吗.没有什么数据策略
回复 支持 反对

使用道具 举报

发表于 2008-1-21 13:33:30 | 显示全部楼层
可是在FRMFP.DocViewYWXX_FPSYBB_FPSY.Doc中只能看到1725条

怎么看到这个里面有1725条?  最好确认没有数据策略影响才好解决这个问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-21 14:48:45 | 显示全部楼层
我没有建过数据策略,我是从那个窗体中看到的到1725滚动条就动不了了。
可是我把数据集区域改成显示200条就可以看到所有按方向键看到最后的。
可是自动编辑就不行
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-6 23:43 , Processed in 0.040416 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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