virtual protected void AppendPartHeader(PdfOutput output, string title)
 {
     output.drawY -= .5;
     output.DrawText(output.boldFont, output.partHeaderFontSize, PdfOutput.pageWidth / 2, output.drawY, TextJustify.Center, title);
     output.SetColor(output.sisred);
     output.OutlineRectangle(PdfOutput.firstColumnHeaderX, output.drawY - .05,
                             PdfOutput.pageWidth - PdfOutput.firstColumnHeaderX - PdfOutput.rightMargin, .3);
     output.FillRectangle(PdfOutput.firstColumnHeaderX + .05, output.drawY - .08,
                          PdfOutput.pageWidth - PdfOutput.firstColumnHeaderX - PdfOutput.rightMargin, .03);
     output.FillRectangle(PdfOutput.firstColumnHeaderX +
                          (PdfOutput.pageWidth - PdfOutput.firstColumnHeaderX - PdfOutput.rightMargin), output.drawY - .05, .05, .28);
     output.SetColor(Color.Black);
     output.drawY -= .20;
     output.drawY -= PdfOutput.itemSpacing;
 }
示例#2
0
        //this is for the sections in the "Exceptional medical... needs" part
        private void PrintExceptMedNeedsTable(def_Parts part, PdfOutput output, def_Sections sct)
        {
            int nCols = 4;

            string[] headers = { sct.title, "", "Score", "Important \"To\" or \"For\"" };
            double[] indents = { .5, .75, 5.6, 6.75 };

            //headers
            output.drawY -= .1;
            for (int i = 0; i < nCols; i++)
            {
                output.DrawText(output.boldFont, output.fontSize, indents[i], output.drawY, headers[i]);
            }
            output.drawY += .13; output.appendSectionBreak();
            output.drawY -= PdfOutput.itemSpacing;

            indents = new double[] { .5, .75, 5.73, 6.75 };
            List <def_Items> itms = new List <def_Items>();

            formsRepo.SortSectionItems(sct);
            foreach (def_SectionItems si in sct.def_SectionItems)
            {
                if (si.subSectionId == null)    // NOTE: this case probably never occurs for this Part
                {
                    itms.Add(formsRepo.GetItemById(si.itemId));
                }
                else
                {
                    def_Sections sctn = formsRepo.GetSubSectionById(si.subSectionId);
                    formsRepo.SortSectionItems(sctn);
                    foreach (def_SectionItems ssi in sctn.def_SectionItems)
                    {
                        if (ssi.subSectionId == null)
                        {
                            itms.Add(formsRepo.GetItemById(ssi.itemId));
                        }
                    }
                }
            }
            int nRows = itms.Count() + 1;

            // Load the Values
            for (int row = 0; row < itms.Count; row++)
            {
                def_Items itm = itms[row];
                formsRepo.GetItemResultByFormResItem(formResultId, itm.itemId);
                def_ItemResults itmResults = itm.def_ItemResults.SingleOrDefault(ir => (ir.formResultId == formResultId));
                formsRepo.GetItemResultsResponseVariables(itmResults);
                foreach (def_ResponseVariables rv in itmResults.def_ResponseVariables)
                {
                    rv.def_ItemVariables = formsRepo.GetItemVariableById(rv.itemVariableId);
                }

                output.drawY -= .1;
                for (int col = 0; col < nCols; col++)
                {
                    string s = "ERROR";
                    switch (col)
                    {
                    case 0:
                        s = (row + 1).ToString();
                        break;

                    case 1:
                        s = itm.label;
                        break;

                    case 2:
                        def_ResponseVariables rv = itmResults.def_ResponseVariables.SingleOrDefault(r => r.def_ItemVariables.identifier.EndsWith("_ExMedSupport"));
                        s = ((rv == null) ? "" : rv.rspValue);
                        break;

                    case 3:
                        s = String.Empty;
                        break;
                    }
                    output.DrawText(output.contentFont, output.fontSize, indents[col], output.drawY, s);
                }
                output.drawY -= PdfOutput.itemSpacing * 2.5;
                if (output.drawY < 1)
                {
                    output.appendPageBreak();
                }
            }

            output.drawY -= .1;
            output.DrawText(output.boldFont, output.fontSize, indents[1], output.drawY, "Page Notes:");
            output.drawY -= PdfOutput.itemSpacing * 4;
            if (output.drawY < 1)
            {
                output.appendPageBreak();
            }
        }
示例#3
0
        // This is for the sets of items that have 3 numerical response values
        private void BuildDetailedResponseTable(def_Parts part, PdfOutput output, def_Sections sct)
        {
            int nCols = 6;

            string[] headers = { sct.title, "", "Freq", "Time", "Type", "Important \"To\" or \"For\"" };
            double[] indents = { .5, .75, 5.3, 5.6, 5.95, 6.75 };

            //headers
            output.drawY -= .1;
            for (int i = 0; i < nCols; i++)
            {
                output.DrawText(output.boldFont, output.fontSize, indents[i], output.drawY, headers[i]);
            }
            output.drawY += .13; output.appendSectionBreak();
            output.drawY -= PdfOutput.itemSpacing;

            indents = new double[] { .5, .75, 5.38, 5.73, 6.05, 6.75 };
            List <def_Items> itms = formsRepo.GetSectionItems(sct);

            // Values
            for (int row = 0; row < itms.Count; row++)
            {
                def_Items       itm        = itms[row];
                def_ItemResults itmResults = formsRepo.GetItemResultByFormResItem(formResultId, itm.itemId);
                formsRepo.GetItemResultsResponseVariables(itmResults);
                foreach (def_ResponseVariables rv in itmResults.def_ResponseVariables)
                {
                    rv.def_ItemVariables = formsRepo.GetItemVariableById(rv.itemVariableId);
                }

                output.drawY -= .1;
                for (int col = 0; col < nCols; col++)
                {
                    string s = "ERROR";
                    switch (col)
                    {
                    case 0:
                        s = (row + 1).ToString();
                        break;

                    case 1:
                        s = itm.label;
                        break;

                    case 2:
                    case 3:
                    case 4:
                        s = null;
                        string suffix = SupportNeedsColumnSuffixes[col - 2];
                        try
                        {
                            //Debug.WriteLine("\titemvariableId= " + ivEnum.Current.itemVariableId);
                            s = itmResults.def_ResponseVariables.SingleOrDefault(rv => rv.def_ItemVariables.identifier.EndsWith(suffix)).rspValue;
                        }
                        catch (System.NullReferenceException ex)
                        {
                            Debug.Print("for itemId " + itm.itemId + ", could not find responseVariable linked to itemVariableIdentifier with suffix \"" + suffix + "\"");
                            Debug.Print("   NullReferenceException: " + ex.Message);
                        }
                        s = String.IsNullOrEmpty(s) ? "N/A" : s;
                        break;

                    case 5:
                        s = String.Empty;
                        break;
                    }
                    output.DrawText(output.contentFont, output.fontSize, indents[col], output.drawY, s);
                }
                output.drawY -= PdfOutput.itemSpacing * 2.5;
                if (output.drawY < 1)
                {
                    output.appendPageBreak();
                }
            }

            output.drawY -= .1;
            output.DrawText(output.boldFont, output.fontSize, indents[1], output.drawY, "Page Notes:");
            output.drawY -= PdfOutput.itemSpacing * 4;
            if (output.drawY < 1)
            {
                output.appendPageBreak();
            }
        }