Field_Info __fastcall TSaveObj::AssignFieldVal(TDataSet* ADS,AnsiString FieldName) { Variant V; Field_Info tmp; //{todo xieren}日志型的未考虑,或其没考虑的请在此修改 for (int i=0;i<ADS->FieldCount ;i++) { if (CompareText(ADS->Fields->Fields[i]->FieldName,FieldName) ==0) { V = ADS->Fields->Fields[i]->Value; if ((! VarIsNull(V)) && (!VarIsEmpty(V))) { tmp.FieldName = FieldName; tmp.FieldValue = V; if ((ADS->Fields->Fields[i]->DataType == ftFMTBcd) || (ADS->Fields->Fields[i]->DataType == ftFloat) || (ADS->Fields->Fields[i]->DataType == ftBCD) ) tmp.FieldType = ftFloat; else if (ADS->Fields->Fields[i]->DataType == ftDateTime) tmp.FieldType = ftDateTime; else tmp.FieldType = ftString; break; } } } return tmp; }
double VarToDoubleEx(Variant AValue) { if (!VarIsNull(AValue)) { return ((double)AValue); } else { return 0; } }
void __fastcall TCustomerDataSource::SetValue(void * ARecordHandle, void * AItemHandle, const Variant &AValue) { int AColumnId = GetDefaultItemID((int)AItemHandle); TCustomer* ACustomer = FCustomers->Customers[(int)ARecordHandle]; switch (AColumnId) { case IndexOfID: if (VarIsNull(AValue)) ACustomer->ID = 0; else ACustomer->ID = AValue; break; case IndexOfName: ACustomer->Name = VarToStr(AValue); break; case IndexOfDescription: ACustomer->Description = VarToStr(AValue); break; } if (!Modified) FModified = true; }
//--------------------------------------------------------------------------- bool UNODispatch(Variant Document, String ooCommand, Variant ooParams) { //Создание Dispatcher с пустыми ooParams для ОО //используется для PrintPreview bool RetVal=true; int Bounds[2] = {0,-1}; try{ Variant ooDispatcher, ooFrame, CurrentController, ServiceManager; ServiceManager = Variant::CreateObject("com.sun.star.ServiceManager"); if ((VarIsEmpty(ooParams)==true) || (VarIsNull(ooParams)==true)) ooParams= VarArrayCreate(Bounds,1, varVariant); CurrentController = Document.OleFunction("getCurrentController"); ooFrame = CurrentController.OleFunction("getFrame"); ooDispatcher= ServiceManager.OleFunction("createInstance", "com.sun.star.frame.DispatchHelper"); ooDispatcher.OleFunction("executeDispatch",ooFrame, ooCommand, "", 0, ooParams); } catch (Exception &E) { RetVal=false; } return RetVal; };
//--------------------------------------------------------------------------- void __fastcall TIssueListGridForm::tvItemsStylesGetContentStyle( TcxCustomGridTableView *Sender, TcxCustomGridRecord *ARecord, TcxCustomGridTableItem *AItem, TcxStyle *&AStyle) { if (!IsDependsOnData) return; int AStatus = -1; if (ARecord && AItem) if (!VarIsNull(((TcxCustomGridRecord*)ARecord)->Values[tvItemsSTATUS->Index])) AStatus = VarAsType(((TcxCustomGridRecord*)ARecord)->Values[tvItemsSTATUS->Index], varInteger); switch (AStatus) { case 1: AStyle = dmMain->stNew; break; case 2: AStyle = dmMain->stPostponed; break; case 3: AStyle = dmMain->stFixed; break; case 4: AStyle = dmMain->stRejected; } }
void __fastcall TGridModeDemoMainForm::tvDataControllerFilterGetValueList( TcxFilterCriteria *Sender, int AItemIndex, TcxDataFilterValueList *AValueList) { TDataSet *ADataSet = ((TcxGridDBTableView*)Grid->FocusedView)->DataController->DataSet; TcxGridDBColumn *AColumn = ((TcxGridDBTableView*)Grid->FocusedView)->Columns[AItemIndex]; bool AIsLookupColumn = (AColumn->PropertiesClass == __classid(TcxLookupComboBoxProperties)); try{ Screen->Cursor = crHourGlass; GridModeDemoDataDM->qryHelper->SQL->Clear(); GridModeDemoDataDM->qryHelper->SQL->Add( "Select DISTINCT " + AColumn->DataBinding->FieldName + " From " + GridModeDemoDataDM->GetTableNameByDataSet(ADataSet)); GridModeDemoDataDM->qryHelper->SQL->Add( GetSQLCondition((TcxGridDBTableView*)Grid->FocusedView, false)); GridModeDemoDataDM->qryHelper->Open(); GridModeDemoDataDM->qryHelper->First(); while (!GridModeDemoDataDM->qryHelper->Eof){ Variant ADisplayValue = GridModeDemoDataDM->qryHelper->Fields->Fields[0]->Value; if (AIsLookupColumn){ TcxLookupComboBoxProperties *AProperties = (TcxLookupComboBoxProperties*)AColumn->GetProperties(); ADataSet = AProperties->ListSource->DataSet; ADisplayValue = ADataSet->Lookup( AProperties->KeyFieldNames,ADisplayValue, AProperties->ListFieldNames); } if (VarIsNull(ADisplayValue)) return; AValueList->Add(fviValue, GridModeDemoDataDM->qryHelper->Fields->Fields[0]->Value, ADisplayValue, false); GridModeDemoDataDM->qryHelper->Next(); } GridModeDemoDataDM->qryHelper->Close(); } __finally{ Screen->Cursor = crDefault; } }