/// <summary> /// Insert a new record into database /// </summary> public int AddAndReturnID(object pobjFieldGroup, ArrayList parrSelectedItem) { try { Sys_FieldGroupVO voFieldGroup = (Sys_FieldGroupVO)pobjFieldGroup; Sys_FieldGroupDS dsFieldGroup = new Sys_FieldGroupDS(); sys_ReportFieldsDS dsReportField = new sys_ReportFieldsDS(); Sys_FieldGroupDetailDS dsFieldGroupDetail = new Sys_FieldGroupDetailDS(); // get current field group order voFieldGroup.GroupOrder = dsFieldGroup.GetFieldGroupOrder(voFieldGroup.ReportID, voFieldGroup.ParentFieldGroupID) + 1; // save new field group to database int intNewID = dsFieldGroup.AddAndReturnID(voFieldGroup); // save all selected sub group/field to database if any for (int i = 0; i < parrSelectedItem.Count; i++) { switch (voFieldGroup.GroupLevel) { case (int)GroupFieldLevel.One: // update sub group Sys_FieldGroupVO voSubGroup = (Sys_FieldGroupVO)parrSelectedItem[i]; // parent field group id voSubGroup.ParentFieldGroupID = intNewID; // new order in group voSubGroup.GroupOrder = i + 1; // save to database dsFieldGroup.Update(voSubGroup); break; case (int)GroupFieldLevel.Two: // update report field sys_ReportFieldsVO voReportField = (sys_ReportFieldsVO)parrSelectedItem[i]; // new field order in group voReportField.FieldOrder = i + 1; dsReportField.UpdateByName(voReportField); // create new Field Group Detail Sys_FieldGroupDetailVO voFieldGroupDetail = new Sys_FieldGroupDetailVO(); voFieldGroupDetail.FieldGroupID = intNewID; voFieldGroupDetail.ReportID = voFieldGroup.ReportID; voFieldGroupDetail.FieldName = voReportField.FieldName; // save to database dsFieldGroupDetail.Add(voFieldGroupDetail); break; } } return(intNewID); } catch (PCSDBException ex) { throw ex; } catch (Exception ex) { throw ex; } }
/// <summary> /// Update into Database /// </summary> public void Update(object pobjFieldGroup, ArrayList parrSelectedItem, ArrayList parrAvailableItem) { try { Sys_FieldGroupVO voFieldGroup = (Sys_FieldGroupVO)pobjFieldGroup; Sys_FieldGroupDS dsFieldGroup = new Sys_FieldGroupDS(); sys_ReportFieldsDS dsReportField = new sys_ReportFieldsDS(); Sys_FieldGroupDetailDS dsFieldGroupDetail = new Sys_FieldGroupDetailDS(); // update Field Group dsFieldGroup.Update(voFieldGroup); int intCurrentGroupOrder = dsFieldGroup.GetFieldGroupOrder(voFieldGroup.ReportID, 0); int intCurrentFieldOrder = dsReportField.GetMaxFieldOrder(voFieldGroup.ReportID); for (int i = 0; i < parrAvailableItem.Count; i++) { switch (voFieldGroup.GroupLevel) { case (int)GroupFieldLevel.One: Sys_FieldGroupVO voSubGroup = (Sys_FieldGroupVO)parrAvailableItem[i]; // remove parent field group voSubGroup.ParentFieldGroupID = 0; voSubGroup.GroupOrder = intCurrentGroupOrder + 1 + i; dsFieldGroup.Update(voSubGroup); break; case (int)GroupFieldLevel.Two: // update report field sys_ReportFieldsVO voReportField = (sys_ReportFieldsVO)parrSelectedItem[i]; // new field order in group voReportField.FieldOrder = intCurrentFieldOrder + i + 1; dsReportField.UpdateByName(voReportField); // create new Field Group Detail Sys_FieldGroupDetailVO voFieldGroupDetail = new Sys_FieldGroupDetailVO(); voFieldGroupDetail.FieldGroupID = voFieldGroup.FieldGroupID; voFieldGroupDetail.ReportID = voFieldGroup.ReportID; voFieldGroupDetail.FieldName = voReportField.FieldName; // save to database dsFieldGroupDetail.Add(voFieldGroupDetail); break; } } // delete old field group detail dsFieldGroupDetail.Delete(voFieldGroup.FieldGroupID, voFieldGroup.ReportID); // update selected group/field for (int i = 0; i < parrSelectedItem.Count; i++) { switch (voFieldGroup.GroupLevel) { case (int)GroupFieldLevel.One: Sys_FieldGroupVO voSubGroup = (Sys_FieldGroupVO)parrSelectedItem[i]; voSubGroup.ParentFieldGroupID = voFieldGroup.FieldGroupID; voSubGroup.GroupOrder = i + 1; dsFieldGroup.Update(voSubGroup); break; case (int)GroupFieldLevel.Two: // update report field sys_ReportFieldsVO voReportField = (sys_ReportFieldsVO)parrSelectedItem[i]; // new field order in group voReportField.FieldOrder = i + 1; dsReportField.UpdateByName(voReportField); // create new Field Group Detail Sys_FieldGroupDetailVO voFieldGroupDetail = new Sys_FieldGroupDetailVO(); voFieldGroupDetail.FieldGroupID = voFieldGroup.FieldGroupID; voFieldGroupDetail.ReportID = voFieldGroup.ReportID; voFieldGroupDetail.FieldName = voReportField.FieldName; // save to database dsFieldGroupDetail.Add(voFieldGroupDetail); break; } } } catch (PCSDBException ex) { throw ex; } catch (Exception ex) { throw ex; } }