查找

記事
· 2025年12月4日 3m read

[ICYMI] VS Code updates November 2025

Welcome to the monthly recap of updates and releases to VS Code and InterSystems-related extensions that are relevant to IRIS developers. 

We'll break down the updates that are relevant to InterSystems developers with tips on how they can be applied to your day-to-day projects. 

Don't forget, if you're migrating from InterSystems Studio to VS Code, or want to deepen your knowledge, check out the VS Code training courses from George James Software: georgejames.com/vscode-training

 

VS Code version 1.106

Unified AI-agent dashboard - 1.106 introduces an Agent Sessions view that consolidates all active sessions (cloud, local, CLI) into a single pane. 

With this update, you can try out assistance from AI without immediately affecting your workplace.

But, even if you don't use AI tools, Agent Sessions can help if you experiment with automation such as scaffolding, documentation generation, code snippets etc. 

Built-in task planning before coding - the new Plan Agent lets you sketch out complex implementation plans before writing any code. 

Use this to outline and review a plan in VS Code before touching production, reducing the chance of mistakes and improving clarity for handoffs or peer reviews.  

Edit & Navigation improvements

  • Deleted code in diff view is now selectable/copyable >> try this feature if you want to copy code from an old version.   
  • The "Go to Line" command now supports jumping to a specific character offset >> this is helpful if you get precise error offsets or log stack-trace positions linking to a file position.   
  • UI polish, including refreshed icons, better command-palette filtering, error hover copying improvements, and cross-file diff navigations to make editing smoother. 


This release also includes contributions from our very own @John Murray through pull requests that address open issues. 

View the full release notes: https://code.visualstudio.com/updates/v1_106

 

George James Software VS Code extensions

InterSystems REST API Explorer - updated dependencies

Use this alongside the InterSystems Server Manager extension to explore REST APIs published by a server

gj :: configExplorer - we've been able to adopt intersystems/intersystems-iris-native 2.0.3 to enable this extension to be used directly on Windows. 

Try out this VS Code extension to produce configuration diagrams for your servers. 

 

InterSystems Official VS Code extensions

There have been no releases or updates this month, so here's our Marketplace pick: 

gj :: dataLoader - it implements this idea and is @John Murray's entry into the "Bringing Ideas to Reality" Contest 2025

This extension enables data to be loaded from text files into InterSystems IRIS SQL tables, from within VS Code.

 

Let us know in the comments if you try any of these features or VS Code extensions, and what you think.

Happy coding! 

ディスカッション (0)2
続けるにはログインするか新規登録を行ってください
記事
· 2025年12月4日 2m read

Temp Files and Singletons: Cleaning Up After Yourself

There's a pattern I've encountered several times where I need to use a temp file/folder and have it cleaned up at some point later.

The natural thing to do here is to follow the patterns from "Robust Error Handling and Cleanup in ObjectScript" with a try/catch/pseudo-finally or a registered object to manage cleanup in the destructor. %Stream.File* also has a "RemoveOnClose" property that you can set - but use with care, as you could accidentally remove an important file, and this flag gets reset by calls to %Save() so you'll need to set it back to 1 after doing that.

There's one tricky case, though - suppose you need the temp file to survive in an enclosing stack level. e.g.:

ClassMethod MethodA()
{
    Do ..MethodB(.filename)
    // Do something else with the filename
}

ClassMethod MethodB(Output filename)
{
    // Create a temp file and set filename to the file's name
    Set filename = ##class(%Library.File).TempFilename()
    
    //... and probably do some other stuff
}

You could always pass around %Stream.File* objects with RemoveOnClose set to 1, but we're really just talking about temp files here.

This is where the concept of a "Singleton" comes in. We have a base implementation of this in IPM in %IPM.General.Singleton which you can extend to meet different use cases. The general behavior and use pattern is:

  • In a higher stack level, call %Get() on that class and get the one instance that will also be obtainable by calls to %Get() at lower stack levels.
  • When the object goes out of scope in highest stack level that uses it, the cleanup code runs.

This is a bit better than a % variable because you don't need to go checking if it's defined, and it also survives argumentless NEW at lower stack levels through some deep object trickery.

On to temp files, IPM also has a temp file manager singleton. Applying to this problem, the solution is:

ClassMethod MethodA()
{
    Set tempFileManager = ##class(%IPM.Utils.TempFileManager).%Get()
    Do ..MethodB(.filename)
    // Do something else with the filename
    // The temp file is cleaned up automatically when tempFileManager goes out of scope
}

ClassMethod MethodB(Output filename)
{
    Set tempFileManager = ##class(%IPM.Utils.TempFileManager).%Get()
    // Create a temp file and set filename to the file's name
    Set filename = tempFileManager.GetTempFileName(".md")
    
    //... and probably do some other stuff
}
ディスカッション (0)2
続けるにはログインするか新規登録を行ってください
ディスカッション
· 2025年12月4日

How do you like to build your AI solutions with InterSystems IRIS?

Hi,

We're working on new capabilities to help you build Agents and AI applications faster with InterSystems IRIS. In order to better understand which entry points and development methodologies would help you most, we've created this brief survey: Building AI solutions with InterSystems IRIS. 

Filling it in should not take much more than 5 minutes, and your feedback on this exciting topic will help us fine tune our designs and prioritize the right features.

Thanks in advance!
benjamin
 

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
お知らせ
· 2025年12月4日

¡Compartid vuestros puntos de vista!

Valoramos vuestros comentarios sobre los recursos de aprendizaje que utilizáis para sacar el máximo partido a los productos de InterSystems. Tanto si habéis hecho cursos a vuestro ritmo o en directo, como si habéis consultado la documentación o conseguido una certificación, ¡nos encantaría saber vuestra opinión!

 

 

 

Decidnos qué recursos de aprendizaje habéis utilizado y qué os ha resultado útil. Vuestras opiniones nos ayudarán a mejorar nuestras propuestas en 2026 y en adelante.

La encuesta finaliza el 19 de diciembre de 2025.

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
質問
· 2025年12月4日

Zen reports only one row filled in the table

Hello. Here is   XData ReportDefinition

/// XML that defines the contents of this report.
XData ReportDefinition [ XMLNamespace = "http://www.intersystems.com/zen/report/definition]
{
<report xmlns="http://www.intersystems.com/zen/report/definitionname='bills' runonce="true">
<attribute name='runTime' expression='$ZDT($H,3)/>
    <attribute name='runBy' expression='..GetUserName()/>
    <attribute name='author' expression='..ReportAuthor'/>
<group name='bills' OnCreateResultSet="CreateRS">
<parameter name="MonthDt" expression="..Month"/>
<parameter name="Company" expression="..Company"/>
<parameter name="EnterpType" expression="..EnterpType"/>
<!--<group name='bills' sql="SELECT TOP 200 PayerCod FROM zui.PayerTotalData1 WHERE MonthDt='202510' ORDER BY PayerCod">--> <group name='bill' breakOnField="PayerCod">
<!--<element name="Name" field="Name" expression='..GetName(%val)' />-->
<!--<attribute name='PayerCod' field='PayerCod' />-->
<element name="PayerCod" field="PayerCod" expression='"РАХУНОК № "_(+%val)/>
<element name="Company" field="PayerCod" expression='"Виконавець: "_..GetCompany(%val)'/>
<element name="CompanyAddress" field="PayerCod" expression='"Адреса: "_..GetCompanyAddress(%val)'/>
<element name="Name" field="PayerCod" expression='"Платник: "_..GetPayerName(%val)'/>
<element name="PayerContractInfo" field="PayerCod" expression='..GetPayerContractInfo(%val)'/>
<element name="CompanySettlementAcc" field="PayerCod" expression='..GetCompanySettlementAcc(%val)/>
<element name="CompanyMfo" field="PayerCod" expression='..GetCompanyMfo(%val)/>
<element name="CompanyEdrpou" field="PayerCod" expression='..GetCompanyEdrpou(%val)/>
<element name="CompanyAbonSettlementAcc" field="PayerCod" expression='..GetCompanyAbonBankData(%val, 1)/>
<element name="CompanyAbonMfo" field="PayerCod" expression='..GetCompanyAbonBankData(%val, 2)/>
<element name="CompanyAbonEdrpou" field="PayerCod" expression='..GetCompanyAbonBankData(%val, 3)/>
<element name="Address" field="PayerCod" expression='..GetAddress(%val)/>
<element name="SettleAccount" field="PayerCod" expression='..GetPayerSettleAccount(%val)/>
<element name="CodEdrpou" field="PayerCod" expression='..GetCodEdrpou(%val)/>
<element name="TitleDebtName" field="PayerCod" expression='..GetTitleDebtName(%val)/>
<element name="DateDebt" field="PayerCod" expression='..GetDateDebt(%val)/>
<element name="Borg1" field="PayerCod" expression='..GetBorg1(%val)/>
<element name="DateAccrual" field="PayerCod" expression='..GetDateAccrual(%val)/>
<element name="SumAccrual" field="PayerCod" expression='..GetSumAccrual(%val)/>
<element name="HeatHotwaterVAT" field="PayerCod" expression='..GetHeatHotwaterVAT(%val)/>
<element name="OpGvPay" field="PayerCod" expression='..GetOpGvPay(%val)/>
<element name="TitleDebtName2" field="PayerCod" expression='..GetTitleDebtName2(%val)/>
<element name="Borg1Abon" field="PayerCod" expression='..GetBorg1Abon(%val)/>
<element name="SumAccrualAbon" field="PayerCod" expression='..GetSumAccrualAbon(%val)/>
<element name="AbonpayVAT" field="PayerCod" expression='..GetAbonpayVAT(%val)/>
<element name="PaymentSumAbon" field="PayerCod" expression='..GetPaymentSumAbon(%val)/>
<element name="Borg2" field="PayerCod" expression='..GetBorg2(%val)/>
<element name="Borg2Abon" field="PayerCod" expression='..GetBorg2Abon(%val)/>
<element name="DateAccrual2" field="PayerCod" expression='..GetDateAccrual2(%val)/>
<element name="PayerCod2" field="PayerCod" expression='(+%val)/>
<element name="SumAccrual2" field="PayerCod" expression='..GetSumAccrual2(%val)/>
<element name="HeatHotwaterVAT2" field="PayerCod" expression='..GetHeatHotwaterVAT2(%val)/>
<element name="SumAccrualAbon2" field="PayerCod" expression='..GetSumAccrualAbon2(%val)/>
<element name="AbonpayVAT2" field="PayerCod" expression='..GetAbonpayVAT2(%val)/>
<element name="SignExecutorName" field="PayerCod" expression='..GetSignExecutorName(%val)/>
<group name="roomsCalc" sql="SELECT ID,ServiceName,PayerCod,HouseRoomCod,MeterGcal,NormGcal,MzkGcal,MinpartGcal,TotalGcal,Tariff,TotalSum,AbonpaySum FROM zui.PayerRoomTotalBillTable WHERE MonthDt = AND PayerCod = ORDER BY PayerCod"  breakOnField="PayerCod">
<parameter expression="..Month"/>
<parameter field="PayerCod"/>
<!--<parameter value="000126"/>-->
<element name="ServiceName" field="ServiceName" />
<element name="RoomAddressName" fields="PayerCod,HouseRoomCod" expression='..GetRoomAddressName(%val("PayerCod"), %val("HouseRoomCod"))/>
<element name="MeterGcal" field="MeterGcal" expression='..NumVal(%val)/>
<element name="NormGcal" field="NormGcal" expression='..NumVal(%val)/>
<element name="MzkGcal" field="MzkGcal" expression='..NumVal(%val)/>
<element name="MinpartGcal" field="MinpartGcal" expression='..NumVal(%val)/>
<element name="TotalGcal" field="TotalGcal" expression='..NumVal(%val)/>
<element name="Tariff" field="Tariff" expression='..NumVal(%val)/>
<element name="TotalSum" field="TotalSum" expression='..Grnn(%val)/>
<element name="AbonpaySum" field="AbonpaySum" expression='..Grnn(%val)/> </group>
</group>
</group> </report>
}

 

And here is  XData  ReportDisplay

 

/// XML description for the display of this report. Used to generate
/// XSlT stylesheets for both HTML and XSL-FO
XData ReportDisplay [ XMLNamespace = "http://www.intersystems.com/zen/report/display]
{
<report xmlns="http://www.intersystems.com/zen/report/displayname='bills' 
title='Title' style='standard'>
  
  <document width="210mm" height="297mm" marginLeft="5mm"
      marginRight="5mm" marginTop="5mm" marginBottom="5mm">
  
  <class name="table.taMainFont">
    <att name="font-family" value="Arial" />
  </class>
  <class name="table.taBoldFont">
    <att name="font-weight" value="bold" />
  </class>
  <class name="table.taTestBorder">
    <!--<att name="border-style" value="solid" />
    <att name="border-width" value="1px" />
    <att name="border-color" value="black" />-->
  </class>
  <class name="table.taFontSize">
    <att name="font-size" value="6px" />
  </class>
  <class name="td.taBorder">
    <att name="border-style" value="solid" />
    <att name="border-width" value="1px" />
    <att name="border-color" value="black" />
  </class>
  <class name="th.thBorder">
    <att name="border-style" value="solid" />
    <att name="border-width" value="1px" />
    <att name="border-color" value="black" />
  </class>
  <class name="table.taMain">
  <att name="border-collapse" value="collapse" />
  </class>
  
  
  <class name="td.tdBorderBottom">
    <att name="border-bottom-style" value="solid" />
    <att name="border-bottom-width" value="1px" />
    <att name="border-bottom-color" value="black" />
  </class>
  <class name="td.tdBorderRight">
    <att name="border-right-style" value="solid" />
    <att name="border-right-width" value="1px" />
    <att name="border-right-color" value="black" />
  </class>
  <class name="tr.tdValignMiddle">
    <att name="vertical-align" value="middle" />
  </class>
  <class name="td.tdPadding">
    <att name="padding-top" value="2px" />
    <att name="padding-right" value="2px" />
    <att name="padding-bottom" value="2px" />
    <att name="padding-left" value="2px" />
  </class>
  <class name="th.thPadding">
    <att name="padding-top" value="2px" />
    <att name="padding-right" value="2px" />
    <att name="padding-bottom" value="2px" />
    <att name="padding-left" value="2px" />
  </class>
  <class name="td.txtAlignLeft">
    <att name="text-align" value="left" />
  </class>
  <class name="td.txtAlignCenter">
    <att name="text-align" value="center" />
  </class>
  <class name="td.txtAlignRight">
    <att name="text-align" value="right" />
  </class>
  <class name="th.thTxtCenter">
    <att name="text-align" value="center" />
    <att name="vertical-align" value="middle" />
  </class>
  
  
  <class name="div.divMainFont">
    <att name="font-family" value="Arial" />
  </class>
  <class name="div.divBoldFont">
    <att name="font-weight" value="bold" />
  </class>
  <class name="div.divFontSize">
    <att name="font-size" value="7px" />
  </class>
  <class name="div.divBorder">
    <att name="border-style" value="solid" />
    <att name="border-width" value="1px" />
    <att name="border-color" value="black" />
  </class>
  
  </document>
    
  <body>
    <!-- COMBINED REPORT HEADER -->
    <!--<header> 
      <p class="banner1">HelpDesk Combined Sales Report </p>
      <fo> <line pattern="empty"/>  <line pattern="empty"/> </fo>
        <table orient="row" width="3.45in" class='table1'> 
        <item value="Combined Sales" width="2in">
          <caption value="Title:" width="1.35in"/>
        </item>
        <item field="@author" caption="Author:"/>
        <item field="@runBy" caption="Prepared By:"/>
        <item field="@runTime" caption="Time:"/>
        </table>
    </header>-->
    
    <group name='bills'>
    <group name='bill' pagebreak="true" >
    <table orient="col" class="taMainFont taBoldFont taTestBorder" style="font-size:7px;">
    <!--<p>#("The current user is ..GetTitle1())#</p>-->
    <item field="PayerCod" width="50mm" literalSpaces="true" />
    <item value="ПРО НАДАННЯ ПОСЛУГИ З ПОСТАЧАННЯ ТЕПЛОВОЇ ЕНЕРГІЇ ВІД #(..FileDate)#" literalSpaces="true" />
     </table>
     
     <table orient="row" class="taMainFont taFontSize taTestBorder" style="margin-top:6px;" >
     <item field="Company" literalSpaces="true" />
     </table>
     
     <table orient="col" class="taMainFont taFontSize taTestBorder" style="margin-top:3px;" >
     <item field="CompanyAddress" literalSpaces="true" />
     <item field="Name" literalSpaces="true" too-long-text="wrap" breakOnLineFeed="true" style="padding-left: 30px;" />
     </table>
     
     <table orient="col" class="taMainFont taFontSize taTestBorder" style="margin-top:3px;" >
     <table class="taBoldFont" align="center">
     <item value="реквізити для розрахунку за надану послугу" literalSpaces="true" />
     </table>
     <item field="PayerContractInfo" literalSpaces="true" too-long-text="wrap" breakOnLineFeed="true" style="padding-left: 65px;" />
     </table>
     
     
     <!--**********-->
     
     
     <table orient="col" class="taMainFont taFontSize">
     <table orient="row" width="58mm" style="margin-top:3px;">
     <table orient="col" class="taBoldFont taBorder" align="center">
     <item value="Теплова енергія (теплопостачання та ГВП)" class="tdPadding" />
     </table>
     <table orient="col" class="taBorder">
     <item value="р/р:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item field="CompanySettlementAcc" class="tdPadding" />
     </table>
     <table orient="col" class="taBorder">
     <item value="МФО:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item field="CompanyMfo" class="tdPadding" />
     </table>
     <table orient="col" class="taBorder">
     <item value="Код ЄДРПОУ:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item field="CompanyEdrpou" class="tdPadding" />
     </table>
     </table>
    
     <line pattern="empty" lineHeight="1cm" />
     
     <table orient="row" width="58mm" style="margin-top:3px; padding-left:10px;">
     <table orient="col" class="taBoldFont taBorder" align="center">
     <item value="Абонентське обслуговування" class="tdPadding" />
     </table>
     <table orient="col" class="taBorder">
     <item value="р/р:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item field="CompanyAbonSettlementAcc" class="tdPadding" />
     </table>
     <table orient="col" class="taBorder">
     <item value="МФО:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item field="CompanyAbonMfo" class="tdPadding" />
     </table>
     <table orient="col" class="taBorder">
     <item value="Код ЄДРПОУ:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item field="CompanyAbonEdrpou" class="tdPadding" />
     </table>
     </table>
     
     <line pattern="empty" lineHeight="1cm" />
     
     <table orient="row" width="80mm" style="padding-left:14px; margin-top:1px;">
     <table orient="col">
     <item value="Адреса:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item field="Address" class="tdPadding" />
     </table>
     <table orient="col">
     <item value="р/р:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item field="SettleAccount" class="tdPadding" />
     </table>
     <table orient="col">
     <item value="МФО:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item value=" " class="tdPadding" />
     </table>
     <table orient="col">
     <item value="Код ЄДРПОУ:" class="tdPadding" width="15mm" literalSpaces="true" />
     <item field="CodEdrpou" class="tdPadding" />
     </table>
     </table>
     </table>
     
     
     <!--**********-->
     
     
     <table orient="col" class="taMainFont taFontSize" style="margin-top:10px;">
     <table orient="row" width="58mm" style="margin-top:3px;">
     <table orient="col" class="taBorder">
     <item field="TitleDebtName" class="tdPadding" />
     <item field="DateDebt" class="tdPadding" />
     <item field="Borg1" class="tdPadding txtAlignRight" />
     </table>
     <table orient="col" class="taBorder">
     <item value="Нараховано" class="tdPadding" />
     <item field="DateAccrual" class="tdPadding" />
     <item field="SumAccrual" class="tdPadding txtAlignRight" />
     </table>
     <table orient="col" class="taBorder">
     <item value=" " class="tdPadding" literalSpaces="true" />
     <item value="в т.ч.ПДВ" class="tdPadding" />
     <item field="HeatHotwaterVAT" class="tdPadding txtAlignRight" />
     </table>
     <table orient="col" class="taBorder">
     <item value="Оплачено:" class="tdPadding" literalSpaces="true" />
     <item field="DateAccrual" class="tdPadding" />
     <item field="OpGvPay" class="tdPadding txtAlignRight" />
     </table>
     </table>
    
     <line pattern="empty" lineHeight="1cm" />
     
     <table orient="row" width="58mm" style="margin-top:3px; padding-left:10px;">
     <table orient="col" class="taBorder">
     <item field="TitleDebtName2" class="tdPadding" />
     <item field="DateDebt" class="tdPadding" />
     <item field="Borg1Abon" class="tdPadding txtAlignRight" />
     </table>
     <table orient="col" class="taBorder">
     <item value="Нараховано" class="tdPadding" />
     <item field="DateAccrual" class="tdPadding" />
     <item field="SumAccrualAbon" class="tdPadding txtAlignRight" />
     </table>
     <table orient="col" class="taBorder">
     <item value=" " class="tdPadding" literalSpaces="true" />
     <item value="в т.ч.ПДВ" class="tdPadding" />
     <item field="AbonpayVAT" class="tdPadding txtAlignRight" />
     </table>
     <table orient="col" class="taBorder">
     <item value="Оплачено:" class="tdPadding" literalSpaces="true" />
     <item field="DateAccrual" class="tdPadding" />
     <item field="PaymentSumAbon" class="tdPadding txtAlignRight" />
     </table>
     </table>
     
     <line pattern="empty" lineHeight="1cm" />
     
     <table orient="row" width="80mm" style="padding-left:14px; margin-top:1px;">
     <table orient="col">
     <item value=" " class="tdPadding" literalSpaces="true" />
     <item value=" " class="tdPadding" />
     </table>
     <table orient="col">
     <item value=" " class="tdPadding" literalSpaces="true" />
     <item value=" " class="tdPadding" />
     </table>
     <table orient="col">
     <item value=" " class="tdPadding" literalSpaces="true" />
     <item value=" " class="tdPadding" />
     </table>
     <table orient="col">
     <item value=" " class="tdPadding" literalSpaces="true" />
     <item value=" " class="tdPadding" />
     </table>
     </table>
     </table>
     
     
     <!--**********-->
     
     
     <table orient="col" class="taMainFont taFontSize" style="margin-top:8px;">
     <table orient="row" width="58mm" style="margin-top:3px;">
     <table orient="col" class="taBoldFont">
     <item value="Сума до оплати за теплопостачання" class="tdPadding" literalSpaces="true" />
     <item value=" " class="tdPadding" literalSpaces="true" />
     <item field="Borg2" class="tdPadding txtAlignRight" />
     </table>
     </table>
     
     <table orient="row" width="58mm" style="margin-top:3px; padding-left:16px;">
     <table orient="col" class="taBoldFont">
     <item value="Сума до оплати за абон. обслуговування" class="tdPadding" literalSpaces="true" />
     <item value=" " class="tdPadding" literalSpaces="true" />
     <item field="Borg2Abon" class="tdPadding txtAlignRight" />
     </table>
     </table>
     
     <table orient="row" style="margin-top:1px;">
     <table orient="col">
     <item value=" " class="tdPadding" literalSpaces="true" />
     <item value=" " class="tdPadding" />
     </table>
     </table>
     </table>
     
     
     <!--**********-->
     
     
     <table orient="row" layout="fixed" class="taMainFont taFontSize" style="margin-left:10px; margin-top:5px;">
     <table orient="col" class="taBoldFont">
     <item value="Нарахування по об’ємах до рахунку № " width="45mm" class="tdPadding" literalSpaces="true" />
     <item field="PayerCod2" width="8mm" class="tdPadding" />
     <item field="DateAccrual2" width="25mm" class="tdPadding" />
     </table>
     </table>
     
     
     <!--**********-->         
     
     
     <table group="roomsCalc" class="taMain taMainFont taFontSize taBorder" style="margin-top:5px;">
     <thead class="thTxtCenter thBorder thPadding" >
     <tr>
      <th rowspan="2"><item value="Назва послуги" width="25mm"/></th>
      <th rowspan="2"><item value="Адреса приміщення" width="70mm"/></th>
      <th colspan="4"><item value="Спожито Гкал" width="13mm"/></th>
      <!--<th><item value=""/></th> 
      <th><item value=""/></th> 
      <th><item value=""/></th> -->
      <th rowspan="2"><item value="Всього" width="17mm"/></th>
      <th rowspan="2"><item value="Тариф(з ПДВ)" width="13mm"/></th>
      <th rowspan="2"><item value="Сума грн." width="13mm"/></th>
      <th rowspan="2"><item value="Абон.плата" width="13mm"/></th>
     </tr>
     <tr>
      <!----> 
      <!----> 
      <th><item value="по ліч." width="13mm"/></th>
      <th><item value="по нормі" width="13mm"/></th>
      <th><item value="МЗК" width="13mm"/></th>
      <th><item value="мін. частка" width="13mm"/></th>
      <!----> 
      <!----> 
      <!----> 
      <!---->
     </tr>
     </thead>
     
     <item field="ServiceName" width="25mm" class="tdPadding taBorder" />
 <item field="RoomAddressName" width="70mm" class="tdPadding taBorder" />
 <item field="MeterGcal" width="13mm" class="tdPadding taBorder txtAlignRight" />
 <item field="NormGcal" width="13mm" class="tdPadding taBorder txtAlignRight" />
 <item field="MzkGcal" width="13mm" class="tdPadding taBorder txtAlignRight" />
 <item field="MinpartGcal" width="13mm" class="tdPadding taBorder txtAlignRight" />
 <item field="TotalGcal" width="17mm" class="tdPadding taBorder txtAlignRight" />
 <item field="Tariff" width="13mm" class="tdPadding taBorder txtAlignRight" />
 <item field="TotalSum" width="13mm" class="tdPadding taBorder txtAlignRight" />
 <item field="AbonpaySum" width="13mm" class="tdPadding taBorder txtAlignRight" />
 
 </table>
 
 
 <table orient="row" class="taMain taMainFont taFontSize" style="margin-top:5px;">
     <table orient="col">
     <item value="Всього нараховано" width="25mm" class="tdPadding" />
 <item value=" " width="70mm" class="tdPadding" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item value=" " width="17mm" class="tdPadding txtAlignRight" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item field="SumAccrual2" width="13mm" class="tdPadding txtAlignRight" />
 <item field="SumAccrualAbon2" width="13mm" class="tdPadding txtAlignRight" />
 </table>
 <!---->
 <table orient="col">
 <item value="В т.ч. ПДВ" width="25mm" class="tdPadding" />
 <item value=" " width="70mm" class="tdPadding" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item value=" " width="17mm" class="tdPadding txtAlignRight" />
 <item value=" " width="13mm" class="tdPadding txtAlignRight" />
 <item field="HeatHotwaterVAT2" width="13mm" class="tdPadding txtAlignRight" />
 <item field="AbonpayVAT2" width="13mm" class="tdPadding txtAlignRight" />
</table>
 </table>
 
 
 <table orient="col" class="taMain taMainFont taFontSize" style="margin-top:40px;">
 <item field="SignExecutorName" width="50mm"/>
 </table>
      
     
     </group>
     </group>
    
     
     
 
  </body>
  
</report>
} /// Create result set for a report
ClassMethod CreateRS(ByRef pSC As %Status, ByRef tParams) As %ResultSet
{
    set statement=##class(%SQL.Statement).%New()
    if '$isobject(statement) set pSC=%objlasterror Quit ""
    //set sql="SELECT PayerCod,CompanyName,CompanyAddress FROM zui.PayerTotalBillData WHERE MonthDt=?"
    
    sql = "SELECT PayerCod"
    sql = sql_" FROM zui.PayerTotalData1"
    
    if (tParams(3) '= "") {
    // ..EnterpType '= ""
        sql = sql_" WHERE MonthDt = ? AND Company = ? AND EnterpType = ?"
    else {
    sql = sql_" WHERE MonthDt = ? AND Company = ?"
    }
    
    set pSC=statement.%Prepare(sql)
    if $$$ISERR(pSC) Quit ""
    set statement.%SelectMode=2
    
    if (tParams(3) '= "") {
    // ..EnterpType '= ""
        set rs=statement.%Execute(tParams(1), tParams(2), tParams(3))
    else {
    set rs=statement.%Execute(tParams(1), tParams(2))
    }
    
    quit rs
}

 

Why do table with group="roomsCalc" 

<table group="roomsCalc".......

 

outputs only one row in the table despite that the result set has many rows ?

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください