如何用PB实现统计报表的功能?
你首先要建立存储这些收入支出资料的表,然后根据这些表拉出你需要的datawindow,右侧放一个datawindow控件(dw_1),收入做一个d_rep_in,支出做一个d_rep_out,合计做一个d_rep_sum,当你点"收入"时可以这样写:
dw_1dataobject='d_rep_in'
dw_1settransobject(sqlca)
dw_1retrieve()可以按月份抓取当月的资料,当然我只说个基本的框架
当你点"支出","合计"同上具体的做法可以再详细说出你的需求
希望对你有所帮助!
“统计报表的实现”如何翻译realization of statistics report forms
如何用Inventor BOM生成分类统计报表找您的经销商,联络“BOM后处理”功能的购买或者其它是要花钱的。建议楼主报表还是自己用报表软件分开做的好。像我用的finereport,专门的报表软件,网上有免费版的可以下载,功能也很强大了,希望可以帮到你。
如何做统计报表您要做的是什么行业的统计报表? 既然没有说清楚,那么,我用一个实例来回答您,您可以仿造样式,自己收集数据来做。 工业销售产值统计报表工业销售产值是指以货币表现的工业企业在一定时期销售本企业生产的工业产品或提供的工业性作业的总量。主要构成:1、已销售的成品、半成品价值;2、对外提供的工业性作业价值;3、提供给本企业非工业部门的产品和工业性作业价值以及自制设备的价值。 固定资产净值年平均余额=(年初固定资产净值+年末固定资产净值)÷2 流动资产年平均余额=(年初流动资产余额+年末流动资产余额)÷2 。
电子统计表:用exce或者WPS做, 方法:新建工作簿,填写统计项目,输入要统计的内容。如果要计算用公式和图表,选中区域插入图标,选择一个样式即可。
统计报表是按统一规定的表格形式,统一的报送程序和报表时间,自下而上提供基础统计资料,是一种具有法律性质的报表。统计报表是一种以全面调查为主的调查方式。它是由 主管部门根据统计法规,以条统计表格形式和行政手段自上而下布置,而后由企,事业单位自下而上层层汇总上报逐级提供基本统计数据的一种调查方式。统计报表制度是一种自上而下布置,自下而上通过填制统计报表搜集数据的制度。
如何设置统计报表视图中的删除:新增的统计报表在角色权限中自动删除 视图中的禁用:统计中不显示新增的统计报表 第三步:点击界面最上端,左侧的 新增 按钮,输入统计报表的名称,点击
如何用EXCEL实现统计计票功能?高级筛选能
统计报表的特点统一性是统计报表的基本特点。具体表现为:
(1)统计报表的内容和报送的时间是由国家强制规定的,以保证调查资料的统一性。
(2)统计报表的指标含义,计算方法、口径是全国统一的。
假如安装,请与程序供应商联系 !",QuesTion!) RETURN -1 END IF //增加空文档 (EXCEL table) xlAppWorkbooksOpen(as_excelfile) //xlAppApplicationVisible = FALSE xlAppDisplayAlerts = false //定位到第一格 Long l_cnt,l_rows,l_cols Long l_row,l_i Int i_cnt l_rows = 30 l_cols = 23 Long l_cno String s_cno,s_temp Long l_newrow //一次处理两行 DataStore ds_todb IF NOT IsValid(ds_todb) THEN ds_todb = CREATE DataStore END IF ds_todbDataObject = "dw_getdatafromexcel" ds_todbSetTransObject(at_sqlca) FOR l_cnt = 2 TO l_rows STEP 2 Yield() l_row = l_cnt s_cno = String(xlappactiveworkbookactivesheetcells[l_row - 1,1]value) IF NOT IsNumber(s_cno) THEN CONTINUE FOR l_row = l_cnt - 1 TO l_cnt s_cno = xlappactiveworkbookactivesheetcells[l_row,1]FormulaR1C1 IF IsNull(s_cno) OR s_cno = "" THEN //非新行 FOR l_i = 4 TO l_cols STEP 2 s_temp = String(Trim(xlappactiveworkbookactivesheetcells[l_row,l_i]FormulaR1C1)) IF IsNull(s_temp) OR s_temp = "" THEN CONTINUE i_cnt++ ds_todbSetItem(l_newrow,i_cnt,s_temp) NEXT ELSE //新行开始,清空数组 IF NOT IsNumber(s_cno) THEN CONTINUE l_newrow = ds_todbInsertRow(0) ds_todbSetItem(l_newrow,1,s_cno) //ds_todbSetItem(l_newrow,2,gnvo_dbuf_todate(Long(xlappactiveworkbookactivesheetcells[l_ row,2]FormulaR1C1))) ds_todbSetItem(l_newrow,3, Dec(xlappactiveworkbookactivesheetcells[l_row,3]FormulaR1C1)) i_cnt = 3 FOR l_i = 4 TO l_cols STEP 2 s_temp = String(Trim(xlappactiveworkbookactivesheetcells[l_row,l_i]FormulaR1C1)) IF IsNull(s_temp) OR s_temp = "" THEN CONTINUE i_cnt++ ds_todbSetItem(l_newrow,i_cnt,s_temp) NEXT END IF NEXT NEXT xlAppactiveworkbookclose(false) xlappApplicationquit() xlAppDisConnectObject() //xlAppApplicationWorkbooksquit() IF IsValid(xlApp) THEN DESTROY xlapp END IF //gnvo_dbuf_closewin("Microsoft excel") IF ds_todbUpdate() = 1 THEN COMMIT USING at_sqlca; MessageBox("导入数据","保存成功") ELSE ROLLBACK USING at_sqlca; MessageBox("导入数据","保存失败") END IF IF IsValid(ds_todb) THEN DESTROY ds_todb END IF //FileDelete(as_excelfile) RETURN 1 Is_syspath=space(255) GetCurrentDirectoryA(255,Is_syspath) value=GetFileopenname(" 请选择要导入 BOM 的 EXECL 类型文件!",ls_path,ls_filename,'xls','EXECL 文件(xls),xls') is_filename = mid(ls_filename,1,len(ls_filename) - 4) if value <> 1 then ////没取到、或者取消返回 Return false end if Top 7 楼workhand(我可憨了)回复于 2004-04-16 08:21:24 得分 0 Is_syspath=space(255) GetCurrentDirectoryA(255,Is_syspath) value=GetFileopenname(" 请选择要导入 BOM 的 EXECL 类型文件!",ls_path,ls_filename,'xls','EXECL 文件(xls),xls') is_filename = mid(ls_filename,1,len(ls_filename) - 4) if value <> 1 then ////没取到、或者取消返回 Return false end if 第一种方法 OLEObject ExcelServer long excelok string str_savename ExcelServer = CREATE OLEObject ExcelOK = ExcelServerConnectToNewObject( "excelapplication" ) if excelok < 0 then messagebox("连接excel 失败,检查你的系统是否安装了office",string(excelok)) return false else ExcelServerWorkbooksOpen(str_filename) str_savename="c:\temptxt" excelserveractiveworkbooksaveas(str_savename,3) excelserverdisplayalerts=false ExcelServerquit() ExcelServerDisconnectObject() DESTROY ExcelServer dw_actonImportFile(str_savename) filedelete(str_savename) return true end if 第二种方法 string ls_title, ls_str OLEObject xl, xlApp, xlbook, xlsheet xl = Create OLEObject st_stattext = '正在连接' int ret = 0 ret = xlConnectToObject(is_path, "ExcelSheet" ) //打开一个已存在的工作表 if ret < 0 then messagebox("提示","不能打开所选的文件,可能是已被别人打开!") destroy xl return end if xlApp = xlApplication xlbook = xlappWorkbooks[1] xlsheet = xlbookWorksheets[1] //////// ////// ////// ////////以下是读数据部分, 首先判断有几行数据,前面几个都为空时则数据结束 long ll_i,ll_row,ll_ll int li_start //从第几行开始是真正的数据 li_start = 4 //从第n 行开始是真正的数据 // do while ((ll_ll < 5) and (ll_i < 3000)) ll_i += 1 ls_str = xlsheetcells[ ll_i,4 ]text //货物名称 ll_row = ll_i if ls_str = "" then ll_ll = 1 ls_str = xlsheetcells[ ll_i,5 ]text if ls_str = "" then ll_ll += 1 ls_str = xlsheetcells[ ll_i,6 ]text if ls_str = "" then ll_ll += 1 ls_str = xlsheetcells[ ll_i+1,4 ]text if ls_str = "" then ll_ll += 1 ls_str = xlsheetcells[ ll_i+2, 4 ]text if ls_str = "" then ll_ll += 1 end if end if end if end if end if loop // if ll_row > 2800 then messagebox("错误","行数太多, 不能导入!") goto l_exit end if //一共有ll_row - start 行 //// //ls_title = xlsheetcells[1,1]text //标题, 这里可能有比较 //// ls_str = xlsheetcells[1,2]text //合同号 if ls_str <> is_contractcode then messagebox( "导入出错","合同号不符,请检查[1,2]单元格" ) st_stattext = "导入失败, 请退出重来!" goto l_exit end if //// //ls_str = xlsheetcells[2,2]text //合同名 //if ls_str <> is_contractname then // messagebox( "导入出错","合同名不符,请检查[2,2]单元格" ) // st_stattext = "导入失败, 请退出重来!" // goto l_exit //end if //// ////开始导入真正的数据 string ls_temp,ls_find long l_count,l_temp if (ll_row - 1) = li_start then messagebox( "提示","没有数据可导!请检查EXCEL 表格后,重来!" ) return end if for ll_i = li_start to ll_row - 1 st_stattext = "正在导入第 " + string( ll_i - li_start + 1 ) + " 行," + '共有'+ string( ll_row - li_start) + '行' hpb_1position = (( ll_i - li_start + 1 ) 100/(ll_row - li_start)) l_count = dw_2insertrow( 0 ) dw_2setrow( l_count ) dw_2objectf_id[ l_count ] = gf_get_max( 't_goodslist' ) //ID dw_2objectf_contractid[ l_count ] = il_contractid //合同ID //从文件导入部分 dw_2objectf_period[ l_count ] = xlsheetcells[ ll_i, 1]text //期别 dw_2objectf_mysys[ l_count ] = xlsheetcells[ ll_i, 2]text //系统码 dw_2objectf_goodscode[ l_count ] = xlsheetcells[ ll_i, 3]text //货物编码 dw_2objectf_goodsname[ l_count ] = xlsheetcells[ ll_i, 4]text //货物名称 dw_2objectf_specif[ l_count ] = xlsheetcells[ ll_i, 5]text //货物规格 dw_2objectf_parameter[ l_count] = xlsheetcells[ ll_i, 6]text //主要技术参数 dw_2objectf_factory[ l_count ] = xlsheetcells[ ll_i, 7]text //制造厂 dw_2objectf_goodstype[ l_count ] = xlsheetcells[ ll_i, 8]text //货物类别 dw_2objectf_unit[ l_count ] = xlsheetcells[ ll_i, 9]text //单位 //数量 ls_str = xlsheetcells[ ll_i, 10]text if not isnumber( ls_str ) and ls_str <> '' then messagebox("错误","第["+ string( ll_i) + ',10]单元格必须是数字!') goto l_exit end if dw_2objectf_quant[ l_count ] = dec(ls_str ) //数量 //出厂价 ls_str = xlsheetcells[ ll_i, 11]text if not isnumber( ls_str ) and ls_str<>'' then messagebox("错误","第["+ string( ll_i) + ',11]单元格必须是数字!') goto l_exit end if dw_2objectf_outprice[ l_count ] = dec(ls_str ) //出厂价 //运输价 ls_str = xlsheetcells[ ll_i, 12]text if not isnumber( ls_str ) and ls_str<>'' then messagebox("错误","第["+ string( ll_i) + ',12]单元格必须是数字!') goto l_exit end if dw_2objectf_transprice[ l_count ] = dec(ls_str ) //运输价 //保险价 ls_str = xlsheetcells[ ll_i, 13]text if not isnumber( ls_str ) and ls_str<>'' then messagebox("错误","第["+ string( ll_i) + ',13]单元格必须是数字!') goto l_exit end if dw_2objectf_guaranteep[ l_count ] = dec(ls_str ) //保险价 //其它价 ls_str = xlsheetcells[ ll_i, 14]text if not isnumber( ls_str ) and ls_str<>'' then messagebox("错误","第["+ string( ll_i) + ',14]单元格必须是数字!') goto l_exit end if dw_2objectf_otherprice[ l_count ] = dec(ls_str ) //其它价 //综合单价 ls_str = xlsheetcells[ ll_i, 15]text if not isnumber( ls_str ) and ls_str <> '' then messagebox("错误","第["+ string( ll_i) + ',15]单元格必须是数字!') goto l_exit end if dw_2objectf_unitprice[ l_count ] = dec(ls_str ) //综合单价 //外币总价 ls_str = xlsheetcells[ ll_i, 16]text if not isnumber( ls_str ) and ls_str <> '' then messagebox("错误","第["+ string( ll_i) + ',16]单元格必须是数字!') goto l_exit end if dw_2objectf_totalprice[ l_count ] = dec(ls_str ) //外币总价 dw_2objectf_currency[ l_count ] = xlsheetcells[ ll_i, 17]text //币种 //汇率 ls_str = xlsheetcells[ ll_i, 18]text if not isnumber( ls_str ) and ls_str <> '' then messagebox("错误","第["+ string( ll_i) + ',18]单元格必须是数字!') goto l_exit end if dw_2objectf_exchange[ l_count ] = dec(ls_str ) //汇率 //汇率日期 ls_str = xlsheetcells[ ll_i, 19]text if not isdate( ls_str ) and ls_str <> '' then messagebox("错误","第["+ string( ll_i) + ',19]单元格必须是日期!') goto l_exit end if dw_2objectf_exchangedate[ l_count ] = datetime(date(ls_str )) //汇率日期 //人民币单价 ls_str = xlsheetcells[ ll_i, 20]text if not isnumber( ls_str ) and ls_str <> '' then messagebox("错误","第["+ string( ll_i) + ',20]单元格必须是数字!') goto l_exit end if dw_2objectf_rmbunitprice[ l_count ] = dec(ls_str ) //人民币单价 //人民币总价 ls_str = xlsheetcells[ ll_i, 21]text if not isnumber( ls_str ) and ls_str <> '' then messagebox("错误","第["+ string( ll_i) + ',21]单元格必须是数字!') goto l_exit end if dw_2objectf_rmbtotalprice[ l_count ] = dec(ls_str ) //人民币总价 //开始日期 ls_str = xlsheetcells[ ll_i, 22]text if not isdate( ls_str ) and ls_str <> '' then messagebox("错误","第["+ string( ll_i) + ',22]单元格必须是日期!') goto l_exit end if dw_2objectf_startdate[ l_count ] = datetime(date(ls_str )) //开始日期 //结束日期 ls_str = xlsheetcells[ ll_i, 23]text if not isdate( ls_str ) and ls_str <> ''then messagebox("错误","第["+ string( ll_i) + ',23]单元格必须是日期!') goto l_exit end if dw_2objectf_enddate[ l_count ] = datetime(date(ls_str )) //结束日期 dw_2objectf_station[l_count] = xlsheetcells[ ll_i,24]text //站点 dw_2objectf_place[l_count] = xlsheetcells[ ll_i,25]text //安装位置 dw_2objectf_gaisuan[l_count]= xlsheetcells[ ll_i,26]text //概算码 dw_2objectf_memo[l_count]= xlsheetcells[ ll_i,27]text //备注 //其它信息 dw_2objectf_stat[l_count] = 0 dw_2objectf_compquant1[l_count] = 0 dw_2objectf_compquant2[l_count] = 0 dw_2objectf_inquant1[l_count] = 0 dw_2objectf_inquant2[l_count] = 0 dw_2objectf_payquant[ l_count ] = 0 dw_2objectf_changestat[ l_count ] = 0 dw_2objectf_changecount[ l_count ] = 0 next st_stattext = '导入成功!请选择[保存]或[取消]。 保存--此次导入数据将提交到数据库中,取消--则不提交!
string str_savename,named,s_grxh;
int excelok,li_net;
long li_count;
oleobject excelserver;
excelserver=create oleobject;
excelok=excelserverconnecttonewobject("excelapplication");
if excelok<>0 then
messagebox("信息提示","连接EXCEL失败,请检查计算机中EXCEL是否工作正常");
return -1;
end if
我也在用PB作EXCEL相关的东西,想把EXCEL内容显示到DATAWINDOW里,网上找到的方法没显示,有的话交流交流
PB是可以精确 *** 作EXCEL的,所以应该是可以实现你的功能的
以上就是关于如何用PB实现统计报表的功能全部的内容,包括:如何用PB实现统计报表的功能、pb怎样导入excel收藏 详细�0�3、PB与excel连接等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)