首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CFSpreadsheet中引用QoQ

在CFSpreadsheet中引用QoQ
EN

Stack Overflow用户
提问于 2012-02-09 05:22:46
回答 1查看 281关注 0票数 0

我继承了一个页面,它从四个表构建一个库存查询,并使用QoQ输出它们:

代码语言:javascript
复制
<cfoutput query="getParts">
     <cfquery dbtype="query" name="jobdata">
       select *
       from getJobs
       where partnum = '#getparts.partnum#'
     </cfquery>
     <cfquery dbtype="query" name="orderdata">
       select *
       from getOrders
       where partnum = '#getparts.partnum#'
     </cfquery>
     <cfquery dbtype="query" name="receiptdata">
       select *
       from getIncoming
       where partnum = '#getparts.partnum#'
     </cfquery>

     <tr>
       <td>#partnum#</td>
       <td align="center">#partdescription#</td>
       <td align="center">#allocated#</td>
       <td align="center">#onhand#</td>
       <td align="center">#receiptdata.recqty#</td>
       <td align="center">#jobdata.JobCount#</td>
       <td align="center">#jobdata.QtyNeeded#</td>
       <td align="center">#jobdata.qtySent#</td>
       <td align="center">#orderdata.ordercount#</td>
       <td align="center">#orderdata.ordered#</td>
       <td align="center">#orderdata.shipqty#</td>
     </tr>
</cfoutput>

<cfset filenametouse = 'myFile' />
<cfset theDir = GetDirectoryFromPath(GetCurrentTemplatePath()) /> 
<cfset theFile = theDir & filenametouse & ".xls" /> 

<cflock name="fileActionSentItems" type="exclusive" timeout="30" throwontimeout="true">
<cfset SpreadsheetObj = spreadsheetNew()>
<cfset fcol = {}>
<cfset fcol.dataformat = "@">

<cfset SpreadsheetAddRow(SpreadsheetObj, "Part Number, Description, Allocated, On Hand, Pending Receipt, Job Count, Qty Needed, Qty Issued, Order Count, Qty Ordered, Qty Shipped")>

<cfset SpreadsheetAddRow(SpreadsheetObj,"NOT SURE HOW TO GET DATA HERE")>
<cfset SpreadsheetFormatColumn(SpreadsheetObj,fcol,11)>

<cfspreadsheet action="write" filename="#theFile#" name="SpreadsheetObj" sheetname="Sheet1" overwrite="true" />

我不确定如何引用数据来填充单元格,因为它来自多个查询。将查询重写为一个查询一直是一个挑战,我正在尝试一种不同的方法,看看是否有其他我看不到的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-09 05:59:02

这样如何:

代码语言:javascript
复制
<cfset filenametouse = 'myFile' />
<cfset theDir = GetDirectoryFromPath(GetCurrentTemplatePath()) /> 
<cfset theFile = theDir & filenametouse & ".xls" /> 

<cflock name="fileActionSentItems" type="exclusive" timeout="30" throwontimeout="true">
<cfset SpreadsheetObj = spreadsheetNew()>
<cfset fcol = {}>
<cfset fcol.dataformat = "@">

<cfset SpreadsheetAddRow(SpreadsheetObj, "Part Number, Description, Allocated, On Hand, Pending Receipt, Job Count, Qty Needed, Qty Issued, Order Count, Qty Ordered, Qty Shipped")>

<cfoutput query="getParts">
     <cfquery dbtype="query" name="jobdata">
       select *
       from getJobs
       where partnum = '#getparts.partnum#'
     </cfquery>
     <cfquery dbtype="query" name="orderdata">
       select *
       from getOrders
       where partnum = '#getparts.partnum#'
     </cfquery>
     <cfquery dbtype="query" name="receiptdata">
       select *
       from getIncoming
       where partnum = '#getparts.partnum#'
     </cfquery>

     <!--- add all columns to an array --->
     <cfset aColumns = [ partdescription, receiptdata.recqty, jobdata.JobCount ] />

     <cfset SpreadsheetAddRow(SpreadsheetObj, ArrayToList(aColumns)) />
</cfoutput>

<cfspreadsheet action="write" filename="#theFile#" name="SpreadsheetObj" sheetname="Sheet1" overwrite="true" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9201639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档