예제 #1
0
        ///<summary>Used to copy a report object when creating new QueryObjects.</summary>
        public ReportObject DeepCopyReportObject()
        {
            ReportObject reportObj = new ReportObject();

            reportObj._sectionType         = this._sectionType;
            reportObj._location            = new Point(this._location.X, this._location.Y);
            reportObj._size                = new Size(this._size.Width, this._size.Height);
            reportObj._name                = this._name;
            reportObj._reportObjectType    = this._reportObjectType;
            reportObj._font                = (Font)this._font.Clone();
            reportObj._contentAlignment    = this._contentAlignment;
            reportObj._foreColor           = this._foreColor;
            reportObj._staticText          = this._staticText;
            reportObj._stringFormat        = this._stringFormat;
            reportObj._suppressIfDuplicate = this._suppressIfDuplicate;
            reportObj._floatLineThickness  = this._floatLineThickness;
            reportObj._fieldDefKind        = this._fieldDefKind;
            reportObj._fieldValueType      = this._fieldValueType;
            reportObj._specialFieldType    = this._specialFieldType;
            reportObj._summaryOperation    = this._summaryOperation;
            reportObj._lineOrientation     = this._lineOrientation;
            reportObj._linePosition        = this._linePosition;
            reportObj._intLinePercent      = this._intLinePercent;
            reportObj._offSetX             = this._offSetX;
            reportObj._offSetY             = this._offSetY;
            reportObj._isUnderlined        = this._isUnderlined;
            reportObj._summarizedFieldName = this._summarizedFieldName;
            reportObj._dataFieldName       = this._dataFieldName;
            reportObj._summaryOrientation  = this._summaryOrientation;
            List <int> summaryGroupsNew = new List <int>();

            if (this._summaryGroupValues != null)
            {
                for (int i = 0; i < this._summaryGroupValues.Count; i++)
                {
                    summaryGroupsNew.Add(this._summaryGroupValues[i]);
                }
            }
            reportObj._summaryGroupValues = summaryGroupsNew;
            return(reportObj);
        }
예제 #2
0
파일: QueryObject.cs 프로젝트: mnisl/OD
		private List<string> GetDisplayString(string rawText,string prevDisplayText,ReportObject reportObject,int i) {
			string displayText="";
			List<string> retVals=new List<string>();
			if(reportObject.FieldValueType==FieldValueType.Age) {
				displayText=Patients.AgeToString(Patients.DateToAge(PIn.Date(rawText)));//(fieldObject.FormatString);
			}
			else if(reportObject.FieldValueType==FieldValueType.Boolean) {
				displayText=PIn.Bool(_reportTable.Rows[i][_arrDataFields.IndexOf(reportObject.DataField)].ToString()).ToString();//(fieldObject.FormatString);
				if(i>0 && reportObject.SuppressIfDuplicate) {
					prevDisplayText=PIn.Bool(_reportTable.Rows[i-1][_arrDataFields.IndexOf(reportObject.DataField)].ToString()).ToString();
				}
			}
			else if(reportObject.FieldValueType==FieldValueType.Date) {
				displayText=PIn.DateT(_reportTable.Rows[i][_arrDataFields.IndexOf(reportObject.DataField)].ToString()).ToString(reportObject.StringFormat);
				if(i>0 && reportObject.SuppressIfDuplicate) {
					prevDisplayText=PIn.DateT(_reportTable.Rows[i-1][_arrDataFields.IndexOf(reportObject.DataField)].ToString()).ToString(reportObject.StringFormat);
				}
			}
			else if(reportObject.FieldValueType==FieldValueType.Integer) {
				displayText=PIn.Long(_reportTable.Rows[i][_arrDataFields.IndexOf(reportObject.DataField)].ToString()).ToString(reportObject.StringFormat);
				if(i>0 && reportObject.SuppressIfDuplicate) {
					prevDisplayText=PIn.Long(_reportTable.Rows[i-1][_arrDataFields.IndexOf(reportObject.DataField)].ToString()).ToString(reportObject.StringFormat);
				}
			}
			else if(reportObject.FieldValueType==FieldValueType.Number) {
				displayText=PIn.Double(_reportTable.Rows[i][_arrDataFields.IndexOf(reportObject.DataField)].ToString()).ToString(reportObject.StringFormat);
				if(i>0 && reportObject.SuppressIfDuplicate) {
					prevDisplayText=PIn.Double(_reportTable.Rows[i-1][_arrDataFields.IndexOf(reportObject.DataField)].ToString()).ToString(reportObject.StringFormat);
				}
			}
			else if(reportObject.FieldValueType==FieldValueType.String) {
				displayText=rawText;
				if(i>0 && reportObject.SuppressIfDuplicate) {
					prevDisplayText=_reportTable.Rows[i-1][_arrDataFields.IndexOf(reportObject.DataField)].ToString();
				}
			}
			retVals.Add(displayText);
			retVals.Add(prevDisplayText);
			return retVals;
		}
예제 #3
0
파일: QueryObject.cs 프로젝트: mnisl/OD
		///<summary>Add a label to a summaryfield based on the orientation given.</summary>
		public void AddSummaryLabel(string dataFieldName,string summaryText,SummaryOrientation summaryOrientation,bool hasWordWrap,Font font) {
			Graphics grfx=Graphics.FromImage(new Bitmap(1,1));
			ReportObject summaryField=GetObjectByName(dataFieldName+"Footer");
			Size size;
			if(hasWordWrap) {
				size=new Size(summaryField.Size.Width,(int)(grfx.MeasureString(summaryText,font,summaryField.Size.Width).Height/grfx.DpiY*100+2));
			}
			else {
				size=new Size((int)(grfx.MeasureString(summaryText,font).Width/grfx.DpiX*100+2),(int)(grfx.MeasureString(summaryText,font).Height/grfx.DpiY*100+2));
			}
			if(summaryOrientation==SummaryOrientation.North) {
				ReportObject summaryLabel=new ReportObject(dataFieldName+"Label","Group Footer"
						,summaryField.Location
						,size
						,summaryText
						,font
						,summaryField.ContentAlignment);
				summaryLabel.DataField=dataFieldName;
				summaryLabel.SummaryOrientation=summaryOrientation;
				_reportObjects.Insert(_reportObjects.IndexOf(summaryField),summaryLabel);
			}
			else if(summaryOrientation==SummaryOrientation.South) {
				ReportObject summaryLabel=new ReportObject(dataFieldName+"Label","Group Footer"
						,summaryField.Location
						,size
						,summaryText
						,font
						,summaryField.ContentAlignment);
				summaryLabel.DataField=dataFieldName;
				summaryLabel.SummaryOrientation=summaryOrientation;
				_reportObjects.Add(summaryLabel);
			}
			else if(summaryOrientation==SummaryOrientation.West) {
				ReportObject summaryLabel=new ReportObject(dataFieldName+"Label","Group Footer"
						,new Point(summaryField.Location.X-size.Width)
						,size
						,summaryText
						,font
						,summaryField.ContentAlignment);
				summaryLabel.DataField=dataFieldName;
				summaryLabel.SummaryOrientation=summaryOrientation;
				_reportObjects.Insert(_reportObjects.IndexOf(summaryField),summaryLabel);
			}
			else {
				ReportObject summaryLabel=new ReportObject(dataFieldName+"Label","Group Footer"
						,new Point(summaryField.Location.X+size.Width+summaryField.Size.Width)
						,size
						,summaryText
						,font
						,summaryField.ContentAlignment);
				summaryLabel.DataField=dataFieldName;
				summaryLabel.SummaryOrientation=summaryOrientation;
				_reportObjects.Insert(_reportObjects.IndexOf(summaryField)+1,summaryLabel);
			}
			grfx.Dispose();
		}
예제 #4
0
파일: ReportObject.cs 프로젝트: mnisl/OD
		///<summary>Used to copy a report object when creating new QueryObjects.</summary>
		public ReportObject DeepCopyReportObject() {
			ReportObject reportObj=new ReportObject();
			reportObj._sectionName=this._sectionName;
			reportObj._location=new Point(this._location.X,this._location.Y);
			reportObj._size=new Size(this._size.Width,this._size.Height);
			reportObj._name=this._name;
			reportObj._reportObjectKind=this._reportObjectKind;
			reportObj._font=(Font)this._font.Clone();
			reportObj._contentAlignment=this._contentAlignment;
			reportObj._foreColor=this._foreColor;
			reportObj._staticText=this._staticText;
			reportObj._stringFormat=this._stringFormat;
			reportObj._suppressIfDuplicate=this._suppressIfDuplicate;
			reportObj._floatLineThickness=this._floatLineThickness;
			reportObj._fieldDefKind=this._fieldDefKind;
			reportObj._fieldValueType=this._fieldValueType;
			reportObj._specialFieldType=this._specialFieldType;
			reportObj._summaryOperation=this._summaryOperation;
			reportObj._lineOrientation=this._lineOrientation;
			reportObj._linePosition=this._linePosition;
			reportObj._intLinePercent=this._intLinePercent;
			reportObj._offSetX=this._offSetX;
			reportObj._offSetY=this._offSetY;
			reportObj._isUnderlined=this._isUnderlined;
			reportObj._summarizedFieldName=this._summarizedFieldName;
			reportObj._dataFieldName=this._dataFieldName;
			reportObj._summaryOrientation=this._summaryOrientation;
			List<int> summaryGroupsNew=new List<int>();
			if(this._summaryGroupValues!=null) {
				for(int i=0;i<this._summaryGroupValues.Count;i++) {
					summaryGroupsNew.Add(this._summaryGroupValues[i]);
				}
			}
			reportObj._summaryGroupValues=summaryGroupsNew;
			return reportObj;
		}
예제 #5
0
		///<summary></summary>
		public void Insert(int index,ReportObject value){
			List.Insert(index,value);
		}
예제 #6
0
		///<summary></summary>
		public int IndexOf(ReportObject value){
			return(List.IndexOf(value));
		}
예제 #7
0
		///<summary></summary>
		public int Add(ReportObject value){
			return(List.Add(value));
		}
예제 #8
0
 ///<summary></summary>
 public void Insert(int index, ReportObject value)
 {
     List.Insert(index, value);
 }
예제 #9
0
 ///<summary></summary>
 public int IndexOf(ReportObject value)
 {
     return(List.IndexOf(value));
 }
예제 #10
0
 ///<summary></summary>
 public int Add(ReportObject value)
 {
     return(List.Add(value));
 }
예제 #11
0
		private List<string> GetDisplayString(string rawText,string prevDisplayText,ReportObject reportObject,int i,QueryObject queryObj,bool isExport) {
			string displayText="";
			List<string> retVals=new List<string>();
			DataTable dt=queryObj.ReportTable;
			//For exporting, we need to use the ExportTable which is the data that is visible to the user.  Using ReportTable would show raw query data (potentially different than what the user sees).
			if(isExport) {
				dt=queryObj.ExportTable;
			}
			if(reportObject.FieldValueType==FieldValueType.Age) {
				displayText=Patients.AgeToString(Patients.DateToAge(PIn.Date(rawText)));//(fieldObject.FormatString);
			}
			else if(reportObject.FieldValueType==FieldValueType.Boolean) {
				if(PIn.Bool(dt.Rows[i][queryObj.ArrDataFields.IndexOf(reportObject.DataField)].ToString())) {
					displayText="X";
				}
				else {
					displayText="";
				}
				if(i>0 && reportObject.SuppressIfDuplicate) {
					prevDisplayText=PIn.Bool(dt.Rows[i-1][queryObj.ArrDataFields.IndexOf(reportObject.DataField)].ToString()).ToString();
				}
			}
			else if(reportObject.FieldValueType==FieldValueType.Date) {
				displayText=PIn.DateT(dt.Rows[i][queryObj.ArrDataFields.IndexOf(reportObject.DataField)].ToString()).ToString(reportObject.StringFormat);
				if(i>0 && reportObject.SuppressIfDuplicate) {
					prevDisplayText=PIn.DateT(dt.Rows[i-1][queryObj.ArrDataFields.IndexOf(reportObject.DataField)].ToString()).ToString(reportObject.StringFormat);
				}
			}
			else if(reportObject.FieldValueType==FieldValueType.Integer) {
				displayText=PIn.Long(dt.Rows[i][queryObj.ArrDataFields.IndexOf(reportObject.DataField)].ToString()).ToString(reportObject.StringFormat);
				if(i>0 && reportObject.SuppressIfDuplicate) {
					prevDisplayText=PIn.Long(dt.Rows[i-1][queryObj.ArrDataFields.IndexOf(reportObject.DataField)].ToString()).ToString(reportObject.StringFormat);
				}
			}
			else if(reportObject.FieldValueType==FieldValueType.Number) {
				displayText=PIn.Double(dt.Rows[i][queryObj.ArrDataFields.IndexOf(reportObject.DataField)].ToString()).ToString(reportObject.StringFormat);
				if(i>0 && reportObject.SuppressIfDuplicate) {
					prevDisplayText=PIn.Double(dt.Rows[i-1][queryObj.ArrDataFields.IndexOf(reportObject.DataField)].ToString()).ToString(reportObject.StringFormat);
				}
			}
			else if(reportObject.FieldValueType==FieldValueType.String) {
				displayText=rawText;
				if(i>0 && reportObject.SuppressIfDuplicate) {
					prevDisplayText=dt.Rows[i-1][queryObj.ArrDataFields.IndexOf(reportObject.DataField)].ToString();
				}
			}
			retVals.Add(displayText);
			retVals.Add(prevDisplayText);
			return retVals;
		}
예제 #12
0
		private List<string> GetDisplayString(string rawText,string prevDisplayText,ReportObject reportObject,int i,QueryObject queryObj) {
			return GetDisplayString(rawText,prevDisplayText,reportObject,i,queryObj,false);
		}