iam使用VFP 9.0 ...我发了一张发票报告,我想知道的是如何通过更改表单中的组合框来更改报告的内容。或者能够在报告中使用select和where子句...任何帮助将不胜感激:)
为澄清而编辑(根据评论而非直接添加问题)
+-----------------+ +-------------------------+
| Contract Form | | Invoice Form |
| | | |
| | | radioCustomer |
| btnInvoiceForm -------> | comboCustomersList |
+-----------------+ | radioContract |
| comboContractsList |
| |
| btnPreviewReport |
+-------------------------+
如果我点击预览发票按钮,则显示合约表中客户ID(FK)=的所有记录到从组合框中选取的ID。
如果我从单选按钮中选择合同,合同组合框将起作用,显示合同ID列表,运行报告然后会显示合同表中的记录,其中合同ID =从中挑选的ID组合框......
答案 0 :(得分:0)
我编辑了这条消息,希望能够更好地理解你的表格布局,并分别启用/禁用相应的单选按钮组合框控件。我认为无论显示各自的内容,你都需要绘制两个不同的报告,然后根据单选按钮设置调用每个报告...例如在“btnPreviewReport”对象中点击事件...我已经粗暴 - 在样品上......
if not empty( Thisform.radioControl.radioCustomer.Value )
*/ Customer radio button was selected
xCustomerID = comboCustomersList.Value
*/ Run your Query
select ... from YourTable where ... into cursor C_SampleCustomerData
*/ Run the report
report form YourCustomerReport preview
else
*/ Contract radio button was selected
*/ Customer radio button was selected
xContractID = comboContractsList.Value
*/ Run your Query
select ... from YourTable where ... into cursor C_SampleContractData
*/ Run the report
report form YourContractReport preview
endif
同样,我从你的描述中尝试了最好的表格。
编辑 - 第二条评论澄清......
VFP报告的好处是它们不需要在数据环境中任何硬DBF()。但是,最好将数据字段设置为您希望具有的Alias.Field引用。因此,如果您查询客户报告的数据应始终具有相同的预期别名结果...
ex:
// pre-close in case the alias we want was already left open previously
use in select( "C_CustomerResults" )
select c1.*;
from YourCustomerTable c1;
where c1.ID = SomeChosenID;
into cursor C_CustomerResults readwrite
Then, in your report, have all your fields to something like
C_CustomerResults.FirstName
C_CustomerResults.LastName
C_CustomerResults.OtherField
此示例使用了一个长别名,但仅用于说明处理。
我会为你的“合同”结果别名做类似的事情。只要该别名正在使用中,报告将针对当前正在使用的表运行。报告中没有任何花哨,没有其他准备,没有数据环境设置......
通过预先查询报告中的数据样本,可以帮助您“粗略化”报告的布局。然后,完成表单以运行查询并显示报告,您就完成了。
编辑 - 修订评论后续行动
是...对于您的客户发票有多行,同样的事情......但是您的报告有一个标题区域,用于您只想在页面顶部显示一次的内容,以及您想要的详细信息区域显示发票“每个订单项”的内容,以及显示任何总计的报表页脚。根据复杂程度,您可以在报告中添加其他“数据组”,但现在就从此开始。听起来你需要在展开它之前先让你的脚湿透。
如果VFP是您的开发平台,则另一个在VFP上专门拥有专家的网站位于www.UniversalThread.com。他们也支持其他论坛,但在VFP中,他们每天会得到100多个问题......